one 1.1.319 → 1.1.321

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. package/dist/cjs/Root.js +182 -0
  2. package/dist/cjs/Route.js +45 -0
  3. package/dist/cjs/cleanUrl.js +41 -0
  4. package/dist/cjs/cli/label-process.js +25 -0
  5. package/dist/cjs/cli/main.js +46 -0
  6. package/dist/cjs/{getURL.native.cjs → cli/patch.cjs} +11 -15
  7. package/dist/cjs/cli/patch.js +34 -0
  8. package/dist/cjs/cli/patch.js.map +6 -0
  9. package/dist/cjs/cli/patch.native.js +39 -0
  10. package/dist/cjs/cli/patch.native.js.map +6 -0
  11. package/dist/cjs/cli/prebuild.js +34 -0
  12. package/dist/cjs/cli/run.js +52 -0
  13. package/dist/cjs/cli/runAndroid.js +34 -0
  14. package/dist/cjs/cli/runIos.js +34 -0
  15. package/dist/cjs/cli.cjs +17 -0
  16. package/dist/cjs/cli.js +220 -0
  17. package/dist/cjs/{cli.cjs.map → cli.js.map} +1 -1
  18. package/dist/cjs/cli.native.js +12 -0
  19. package/dist/cjs/cli.native.js.map +2 -2
  20. package/dist/cjs/clientLoaderResolver.js +32 -0
  21. package/dist/cjs/config.js +27 -0
  22. package/dist/cjs/constants.js +28 -0
  23. package/dist/cjs/createApp.js +46 -0
  24. package/dist/cjs/createHandleRequest.js +138 -0
  25. package/dist/cjs/createRoute.js +37 -0
  26. package/dist/cjs/fallbackViews/Sitemap.js +82 -0
  27. package/dist/cjs/fallbackViews/Unmatched.js +58 -0
  28. package/dist/cjs/fork/NavigationContainer.js +85 -0
  29. package/dist/cjs/fork/createMemoryHistory.js +100 -0
  30. package/dist/cjs/fork/extractPathFromURL.js +62 -0
  31. package/dist/cjs/fork/findFocusedRoute.js +26 -0
  32. package/dist/cjs/fork/getPathFromState.js +265 -0
  33. package/dist/cjs/fork/getStateFromPath.js +381 -0
  34. package/dist/cjs/fork/useLinking.js +182 -0
  35. package/dist/cjs/fork/validatePathConfig.js +46 -0
  36. package/dist/cjs/getLinkingConfig.js +59 -0
  37. package/dist/cjs/getReactNavigationConfig.js +69 -0
  38. package/dist/cjs/getRoutes.js +294 -0
  39. package/dist/cjs/getURL.js +24 -0
  40. package/dist/cjs/head/Head.js +23 -0
  41. package/dist/cjs/head/HeadModule.js +22 -0
  42. package/dist/cjs/head/index.js +15 -0
  43. package/dist/cjs/head/types.js +14 -0
  44. package/dist/cjs/head/url.js +52 -0
  45. package/dist/cjs/hooks.js +99 -0
  46. package/dist/cjs/imperative-api.js +45 -0
  47. package/dist/cjs/import-mode/index.js +21 -0
  48. package/dist/cjs/import-mode/index.web.js +21 -0
  49. package/dist/cjs/index.js +65 -0
  50. package/dist/cjs/interfaces/router.js +23 -0
  51. package/dist/cjs/layouts/Drawer.js +24 -0
  52. package/dist/cjs/layouts/Stack.js +24 -0
  53. package/dist/cjs/layouts/Tabs.js +52 -0
  54. package/dist/cjs/layouts/withLayoutContext.js +77 -0
  55. package/dist/cjs/link/Link.js +98 -0
  56. package/dist/cjs/link/Redirect.js +31 -0
  57. package/dist/cjs/link/href.js +50 -0
  58. package/dist/cjs/link/linking.js +82 -0
  59. package/dist/cjs/link/path.js +65 -0
  60. package/dist/cjs/link/useLinkTo.js +42 -0
  61. package/dist/cjs/link/useLoadedNavigation.js +50 -0
  62. package/dist/cjs/matchers.js +68 -0
  63. package/dist/cjs/platform.js +21 -0
  64. package/dist/cjs/polyfills-mobile.js +26 -0
  65. package/dist/cjs/polyfills-server.js +23 -0
  66. package/dist/cjs/render.js +44 -0
  67. package/dist/cjs/router/RouterStore.js +14 -0
  68. package/dist/cjs/router/getNormalizedStatePath.js +50 -0
  69. package/dist/cjs/router/lastAction.js +25 -0
  70. package/dist/cjs/router/router.js +345 -0
  71. package/dist/cjs/router/serverLocationContext.js +22 -0
  72. package/dist/cjs/router/useInitializeOneRouter.js +43 -0
  73. package/dist/cjs/serve.js +184 -0
  74. package/dist/cjs/server/createRoutesManifest.js +40 -0
  75. package/dist/cjs/server/getServerManifest.js +109 -0
  76. package/dist/cjs/server-render.js +42 -0
  77. package/dist/cjs/sortRoutes.js +64 -0
  78. package/dist/cjs/typed-routes/generateRouteTypes.js +33 -0
  79. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +83 -0
  80. package/dist/cjs/types.js +14 -0
  81. package/dist/cjs/useFocusEffect.js +79 -0
  82. package/dist/cjs/useLoader.js +97 -0
  83. package/dist/cjs/useNavigation.js +60 -0
  84. package/dist/cjs/useScreens.js +176 -0
  85. package/dist/cjs/useViteRoutes.js +77 -0
  86. package/dist/cjs/utils/assertIsReady.js +26 -0
  87. package/dist/cjs/utils/dynamicImport.js +24 -0
  88. package/dist/cjs/utils/existsAsync.js +28 -0
  89. package/dist/cjs/utils/getPageExport.js +38 -0
  90. package/dist/cjs/utils/globDir.js +37 -0
  91. package/dist/cjs/utils/hashString.js +32 -0
  92. package/dist/cjs/utils/isResponse.js +23 -0
  93. package/dist/cjs/utils/isStatus.js +23 -0
  94. package/dist/cjs/utils/promiseWithResolvers.js +26 -0
  95. package/dist/cjs/utils/rand.js +21 -0
  96. package/dist/cjs/utils/redirect.js +28 -0
  97. package/dist/cjs/utils/removeSearch.js +23 -0
  98. package/dist/cjs/utils/removeUndefined.js +26 -0
  99. package/dist/cjs/utils/url.js +31 -0
  100. package/dist/cjs/utils/weakKey.js +24 -0
  101. package/dist/cjs/utils/weakMemo.js +30 -0
  102. package/dist/cjs/views/EmptyRoute.js +25 -0
  103. package/dist/cjs/views/ErrorBoundary.js +33 -0
  104. package/dist/cjs/views/LoadProgressBar.js +83 -0
  105. package/dist/cjs/views/Navigator.js +101 -0
  106. package/dist/cjs/views/PreloadLinks.js +42 -0
  107. package/dist/cjs/views/RootErrorBoundary.js +47 -0
  108. package/dist/cjs/views/Screen.js +29 -0
  109. package/dist/cjs/views/ScrollRestoration.js +70 -0
  110. package/dist/cjs/views/Try.js +44 -0
  111. package/dist/cjs/vite/build.js +377 -0
  112. package/dist/cjs/vite/clientTreeShakePlugin.js +76 -0
  113. package/dist/cjs/vite/constants.js +22 -0
  114. package/dist/cjs/vite/createFileSystemRouter.cjs +2 -1
  115. package/dist/cjs/vite/createFileSystemRouter.js +244 -0
  116. package/dist/cjs/vite/createFileSystemRouter.js.map +6 -0
  117. package/dist/cjs/vite/createFileSystemRouter.native.js +2 -1
  118. package/dist/cjs/vite/createFileSystemRouter.native.js.map +2 -2
  119. package/dist/cjs/vite/customNodeExternals.js +52 -0
  120. package/dist/cjs/vite/ensureTsConfig.js +66 -0
  121. package/dist/cjs/vite/findDepsToOptimize.js +66 -0
  122. package/dist/cjs/vite/fixDependenciesPlugin.js +43 -0
  123. package/dist/cjs/vite/generateTypesForRoutes.js +36 -0
  124. package/dist/cjs/vite/getManifest.js +27 -0
  125. package/dist/cjs/vite/headers.js +39 -0
  126. package/dist/cjs/vite/makePluginWebOnly.js +27 -0
  127. package/dist/cjs/vite/one.js +290 -0
  128. package/dist/cjs/vite/removeReactNativeWebAnimatedPlugin.js +50 -0
  129. package/dist/cjs/vite/replaceLoader.js +34 -0
  130. package/dist/cjs/vite/resolveAPIRequest.js +71 -0
  131. package/dist/cjs/vite/server.js +16 -0
  132. package/dist/cjs/vite/types.js +14 -0
  133. package/dist/cjs/vite/virtualEntryPlugin.js +67 -0
  134. package/dist/cjs/vite/vitePluginSsrCss.js +130 -0
  135. package/dist/cjs/vite.cjs +2 -0
  136. package/dist/cjs/vite.js +29 -0
  137. package/dist/cjs/vite.js.map +6 -0
  138. package/dist/cjs/vite.native.js +3 -1
  139. package/dist/cjs/vite.native.js.map +1 -1
  140. package/dist/cjs/zero/getQueryKey.js +24 -0
  141. package/dist/cjs/zero/isZeroQuery.js +23 -0
  142. package/dist/cjs/zero/resolveQuery.js +38 -0
  143. package/dist/cjs/zero/subscribeToQuery.js +28 -0
  144. package/dist/cjs/zero/types.js +14 -0
  145. package/dist/cjs/zero/useQuery.js +47 -0
  146. package/dist/cjs/zero/useQueryZero.js +38 -0
  147. package/dist/cjs/zero.js +23 -0
  148. package/dist/esm/cli/patch.js +10 -0
  149. package/dist/esm/cli/patch.js.map +6 -0
  150. package/dist/esm/cli/patch.mjs +10 -0
  151. package/dist/esm/cli/patch.mjs.map +1 -0
  152. package/dist/esm/cli/patch.native.js +10 -0
  153. package/dist/esm/cli/patch.native.js.map +6 -0
  154. package/dist/esm/cli.js +12 -0
  155. package/dist/esm/cli.js.map +1 -1
  156. package/dist/esm/cli.mjs +17 -0
  157. package/dist/esm/cli.mjs.map +1 -1
  158. package/dist/esm/cli.native.js +12 -0
  159. package/dist/esm/cli.native.js.map +2 -2
  160. package/dist/esm/vite/createFileSystemRouter.js +2 -1
  161. package/dist/esm/vite/createFileSystemRouter.js.map +1 -1
  162. package/dist/esm/vite/createFileSystemRouter.mjs +2 -1
  163. package/dist/esm/vite/createFileSystemRouter.mjs.map +1 -1
  164. package/dist/esm/vite/createFileSystemRouter.native.js +2 -1
  165. package/dist/esm/vite/createFileSystemRouter.native.js.map +2 -2
  166. package/dist/esm/vite.js +2 -0
  167. package/dist/esm/vite.js.map +1 -1
  168. package/dist/esm/vite.mjs +2 -1
  169. package/dist/esm/vite.mjs.map +1 -1
  170. package/dist/esm/vite.native.js +2 -0
  171. package/dist/esm/vite.native.js.map +2 -2
  172. package/package.json +8 -8
  173. package/src/cli/patch.ts +6 -0
  174. package/src/cli.ts +14 -0
  175. package/src/vite/createFileSystemRouter.tsx +1 -1
  176. package/src/vite.ts +1 -0
  177. package/types/cli/patch.d.ts +2 -0
  178. package/types/cli/patch.d.ts.map +1 -0
  179. package/types/vite.d.ts +1 -0
  180. package/types/vite.d.ts.map +1 -1
  181. package/dist/cjs/createApp.native.cjs +0 -38
  182. package/dist/cjs/createApp.native.cjs.map +0 -6
  183. package/dist/cjs/fork/NavigationContainer.native.cjs +0 -103
  184. package/dist/cjs/fork/NavigationContainer.native.cjs.map +0 -6
  185. package/dist/cjs/fork/useLinking.native.cjs +0 -126
  186. package/dist/cjs/fork/useLinking.native.cjs.map +0 -6
  187. package/dist/cjs/getURL.native.cjs.map +0 -6
  188. package/dist/cjs/head/Head.android.cjs +0 -28
  189. package/dist/cjs/head/Head.android.cjs.map +0 -6
  190. package/dist/cjs/head/Head.ios.cjs +0 -210
  191. package/dist/cjs/head/Head.ios.cjs.map +0 -6
  192. package/dist/cjs/import-mode/index.android.cjs +0 -26
  193. package/dist/cjs/import-mode/index.android.cjs.map +0 -6
  194. package/dist/cjs/import-mode/index.ios.cjs +0 -26
  195. package/dist/cjs/import-mode/index.ios.cjs.map +0 -6
  196. package/dist/cjs/import-mode/index.native.cjs +0 -26
  197. package/dist/cjs/import-mode/index.native.cjs.map +0 -6
  198. package/dist/cjs/render.native.cjs +0 -28
  199. package/dist/cjs/render.native.cjs.map +0 -6
  200. package/dist/cjs/views/PreloadLinks.native.cjs +0 -28
  201. package/dist/cjs/views/PreloadLinks.native.cjs.map +0 -6
  202. package/dist/cjs/vite/createFileSystemRouter.cjs.map +0 -6
  203. package/dist/cjs/vite/headers.native.cjs +0 -32
  204. package/dist/cjs/vite/headers.native.cjs.map +0 -6
  205. package/dist/cjs/vite.cjs.map +0 -6
  206. /package/dist/cjs/{Root.cjs.map → Root.js.map} +0 -0
  207. /package/dist/cjs/{Route.cjs.map → Route.js.map} +0 -0
  208. /package/dist/cjs/{cleanUrl.cjs.map → cleanUrl.js.map} +0 -0
  209. /package/dist/cjs/cli/{label-process.cjs.map → label-process.js.map} +0 -0
  210. /package/dist/cjs/cli/{main.cjs.map → main.js.map} +0 -0
  211. /package/dist/cjs/cli/{prebuild.cjs.map → prebuild.js.map} +0 -0
  212. /package/dist/cjs/cli/{run.cjs.map → run.js.map} +0 -0
  213. /package/dist/cjs/cli/{runAndroid.cjs.map → runAndroid.js.map} +0 -0
  214. /package/dist/cjs/cli/{runIos.cjs.map → runIos.js.map} +0 -0
  215. /package/dist/cjs/{clientLoaderResolver.cjs.map → clientLoaderResolver.js.map} +0 -0
  216. /package/dist/cjs/{config.cjs.map → config.js.map} +0 -0
  217. /package/dist/cjs/{constants.cjs.map → constants.js.map} +0 -0
  218. /package/dist/cjs/{createApp.cjs.map → createApp.js.map} +0 -0
  219. /package/dist/cjs/{createHandleRequest.cjs.map → createHandleRequest.js.map} +0 -0
  220. /package/dist/cjs/{createRoute.cjs.map → createRoute.js.map} +0 -0
  221. /package/dist/cjs/fallbackViews/{Sitemap.cjs.map → Sitemap.js.map} +0 -0
  222. /package/dist/cjs/fallbackViews/{Unmatched.cjs.map → Unmatched.js.map} +0 -0
  223. /package/dist/cjs/fork/{NavigationContainer.cjs.map → NavigationContainer.js.map} +0 -0
  224. /package/dist/cjs/fork/{createMemoryHistory.cjs.map → createMemoryHistory.js.map} +0 -0
  225. /package/dist/cjs/fork/{extractPathFromURL.cjs.map → extractPathFromURL.js.map} +0 -0
  226. /package/dist/cjs/fork/{findFocusedRoute.cjs.map → findFocusedRoute.js.map} +0 -0
  227. /package/dist/cjs/fork/{getPathFromState.cjs.map → getPathFromState.js.map} +0 -0
  228. /package/dist/cjs/fork/{getStateFromPath.cjs.map → getStateFromPath.js.map} +0 -0
  229. /package/dist/cjs/fork/{useLinking.cjs.map → useLinking.js.map} +0 -0
  230. /package/dist/cjs/fork/{validatePathConfig.cjs.map → validatePathConfig.js.map} +0 -0
  231. /package/dist/cjs/{getLinkingConfig.cjs.map → getLinkingConfig.js.map} +0 -0
  232. /package/dist/cjs/{getReactNavigationConfig.cjs.map → getReactNavigationConfig.js.map} +0 -0
  233. /package/dist/cjs/{getRoutes.cjs.map → getRoutes.js.map} +0 -0
  234. /package/dist/cjs/{getURL.cjs.map → getURL.js.map} +0 -0
  235. /package/dist/cjs/head/{Head.cjs.map → Head.js.map} +0 -0
  236. /package/dist/cjs/head/{HeadModule.cjs.map → HeadModule.js.map} +0 -0
  237. /package/dist/cjs/head/{index.cjs.map → index.js.map} +0 -0
  238. /package/dist/cjs/head/{types.cjs.map → types.js.map} +0 -0
  239. /package/dist/cjs/head/{url.cjs.map → url.js.map} +0 -0
  240. /package/dist/cjs/{hooks.cjs.map → hooks.js.map} +0 -0
  241. /package/dist/cjs/{imperative-api.cjs.map → imperative-api.js.map} +0 -0
  242. /package/dist/cjs/import-mode/{index.cjs.map → index.js.map} +0 -0
  243. /package/dist/cjs/import-mode/{index.web.cjs.map → index.web.js.map} +0 -0
  244. /package/dist/cjs/{index.cjs.map → index.js.map} +0 -0
  245. /package/dist/cjs/interfaces/{router.cjs.map → router.js.map} +0 -0
  246. /package/dist/cjs/layouts/{Drawer.cjs.map → Drawer.js.map} +0 -0
  247. /package/dist/cjs/layouts/{Stack.cjs.map → Stack.js.map} +0 -0
  248. /package/dist/cjs/layouts/{Tabs.cjs.map → Tabs.js.map} +0 -0
  249. /package/dist/cjs/layouts/{withLayoutContext.cjs.map → withLayoutContext.js.map} +0 -0
  250. /package/dist/cjs/link/{Link.cjs.map → Link.js.map} +0 -0
  251. /package/dist/cjs/link/{Redirect.cjs.map → Redirect.js.map} +0 -0
  252. /package/dist/cjs/link/{href.cjs.map → href.js.map} +0 -0
  253. /package/dist/cjs/link/{linking.cjs.map → linking.js.map} +0 -0
  254. /package/dist/cjs/link/{path.cjs.map → path.js.map} +0 -0
  255. /package/dist/cjs/link/{useLinkTo.cjs.map → useLinkTo.js.map} +0 -0
  256. /package/dist/cjs/link/{useLoadedNavigation.cjs.map → useLoadedNavigation.js.map} +0 -0
  257. /package/dist/cjs/{matchers.cjs.map → matchers.js.map} +0 -0
  258. /package/dist/cjs/{platform.cjs.map → platform.js.map} +0 -0
  259. /package/dist/cjs/{polyfills-mobile.cjs.map → polyfills-mobile.js.map} +0 -0
  260. /package/dist/cjs/{polyfills-server.cjs.map → polyfills-server.js.map} +0 -0
  261. /package/dist/cjs/{render.cjs.map → render.js.map} +0 -0
  262. /package/dist/cjs/router/{RouterStore.cjs.map → RouterStore.js.map} +0 -0
  263. /package/dist/cjs/router/{getNormalizedStatePath.cjs.map → getNormalizedStatePath.js.map} +0 -0
  264. /package/dist/cjs/router/{lastAction.cjs.map → lastAction.js.map} +0 -0
  265. /package/dist/cjs/router/{router.cjs.map → router.js.map} +0 -0
  266. /package/dist/cjs/router/{serverLocationContext.cjs.map → serverLocationContext.js.map} +0 -0
  267. /package/dist/cjs/router/{useInitializeOneRouter.cjs.map → useInitializeOneRouter.js.map} +0 -0
  268. /package/dist/cjs/{serve.cjs.map → serve.js.map} +0 -0
  269. /package/dist/cjs/server/{createRoutesManifest.cjs.map → createRoutesManifest.js.map} +0 -0
  270. /package/dist/cjs/server/{getServerManifest.cjs.map → getServerManifest.js.map} +0 -0
  271. /package/dist/cjs/{server-render.cjs.map → server-render.js.map} +0 -0
  272. /package/dist/cjs/{sortRoutes.cjs.map → sortRoutes.js.map} +0 -0
  273. /package/dist/cjs/typed-routes/{generateRouteTypes.cjs.map → generateRouteTypes.js.map} +0 -0
  274. /package/dist/cjs/typed-routes/{getTypedRoutesDeclarationFile.cjs.map → getTypedRoutesDeclarationFile.js.map} +0 -0
  275. /package/dist/cjs/{types.cjs.map → types.js.map} +0 -0
  276. /package/dist/cjs/{useFocusEffect.cjs.map → useFocusEffect.js.map} +0 -0
  277. /package/dist/cjs/{useLoader.cjs.map → useLoader.js.map} +0 -0
  278. /package/dist/cjs/{useNavigation.cjs.map → useNavigation.js.map} +0 -0
  279. /package/dist/cjs/{useScreens.cjs.map → useScreens.js.map} +0 -0
  280. /package/dist/cjs/{useViteRoutes.cjs.map → useViteRoutes.js.map} +0 -0
  281. /package/dist/cjs/utils/{assertIsReady.cjs.map → assertIsReady.js.map} +0 -0
  282. /package/dist/cjs/utils/{dynamicImport.cjs.map → dynamicImport.js.map} +0 -0
  283. /package/dist/cjs/utils/{existsAsync.cjs.map → existsAsync.js.map} +0 -0
  284. /package/dist/cjs/utils/{getPageExport.cjs.map → getPageExport.js.map} +0 -0
  285. /package/dist/cjs/utils/{globDir.cjs.map → globDir.js.map} +0 -0
  286. /package/dist/cjs/utils/{hashString.cjs.map → hashString.js.map} +0 -0
  287. /package/dist/cjs/utils/{isResponse.cjs.map → isResponse.js.map} +0 -0
  288. /package/dist/cjs/utils/{isStatus.cjs.map → isStatus.js.map} +0 -0
  289. /package/dist/cjs/utils/{promiseWithResolvers.cjs.map → promiseWithResolvers.js.map} +0 -0
  290. /package/dist/cjs/utils/{rand.cjs.map → rand.js.map} +0 -0
  291. /package/dist/cjs/utils/{redirect.cjs.map → redirect.js.map} +0 -0
  292. /package/dist/cjs/utils/{removeSearch.cjs.map → removeSearch.js.map} +0 -0
  293. /package/dist/cjs/utils/{removeUndefined.cjs.map → removeUndefined.js.map} +0 -0
  294. /package/dist/cjs/utils/{url.cjs.map → url.js.map} +0 -0
  295. /package/dist/cjs/utils/{weakKey.cjs.map → weakKey.js.map} +0 -0
  296. /package/dist/cjs/utils/{weakMemo.cjs.map → weakMemo.js.map} +0 -0
  297. /package/dist/cjs/views/{EmptyRoute.cjs.map → EmptyRoute.js.map} +0 -0
  298. /package/dist/cjs/views/{ErrorBoundary.cjs.map → ErrorBoundary.js.map} +0 -0
  299. /package/dist/cjs/views/{LoadProgressBar.cjs.map → LoadProgressBar.js.map} +0 -0
  300. /package/dist/cjs/views/{Navigator.cjs.map → Navigator.js.map} +0 -0
  301. /package/dist/cjs/views/{PreloadLinks.cjs.map → PreloadLinks.js.map} +0 -0
  302. /package/dist/cjs/views/{RootErrorBoundary.cjs.map → RootErrorBoundary.js.map} +0 -0
  303. /package/dist/cjs/views/{Screen.cjs.map → Screen.js.map} +0 -0
  304. /package/dist/cjs/views/{ScrollRestoration.cjs.map → ScrollRestoration.js.map} +0 -0
  305. /package/dist/cjs/views/{Try.cjs.map → Try.js.map} +0 -0
  306. /package/dist/cjs/vite/{build.cjs.map → build.js.map} +0 -0
  307. /package/dist/cjs/vite/{clientTreeShakePlugin.cjs.map → clientTreeShakePlugin.js.map} +0 -0
  308. /package/dist/cjs/vite/{constants.cjs.map → constants.js.map} +0 -0
  309. /package/dist/cjs/vite/{customNodeExternals.cjs.map → customNodeExternals.js.map} +0 -0
  310. /package/dist/cjs/vite/{ensureTsConfig.cjs.map → ensureTsConfig.js.map} +0 -0
  311. /package/dist/cjs/vite/{findDepsToOptimize.cjs.map → findDepsToOptimize.js.map} +0 -0
  312. /package/dist/cjs/vite/{fixDependenciesPlugin.cjs.map → fixDependenciesPlugin.js.map} +0 -0
  313. /package/dist/cjs/vite/{generateTypesForRoutes.cjs.map → generateTypesForRoutes.js.map} +0 -0
  314. /package/dist/cjs/vite/{getManifest.cjs.map → getManifest.js.map} +0 -0
  315. /package/dist/cjs/vite/{headers.cjs.map → headers.js.map} +0 -0
  316. /package/dist/cjs/vite/{makePluginWebOnly.cjs.map → makePluginWebOnly.js.map} +0 -0
  317. /package/dist/cjs/vite/{one.cjs.map → one.js.map} +0 -0
  318. /package/dist/cjs/vite/{removeReactNativeWebAnimatedPlugin.cjs.map → removeReactNativeWebAnimatedPlugin.js.map} +0 -0
  319. /package/dist/cjs/vite/{replaceLoader.cjs.map → replaceLoader.js.map} +0 -0
  320. /package/dist/cjs/vite/{resolveAPIRequest.cjs.map → resolveAPIRequest.js.map} +0 -0
  321. /package/dist/cjs/vite/{server.cjs.map → server.js.map} +0 -0
  322. /package/dist/cjs/vite/{types.cjs.map → types.js.map} +0 -0
  323. /package/dist/cjs/vite/{virtualEntryPlugin.cjs.map → virtualEntryPlugin.js.map} +0 -0
  324. /package/dist/cjs/vite/{vitePluginSsrCss.cjs.map → vitePluginSsrCss.js.map} +0 -0
  325. /package/dist/cjs/zero/{getQueryKey.cjs.map → getQueryKey.js.map} +0 -0
  326. /package/dist/cjs/zero/{isZeroQuery.cjs.map → isZeroQuery.js.map} +0 -0
  327. /package/dist/cjs/zero/{resolveQuery.cjs.map → resolveQuery.js.map} +0 -0
  328. /package/dist/cjs/zero/{subscribeToQuery.cjs.map → subscribeToQuery.js.map} +0 -0
  329. /package/dist/cjs/zero/{types.cjs.map → types.js.map} +0 -0
  330. /package/dist/cjs/zero/{useQuery.cjs.map → useQuery.js.map} +0 -0
  331. /package/dist/cjs/zero/{useQueryZero.cjs.map → useQueryZero.js.map} +0 -0
  332. /package/dist/cjs/{zero.cjs.map → zero.js.map} +0 -0
