one 1.1.389 → 1.1.391

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 (730) hide show
  1. package/dist/cjs/Root.cjs +13 -28
  2. package/dist/cjs/Root.js +15 -26
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +25 -26
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/cli/build.cjs +1 -1
  7. package/dist/cjs/cli/build.js +1 -1
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +1 -1
  10. package/dist/cjs/cli/build.native.js.map +1 -1
  11. package/dist/cjs/constants.cjs +5 -1
  12. package/dist/cjs/constants.js +3 -1
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/constants.native.js +5 -1
  15. package/dist/cjs/constants.native.js.map +2 -2
  16. package/dist/cjs/createApp.cjs +22 -82
  17. package/dist/cjs/createApp.js +17 -75
  18. package/dist/cjs/createApp.js.map +1 -1
  19. package/dist/cjs/createApp.native.js +0 -1
  20. package/dist/cjs/createApp.native.js.map +2 -2
  21. package/dist/cjs/createHandleRequest.cjs +1 -1
  22. package/dist/cjs/createHandleRequest.js +1 -1
  23. package/dist/cjs/createHandleRequest.js.map +1 -1
  24. package/dist/cjs/createHandleRequest.native.js +1 -1
  25. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  26. package/dist/cjs/fork/NavigationContainer.cjs +49 -31
  27. package/dist/cjs/fork/NavigationContainer.js +40 -21
  28. package/dist/cjs/fork/NavigationContainer.js.map +2 -2
  29. package/dist/cjs/fork/NavigationContainer.native.js +51 -29
  30. package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
  31. package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
  32. package/dist/cjs/fork/createMemoryHistory.js +3 -2
  33. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  34. package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
  35. package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
  36. package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
  37. package/dist/cjs/fork/extractPathFromURL.js +44 -21
  38. package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
  39. package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
  40. package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
  41. package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
  42. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  43. package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
  44. package/dist/cjs/fork/getPathFromState-mods.js +56 -0
  45. package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
  46. package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
  47. package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
  48. package/dist/cjs/fork/getPathFromState.cjs +75 -224
  49. package/dist/cjs/fork/getPathFromState.js +68 -223
  50. package/dist/cjs/fork/getPathFromState.js.map +2 -2
  51. package/dist/cjs/fork/getPathFromState.native.js +79 -261
  52. package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
  53. package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
  54. package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
  55. package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
  56. package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
  57. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
  58. package/dist/cjs/fork/getStateFromPath.cjs +181 -263
  59. package/dist/cjs/fork/getStateFromPath.js +148 -264
  60. package/dist/cjs/fork/getStateFromPath.js.map +2 -2
  61. package/dist/cjs/fork/getStateFromPath.native.js +164 -304
  62. package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
  63. package/dist/cjs/fork/useBackButton.js.map +1 -1
  64. package/dist/cjs/fork/useBackButton.native.js.map +1 -1
  65. package/dist/cjs/fork/useDocumentTitle.js +4 -1
  66. package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
  67. package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
  68. package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
  69. package/dist/cjs/fork/useLinking.cjs +21 -24
  70. package/dist/cjs/fork/useLinking.js +21 -25
  71. package/dist/cjs/fork/useLinking.js.map +2 -2
  72. package/dist/cjs/fork/useLinking.native.js +68 -66
  73. package/dist/cjs/fork/useLinking.native.js.map +2 -2
  74. package/dist/cjs/fork/useThenable.js.map +1 -1
  75. package/dist/cjs/fork/useThenable.native.js.map +1 -1
  76. package/dist/cjs/fork/validatePathConfig.cjs +32 -11
  77. package/dist/cjs/fork/validatePathConfig.js +41 -11
  78. package/dist/cjs/fork/validatePathConfig.js.map +1 -1
  79. package/dist/cjs/fork/validatePathConfig.native.js +47 -18
  80. package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
  81. package/dist/cjs/getReactNavigationConfig.cjs +1 -1
  82. package/dist/cjs/getReactNavigationConfig.js +1 -1
  83. package/dist/cjs/getReactNavigationConfig.native.js +1 -1
  84. package/dist/cjs/hooks.cjs +2 -2
  85. package/dist/cjs/hooks.js +1 -1
  86. package/dist/cjs/hooks.js.map +1 -1
  87. package/dist/cjs/hooks.native.js +1 -1
  88. package/dist/cjs/hooks.native.js.map +1 -1
  89. package/dist/cjs/index.cjs +3 -3
  90. package/dist/cjs/index.js +2 -2
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/cjs/index.native.js +2 -2
  93. package/dist/cjs/index.native.js.map +1 -1
  94. package/dist/cjs/layouts/withLayoutContext.cjs +3 -3
  95. package/dist/cjs/layouts/withLayoutContext.js +2 -2
  96. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  97. package/dist/cjs/layouts/withLayoutContext.native.js +2 -2
  98. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  99. package/dist/cjs/link/linking.cjs +4 -4
  100. package/dist/cjs/link/linking.js +3 -3
  101. package/dist/cjs/link/linking.js.map +2 -2
  102. package/dist/cjs/link/linking.native.js +3 -3
  103. package/dist/cjs/link/linking.native.js.map +1 -1
  104. package/dist/cjs/link/useLinkTo.cjs +3 -3
  105. package/dist/cjs/link/useLinkTo.js +2 -2
  106. package/dist/cjs/link/useLinkTo.js.map +1 -1
  107. package/dist/cjs/link/useLinkTo.native.js +2 -2
  108. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  109. package/dist/cjs/render.cjs +3 -2
  110. package/dist/cjs/render.js +3 -2
  111. package/dist/cjs/render.js.map +1 -1
  112. package/dist/cjs/{Route.js.map → router/Route.js.map} +1 -1
  113. package/dist/cjs/{Route.native.js.map → router/Route.native.js.map} +1 -1
  114. package/dist/cjs/{createRoute.cjs → router/createRoute.cjs} +1 -1
  115. package/dist/cjs/{createRoute.js → router/createRoute.js} +1 -1
  116. package/dist/cjs/{createRoute.js.map → router/createRoute.js.map} +1 -1
  117. package/dist/cjs/{createRoute.native.js → router/createRoute.native.js} +1 -1
  118. package/dist/cjs/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  119. package/dist/cjs/router/filterRootHTML.cjs +62 -0
  120. package/dist/cjs/router/filterRootHTML.js +49 -0
  121. package/dist/cjs/router/filterRootHTML.js.map +6 -0
  122. package/dist/cjs/router/filterRootHTML.native.js +55 -0
  123. package/dist/cjs/router/filterRootHTML.native.js.map +6 -0
  124. package/dist/cjs/{getLinkingConfig.cjs → router/getLinkingConfig.cjs} +2 -2
  125. package/dist/cjs/{getLinkingConfig.js → router/getLinkingConfig.js} +1 -1
  126. package/dist/cjs/router/getLinkingConfig.js.map +6 -0
  127. package/dist/cjs/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +1 -1
  128. package/dist/cjs/router/getLinkingConfig.native.js.map +6 -0
  129. package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
  130. package/dist/cjs/router/getNormalizedStatePath.js +2 -2
  131. package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
  132. package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
  133. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  134. package/dist/cjs/{getRoutes.cjs → router/getRoutes.cjs} +3 -3
  135. package/dist/cjs/{getRoutes.js → router/getRoutes.js} +2 -2
  136. package/dist/cjs/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  137. package/dist/cjs/{getRoutes.native.js → router/getRoutes.native.js} +2 -2
  138. package/dist/cjs/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  139. package/dist/cjs/{imperative-api.cjs → router/imperative-api.cjs} +1 -1
  140. package/dist/cjs/{imperative-api.js → router/imperative-api.js} +1 -1
  141. package/dist/cjs/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  142. package/dist/cjs/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  143. package/dist/cjs/{imperative-api.native.js.map → router/imperative-api.native.js.map} +2 -2
  144. package/dist/cjs/{matchers.js.map → router/matchers.js.map} +1 -1
  145. package/dist/cjs/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  146. package/dist/cjs/router/router.cjs +25 -9
  147. package/dist/cjs/router/router.js +25 -3
  148. package/dist/cjs/router/router.js.map +1 -1
  149. package/dist/cjs/router/router.native.js +39 -3
  150. package/dist/cjs/router/router.native.js.map +2 -2
  151. package/dist/cjs/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  152. package/dist/cjs/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  153. package/dist/cjs/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  154. package/dist/cjs/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  155. package/dist/cjs/{useScreens.cjs → router/useScreens.cjs} +57 -6
  156. package/dist/cjs/{useScreens.js → router/useScreens.js} +29 -3
  157. package/dist/cjs/router/useScreens.js.map +6 -0
  158. package/dist/cjs/{useScreens.native.js → router/useScreens.native.js} +10 -3
  159. package/dist/cjs/router/useScreens.native.js.map +6 -0
  160. package/dist/cjs/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  161. package/dist/cjs/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  162. package/dist/cjs/server/createRoutesManifest.cjs +1 -1
  163. package/dist/cjs/server/createRoutesManifest.js +1 -1
  164. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  165. package/dist/cjs/server/createRoutesManifest.native.js +1 -1
  166. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  167. package/dist/cjs/server/getServerManifest.cjs +2 -2
  168. package/dist/cjs/server/getServerManifest.js +1 -1
  169. package/dist/cjs/server/getServerManifest.js.map +1 -1
  170. package/dist/cjs/server/getServerManifest.native.js +1 -1
  171. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  172. package/dist/cjs/server/oneServe.cjs +1 -1
  173. package/dist/cjs/server/oneServe.js +1 -1
  174. package/dist/cjs/server/oneServe.js.map +1 -1
  175. package/dist/cjs/server/oneServe.native.js +1 -1
  176. package/dist/cjs/server/oneServe.native.js.map +1 -1
  177. package/dist/cjs/typed-routes/generateRouteTypes.cjs +1 -1
  178. package/dist/cjs/typed-routes/generateRouteTypes.js +1 -1
  179. package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
  180. package/dist/cjs/typed-routes/generateRouteTypes.native.js +1 -1
  181. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  182. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +2 -2
  183. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +1 -1
  184. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  185. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +1 -1
  186. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  187. package/dist/cjs/useLoader.cjs +2 -2
  188. package/dist/cjs/useLoader.js +1 -1
  189. package/dist/cjs/useLoader.js.map +1 -1
  190. package/dist/cjs/useLoader.native.js +1 -1
  191. package/dist/cjs/useLoader.native.js.map +1 -1
  192. package/dist/cjs/{cleanUrl.cjs → utils/cleanUrl.cjs} +3 -3
  193. package/dist/cjs/{cleanUrl.js → utils/cleanUrl.js} +1 -1
  194. package/dist/cjs/{cleanUrl.js.map → utils/cleanUrl.js.map} +2 -2
  195. package/dist/cjs/{cleanUrl.native.js → utils/cleanUrl.native.js} +1 -1
  196. package/dist/cjs/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +2 -2
  197. package/dist/cjs/{platform.js.map → utils/platform.js.map} +1 -1
  198. package/dist/cjs/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  199. package/dist/cjs/utils/redirect.cjs +1 -1
  200. package/dist/cjs/utils/redirect.js +1 -1
  201. package/dist/cjs/utils/redirect.native.js +1 -1
  202. package/dist/cjs/utils/redirect.native.js.map +1 -1
  203. package/dist/cjs/utils/serverContext.cjs +54 -0
  204. package/dist/cjs/utils/serverContext.js +51 -0
  205. package/dist/cjs/utils/serverContext.js.map +6 -0
  206. package/dist/cjs/utils/serverContext.native.js +55 -0
  207. package/dist/cjs/utils/serverContext.native.js.map +6 -0
  208. package/dist/cjs/utils/useConstant.cjs +44 -0
  209. package/dist/cjs/utils/useConstant.js +35 -0
  210. package/dist/cjs/utils/useConstant.js.map +6 -0
  211. package/dist/cjs/utils/useConstant.native.js +44 -0
  212. package/dist/cjs/utils/useConstant.native.js.map +6 -0
  213. package/dist/cjs/views/EmptyRoute.cjs +1 -1
  214. package/dist/cjs/views/EmptyRoute.js +1 -1
  215. package/dist/cjs/views/EmptyRoute.native.js +1 -1
  216. package/dist/cjs/views/LoadProgressBar.cjs +1 -1
  217. package/dist/cjs/views/LoadProgressBar.js +1 -1
  218. package/dist/cjs/views/LoadProgressBar.js.map +1 -1
  219. package/dist/cjs/views/LoadProgressBar.native.js +1 -1
  220. package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
  221. package/dist/cjs/views/Navigator.cjs +2 -2
  222. package/dist/cjs/views/Navigator.js +1 -1
  223. package/dist/cjs/views/Navigator.js.map +1 -1
  224. package/dist/cjs/views/Navigator.native.js +1 -1
  225. package/dist/cjs/views/Navigator.native.js.map +1 -1
  226. package/dist/cjs/views/Screen.cjs +1 -1
  227. package/dist/cjs/views/Screen.js +1 -1
  228. package/dist/cjs/views/Screen.native.js +1 -1
  229. package/dist/cjs/vite/DevHead.cjs +59 -0
  230. package/dist/cjs/vite/DevHead.js +54 -0
  231. package/dist/cjs/vite/DevHead.js.map +6 -0
  232. package/dist/cjs/vite/DevHead.native.js +29 -0
  233. package/dist/cjs/vite/DevHead.native.js.map +6 -0
  234. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +6 -8
  235. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +6 -8
  236. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  237. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +7 -9
  238. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  239. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +8 -4
  240. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +10 -5
  241. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  242. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +11 -6
  243. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  244. package/dist/cjs/zero/useQuery.cjs +3 -2
  245. package/dist/cjs/zero/useQuery.js +2 -2
  246. package/dist/cjs/zero/useQuery.js.map +1 -1
  247. package/dist/cjs/zero/useQuery.native.js +1 -1
  248. package/dist/cjs/zero/useQuery.native.js.map +2 -2
  249. package/dist/esm/Root.js +16 -19
  250. package/dist/esm/Root.js.map +1 -1
  251. package/dist/esm/Root.mjs +9 -13
  252. package/dist/esm/Root.mjs.map +1 -1
  253. package/dist/esm/Root.native.js +26 -19
  254. package/dist/esm/Root.native.js.map +2 -2
  255. package/dist/esm/cli/build.js +1 -1
  256. package/dist/esm/cli/build.mjs +1 -1
  257. package/dist/esm/cli/build.native.js +1 -1
  258. package/dist/esm/constants.js +3 -1
  259. package/dist/esm/constants.js.map +1 -1
  260. package/dist/esm/constants.mjs +4 -2
  261. package/dist/esm/constants.mjs.map +1 -1
  262. package/dist/esm/constants.native.js +3 -1
  263. package/dist/esm/constants.native.js.map +2 -2
  264. package/dist/esm/createApp.js +22 -76
  265. package/dist/esm/createApp.js.map +1 -1
  266. package/dist/esm/createApp.mjs +23 -83
  267. package/dist/esm/createApp.mjs.map +1 -1
  268. package/dist/esm/createApp.native.js +0 -1
  269. package/dist/esm/createApp.native.js.map +2 -2
  270. package/dist/esm/createHandleRequest.js +1 -1
  271. package/dist/esm/createHandleRequest.js.map +1 -1
  272. package/dist/esm/createHandleRequest.mjs +1 -1
  273. package/dist/esm/createHandleRequest.mjs.map +1 -1
  274. package/dist/esm/createHandleRequest.native.js +1 -1
  275. package/dist/esm/createHandleRequest.native.js.map +1 -1
  276. package/dist/esm/fork/NavigationContainer.js +43 -20
  277. package/dist/esm/fork/NavigationContainer.js.map +1 -1
  278. package/dist/esm/fork/NavigationContainer.mjs +42 -24
  279. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  280. package/dist/esm/fork/NavigationContainer.native.js +44 -24
  281. package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
  282. package/dist/esm/fork/createMemoryHistory.js +3 -2
  283. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  284. package/dist/esm/fork/createMemoryHistory.mjs +4 -3
  285. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  286. package/dist/esm/fork/createMemoryHistory.native.js +4 -4
  287. package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
  288. package/dist/esm/fork/extractPathFromURL.js +42 -11
  289. package/dist/esm/fork/extractPathFromURL.js.map +1 -1
  290. package/dist/esm/fork/extractPathFromURL.mjs +39 -11
  291. package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
  292. package/dist/esm/fork/extractPathFromURL.native.js +52 -15
  293. package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
  294. package/dist/esm/fork/findFocusedRoute.js.map +1 -1
  295. package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
  296. package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
  297. package/dist/esm/fork/getPathFromState-mods.js +40 -0
  298. package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
  299. package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
  300. package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
  301. package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
  302. package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
  303. package/dist/esm/fork/getPathFromState.js +71 -228
  304. package/dist/esm/fork/getPathFromState.js.map +2 -2
  305. package/dist/esm/fork/getPathFromState.mjs +73 -221
  306. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  307. package/dist/esm/fork/getPathFromState.native.js +79 -260
  308. package/dist/esm/fork/getPathFromState.native.js.map +2 -2
  309. package/dist/esm/fork/getStateFromPath-mods.js +176 -0
  310. package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
  311. package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
  312. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
  313. package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
  314. package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
  315. package/dist/esm/fork/getStateFromPath.js +160 -265
  316. package/dist/esm/fork/getStateFromPath.js.map +2 -2
  317. package/dist/esm/fork/getStateFromPath.mjs +181 -260
  318. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  319. package/dist/esm/fork/getStateFromPath.native.js +164 -302
  320. package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
  321. package/dist/esm/fork/useBackButton.js.map +1 -1
  322. package/dist/esm/fork/useBackButton.mjs.map +1 -1
  323. package/dist/esm/fork/useBackButton.native.js.map +1 -1
  324. package/dist/esm/fork/useDocumentTitle.js +4 -1
  325. package/dist/esm/fork/useDocumentTitle.js.map +1 -1
  326. package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
  327. package/dist/esm/fork/useDocumentTitle.native.js +1 -1
  328. package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
  329. package/dist/esm/fork/useLinking.js +22 -26
  330. package/dist/esm/fork/useLinking.js.map +1 -1
  331. package/dist/esm/fork/useLinking.mjs +20 -23
  332. package/dist/esm/fork/useLinking.mjs.map +1 -1
  333. package/dist/esm/fork/useLinking.native.js +65 -67
  334. package/dist/esm/fork/useLinking.native.js.map +2 -2
  335. package/dist/esm/fork/useThenable.js.map +1 -1
  336. package/dist/esm/fork/useThenable.mjs.map +1 -1
  337. package/dist/esm/fork/useThenable.native.js.map +1 -1
  338. package/dist/esm/fork/validatePathConfig.js +41 -11
  339. package/dist/esm/fork/validatePathConfig.js.map +1 -1
  340. package/dist/esm/fork/validatePathConfig.mjs +32 -11
  341. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  342. package/dist/esm/fork/validatePathConfig.native.js +43 -18
  343. package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
  344. package/dist/esm/getReactNavigationConfig.js +1 -1
  345. package/dist/esm/getReactNavigationConfig.mjs +1 -1
  346. package/dist/esm/getReactNavigationConfig.native.js +1 -1
  347. package/dist/esm/hooks.js +2 -2
  348. package/dist/esm/hooks.mjs +2 -2
  349. package/dist/esm/hooks.native.js +2 -2
  350. package/dist/esm/index.js +3 -3
  351. package/dist/esm/index.mjs +3 -3
  352. package/dist/esm/index.native.js +3 -3
  353. package/dist/esm/layouts/withLayoutContext.js +3 -3
  354. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  355. package/dist/esm/layouts/withLayoutContext.mjs +3 -3
  356. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  357. package/dist/esm/layouts/withLayoutContext.native.js +3 -3
  358. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  359. package/dist/esm/link/linking.js +2 -2
  360. package/dist/esm/link/linking.js.map +1 -1
  361. package/dist/esm/link/linking.mjs +2 -2
  362. package/dist/esm/link/linking.mjs.map +1 -1
  363. package/dist/esm/link/linking.native.js +2 -2
  364. package/dist/esm/link/linking.native.js.map +1 -1
  365. package/dist/esm/link/useLinkTo.js +2 -2
  366. package/dist/esm/link/useLinkTo.mjs +2 -2
  367. package/dist/esm/link/useLinkTo.native.js +2 -2
  368. package/dist/esm/render.js +3 -2
  369. package/dist/esm/render.js.map +1 -1
  370. package/dist/esm/render.mjs +3 -2
  371. package/dist/esm/render.mjs.map +1 -1
  372. package/dist/esm/{Route.js.map → router/Route.js.map} +1 -1
  373. package/dist/esm/router/Route.mjs.map +1 -0
  374. package/dist/esm/{Route.native.js.map → router/Route.native.js.map} +1 -1
  375. package/dist/esm/{createRoute.js → router/createRoute.js} +1 -1
  376. package/dist/esm/{createRoute.js.map → router/createRoute.js.map} +1 -1
  377. package/dist/esm/{createRoute.mjs → router/createRoute.mjs} +1 -1
  378. package/dist/esm/router/createRoute.mjs.map +1 -0
  379. package/dist/esm/{createRoute.native.js → router/createRoute.native.js} +1 -1
  380. package/dist/esm/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  381. package/dist/esm/router/filterRootHTML.js +33 -0
  382. package/dist/esm/router/filterRootHTML.js.map +6 -0
  383. package/dist/esm/router/filterRootHTML.mjs +39 -0
  384. package/dist/esm/router/filterRootHTML.mjs.map +1 -0
  385. package/dist/esm/router/filterRootHTML.native.js +34 -0
  386. package/dist/esm/router/filterRootHTML.native.js.map +6 -0
  387. package/dist/esm/{getLinkingConfig.js → router/getLinkingConfig.js} +7 -2
  388. package/dist/esm/router/getLinkingConfig.js.map +6 -0
  389. package/dist/esm/{getLinkingConfig.mjs → router/getLinkingConfig.mjs} +2 -2
  390. package/dist/esm/router/getLinkingConfig.mjs.map +1 -0
  391. package/dist/esm/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +2 -2
  392. package/dist/esm/router/getLinkingConfig.native.js.map +6 -0
  393. package/dist/esm/router/getNormalizedStatePath.js +1 -1
  394. package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
  395. package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
  396. package/dist/esm/{getRoutes.js → router/getRoutes.js} +3 -3
  397. package/dist/esm/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  398. package/dist/esm/{getRoutes.mjs → router/getRoutes.mjs} +3 -3
  399. package/dist/esm/router/getRoutes.mjs.map +1 -0
  400. package/dist/esm/{getRoutes.native.js → router/getRoutes.native.js} +3 -3
  401. package/dist/esm/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  402. package/dist/esm/{imperative-api.js → router/imperative-api.js} +1 -1
  403. package/dist/esm/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  404. package/dist/esm/{imperative-api.mjs → router/imperative-api.mjs} +1 -1
  405. package/dist/esm/router/imperative-api.mjs.map +1 -0
  406. package/dist/esm/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  407. package/dist/esm/{imperative-api.native.js.map → router/imperative-api.native.js.map} +1 -1
  408. package/dist/esm/{matchers.js.map → router/matchers.js.map} +1 -1
  409. package/dist/esm/router/matchers.mjs.map +1 -0
  410. package/dist/esm/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  411. package/dist/esm/router/router.js +30 -8
  412. package/dist/esm/router/router.js.map +1 -1
  413. package/dist/esm/router/router.mjs +24 -8
  414. package/dist/esm/router/router.mjs.map +1 -1
  415. package/dist/esm/router/router.native.js +44 -8
  416. package/dist/esm/router/router.native.js.map +2 -2
  417. package/dist/esm/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  418. package/dist/esm/router/sortRoutes.mjs.map +1 -0
  419. package/dist/esm/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  420. package/dist/esm/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  421. package/dist/esm/router/useNavigation.mjs.map +1 -0
  422. package/dist/esm/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  423. package/dist/esm/{useScreens.js → router/useScreens.js} +39 -8
  424. package/dist/esm/router/useScreens.js.map +6 -0
  425. package/dist/esm/{useScreens.mjs → router/useScreens.mjs} +59 -8
  426. package/dist/esm/router/useScreens.mjs.map +1 -0
  427. package/dist/esm/{useScreens.native.js → router/useScreens.native.js} +20 -8
  428. package/dist/esm/router/useScreens.native.js.map +6 -0
  429. package/dist/esm/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  430. package/dist/esm/router/useViteRoutes.mjs.map +1 -0
  431. package/dist/esm/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  432. package/dist/esm/server/createRoutesManifest.js +1 -1
  433. package/dist/esm/server/createRoutesManifest.mjs +1 -1
  434. package/dist/esm/server/createRoutesManifest.native.js +1 -1
  435. package/dist/esm/server/getServerManifest.js +2 -2
  436. package/dist/esm/server/getServerManifest.mjs +2 -2
  437. package/dist/esm/server/getServerManifest.native.js +2 -2
  438. package/dist/esm/server/oneServe.js +1 -1
  439. package/dist/esm/server/oneServe.mjs +1 -1
  440. package/dist/esm/server/oneServe.native.js +1 -1
  441. package/dist/esm/typed-routes/generateRouteTypes.js +1 -1
  442. package/dist/esm/typed-routes/generateRouteTypes.mjs +1 -1
  443. package/dist/esm/typed-routes/generateRouteTypes.native.js +1 -1
  444. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +2 -2
  445. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +2 -2
  446. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +2 -2
  447. package/dist/esm/useLoader.js +2 -2
  448. package/dist/esm/useLoader.mjs +2 -2
  449. package/dist/esm/useLoader.native.js +2 -2
  450. package/dist/esm/{cleanUrl.js → utils/cleanUrl.js} +3 -3
  451. package/dist/esm/{cleanUrl.js.map → utils/cleanUrl.js.map} +1 -1
  452. package/dist/esm/{cleanUrl.mjs → utils/cleanUrl.mjs} +3 -3
  453. package/dist/esm/utils/cleanUrl.mjs.map +1 -0
  454. package/dist/esm/{cleanUrl.native.js → utils/cleanUrl.native.js} +3 -3
  455. package/dist/esm/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +1 -1
  456. package/dist/esm/{platform.js.map → utils/platform.js.map} +1 -1
  457. package/dist/esm/utils/platform.mjs.map +1 -0
  458. package/dist/esm/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  459. package/dist/esm/utils/redirect.js +1 -1
  460. package/dist/esm/utils/redirect.mjs +1 -1
  461. package/dist/esm/utils/redirect.native.js +1 -1
  462. package/dist/esm/utils/serverContext.js +35 -0
  463. package/dist/esm/utils/serverContext.js.map +6 -0
  464. package/dist/esm/utils/serverContext.mjs +28 -0
  465. package/dist/esm/utils/serverContext.mjs.map +1 -0
  466. package/dist/esm/utils/serverContext.native.js +32 -0
  467. package/dist/esm/utils/serverContext.native.js.map +6 -0
  468. package/dist/esm/utils/useConstant.js +11 -0
  469. package/dist/esm/utils/useConstant.js.map +6 -0
  470. package/dist/esm/utils/useConstant.mjs +10 -0
  471. package/dist/esm/utils/useConstant.mjs.map +1 -0
  472. package/dist/esm/utils/useConstant.native.js +15 -0
  473. package/dist/esm/utils/useConstant.native.js.map +6 -0
  474. package/dist/esm/views/EmptyRoute.js +1 -1
  475. package/dist/esm/views/EmptyRoute.mjs +1 -1
  476. package/dist/esm/views/EmptyRoute.native.js +1 -1
  477. package/dist/esm/views/LoadProgressBar.js +1 -1
  478. package/dist/esm/views/LoadProgressBar.mjs +1 -1
  479. package/dist/esm/views/LoadProgressBar.native.js +1 -1
  480. package/dist/esm/views/Navigator.js +2 -2
  481. package/dist/esm/views/Navigator.mjs +2 -2
  482. package/dist/esm/views/Navigator.native.js +2 -2
  483. package/dist/esm/views/Screen.js +1 -1
  484. package/dist/esm/views/Screen.mjs +1 -1
  485. package/dist/esm/views/Screen.native.js +1 -1
  486. package/dist/esm/vite/DevHead.js +39 -0
  487. package/dist/esm/vite/DevHead.js.map +6 -0
  488. package/dist/esm/vite/DevHead.mjs +36 -0
  489. package/dist/esm/vite/DevHead.mjs.map +1 -0
  490. package/dist/esm/vite/DevHead.native.js +9 -0
  491. package/dist/esm/vite/DevHead.native.js.map +6 -0
  492. package/dist/esm/vite/plugins/SSRCSSPlugin.js +6 -8
  493. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  494. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +7 -8
  495. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  496. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +7 -8
  497. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  498. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +10 -4
  499. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  500. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +7 -3
  501. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  502. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +11 -5
  503. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  504. package/dist/esm/zero/useQuery.js +2 -1
  505. package/dist/esm/zero/useQuery.js.map +1 -1
  506. package/dist/esm/zero/useQuery.mjs +2 -1
  507. package/dist/esm/zero/useQuery.mjs.map +1 -1
  508. package/dist/esm/zero/useQuery.native.js +2 -1
  509. package/dist/esm/zero/useQuery.native.js.map +2 -2
  510. package/package.json +9 -16
  511. package/src/Root.tsx +33 -44
  512. package/src/cli/build.ts +1 -1
  513. package/src/constants.ts +4 -0
  514. package/src/createApp.native.tsx +1 -1
  515. package/src/createApp.tsx +23 -82
  516. package/src/createHandleRequest.ts +3 -2
  517. package/src/fork/NavigationContainer.tsx +101 -39
  518. package/src/fork/createMemoryHistory.tsx +15 -13
  519. package/src/fork/extractPathFromURL.ts +85 -40
  520. package/src/fork/findFocusedRoute.tsx +9 -1
  521. package/src/fork/getPathFromState-mods.ts +142 -0
  522. package/src/fork/getPathFromState.ts +244 -501
  523. package/src/fork/getStateFromPath-mods.ts +400 -0
  524. package/src/fork/getStateFromPath.ts +447 -538
  525. package/src/fork/useBackButton.native.tsx +16 -2
  526. package/src/fork/useBackButton.tsx +11 -2
  527. package/src/fork/useDocumentTitle.native.tsx +9 -4
  528. package/src/fork/useDocumentTitle.tsx +12 -7
  529. package/src/fork/useLinking.native.ts +71 -63
  530. package/src/fork/useLinking.ts +75 -40
  531. package/src/fork/useThenable.tsx +7 -1
  532. package/src/fork/validatePathConfig.ts +64 -12
  533. package/src/getReactNavigationConfig.ts +2 -2
  534. package/src/hooks.tsx +2 -2
  535. package/src/index.ts +3 -3
  536. package/src/layouts/withLayoutContext.tsx +3 -3
  537. package/src/link/linking.ts +2 -2
  538. package/src/link/useLinkTo.tsx +2 -2
  539. package/src/render.tsx +3 -5
  540. package/src/{Route.tsx → router/Route.tsx} +2 -2
  541. package/src/{createRoute.ts → router/createRoute.ts} +2 -2
  542. package/src/router/filterRootHTML.ts +81 -0
  543. package/src/{getLinkingConfig.ts → router/getLinkingConfig.ts} +8 -3
  544. package/src/router/getNormalizedStatePath.tsx +1 -1
  545. package/src/{getRoutes.ts → router/getRoutes.ts} +5 -5
  546. package/src/{imperative-api.ts → router/imperative-api.ts} +2 -2
  547. package/src/router/router.ts +48 -9
  548. package/src/{useScreens.tsx → router/useScreens.tsx} +63 -48
  549. package/src/{useViteRoutes.tsx → router/useViteRoutes.tsx} +2 -2
  550. package/src/server/createRoutesManifest.ts +3 -3
  551. package/src/server/getServerManifest.ts +3 -3
  552. package/src/server/oneServe.ts +1 -1
  553. package/src/typed-routes/generateRouteTypes.ts +1 -1
  554. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +3 -3
  555. package/src/useLoader.ts +2 -2
  556. package/src/{cleanUrl.ts → utils/cleanUrl.ts} +3 -3
  557. package/src/utils/redirect.ts +1 -1
  558. package/src/utils/serverContext.tsx +52 -0
  559. package/src/utils/useConstant.ts +18 -0
  560. package/src/views/EmptyRoute.tsx +1 -1
  561. package/src/views/LoadProgressBar.tsx +1 -1
  562. package/src/views/Navigator.tsx +2 -2
  563. package/src/views/Screen.tsx +1 -1
  564. package/src/vite/DevHead.tsx +39 -0
  565. package/src/vite/plugins/SSRCSSPlugin.ts +6 -10
  566. package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -6
  567. package/src/zero/useQuery.ts +2 -1
  568. package/types/Root.d.ts +3 -2
  569. package/types/Root.d.ts.map +1 -1
  570. package/types/constants.d.ts +2 -0
  571. package/types/constants.d.ts.map +1 -1
  572. package/types/createApp.d.ts.map +1 -1
  573. package/types/createHandleRequest.d.ts +1 -1
  574. package/types/createHandleRequest.d.ts.map +1 -1
  575. package/types/fork/NavigationContainer.d.ts +19 -8
  576. package/types/fork/NavigationContainer.d.ts.map +1 -1
  577. package/types/fork/createMemoryHistory.d.ts +10 -1
  578. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  579. package/types/fork/extractPathFromURL.d.ts +7 -1
  580. package/types/fork/extractPathFromURL.d.ts.map +1 -1
  581. package/types/fork/findFocusedRoute.d.ts +9 -0
  582. package/types/fork/findFocusedRoute.d.ts.map +1 -1
  583. package/types/fork/getPathFromState-mods.d.ts +23 -0
  584. package/types/fork/getPathFromState-mods.d.ts.map +1 -0
  585. package/types/fork/getPathFromState.d.ts +15 -14
  586. package/types/fork/getPathFromState.d.ts.map +1 -1
  587. package/types/fork/getStateFromPath-mods.d.ts +58 -0
  588. package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
  589. package/types/fork/getStateFromPath.d.ts +28 -29
  590. package/types/fork/getStateFromPath.d.ts.map +1 -1
  591. package/types/fork/useBackButton.d.ts +6 -0
  592. package/types/fork/useBackButton.d.ts.map +1 -1
  593. package/types/fork/useBackButton.native.d.ts +9 -1
  594. package/types/fork/useBackButton.native.d.ts.map +1 -1
  595. package/types/fork/useDocumentTitle.d.ts +8 -6
  596. package/types/fork/useDocumentTitle.d.ts.map +1 -1
  597. package/types/fork/useDocumentTitle.native.d.ts +5 -2
  598. package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
  599. package/types/fork/useLinking.d.ts +8 -1
  600. package/types/fork/useLinking.d.ts.map +1 -1
  601. package/types/fork/useLinking.native.d.ts +9 -2
  602. package/types/fork/useLinking.native.d.ts.map +1 -1
  603. package/types/fork/useThenable.d.ts +6 -0
  604. package/types/fork/useThenable.d.ts.map +1 -1
  605. package/types/fork/validatePathConfig.d.ts +8 -1
  606. package/types/fork/validatePathConfig.d.ts.map +1 -1
  607. package/types/getReactNavigationConfig.d.ts +1 -1
  608. package/types/getReactNavigationConfig.d.ts.map +1 -1
  609. package/types/index.d.ts +3 -3
  610. package/types/index.d.ts.map +1 -1
  611. package/types/layouts/withLayoutContext.d.ts +1 -1
  612. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  613. package/types/link/linking.d.ts +2 -2
  614. package/types/link/linking.d.ts.map +1 -1
  615. package/types/render.d.ts.map +1 -1
  616. package/types/{Route.d.ts → router/Route.d.ts} +2 -2
  617. package/types/router/Route.d.ts.map +1 -0
  618. package/types/{createRoute.d.ts → router/createRoute.d.ts} +1 -1
  619. package/types/router/createRoute.d.ts.map +1 -0
  620. package/types/router/filterRootHTML.d.ts +19 -0
  621. package/types/router/filterRootHTML.d.ts.map +1 -0
  622. package/types/{getLinkingConfig.d.ts → router/getLinkingConfig.d.ts} +2 -2
  623. package/types/router/getLinkingConfig.d.ts.map +1 -0
  624. package/types/{getRoutes.d.ts → router/getRoutes.d.ts} +1 -1
  625. package/types/router/getRoutes.d.ts.map +1 -0
  626. package/types/router/imperative-api.d.ts +3 -0
  627. package/types/router/imperative-api.d.ts.map +1 -0
  628. package/types/router/matchers.d.ts.map +1 -0
  629. package/types/router/router.d.ts +2 -2
  630. package/types/router/router.d.ts.map +1 -1
  631. package/types/router/sortRoutes.d.ts.map +1 -0
  632. package/types/router/useNavigation.d.ts.map +1 -0
  633. package/types/router/useScreens.d.ts.map +1 -0
  634. package/types/{useViteRoutes.d.ts → router/useViteRoutes.d.ts} +2 -2
  635. package/types/router/useViteRoutes.d.ts.map +1 -0
  636. package/types/server/createRoutesManifest.d.ts +3 -3
  637. package/types/server/createRoutesManifest.d.ts.map +1 -1
  638. package/types/server/getServerManifest.d.ts +1 -1
  639. package/types/server/getServerManifest.d.ts.map +1 -1
  640. package/types/utils/cleanUrl.d.ts.map +1 -0
  641. package/types/utils/platform.d.ts.map +1 -0
  642. package/types/utils/serverContext.d.ts +14 -0
  643. package/types/utils/serverContext.d.ts.map +1 -0
  644. package/types/utils/useConstant.d.ts +2 -0
  645. package/types/utils/useConstant.d.ts.map +1 -0
  646. package/types/vite/DevHead.d.ts +2 -0
  647. package/types/vite/DevHead.d.ts.map +1 -0
  648. package/types/vite/plugins/SSRCSSPlugin.d.ts +0 -1
  649. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  650. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  651. package/types/zero/useQuery.d.ts.map +1 -1
  652. package/dist/cjs/getLinkingConfig.js.map +0 -6
  653. package/dist/cjs/getLinkingConfig.native.js.map +0 -6
  654. package/dist/cjs/useScreens.js.map +0 -6
  655. package/dist/cjs/useScreens.native.js.map +0 -6
  656. package/dist/esm/Route.mjs.map +0 -1
  657. package/dist/esm/cleanUrl.mjs.map +0 -1
  658. package/dist/esm/createRoute.mjs.map +0 -1
  659. package/dist/esm/getLinkingConfig.js.map +0 -6
  660. package/dist/esm/getLinkingConfig.mjs.map +0 -1
  661. package/dist/esm/getLinkingConfig.native.js.map +0 -6
  662. package/dist/esm/getRoutes.mjs.map +0 -1
  663. package/dist/esm/imperative-api.mjs.map +0 -1
  664. package/dist/esm/matchers.mjs.map +0 -1
  665. package/dist/esm/platform.mjs.map +0 -1
  666. package/dist/esm/sortRoutes.mjs.map +0 -1
  667. package/dist/esm/useNavigation.mjs.map +0 -1
  668. package/dist/esm/useScreens.js.map +0 -6
  669. package/dist/esm/useScreens.mjs.map +0 -1
  670. package/dist/esm/useScreens.native.js.map +0 -6
  671. package/dist/esm/useViteRoutes.mjs.map +0 -1
  672. package/types/Route.d.ts.map +0 -1
  673. package/types/cleanUrl.d.ts.map +0 -1
  674. package/types/createRoute.d.ts.map +0 -1
  675. package/types/getLinkingConfig.d.ts.map +0 -1
  676. package/types/getRoutes.d.ts.map +0 -1
  677. package/types/imperative-api.d.ts +0 -3
  678. package/types/imperative-api.d.ts.map +0 -1
  679. package/types/matchers.d.ts.map +0 -1
  680. package/types/platform.d.ts.map +0 -1
  681. package/types/sortRoutes.d.ts.map +0 -1
  682. package/types/useNavigation.d.ts.map +0 -1
  683. package/types/useScreens.d.ts.map +0 -1
  684. package/types/useViteRoutes.d.ts.map +0 -1
  685. /package/dist/cjs/{Route.cjs → router/Route.cjs} +0 -0
  686. /package/dist/cjs/{Route.js → router/Route.js} +0 -0
  687. /package/dist/cjs/{Route.native.js → router/Route.native.js} +0 -0
  688. /package/dist/cjs/{matchers.cjs → router/matchers.cjs} +0 -0
  689. /package/dist/cjs/{matchers.js → router/matchers.js} +0 -0
  690. /package/dist/cjs/{matchers.native.js → router/matchers.native.js} +0 -0
  691. /package/dist/cjs/{sortRoutes.cjs → router/sortRoutes.cjs} +0 -0
  692. /package/dist/cjs/{sortRoutes.js → router/sortRoutes.js} +0 -0
  693. /package/dist/cjs/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  694. /package/dist/cjs/{useNavigation.cjs → router/useNavigation.cjs} +0 -0
  695. /package/dist/cjs/{useNavigation.js → router/useNavigation.js} +0 -0
  696. /package/dist/cjs/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  697. /package/dist/cjs/{useViteRoutes.cjs → router/useViteRoutes.cjs} +0 -0
  698. /package/dist/cjs/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  699. /package/dist/cjs/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  700. /package/dist/cjs/{platform.cjs → utils/platform.cjs} +0 -0
  701. /package/dist/cjs/{platform.js → utils/platform.js} +0 -0
  702. /package/dist/cjs/{platform.native.js → utils/platform.native.js} +0 -0
  703. /package/dist/esm/{Route.js → router/Route.js} +0 -0
  704. /package/dist/esm/{Route.mjs → router/Route.mjs} +0 -0
  705. /package/dist/esm/{Route.native.js → router/Route.native.js} +0 -0
  706. /package/dist/esm/{matchers.js → router/matchers.js} +0 -0
  707. /package/dist/esm/{matchers.mjs → router/matchers.mjs} +0 -0
  708. /package/dist/esm/{matchers.native.js → router/matchers.native.js} +0 -0
  709. /package/dist/esm/{sortRoutes.js → router/sortRoutes.js} +0 -0
  710. /package/dist/esm/{sortRoutes.mjs → router/sortRoutes.mjs} +0 -0
  711. /package/dist/esm/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  712. /package/dist/esm/{useNavigation.js → router/useNavigation.js} +0 -0
  713. /package/dist/esm/{useNavigation.mjs → router/useNavigation.mjs} +0 -0
  714. /package/dist/esm/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  715. /package/dist/esm/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  716. /package/dist/esm/{useViteRoutes.mjs → router/useViteRoutes.mjs} +0 -0
  717. /package/dist/esm/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  718. /package/dist/esm/{platform.js → utils/platform.js} +0 -0
  719. /package/dist/esm/{platform.mjs → utils/platform.mjs} +0 -0
  720. /package/dist/esm/{platform.native.js → utils/platform.native.js} +0 -0
  721. /package/src/{matchers.ts → router/matchers.ts} +0 -0
  722. /package/src/{sortRoutes.ts → router/sortRoutes.ts} +0 -0
  723. /package/src/{useNavigation.ts → router/useNavigation.ts} +0 -0
  724. /package/src/{platform.ts → utils/platform.ts} +0 -0
  725. /package/types/{matchers.d.ts → router/matchers.d.ts} +0 -0
  726. /package/types/{sortRoutes.d.ts → router/sortRoutes.d.ts} +0 -0
  727. /package/types/{useNavigation.d.ts → router/useNavigation.d.ts} +0 -0
  728. /package/types/{useScreens.d.ts → router/useScreens.d.ts} +0 -0
  729. /package/types/{cleanUrl.d.ts → utils/cleanUrl.d.ts} +0 -0
  730. /package/types/{platform.d.ts → utils/platform.d.ts} +0 -0
@@ -31,246 +31,182 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  }), mod);
32
32
  var getStateFromPath_exports = {};
33
33
  __export(getStateFromPath_exports, {
34
- default: () => getStateFromPath,
35
- getMatchableRouteConfigs: () => getMatchableRouteConfigs,
36
- getUrlWithReactNavigationConcessions: () => getUrlWithReactNavigationConcessions,
37
- stripBaseUrl: () => stripBaseUrl
34
+ getStateFromPath: () => getStateFromPath
38
35
  });
39
36
  module.exports = __toCommonJS(getStateFromPath_exports);
40
37
  var import_escape_string_regexp = __toESM(require("escape-string-regexp"), 1),
41
- import_matchers = require("../matchers.cjs"),
42
38
  import_findFocusedRoute = require("./findFocusedRoute.cjs"),
43
- import_validatePathConfig = __toESM(require("./validatePathConfig.cjs"), 1);
44
- function getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {
45
- let parsed;
46
- try {
47
- parsed = new URL(path, baseUrl || "http://phony.example");
48
- } catch (err) {
49
- return console.warn(`Error parsing url ${path}: ${err?.message}`), {
50
- nonstandardPathname: path,
51
- inputPathnameWithoutHash: path.replace(/#.*$/g, ""),
52
- url: null
53
- };
54
- }
55
- const pathname = parsed.pathname;
56
- return {
57
- // The slashes are at the end, not the beginning
58
- nonstandardPathname: stripBaseUrl(pathname, baseUrl).replace(/^\/+/g, "").replace(/\/+$/g, "") + "/",
59
- url: parsed
60
- };
61
- }
39
+ import_validatePathConfig = require("./validatePathConfig.cjs"),
40
+ import_getStateFromPath_mods = require("./getStateFromPath-mods.cjs");
62
41
  function getStateFromPath(path, options) {
63
42
  const {
43
+ initialRoutes,
44
+ configs,
45
+ configWithRegexes
46
+ } = getConfigResources(options),
47
+ screens = options?.screens,
48
+ pathData = (0, import_getStateFromPath_mods.getUrlWithReactNavigationConcessions)(path);
49
+ let remaining = pathData.nonstandardPathname.replace(/\/+/g, "/").replace(/^\//, "").replace(/\?.*$/, "");
50
+ remaining = remaining.endsWith("/") ? remaining : `${remaining}/`;
51
+ const prefix = options?.path?.replace(/^\//, "");
52
+ if (prefix) {
53
+ const normalizedPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
54
+ if (!remaining.startsWith(normalizedPrefix)) return;
55
+ remaining = remaining.replace(normalizedPrefix, "");
56
+ }
57
+ if (screens === void 0) {
58
+ const routes2 = remaining.split("/").filter(Boolean).map(segment => ({
59
+ name: decodeURIComponent(segment)
60
+ }));
61
+ return routes2.length ? createNestedStateObject(pathData, routes2, initialRoutes, [], pathData.url.hash) : void 0;
62
+ }
63
+ if (remaining === "/") {
64
+ const match = (0, import_getStateFromPath_mods.matchForEmptyPath)(configWithRegexes);
65
+ return match ? createNestedStateObject(pathData,
66
+ // @modified: pass pathData instead of path
67
+ match.routeNames.map(name => ({
68
+ name
69
+ })), initialRoutes, configs) : void 0;
70
+ }
71
+ let result, current;
72
+ const {
73
+ routes,
74
+ remainingPath
75
+ } = matchAgainstConfigs(remaining, configWithRegexes);
76
+ if (routes !== void 0 && (current = createNestedStateObject(pathData, routes, initialRoutes, configs), remaining = remainingPath, result = current), !(current == null || result == null)) return result;
77
+ }
78
+ const cachedConfigResources = /* @__PURE__ */new WeakMap();
79
+ function getConfigResources(options) {
80
+ if (!options) return prepareConfigResources();
81
+ const cached = cachedConfigResources.get(options);
82
+ if (cached) return cached;
83
+ const resources = prepareConfigResources(options);
84
+ return cachedConfigResources.set(options, resources), resources;
85
+ }
86
+ function prepareConfigResources(options, previousSegments) {
87
+ options && (0, import_validatePathConfig.validatePathConfig)(options);
88
+ const initialRoutes = getInitialRoutes(options),
89
+ configs = getNormalizedConfigs(initialRoutes, options?.screens, previousSegments);
90
+ checkForDuplicatedConfigs(configs);
91
+ const configWithRegexes = getConfigsWithRegexes(configs);
92
+ return {
64
93
  initialRoutes,
65
- configs
66
- } = getMatchableRouteConfigs(options);
67
- return getStateFromPathWithConfigs(path, configs, initialRoutes);
94
+ configs,
95
+ configWithRegexes
96
+ };
68
97
  }
69
- function getMatchableRouteConfigs(options) {
70
- options && (0, import_validatePathConfig.default)(options);
71
- const screens = options?.screens;
72
- if (!screens) throw Error("You must pass a 'screens' object to 'getStateFromPath' to generate a path.");
98
+ function getInitialRoutes(options) {
73
99
  const initialRoutes = [];
74
- options?.initialRouteName && initialRoutes.push({
100
+ return options?.initialRouteName && initialRoutes.push({
75
101
  initialRouteName: options.initialRouteName,
76
102
  parentScreens: []
77
- });
78
- const converted = Object.keys(screens).flatMap(key => createNormalizedConfigs(key, screens, [], initialRoutes)).flat(),
79
- resolvedInitialPatterns = initialRoutes.map(route => joinPaths(...route.parentScreens, route.initialRouteName)),
80
- configs = converted.map(config => ({
81
- ...config,
82
- // TODO: Probably a safer way to do this
83
- // Mark initial routes to give them potential priority over other routes that match.
84
- isInitial: resolvedInitialPatterns.includes(config.routeNames.join("/"))
85
- })).sort(sortConfigs);
86
- return assertConfigDuplicates(configs), {
87
- configs,
88
- initialRoutes
89
- };
103
+ }), initialRoutes;
104
+ }
105
+ function getNormalizedConfigs(initialRoutes, screens = {}, previousSegments) {
106
+ return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, [], initialRoutes, []))).map((0, import_getStateFromPath_mods.appendIsInitial)(initialRoutes)).sort((0, import_getStateFromPath_mods.getRouteConfigSorter)(previousSegments));
90
107
  }