@@ -0,0 +1,265 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var getPathFromState_exports = {};
16
+ __export(getPathFromState_exports, {
17
+ appendBaseUrl: () => appendBaseUrl,
18
+ deepEqual: () => deepEqual,
19
+ default: () => getPathFromState,
20
+ getPathDataFromState: () => getPathDataFromState
21
+ });
22
+ module.exports = __toCommonJS(getPathFromState_exports);
23
+ var import_core = require("@react-navigation/core"), import_matchers = require("../matchers");
24
+ const DEFAULT_SCREENS = {}, getActiveRoute = (state) => {
25
+ const route = typeof state.index == "number" ? state.routes[state.index] : state.routes[state.routes.length - 1];
26
+ return route.state ? getActiveRoute(route.state) : route && isInvalidParams(route.params) ? getActiveRoute(createFakeState(route.params)) : route;
27
+ };
28
+ function createFakeState(params) {
29
+ return {
30
+ stale: !1,
31
+ type: "UNKNOWN",
32
+ key: "UNKNOWN",
33
+ index: 0,
34
+ routeNames: [],
35
+ routes: [
36
+ {
37
+ key: "UNKNOWN",
38
+ name: params.screen,
39
+ params: params.params,
40
+ path: params.path
41
+ }
42
+ ]
43
+ };
44
+ }
45
+ function segmentMatchesConvention(segment) {
46
+ return segment === "index" || (0, import_matchers.matchDynamicName)(segment) != null || (0, import_matchers.matchGroupName)(segment) != null || (0, import_matchers.matchDeepDynamicRouteName)(segment) != null;
47
+ }
48
+ function encodeURIComponentPreservingBrackets(str) {
49
+ return encodeURIComponent(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
50
+ }
51
+ function getPathFromState(state, _options) {
52
+ return getPathDataFromState(state, _options).path;
53
+ }
54
+ function getPathDataFromState(state, _options = { screens: DEFAULT_SCREENS }) {
55
+ if (state == null)
56
+ throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
57
+ const { preserveGroups, preserveDynamicRoutes, ...options } = _options;
58
+ if ((0, import_core.validatePathConfig)(options), Object.is(options.screens, DEFAULT_SCREENS))
59
+ throw Error("You must pass a 'screens' object to 'getPathFromState' to generate a path.");
60
+ return getPathFromResolvedState(
61
+ state,
62
+ // Create a normalized configs object which will be easier to use
63
+ createNormalizedConfigs(options.screens),
64
+ { preserveGroups, preserveDynamicRoutes }
65
+ );
66
+ }
67
+ function processParamsWithUserSettings(configItem, params) {
68
+ const stringify = configItem?.stringify;
69
+ return Object.fromEntries(
70
+ Object.entries(params).map(([key, value]) => [
71
+ key,
72
+ // TODO: Strip nullish values here.
73
+ stringify?.[key] ? stringify[key](value) : (
74
+ // Preserve rest params
75
+ Array.isArray(value) ? value : String(value)
76
+ )
77
+ ])
78
+ );
79
+ }
80
+ function deepEqual(a, b) {
81
+ if (a === b)
82
+ return !0;
83
+ if (Array.isArray(a) && Array.isArray(b)) {
84
+ if (a.length !== b.length)
85
+ return !1;
86
+ for (let i = 0; i < a.length; i++)
87
+ if (!deepEqual(a[i], b[i]))
88
+ return !1;
89
+ return !0;
90
+ }
91
+ if (typeof a == "object" && typeof b == "object") {
92
+ const keysA = Object.keys(a), keysB = Object.keys(b);
93
+ if (keysA.length !== keysB.length)
94
+ return !1;
95
+ for (const key of keysA)
96
+ if (!deepEqual(a[key], b[key]))
97
+ return !1;
98
+ return !0;
99
+ }
100
+ return !1;
101
+ }
102
+ function walkConfigItems(route, focusedRoute, configs, {
103
+ preserveDynamicRoutes
104
+ }) {
105
+ !route.state && isInvalidParams(route.params) && (route.state = createFakeState(route.params));
106
+ let pattern = null, focusedParams, hash;
107
+ const collectedParams = {};
108
+ for (; route.name in configs; ) {
109
+ const configItem = configs[route.name], inputPattern = configItem.pattern;
110
+ if (inputPattern == null)
111
+ throw new Error("Unexpected: No pattern found for route " + route.name);
112
+ if (pattern = inputPattern, route.params) {
113
+ route.params["#"] && (hash = route.params["#"], delete route.params["#"]);
114
+ const params = processParamsWithUserSettings(configItem, route.params);
115
+ pattern != null && Object.assign(collectedParams, params), deepEqual(focusedRoute, route) && (preserveDynamicRoutes ? focusedParams = params : focusedParams = getParamsWithConventionsCollapsed({
116
+ params,
117
+ pattern,
118
+ routeName: route.name
119
+ }));
120
+ }
121
+ if (!route.state && isInvalidParams(route.params) && (route.state = createFakeState(route.params)), !configItem.screens || route.state === void 0) {
122
+ configItem.initialRouteName && configItem.screens && configItem.initialRouteName in configItem.screens && configItem.screens[configItem.initialRouteName]?.pattern && (pattern = configItem.screens[configItem.initialRouteName].pattern, focusedParams && (preserveDynamicRoutes || (focusedParams = getParamsWithConventionsCollapsed({
123
+ params: focusedParams,
124
+ pattern,
125
+ routeName: route.name
126
+ }))));
127
+ break;
128
+ }
129
+ const index = route.state.index ?? route.state.routes.length - 1, nextRoute = route.state.routes[index], nestedScreens = configItem.screens;
130
+ if (nestedScreens && nextRoute.name in nestedScreens)
131
+ route = nextRoute, configs = nestedScreens;
132
+ else
133
+ break;
134
+ }
135
+ if (pattern == null)
136
+ throw new Error(
137
+ `No pattern found for route "${route.name}". Options are: ${Object.keys(configs).join(", ")}.`
138
+ );
139
+ return pattern && !focusedParams && focusedRoute.params && (preserveDynamicRoutes ? focusedParams = focusedRoute.params : focusedParams = getParamsWithConventionsCollapsed({
140
+ params: focusedRoute.params,
141
+ pattern,
142
+ routeName: route.name
143
+ }), Object.assign(focusedParams, collectedParams)), {
144
+ pattern,
145
+ nextRoute: route,
146
+ focusedParams,
147
+ hash,
148
+ params: collectedParams
149
+ };
150
+ }
151
+ function getPathFromResolvedState(state, configs, {
152
+ preserveGroups,
153
+ preserveDynamicRoutes
154
+ }) {
155
+ let path = "", current = state, hash;
156
+ const allParams = {};
157
+ for (; current; ) {
158
+ path += "/";
159
+ const route = current.routes[current.index ?? 0];
160
+ !route.state && isInvalidParams(route.params) && (route.state = createFakeState(route.params));
161
+ const {
162
+ pattern,
163
+ params: params2,
164
+ nextRoute,
165
+ focusedParams,
166
+ hash: $hash
167
+ } = walkConfigItems(route, getActiveRoute(current), { ...configs }, { preserveDynamicRoutes });
168
+ if ($hash && (hash = $hash), Object.assign(allParams, params2), path += getPathWithConventionsCollapsed({
169
+ pattern,
170
+ routePath: nextRoute.path,
171
+ params: allParams,
172
+ initialRouteName: configs[nextRoute.name]?.initialRouteName,
173
+ preserveGroups,
174
+ preserveDynamicRoutes
175
+ }), nextRoute.state && // NOTE: The upstream implementation allows for sending in synthetic states (states that weren't generated by `getStateFromPath`)
176
+ // and any invalid routes will simply be ignored.
177
+ // Because of this, we need to check if the next route is valid before continuing, otherwise our more strict
178
+ // implementation will throw an error.
179
+ configs[nextRoute.state.routes?.[nextRoute.state?.index ?? 0]?.name])
180
+ current = nextRoute.state;
181
+ else {
182
+ if (focusedParams && // note: using [...route] is returning an array which shouldn't go on search, this is just
183
+ // an initial hacky test to work around this as we dont want to pass that to search
184
+ !Array.isArray(focusedParams)) {
185
+ for (const param in focusedParams)
186
+ focusedParams[param] === "undefined" && delete focusedParams[param];
187
+ const query = new URLSearchParams(focusedParams).toString();
188
+ query && (path += `?${query}`);
189
+ }
190
+ break;
191
+ }
192
+ }
193
+ hash && (allParams["#"] = hash, path += `#${hash}`);
194
+ const params = decodeParams(allParams);
195
+ return { path: appendBaseUrl(basicSanitizePath(path)), params };
196
+ }
197
+ function decodeParams(params) {
198
+ const parsed = {};
199
+ for (const [key, value] of Object.entries(params))
200
+ try {
201
+ Array.isArray(value) ? parsed[key] = value.map((v) => decodeURIComponent(v)) : parsed[key] = decodeURIComponent(value);
202
+ } catch {
203
+ parsed[key] = value;
204
+ }
205
+ return parsed;
206
+ }
207
+ function getPathWithConventionsCollapsed({
208
+ pattern,
209
+ routePath,
210
+ params,
211
+ preserveGroups,
212
+ preserveDynamicRoutes,
213
+ initialRouteName
214
+ }) {
215
+ const segments = pattern.split("/");
216
+ return segments.map((p, i) => {
217
+ const name = getParamName(p);
218
+ return p.startsWith("*") ? preserveDynamicRoutes ? name === "not-found" ? "+not-found" : `[...${name}]` : params[name] ? Array.isArray(params[name]) ? params[name].join("/") : params[name] : i === 0 ? routePath : routePath?.split("/").slice(i + 1).join("/") : p.startsWith(":") ? preserveDynamicRoutes ? `[${name}]` : params[name] : !preserveGroups && (0, import_matchers.matchGroupName)(p) != null ? segments.length - 1 === i && initialRouteName ? segmentMatchesConvention(initialRouteName) ? "" : encodeURIComponentPreservingBrackets(initialRouteName) : "" : encodeURIComponentPreservingBrackets(p);
219
+ }).map((v) => v ?? "").join("/");
220
+ }
221
+ function getParamsWithConventionsCollapsed({
222
+ pattern,
223
+ routeName,
224
+ params
225
+ }) {
226
+ const processedParams = { ...params }, segments = pattern.split("/");
227
+ if (segments.filter((segment) => segment.startsWith(":")).forEach((segment) => {
228
+ const name = getParamName(segment);
229
+ delete processedParams[name];
230
+ }), segments.some((segment) => segment.startsWith("*"))) {
231
+ const name = (0, import_matchers.testNotFound)(routeName) ? "not-found" : (0, import_matchers.matchDeepDynamicRouteName)(routeName) ?? routeName;
232
+ delete processedParams[name];
233
+ }
234
+ return processedParams;
235
+ }
236
+ function basicSanitizePath(path) {
237
+ const simplifiedPath = path.replace(/\/+/g, "/");
238
+ return simplifiedPath.length <= 1 ? simplifiedPath : simplifiedPath.replace(/\/$/, "");
239
+ }
240
+ function isInvalidParams(params) {
241
+ return params ? "params" in params && typeof params.params == "object" && params.params ? !0 : "initial" in params && typeof params.initial == "boolean" && // "path" in params &&
242
+ "screen" in params : !1;
243
+ }
244
+ const getParamName = (pattern) => pattern.replace(/^[:*]/, "").replace(/\?$/, ""), joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/"), createConfigItem = (config, parentPattern) => {
245
+ if (typeof config == "string")
246
+ return { pattern: parentPattern ? joinPaths(parentPattern, config) : config };
247
+ if (config.exact && config.path === void 0)
248
+ throw new Error(
249
+ "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: ''`."
250
+ );
251
+ const pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : void 0;
252
+ return {
253
+ // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
254
+ pattern: pattern?.split("/").filter(Boolean).join("/"),
255
+ stringify: config.stringify,
256
+ screens,
257
+ initialRouteName: config.initialRouteName
258
+ };
259
+ }, createNormalizedConfigs = (options, pattern) => Object.fromEntries(
260
+ Object.entries(options).map(([name, c]) => [name, createConfigItem(c, pattern)])
261
+ );
262
+ function appendBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
263
+ return process.env.NODE_ENV !== "development" && baseUrl ? `/${baseUrl.replace(/^\/+/, "").replace(/\/$/, "")}${path}` : path;
264
+ }
265
+ //# sourceMappingURL=getPathFromState.js.map
@@ -0,0 +1,381 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
+ var getStateFromPath_exports = {};
24
+ __export(getStateFromPath_exports, {
25
+ default: () => getStateFromPath,
26
+ getMatchableRouteConfigs: () => getMatchableRouteConfigs,
27
+ getUrlWithReactNavigationConcessions: () => getUrlWithReactNavigationConcessions,
28
+ stripBaseUrl: () => stripBaseUrl
29
+ });
30
+ module.exports = __toCommonJS(getStateFromPath_exports);
31
+ var import_escape_string_regexp = __toESM(require("escape-string-regexp"), 1), import_matchers = require("../matchers"), import_findFocusedRoute = require("./findFocusedRoute"), import_validatePathConfig = __toESM(require("./validatePathConfig"), 1);
32
+ function getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {
33
+ let parsed;
34
+ try {
35
+ parsed = new URL(path, baseUrl || "http://phony.example");
36
+ } catch (err) {
37
+ return console.warn(`Error parsing url ${path}: ${err?.message}`), {
38
+ nonstandardPathname: path,
39
+ inputPathnameWithoutHash: path.replace(/#.*$/g, ""),
40
+ url: null
41
+ };
42
+ }
43
+ const pathname = parsed.pathname;
44
+ return {
45
+ // The slashes are at the end, not the beginning
46
+ nonstandardPathname: stripBaseUrl(pathname, baseUrl).replace(/^\/+/g, "").replace(/\/+$/g, "") + "/",
47
+ url: parsed
48
+ };
49
+ }
50
+ function getStateFromPath(path, options) {
51
+ const { initialRoutes, configs } = getMatchableRouteConfigs(options);
52
+ return getStateFromPathWithConfigs(path, configs, initialRoutes);
53
+ }
54
+ function getMatchableRouteConfigs(options) {
55
+ options && (0, import_validatePathConfig.default)(options);
56
+ const screens = options?.screens;
57
+ if (!screens)
58
+ throw Error("You must pass a 'screens' object to 'getStateFromPath' to generate a path.");
59
+ const initialRoutes = [];
60
+ options?.initialRouteName && initialRoutes.push({
61
+ initialRouteName: options.initialRouteName,
62
+ parentScreens: []
63
+ });
64
+ const converted = Object.keys(screens).flatMap((key) => createNormalizedConfigs(key, screens, [], initialRoutes)).flat(), resolvedInitialPatterns = initialRoutes.map(
65
+ (route) => joinPaths(...route.parentScreens, route.initialRouteName)
66
+ ), configs = converted.map((config) => ({
67
+ ...config,
68
+ // TODO: Probably a safer way to do this
69
+ // Mark initial routes to give them potential priority over other routes that match.
70
+ isInitial: resolvedInitialPatterns.includes(config.routeNames.join("/"))
71
+ })).sort(sortConfigs);
72
+ return assertConfigDuplicates(configs), { configs, initialRoutes };
73
+ }
74
+ function assertConfigDuplicates(configs) {
75
+ configs.reduce((acc, config) => {
76
+ const indexedKey = config.regex?.toString() ?? config.pattern, alpha = acc[indexedKey];
77
+ if (alpha && !alpha.hasChildren && !config.hasChildren) {
78
+ const a = alpha.routeNames, b = config.routeNames;
79
+ if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it))) {
80
+ const last = config.pattern.split("/").pop();
81
+ if (!last?.match(/^\*not-found$/)) {
82
+ const routeType = last?.startsWith(":") ? "dynamic route" : last?.startsWith("*") ? "dynamic-rest route" : "route";
83
+ throw new Error(
84
+ `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.`
85
+ );
86
+ }
87
+ }
88
+ }
89
+ return Object.assign(acc, {
90
+ [indexedKey]: config
91
+ });
92
+ }, {});
93
+ }
94
+ function sortConfigs(a, b) {
95
+ if (a.pattern === b.pattern)
96
+ return b.routeNames.join(">").localeCompare(a.routeNames.join(">"));
97
+ if (a.pattern.startsWith(b.pattern) && // NOTE: This is a hack to make sure that `*` is always at the end
98
+ b.screen !== "index")
99
+ return -1;
100
+ if (b.pattern.startsWith(a.pattern) && a.screen !== "index")
101
+ return 1;
102
+ const aParts = a.pattern.split("/").filter((part) => (0, import_matchers.matchGroupName)(part) == null);
103
+ (a.screen === "index" || a.screen.match(/\/index$/)) && aParts.push("index");
104
+ const bParts = b.pattern.split("/").filter((part) => (0, import_matchers.matchGroupName)(part) == null);
105
+ (b.screen === "index" || b.screen.match(/\/index$/)) && bParts.push("index");
106
+ for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
107
+ if (aParts[i] == null)
108
+ return 1;
109
+ if (bParts[i] == null)
110
+ return -1;
111
+ const aWildCard = aParts[i].startsWith("*"), bWildCard = bParts[i].startsWith("*");
112
+ if (aWildCard && bWildCard) {
113
+ const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
114
+ if (aNotFound && bNotFound)
115
+ continue;
116
+ if (aNotFound)
117
+ return 1;
118
+ if (bNotFound)
119
+ return -1;
120
+ continue;
121
+ }
122
+ if (aWildCard)
123
+ return 1;
124
+ if (bWildCard)
125
+ return -1;
126
+ const aSlug = aParts[i].startsWith(":"), bSlug = bParts[i].startsWith(":");
127
+ if (aSlug && bSlug) {
128
+ const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
129
+ if (aNotFound && bNotFound)
130
+ continue;
131
+ if (aNotFound)
132
+ return 1;
133
+ if (bNotFound)
134
+ return -1;
135
+ continue;
136
+ }
137
+ if (aSlug)
138
+ return 1;
139
+ if (bSlug)
140
+ return -1;
141
+ }
142
+ return a.isInitial && !b.isInitial ? -1 : !a.isInitial && b.isInitial ? 1 : bParts.length - aParts.length;
143
+ }
144
+ function getStateFromEmptyPathWithConfigs(path, hash, configs, initialRoutes) {
145
+ const leafNodes = configs.filter((config) => !config.hasChildren).map((value) => ({
146
+ ...value,
147
+ // Collapse all levels of group segments before testing.
148
+ // This enables `app/(one)/(two)/index.js` to be matched.
149
+ path: (0, import_matchers.stripGroupSegmentsFromPath)(value.path)
150
+ })), match = leafNodes.find(
151
+ (config) => (
152
+ // NOTE: Test leaf node index routes that either don't have a regex or match an empty string.
153
+ config.path === "" && (!config.regex || config.regex.test(""))
154
+ )
155
+ ) ?? leafNodes.find(
156
+ (config) => (
157
+ // NOTE: Test leaf node dynamic routes that match an empty string.
158
+ config.path.startsWith(":") && config.regex.test("")
159
+ )
160
+ ) ?? // NOTE: Test leaf node deep dynamic routes that match a slash.
161
+ // This should be done last to enable dynamic routes having a higher priority.
162
+ leafNodes.find((config) => config.path.startsWith("*") && config.regex.test("/"));
163
+ if (!match)
164
+ return;
165
+ const routes = match.routeNames.map((name) => match._route ? {
166
+ name,
167
+ _route: match._route
168
+ } : { name });
169
+ return createNestedStateObject(path, hash, routes, configs, initialRoutes);
170
+ }
171
+ function getStateFromPathWithConfigs(path, configs, initialRoutes, baseUrl = process.env.EXPO_BASE_URL) {
172
+ const formattedPaths = getUrlWithReactNavigationConcessions(path);
173
+ if (!formattedPaths.url) {
174
+ console.warn(`No url found for ${path}`);
175
+ return;
176
+ }
177
+ let cleanPath = stripBaseUrl((0, import_matchers.stripGroupSegmentsFromPath)(formattedPaths.url.pathname), baseUrl) + formattedPaths.url.search;
178
+ if (path.startsWith("/") || (cleanPath = cleanPath.slice(1)), formattedPaths.nonstandardPathname === "/")
179
+ return getStateFromEmptyPathWithConfigs(
180
+ cleanPath,
181
+ formattedPaths.url.hash.slice(1),
182
+ configs,
183
+ initialRoutes
184
+ );
185
+ const routes = matchAgainstConfigs(formattedPaths.nonstandardPathname, configs);
186
+ if (routes != null)
187
+ return createNestedStateObject(
188
+ cleanPath,
189
+ formattedPaths.url.hash.slice(1),
190
+ routes,
191
+ configs,
192
+ initialRoutes
193
+ );
194
+ }
195
+ const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/");
196
+ function matchAgainstConfigs(remaining, configs) {
197
+ let routes, remainingPath = remaining;
198
+ for (const config of configs) {
199
+ if (!config.regex)
200
+ continue;
201
+ const match = remainingPath.match(config.regex);
202
+ if (!match)
203
+ continue;
204
+ const matchedParams = config.pattern?.split("/").filter((p) => p.match(/^[:*]/)).reduce((acc, p, i) => p.match(/^\*/) ? {
205
+ ...acc,
206
+ [p]: match[(i + 1) * 2]
207
+ //?.replace(/\//, ""),
208
+ } : Object.assign(acc, {
209
+ // The param segments appear every second item starting from 2 in the regex match result.
210
+ // This will only work if we ensure groups aren't included in the match.
211
+ [p]: match[(i + 1) * 2]?.replace(/\//, "")
212
+ }), {}), routeFromName = (name) => {
213
+ const config2 = configs.find((c) => c.screen === name);
214
+ if (!config2?.path)
215
+ return { name };
216
+ const segments = config2.path.split("/"), params = {};
217
+ return segments.filter((p) => p.match(/^[:*]/)).forEach((p) => {
218
+ let value = matchedParams[p];
219
+ if (value) {
220
+ p.match(/^\*/) && (value = value?.split("/").filter(Boolean));
221
+ const key = p.replace(/^[:*]/, "").replace(/\?$/, "");
222
+ params[key] = config2.parse?.[key] ? config2.parse[key](value) : value;
223
+ }
224
+ }), params && Object.keys(params).length ? { name, params } : { name };
225
+ };
226
+ routes = config.routeNames.map((name) => config._route ? {
227
+ ...routeFromName(name),
228
+ _route: config._route
229
+ } : { ...routeFromName(name) });
230
+ const combinedParams = routes.reduce(
231
+ (acc, r) => Object.assign(acc, r.params),
232
+ {}
233
+ ), hasCombinedParams = Object.keys(combinedParams).length > 0;
234
+ routes = routes.map((r) => (hasCombinedParams && (r.params = combinedParams), r)), remainingPath = remainingPath.replace(match[1], "");
235
+ break;
236
+ }
237
+ return routes;
238
+ }
239
+ function equalHeritage(a, b) {
240
+ if (a.length !== b.length)
241
+ return !1;
242
+ for (let i = 0; i < a.length; i++)
243
+ if (a[i].localeCompare(b[i]) !== 0)
244
+ return !1;
245
+ return !0;
246
+ }
247
+ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials = [], parentScreens = [], parentPattern) => {
248
+ const configs = [];
249
+ routeNames.push(screen), parentScreens.push(screen);
250
+ const config = routeConfig[screen];
251
+ if (typeof config == "string") {
252
+ const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
253
+ configs.push(createConfigItem(screen, routeNames, pattern, config, !1));
254
+ } else if (typeof config == "object") {
255
+ let pattern;
256
+ const { _route } = config;
257
+ if (typeof config.path == "string") {
258
+ if (config.exact && config.path === void 0)
259
+ throw new Error(
260
+ "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: ''`."
261
+ );
262
+ pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", configs.push(
263
+ createConfigItem(
264
+ screen,
265
+ routeNames,
266
+ pattern,
267
+ config.path,
268
+ config.screens ? !!Object.keys(config.screens)?.length : !1,
269
+ config.parse,
270
+ _route
271
+ )
272
+ );
273
+ }
274
+ config.screens && (config.initialRouteName && initials.push({
275
+ initialRouteName: config.initialRouteName,
276
+ parentScreens
277
+ }), Object.keys(config.screens).forEach((nestedConfig) => {
278
+ const result = createNormalizedConfigs(
279
+ nestedConfig,
280
+ config.screens,
281
+ routeNames,
282
+ initials,
283
+ [...parentScreens],
284
+ pattern ?? parentPattern
285
+ );
286
+ configs.push(...result);
287
+ }));
288
+ }
289
+ return routeNames.pop(), configs;
290
+ };
291
+ function formatRegexPattern(it) {
292
+ 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) + "\\/";
293
+ }
294
+ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse, _route) => {
295
+ pattern = pattern.split("/").filter(Boolean).join("/");
296
+ const regex = pattern ? new RegExp(`^(${pattern.split("/").map(formatRegexPattern).join("")})$`) : void 0;
297
+ return {
298
+ screen,
299
+ regex,
300
+ pattern,
301
+ path,
302
+ // The routeNames array is mutated, so copy it to keep the current state
303
+ routeNames: [...routeNames],
304
+ parse,
305
+ userReadableName: [...routeNames.slice(0, -1), path || screen].join("/"),
306
+ hasChildren: !!hasChildren,
307
+ _route
308
+ };
309
+ }, findParseConfigForRoute = (routeName, routeConfigs) => {
310
+ for (const config of routeConfigs)
311
+ if (routeName === config.routeNames[config.routeNames.length - 1])
312
+ return config.parse;
313
+ }, findInitialRoute = (routeName, parentScreens, initialRoutes) => {
314
+ for (const config of initialRoutes)
315
+ if (equalHeritage(parentScreens, config.parentScreens))
316
+ return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
317
+ }, createStateObject = (route, isEmpty, initialRoute) => isEmpty ? initialRoute ? {
318
+ index: 1,
319
+ routes: [{ name: initialRoute }, route]
320
+ } : {
321
+ routes: [route]
322
+ } : initialRoute ? {
323
+ index: 1,
324
+ routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }]
325
+ } : {
326
+ routes: [{ ...route, state: { routes: [] } }]
327
+ }, createNestedStateObject = (path, hash, routes, routeConfigs, initialRoutes) => {
328
+ let route = routes.shift();
329
+ const parentScreens = [];
330
+ let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
331
+ parentScreens.push(route.name);
332
+ const state = createStateObject(route, routes.length === 0, initialRoute);
333
+ if (routes.length > 0) {
334
+ let nestedState = state;
335
+ for (; route = routes.shift(); ) {
336
+ initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
337
+ const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;
338
+ nestedState.routes[nestedStateIndex].state = createStateObject(
339
+ route,
340
+ routes.length === 0,
341
+ initialRoute
342
+ ), routes.length > 0 && (nestedState = nestedState.routes[nestedStateIndex].state), parentScreens.push(route.name);
343
+ }
344
+ }
345
+ route = (0, import_findFocusedRoute.findFocusedRoute)(state), route.path = path;
346
+ const params = parseQueryParams(route.path, findParseConfigForRoute(route.name, routeConfigs));
347
+ if (params) {
348
+ route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params);
349
+ for (const [name, value] of Object.entries(params))
350
+ if (route.params?.[name] && process.env.NODE_ENV !== "production" && console.warn(
351
+ `Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`
352
+ ), !route.params?.[name]) {
353
+ route.params[name] = value;
354
+ continue;
355
+ }
356
+ Object.keys(route.params).length === 0 && delete route.params;
357
+ }
358
+ return hash && (route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params), route.params["#"] = hash), state;
359
+ }, parseQueryParams = (path, parseConfig) => {
360
+ const query = path.split("?")[1], searchParams = new URLSearchParams(query), params = Object.fromEntries(
361
+ // @ts-ignore: [Symbol.iterator] is indeed, available on every platform.
362
+ searchParams
363
+ );
364
+ return parseConfig && Object.keys(params).forEach((name) => {
365
+ Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] == "string" && (params[name] = parseConfig[name](params[name]));
366
+ }), Object.keys(params).length ? params : void 0;
367
+ }, baseUrlCache = /* @__PURE__ */ new Map();
368
+ function getBaseUrlRegex(baseUrl) {
369
+ if (baseUrlCache.has(baseUrl))
370
+ return baseUrlCache.get(baseUrl);
371
+ const regex = new RegExp(`^\\/?${(0, import_escape_string_regexp.default)(baseUrl)}`, "g");
372
+ return baseUrlCache.set(baseUrl, regex), regex;
373
+ }
374
+ function stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
375
+ if (process.env.NODE_ENV !== "development" && baseUrl) {
376
+ const reg = getBaseUrlRegex(baseUrl);
377
+ return path.replace(/^\/+/g, "/").replace(reg, "");
378
+ }
379
+ return path;
380
+ }
381
+ //# sourceMappingURL=getStateFromPath.js.map