91
- function assertConfigDuplicates(configs) {
108
+ function checkForDuplicatedConfigs(configs) {
92
109
  configs.reduce((acc, config) => {
93
- const indexedKey = config.regex?.toString() ?? config.pattern,
94
- alpha = acc[indexedKey];
95
- if (alpha && !alpha.hasChildren && !config.hasChildren) {
96
- const a = alpha.routeNames,
110
+ if (acc[config.pattern]) {
111
+ const a = acc[config.pattern].routeNames,
97
112
  b = config.routeNames;
98
- if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it))) {
99
- const last = config.pattern.split("/").pop();
100
- if (!last?.match(/^\*not-found$/)) {
101
- const routeType = last?.startsWith(":") ? "dynamic route" : last?.startsWith("*") ? "dynamic-rest route" : "route";
102
- throw new Error(`The ${routeType} pattern '${config.pattern || "/"}' resolves to both '${alpha.userReadableName}' and '${config.userReadableName}'. Patterns must be unique and cannot resolve to more than one route.`);
103
- }
104
- }
113
+ if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it))) throw new Error(`Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(" > ")}' and '${b.join(" > ")}'. Patterns must be unique and cannot resolve to more than one screen.`);
105
114
  }
106
115
  return Object.assign(acc, {
107
- [indexedKey]: config
116
+ [config.pattern]: config
108
117
  });
109
118
  }, {});
110
119
  }
111
- function sortConfigs(a, b) {
112
- if (a.pattern === b.pattern) return b.routeNames.join(">").localeCompare(a.routeNames.join(">"));
113
- if (a.pattern.startsWith(b.pattern) &&
114
- // NOTE: This is a hack to make sure that `*` is always at the end
115
- b.screen !== "index") return -1;
116
- if (b.pattern.startsWith(a.pattern) && a.screen !== "index") return 1;
117
- const aParts = a.pattern.split("/").filter(part => (0, import_matchers.matchGroupName)(part) == null);
118
- (a.screen === "index" || a.screen.match(/\/index$/)) && aParts.push("index");
119
- const bParts = b.pattern.split("/").filter(part => (0, import_matchers.matchGroupName)(part) == null);
120
- (b.screen === "index" || b.screen.match(/\/index$/)) && bParts.push("index");
121
- for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
122
- if (aParts[i] == null) return 1;
123
- if (bParts[i] == null) return -1;
124
- const aWildCard = aParts[i].startsWith("*"),
125
- bWildCard = bParts[i].startsWith("*");
126
- if (aWildCard && bWildCard) {
127
- const aNotFound = aParts[i].match(/^[*]not-found$/),
128
- bNotFound = bParts[i].match(/^[*]not-found$/);
129
- if (aNotFound && bNotFound) continue;
130
- if (aNotFound) return 1;
131
- if (bNotFound) return -1;
132
- continue;
133
- }
134
- if (aWildCard) return 1;
135
- if (bWildCard) return -1;
136
- const aSlug = aParts[i].startsWith(":"),
137
- bSlug = bParts[i].startsWith(":");
138
- if (aSlug && bSlug) {
139
- const aNotFound = aParts[i].match(/^[*]not-found$/),
140
- bNotFound = bParts[i].match(/^[*]not-found$/);
141
- if (aNotFound && bNotFound) continue;
142
- if (aNotFound) return 1;
143
- if (bNotFound) return -1;
144
- continue;
145
- }
146
- if (aSlug) return 1;
147
- if (bSlug) return -1;
148
- }
149
- return a.isInitial && !b.isInitial ? -1 : !a.isInitial && b.isInitial ? 1 : bParts.length - aParts.length;
150
- }
151
- function getStateFromEmptyPathWithConfigs(path, hash, configs, initialRoutes) {
152
- const leafNodes = configs.filter(config => !config.hasChildren).map(value => ({
153
- ...value,
154
- // Collapse all levels of group segments before testing.
155
- // This enables `app/(one)/(two)/index.js` to be matched.
156
- path: (0, import_matchers.stripGroupSegmentsFromPath)(value.path)
157
- })),
158
- match = leafNodes.find(config =>
159
- // NOTE: Test leaf node index routes that either don't have a regex or match an empty string.
160
- config.path === "" && (!config.regex || config.regex.test(""))) ?? leafNodes.find(config =>
161
- // NOTE: Test leaf node dynamic routes that match an empty string.
162
- config.path.startsWith(":") && config.regex.test("")) ??
163
- // NOTE: Test leaf node deep dynamic routes that match a slash.
164
- // This should be done last to enable dynamic routes having a higher priority.
165
- leafNodes.find(config => config.path.startsWith("*") && config.regex.test("/"));
166
- if (!match) return;
167
- const routes = match.routeNames.map(name => match._route ? {
168
- name,
169
- _route: match._route
170
- } : {
171
- name
172
- });
173
- return createNestedStateObject(path, hash, routes, configs, initialRoutes);
120
+ function getConfigsWithRegexes(configs) {
121
+ return configs.map(c => ({
122
+ ...c,
123
+ // Add `$` to the regex to make sure it matches till end of the path and not just beginning
124
+ // @modified - start
125
+ // regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,
126
+ regex: c.pattern ? new RegExp(`^(${c.pattern.split("/").map(import_getStateFromPath_mods.formatRegexPattern).join("")})$`) : void 0
127
+ // @modified - end
128
+ }));
174
129
  }
175
- function getStateFromPathWithConfigs(path, configs, initialRoutes, baseUrl = process.env.EXPO_BASE_URL) {
176
- const formattedPaths = getUrlWithReactNavigationConcessions(path);
177
- if (!formattedPaths.url) {
178
- console.warn(`No url found for ${path}`);
179
- return;
180
- }
181
- let cleanPath = stripBaseUrl((0, import_matchers.stripGroupSegmentsFromPath)(formattedPaths.url.pathname), baseUrl) + formattedPaths.url.search;
182
- if (path.startsWith("/") || (cleanPath = cleanPath.slice(1)), formattedPaths.nonstandardPathname === "/") return getStateFromEmptyPathWithConfigs(cleanPath, formattedPaths.url.hash.slice(1), configs, initialRoutes);
183
- const routes = matchAgainstConfigs(formattedPaths.nonstandardPathname, configs);
184
- if (routes != null) return createNestedStateObject(cleanPath, formattedPaths.url.hash.slice(1), routes, configs, initialRoutes);
185
- }
186
- const joinPaths = (...paths) => [].concat(...paths.map(p => p.split("/"))).filter(Boolean).join("/");
187
- function matchAgainstConfigs(remaining, configs) {
188
- let routes,
189
- remainingPath = remaining;
190
- for (const config of configs) {
191
- if (!config.regex) continue;
192
- const match = remainingPath.match(config.regex);
193
- if (!match) continue;
194
- const matchedParams = config.pattern?.split("/").filter(p => p.match(/^[:*]/)).reduce((acc, p, i) => p.match(/^\*/) ? {
195
- ...acc,
196
- [p]: match[(i + 1) * 2]
197
- //?.replace(/\//, ""),
198
- } : Object.assign(acc, {
199
- // The param segments appear every second item starting from 2 in the regex match result.
200
- // This will only work if we ensure groups aren't included in the match.
201
- [p]: match[(i + 1) * 2]?.replace(/\//, "")
202
- }), {}),
203
- routeFromName = name => {
204
- const config2 = configs.find(c => c.screen === name);
205
- if (!config2?.path) return {
206
- name
207
- };
208
- const segments = config2.path.split("/"),
209
- params = {};
210
- return segments.filter(p => p.match(/^[:*]/)).forEach(p => {
211
- let value = matchedParams[p];
212
- if (value) {
213
- p.match(/^\*/) && (value = value?.split("/").filter(Boolean));
214
- const key = p.replace(/^[:*]/, "").replace(/\?$/, "");
215
- params[key] = config2.parse?.[key] ? config2.parse[key](value) : value;
216
- }
217
- }), params && Object.keys(params).length ? {
218
- name,
219
- params
220
- } : {
221
- name
222
- };
223
- };
224
- routes = config.routeNames.map(name => config._route ? {
225
- ...routeFromName(name),
226
- _route: config._route
227
- } : {
228
- ...routeFromName(name)
229
- });
230
- const combinedParams = routes.reduce((acc, r) => Object.assign(acc, r.params), {}),
231
- hasCombinedParams = Object.keys(combinedParams).length > 0;
232
- routes = routes.map(r => (hasCombinedParams && (r.params = combinedParams), r)), remainingPath = remainingPath.replace(match[1], "");
233
- break;
234
- }
235
- return routes;
236
- }
237
- function equalHeritage(a, b) {
238
- if (a.length !== b.length) return !1;
239
- for (let i = 0; i < a.length; i++) if (a[i].localeCompare(b[i]) !== 0) return !1;
240
- return !0;
241
- }
242
- const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials = [], parentScreens = [], parentPattern) => {
243
- const configs = [];
244
- routeNames.push(screen), parentScreens.push(screen);
245
- const config = routeConfig[screen];
246
- if (typeof config == "string") {
247
- const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
248
- configs.push(createConfigItem(screen, routeNames, pattern, config, !1));
249
- } else if (typeof config == "object") {
250
- let pattern;
251
- const {
252
- _route
253
- } = config;
254
- if (typeof config.path == "string") {
255
- if (config.exact && config.path === void 0) throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
256
- pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", configs.push(createConfigItem(screen, routeNames, pattern, config.path, config.screens ? !!Object.keys(config.screens)?.length : !1, config.parse, _route));
130
+ const joinPaths = (...paths) => [].concat(...paths.map(p => p.split("/"))).filter(Boolean).join("/"),
131
+ matchAgainstConfigs = (remaining, configs) => {
132
+ let routes,
133
+ remainingPath = remaining;
134
+ const allParams = /* @__PURE__ */Object.create(null);
135
+ for (const config of configs) {
136
+ if (!config.regex) continue;
137
+ const match = remainingPath.match(config.regex);
138
+ if (match) {
139
+ const matchedParams = (config.pattern?.split("/").reduce((acc, p, index) => {
140
+ if (!p.startsWith(":")) return acc;
141
+ acc.pos += 1;
142
+ const decodedParamSegment = (0, import_getStateFromPath_mods.decodeURIComponentSafe)(
143
+ // @modified: use decodeURIComponent**Safe**
144
+ // The param segments appear every second item starting from 2 in the regex match result
145
+ match[(acc.pos + 1) * 2].replace(/\/$/, ""));
146
+ return Object.assign(acc.matchedParams, {
147
+ [p]: Object.assign(acc.matchedParams[p] || {}, {
148
+ [index]: decodedParamSegment
149
+ })
150
+ }), acc;
151
+ }, {
152
+ pos: -1,
153
+ matchedParams: {}
154
+ })).matchedParams || {};
155
+ routes = config.routeNames.map(name => {
156
+ const routeConfig = configs.find(c => c.screen === name && config.pattern.startsWith(c.pattern)),
157
+ normalizedPath = routeConfig?.path.split("/").filter(Boolean).join("/"),
158
+ numInitialSegments = routeConfig?.pattern.replace(new RegExp(`${(0, import_escape_string_regexp.default)(normalizedPath)}$`), "")?.split("/").length,
159
+ params = normalizedPath?.split("/").reduce((acc, p, index) => {
160
+ if (!p.startsWith(":")) return acc;
161
+ const offset = numInitialSegments ? numInitialSegments - 1 : 0,
162
+ value = (0, import_getStateFromPath_mods.getParamValue)(p, matchedParams[p]?.[index + offset]);
163
+ if (value) {
164
+ const key = p.replace(/^:/, "").replace(/\?$/, "");
165
+ acc[key] = routeConfig?.parse?.[key] ? routeConfig.parse[key](value) : value;
166
+ }
167
+ return acc;
168
+ }, {});
169
+ return params && Object.keys(params).length ? {
170
+ name,
171
+ params
172
+ } : {
173
+ name
174
+ };
175
+ }), remainingPath = remainingPath.replace(match[1], "");
176
+ break;
177
+ }
257
178
  }
258
- config.screens && (config.initialRouteName && initials.push({
259
- initialRouteName: config.initialRouteName,
260
- parentScreens
261
- }), Object.keys(config.screens).forEach(nestedConfig => {
262
- const result = createNormalizedConfigs(nestedConfig, config.screens, routeNames, initials, [...parentScreens], pattern ?? parentPattern);
263
- configs.push(...result);
264
- }));
265
- }
266
- return routeNames.pop(), configs;
267
- };
268
- function formatRegexPattern(it) {
269
- return it = it.replace(" ", "%20"), it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : it.startsWith("*") ? `((.*\\/)${it.endsWith("?") ? "?" : ""})` : (0, import_matchers.matchGroupName)(it) != null ? `(?:${(0, import_escape_string_regexp.default)(it)}\\/)?` : (0, import_escape_string_regexp.default)(it) + "\\/";
270
- }
271
- const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse, _route) => {
179
+ return (0, import_getStateFromPath_mods.populateParams)(routes, allParams), {
180
+ routes,
181
+ remainingPath
182
+ };
183
+ },
184
+ createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials, parentScreens, parentPattern) => {
185
+ const configs = [];
186
+ routeNames.push(screen), parentScreens.push(screen);
187
+ const config = routeConfig[screen];
188
+ if (typeof config == "string") {
189
+ const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
190
+ configs.push(createConfigItem(screen, routeNames, pattern, config));
191
+ } else if (typeof config == "object") {
192
+ let pattern;
193
+ if (typeof config.path == "string") {
194
+ if (config.exact && config.path === void 0) throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
195
+ pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", configs.push(createConfigItem(screen, routeNames, pattern, config.path, config.parse, config));
196
+ }
197
+ config.screens && (config.initialRouteName && initials.push({
198
+ initialRouteName: config.initialRouteName,
199
+ parentScreens
200
+ }), Object.keys(config.screens).forEach(nestedConfig => {
201
+ const result = createNormalizedConfigs(nestedConfig, config.screens, routeNames, initials, [...parentScreens], pattern ?? parentPattern);
202
+ configs.push(...result);
203
+ }));
204
+ }
205
+ return routeNames.pop(), configs;
206
+ },
207
+ createConfigItem = (screen, routeNames, pattern, path, parse = void 0, config = {}) => {
272
208
  pattern = pattern.split("/").filter(Boolean).join("/");
273
- const regex = pattern ? new RegExp(`^(${pattern.split("/").map(formatRegexPattern).join("")})$`) : void 0;
209
+ const regex = pattern ? new RegExp(`^(${pattern.split("/").map(it => it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : `${it === "*" ? ".*" : (0, import_escape_string_regexp.default)(it)}\\/`).join("")})`) : void 0;
274
210
  return {
275
211
  screen,
276
212
  regex,
@@ -279,18 +215,25 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
279
215
  // The routeNames array is mutated, so copy it to keep the current state
280
216
  routeNames: [...routeNames],
281
217
  parse,
282
- userReadableName: [...routeNames.slice(0, -1), path || screen].join("/"),
283
- hasChildren: !!hasChildren,
284
- _route
218
+ // @modified - start
219
+ ...(0, import_getStateFromPath_mods.createConfigItemAdditionalProperties)(screen, pattern, routeNames, config)
220
+ // @modified - end
285
221
  };
286
222
  },
287
- findParseConfigForRoute = (routeName, routeConfigs) => {
288
- for (const config of routeConfigs) if (routeName === config.routeNames[config.routeNames.length - 1]) return config.parse;
223
+ findParseConfigForRoute = (routeName, flatConfig) => {
224
+ for (const config of flatConfig) if (routeName === config.routeNames[config.routeNames.length - 1]) return config.parse;
289
225
  },
290
226
  findInitialRoute = (routeName, parentScreens, initialRoutes) => {
291
- for (const config of initialRoutes) if (equalHeritage(parentScreens, config.parentScreens)) return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
227
+ for (const config of initialRoutes) if (parentScreens.length === config.parentScreens.length) {
228
+ let sameParents = !0;
229
+ for (let i = 0; i < parentScreens.length; i++) if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {
230
+ sameParents = !1;
231
+ break;
232
+ }
233
+ if (sameParents) return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
234
+ }
292
235
  },
293
- createStateObject = (route, isEmpty, initialRoute) => isEmpty ? initialRoute ? {
236
+ createStateObject = (initialRoute, route, isEmpty) => isEmpty ? initialRoute ? {
294
237
  index: 1,
295
238
  routes: [{
296
239
  name: initialRoute
@@ -315,52 +258,27 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
315
258
  }
316
259
  }]
317
260
  },
318
- createNestedStateObject = (path, hash, routes, routeConfigs, initialRoutes) => {
261
+ createNestedStateObject = ({
262
+ path,
263
+ ...restPathData
264
+ }, routes, initialRoutes, flatConfig, hash) => {
319
265
  let route = routes.shift();
320
266
  const parentScreens = [];
321
267
  let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
322
268
  parentScreens.push(route.name);
323
- const state = createStateObject(route, routes.length === 0, initialRoute);
269
+ const state = createStateObject(initialRoute, route, routes.length === 0);
324
270
  if (routes.length > 0) {
325
271
  let nestedState = state;
326
272
  for (; route = routes.shift();) {
327
273
  initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
328
274
  const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;
329
- nestedState.routes[nestedStateIndex].state = createStateObject(route, routes.length === 0, initialRoute), routes.length > 0 && (nestedState = nestedState.routes[nestedStateIndex].state), parentScreens.push(route.name);
275
+ nestedState.routes[nestedStateIndex].state = createStateObject(initialRoute, route, routes.length === 0), routes.length > 0 && (nestedState = nestedState.routes[nestedStateIndex].state), parentScreens.push(route.name);
330
276
  }
331
277
  }
332
- route = (0, import_findFocusedRoute.findFocusedRoute)(state), route.path = path;
333
- const params = parseQueryParams(route.path, findParseConfigForRoute(route.name, routeConfigs));
334
- if (params) {
335
- route.params = Object.assign(/* @__PURE__ */Object.create(null), route.params);
336
- for (const [name, value] of Object.entries(params)) if (route.params?.[name] && process.env.NODE_ENV !== "production" && console.warn(`Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`), !route.params?.[name]) {
337
- route.params[name] = value;
338
- continue;
339
- }
340
- Object.keys(route.params).length === 0 && delete route.params;
341
- }
342
- return hash && (route.params = Object.assign(/* @__PURE__ */Object.create(null), route.params), route.params["#"] = hash), state;
343
- },
344
- parseQueryParams = (path, parseConfig) => {
345
- const query = path.split("?")[1],
346
- searchParams = new URLSearchParams(query),
347
- params = Object.fromEntries(
348
- // @ts-ignore: [Symbol.iterator] is indeed, available on every platform.
349
- searchParams);
350
- return parseConfig && Object.keys(params).forEach(name => {
351
- Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] == "string" && (params[name] = parseConfig[name](params[name]));
352
- }), Object.keys(params).length ? params : void 0;
353
- },
354
- baseUrlCache = /* @__PURE__ */new Map();
355
- function getBaseUrlRegex(baseUrl) {
356
- if (baseUrlCache.has(baseUrl)) return baseUrlCache.get(baseUrl);
357
- const regex = new RegExp(`^\\/?${(0, import_escape_string_regexp.default)(baseUrl)}`, "g");
358
- return baseUrlCache.set(baseUrl, regex), regex;
359
- }
360
- function stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
361
- if (process.env.NODE_ENV !== "development" && baseUrl) {
362
- const reg = getBaseUrlRegex(baseUrl);
363
- return path.replace(/^\/+/g, "/").replace(reg, "");
364
- }
365
- return path;
366
- }
278
+ route = (0, import_findFocusedRoute.findFocusedRoute)(state), route.path = restPathData.pathWithoutGroups;
279
+ const params = (0, import_getStateFromPath_mods.parseQueryParamsExtended)(path, route, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : void 0, hash);
280
+ return params && (route.params = {
281
+ ...route.params,
282
+ ...params
283
+ }), state;
284
+ };