one 1.1.320 → 1.1.322

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) 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/cli/patch.js +34 -0
  7. package/dist/cjs/cli/prebuild.js +34 -0
  8. package/dist/cjs/cli/run.js +52 -0
  9. package/dist/cjs/cli/runAndroid.js +34 -0
  10. package/dist/cjs/cli/runIos.js +34 -0
  11. package/dist/cjs/cli.js +220 -0
  12. package/dist/cjs/clientLoaderResolver.js +32 -0
  13. package/dist/cjs/config.js +27 -0
  14. package/dist/cjs/constants.js +28 -0
  15. package/dist/cjs/createApp.js +46 -0
  16. package/dist/cjs/createHandleRequest.js +138 -0
  17. package/dist/cjs/createRoute.js +37 -0
  18. package/dist/cjs/fallbackViews/Sitemap.js +82 -0
  19. package/dist/cjs/fallbackViews/Unmatched.js +58 -0
  20. package/dist/cjs/fork/NavigationContainer.js +85 -0
  21. package/dist/cjs/fork/createMemoryHistory.js +100 -0
  22. package/dist/cjs/fork/extractPathFromURL.js +62 -0
  23. package/dist/cjs/fork/findFocusedRoute.js +26 -0
  24. package/dist/cjs/fork/getPathFromState.js +265 -0
  25. package/dist/cjs/fork/getStateFromPath.js +381 -0
  26. package/dist/cjs/fork/useLinking.js +182 -0
  27. package/dist/cjs/fork/validatePathConfig.js +46 -0
  28. package/dist/cjs/getLinkingConfig.js +59 -0
  29. package/dist/cjs/getReactNavigationConfig.js +69 -0
  30. package/dist/cjs/getRoutes.js +294 -0
  31. package/dist/cjs/getURL.js +24 -0
  32. package/dist/cjs/head/Head.js +23 -0
  33. package/dist/cjs/head/HeadModule.js +22 -0
  34. package/dist/cjs/head/index.js +15 -0
  35. package/dist/cjs/head/types.js +14 -0
  36. package/dist/cjs/head/url.js +52 -0
  37. package/dist/cjs/hooks.js +99 -0
  38. package/dist/cjs/imperative-api.js +45 -0
  39. package/dist/cjs/import-mode/index.js +21 -0
  40. package/dist/cjs/import-mode/index.web.js +21 -0
  41. package/dist/cjs/index.js +65 -0
  42. package/dist/cjs/interfaces/router.js +23 -0
  43. package/dist/cjs/layouts/Drawer.js +24 -0
  44. package/dist/cjs/layouts/Stack.js +24 -0
  45. package/dist/cjs/layouts/Tabs.js +52 -0
  46. package/dist/cjs/layouts/withLayoutContext.js +77 -0
  47. package/dist/cjs/link/Link.js +98 -0
  48. package/dist/cjs/link/Redirect.js +31 -0
  49. package/dist/cjs/link/href.js +50 -0
  50. package/dist/cjs/link/linking.js +82 -0
  51. package/dist/cjs/link/path.js +65 -0
  52. package/dist/cjs/link/useLinkTo.js +42 -0
  53. package/dist/cjs/link/useLoadedNavigation.js +50 -0
  54. package/dist/cjs/matchers.js +68 -0
  55. package/dist/cjs/platform.js +21 -0
  56. package/dist/cjs/polyfills-mobile.js +26 -0
  57. package/dist/cjs/polyfills-server.js +23 -0
  58. package/dist/cjs/render.js +44 -0
  59. package/dist/cjs/router/RouterStore.js +14 -0
  60. package/dist/cjs/router/getNormalizedStatePath.js +50 -0
  61. package/dist/cjs/router/lastAction.js +25 -0
  62. package/dist/cjs/router/router.js +345 -0
  63. package/dist/cjs/router/serverLocationContext.js +22 -0
  64. package/dist/cjs/router/useInitializeOneRouter.js +43 -0
  65. package/dist/cjs/serve.js +184 -0
  66. package/dist/cjs/server/createRoutesManifest.js +40 -0
  67. package/dist/cjs/server/getServerManifest.js +109 -0
  68. package/dist/cjs/server-render.js +42 -0
  69. package/dist/cjs/sortRoutes.js +64 -0
  70. package/dist/cjs/typed-routes/generateRouteTypes.js +33 -0
  71. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +83 -0
  72. package/dist/cjs/types.js +14 -0
  73. package/dist/cjs/useFocusEffect.js +79 -0
  74. package/dist/cjs/useLoader.js +97 -0
  75. package/dist/cjs/useNavigation.js +60 -0
  76. package/dist/cjs/useScreens.js +176 -0
  77. package/dist/cjs/useViteRoutes.js +77 -0
  78. package/dist/cjs/utils/assertIsReady.js +26 -0
  79. package/dist/cjs/utils/dynamicImport.js +24 -0
  80. package/dist/cjs/utils/existsAsync.js +28 -0
  81. package/dist/cjs/utils/getPageExport.js +38 -0
  82. package/dist/cjs/utils/globDir.js +37 -0
  83. package/dist/cjs/utils/hashString.js +32 -0
  84. package/dist/cjs/utils/isResponse.js +23 -0
  85. package/dist/cjs/utils/isStatus.js +23 -0
  86. package/dist/cjs/utils/promiseWithResolvers.js +26 -0
  87. package/dist/cjs/utils/rand.js +21 -0
  88. package/dist/cjs/utils/redirect.js +28 -0
  89. package/dist/cjs/utils/removeSearch.js +23 -0
  90. package/dist/cjs/utils/removeUndefined.js +26 -0
  91. package/dist/cjs/utils/url.js +31 -0
  92. package/dist/cjs/utils/weakKey.js +24 -0
  93. package/dist/cjs/utils/weakMemo.js +30 -0
  94. package/dist/cjs/views/EmptyRoute.js +25 -0
  95. package/dist/cjs/views/ErrorBoundary.js +33 -0
  96. package/dist/cjs/views/LoadProgressBar.js +83 -0
  97. package/dist/cjs/views/Navigator.js +101 -0
  98. package/dist/cjs/views/PreloadLinks.js +42 -0
  99. package/dist/cjs/views/RootErrorBoundary.js +47 -0
  100. package/dist/cjs/views/Screen.js +29 -0
  101. package/dist/cjs/views/ScrollRestoration.js +70 -0
  102. package/dist/cjs/views/Try.js +44 -0
  103. package/dist/cjs/vite/build.js +377 -0
  104. package/dist/cjs/vite/clientTreeShakePlugin.js +76 -0
  105. package/dist/cjs/vite/constants.js +22 -0
  106. package/dist/cjs/vite/createFileSystemRouter.cjs +2 -1
  107. package/dist/cjs/vite/createFileSystemRouter.js +244 -0
  108. package/dist/cjs/vite/createFileSystemRouter.js.map +6 -0
  109. package/dist/cjs/vite/createFileSystemRouter.native.js +2 -1
  110. package/dist/cjs/vite/createFileSystemRouter.native.js.map +2 -2
  111. package/dist/cjs/vite/customNodeExternals.js +52 -0
  112. package/dist/cjs/vite/ensureTsConfig.js +66 -0
  113. package/dist/cjs/vite/findDepsToOptimize.js +66 -0
  114. package/dist/cjs/vite/fixDependenciesPlugin.js +43 -0
  115. package/dist/cjs/vite/generateTypesForRoutes.js +36 -0
  116. package/dist/cjs/vite/getManifest.js +27 -0
  117. package/dist/cjs/vite/headers.js +39 -0
  118. package/dist/cjs/vite/makePluginWebOnly.js +27 -0
  119. package/dist/cjs/vite/one.js +290 -0
  120. package/dist/cjs/vite/removeReactNativeWebAnimatedPlugin.js +50 -0
  121. package/dist/cjs/vite/replaceLoader.js +34 -0
  122. package/dist/cjs/vite/resolveAPIRequest.js +71 -0
  123. package/dist/cjs/vite/server.js +16 -0
  124. package/dist/cjs/vite/types.js +14 -0
  125. package/dist/cjs/vite/virtualEntryPlugin.js +67 -0
  126. package/dist/cjs/vite/vitePluginSsrCss.js +130 -0
  127. package/dist/cjs/vite.cjs +2 -0
  128. package/dist/cjs/vite.js +29 -0
  129. package/dist/cjs/vite.js.map +6 -0
  130. package/dist/cjs/vite.native.js +3 -1
  131. package/dist/cjs/vite.native.js.map +1 -1
  132. package/dist/cjs/zero/getQueryKey.js +24 -0
  133. package/dist/cjs/zero/isZeroQuery.js +23 -0
  134. package/dist/cjs/zero/resolveQuery.js +38 -0
  135. package/dist/cjs/zero/subscribeToQuery.js +28 -0
  136. package/dist/cjs/zero/types.js +14 -0
  137. package/dist/cjs/zero/useQuery.js +47 -0
  138. package/dist/cjs/zero/useQueryZero.js +38 -0
  139. package/dist/cjs/zero.js +23 -0
  140. package/dist/esm/vite/createFileSystemRouter.js +2 -1
  141. package/dist/esm/vite/createFileSystemRouter.js.map +1 -1
  142. package/dist/esm/vite/createFileSystemRouter.mjs +2 -1
  143. package/dist/esm/vite/createFileSystemRouter.mjs.map +1 -1
  144. package/dist/esm/vite/createFileSystemRouter.native.js +2 -1
  145. package/dist/esm/vite/createFileSystemRouter.native.js.map +2 -2
  146. package/dist/esm/vite.js +2 -0
  147. package/dist/esm/vite.js.map +1 -1
  148. package/dist/esm/vite.mjs +2 -1
  149. package/dist/esm/vite.mjs.map +1 -1
  150. package/dist/esm/vite.native.js +2 -0
  151. package/dist/esm/vite.native.js.map +2 -2
  152. package/package.json +8 -8
  153. package/src/vite/createFileSystemRouter.tsx +1 -1
  154. package/src/vite.ts +1 -0
  155. package/types/vite.d.ts +1 -0
  156. package/types/vite.d.ts.map +1 -1
  157. package/dist/cjs/createApp.native.cjs +0 -38
  158. package/dist/cjs/createApp.native.cjs.map +0 -6
  159. package/dist/cjs/fork/NavigationContainer.native.cjs +0 -103
  160. package/dist/cjs/fork/NavigationContainer.native.cjs.map +0 -6
  161. package/dist/cjs/fork/useLinking.native.cjs +0 -126
  162. package/dist/cjs/fork/useLinking.native.cjs.map +0 -6
  163. package/dist/cjs/getURL.native.cjs +0 -48
  164. package/dist/cjs/getURL.native.cjs.map +0 -6
  165. package/dist/cjs/head/Head.android.cjs +0 -28
  166. package/dist/cjs/head/Head.android.cjs.map +0 -6
  167. package/dist/cjs/head/Head.ios.cjs +0 -210
  168. package/dist/cjs/head/Head.ios.cjs.map +0 -6
  169. package/dist/cjs/import-mode/index.android.cjs +0 -26
  170. package/dist/cjs/import-mode/index.android.cjs.map +0 -6
  171. package/dist/cjs/import-mode/index.ios.cjs +0 -26
  172. package/dist/cjs/import-mode/index.ios.cjs.map +0 -6
  173. package/dist/cjs/import-mode/index.native.cjs +0 -26
  174. package/dist/cjs/import-mode/index.native.cjs.map +0 -6
  175. package/dist/cjs/render.native.cjs +0 -28
  176. package/dist/cjs/render.native.cjs.map +0 -6
  177. package/dist/cjs/views/PreloadLinks.native.cjs +0 -28
  178. package/dist/cjs/views/PreloadLinks.native.cjs.map +0 -6
  179. package/dist/cjs/vite/createFileSystemRouter.cjs.map +0 -6
  180. package/dist/cjs/vite/headers.native.cjs +0 -32
  181. package/dist/cjs/vite/headers.native.cjs.map +0 -6
  182. package/dist/cjs/vite.cjs.map +0 -6
  183. /package/dist/cjs/{Root.cjs.map → Root.js.map} +0 -0
  184. /package/dist/cjs/{Route.cjs.map → Route.js.map} +0 -0
  185. /package/dist/cjs/{cleanUrl.cjs.map → cleanUrl.js.map} +0 -0
  186. /package/dist/cjs/cli/{label-process.cjs.map → label-process.js.map} +0 -0
  187. /package/dist/cjs/cli/{main.cjs.map → main.js.map} +0 -0
  188. /package/dist/cjs/cli/{patch.cjs.map → patch.js.map} +0 -0
  189. /package/dist/cjs/cli/{prebuild.cjs.map → prebuild.js.map} +0 -0
  190. /package/dist/cjs/cli/{run.cjs.map → run.js.map} +0 -0
  191. /package/dist/cjs/cli/{runAndroid.cjs.map → runAndroid.js.map} +0 -0
  192. /package/dist/cjs/cli/{runIos.cjs.map → runIos.js.map} +0 -0
  193. /package/dist/cjs/{cli.cjs.map → cli.js.map} +0 -0
  194. /package/dist/cjs/{clientLoaderResolver.cjs.map → clientLoaderResolver.js.map} +0 -0
  195. /package/dist/cjs/{config.cjs.map → config.js.map} +0 -0
  196. /package/dist/cjs/{constants.cjs.map → constants.js.map} +0 -0
  197. /package/dist/cjs/{createApp.cjs.map → createApp.js.map} +0 -0
  198. /package/dist/cjs/{createHandleRequest.cjs.map → createHandleRequest.js.map} +0 -0
  199. /package/dist/cjs/{createRoute.cjs.map → createRoute.js.map} +0 -0
  200. /package/dist/cjs/fallbackViews/{Sitemap.cjs.map → Sitemap.js.map} +0 -0
  201. /package/dist/cjs/fallbackViews/{Unmatched.cjs.map → Unmatched.js.map} +0 -0
  202. /package/dist/cjs/fork/{NavigationContainer.cjs.map → NavigationContainer.js.map} +0 -0
  203. /package/dist/cjs/fork/{createMemoryHistory.cjs.map → createMemoryHistory.js.map} +0 -0
  204. /package/dist/cjs/fork/{extractPathFromURL.cjs.map → extractPathFromURL.js.map} +0 -0
  205. /package/dist/cjs/fork/{findFocusedRoute.cjs.map → findFocusedRoute.js.map} +0 -0
  206. /package/dist/cjs/fork/{getPathFromState.cjs.map → getPathFromState.js.map} +0 -0
  207. /package/dist/cjs/fork/{getStateFromPath.cjs.map → getStateFromPath.js.map} +0 -0
  208. /package/dist/cjs/fork/{useLinking.cjs.map → useLinking.js.map} +0 -0
  209. /package/dist/cjs/fork/{validatePathConfig.cjs.map → validatePathConfig.js.map} +0 -0
  210. /package/dist/cjs/{getLinkingConfig.cjs.map → getLinkingConfig.js.map} +0 -0
  211. /package/dist/cjs/{getReactNavigationConfig.cjs.map → getReactNavigationConfig.js.map} +0 -0
  212. /package/dist/cjs/{getRoutes.cjs.map → getRoutes.js.map} +0 -0
  213. /package/dist/cjs/{getURL.cjs.map → getURL.js.map} +0 -0
  214. /package/dist/cjs/head/{Head.cjs.map → Head.js.map} +0 -0
  215. /package/dist/cjs/head/{HeadModule.cjs.map → HeadModule.js.map} +0 -0
  216. /package/dist/cjs/head/{index.cjs.map → index.js.map} +0 -0
  217. /package/dist/cjs/head/{types.cjs.map → types.js.map} +0 -0
  218. /package/dist/cjs/head/{url.cjs.map → url.js.map} +0 -0
  219. /package/dist/cjs/{hooks.cjs.map → hooks.js.map} +0 -0
  220. /package/dist/cjs/{imperative-api.cjs.map → imperative-api.js.map} +0 -0
  221. /package/dist/cjs/import-mode/{index.cjs.map → index.js.map} +0 -0
  222. /package/dist/cjs/import-mode/{index.web.cjs.map → index.web.js.map} +0 -0
  223. /package/dist/cjs/{index.cjs.map → index.js.map} +0 -0
  224. /package/dist/cjs/interfaces/{router.cjs.map → router.js.map} +0 -0
  225. /package/dist/cjs/layouts/{Drawer.cjs.map → Drawer.js.map} +0 -0
  226. /package/dist/cjs/layouts/{Stack.cjs.map → Stack.js.map} +0 -0
  227. /package/dist/cjs/layouts/{Tabs.cjs.map → Tabs.js.map} +0 -0
  228. /package/dist/cjs/layouts/{withLayoutContext.cjs.map → withLayoutContext.js.map} +0 -0
  229. /package/dist/cjs/link/{Link.cjs.map → Link.js.map} +0 -0
  230. /package/dist/cjs/link/{Redirect.cjs.map → Redirect.js.map} +0 -0
  231. /package/dist/cjs/link/{href.cjs.map → href.js.map} +0 -0
  232. /package/dist/cjs/link/{linking.cjs.map → linking.js.map} +0 -0
  233. /package/dist/cjs/link/{path.cjs.map → path.js.map} +0 -0
  234. /package/dist/cjs/link/{useLinkTo.cjs.map → useLinkTo.js.map} +0 -0
  235. /package/dist/cjs/link/{useLoadedNavigation.cjs.map → useLoadedNavigation.js.map} +0 -0
  236. /package/dist/cjs/{matchers.cjs.map → matchers.js.map} +0 -0
  237. /package/dist/cjs/{platform.cjs.map → platform.js.map} +0 -0
  238. /package/dist/cjs/{polyfills-mobile.cjs.map → polyfills-mobile.js.map} +0 -0
  239. /package/dist/cjs/{polyfills-server.cjs.map → polyfills-server.js.map} +0 -0
  240. /package/dist/cjs/{render.cjs.map → render.js.map} +0 -0
  241. /package/dist/cjs/router/{RouterStore.cjs.map → RouterStore.js.map} +0 -0
  242. /package/dist/cjs/router/{getNormalizedStatePath.cjs.map → getNormalizedStatePath.js.map} +0 -0
  243. /package/dist/cjs/router/{lastAction.cjs.map → lastAction.js.map} +0 -0
  244. /package/dist/cjs/router/{router.cjs.map → router.js.map} +0 -0
  245. /package/dist/cjs/router/{serverLocationContext.cjs.map → serverLocationContext.js.map} +0 -0
  246. /package/dist/cjs/router/{useInitializeOneRouter.cjs.map → useInitializeOneRouter.js.map} +0 -0
  247. /package/dist/cjs/{serve.cjs.map → serve.js.map} +0 -0
  248. /package/dist/cjs/server/{createRoutesManifest.cjs.map → createRoutesManifest.js.map} +0 -0
  249. /package/dist/cjs/server/{getServerManifest.cjs.map → getServerManifest.js.map} +0 -0
  250. /package/dist/cjs/{server-render.cjs.map → server-render.js.map} +0 -0
  251. /package/dist/cjs/{sortRoutes.cjs.map → sortRoutes.js.map} +0 -0
  252. /package/dist/cjs/typed-routes/{generateRouteTypes.cjs.map → generateRouteTypes.js.map} +0 -0
  253. /package/dist/cjs/typed-routes/{getTypedRoutesDeclarationFile.cjs.map → getTypedRoutesDeclarationFile.js.map} +0 -0
  254. /package/dist/cjs/{types.cjs.map → types.js.map} +0 -0
  255. /package/dist/cjs/{useFocusEffect.cjs.map → useFocusEffect.js.map} +0 -0
  256. /package/dist/cjs/{useLoader.cjs.map → useLoader.js.map} +0 -0
  257. /package/dist/cjs/{useNavigation.cjs.map → useNavigation.js.map} +0 -0
  258. /package/dist/cjs/{useScreens.cjs.map → useScreens.js.map} +0 -0
  259. /package/dist/cjs/{useViteRoutes.cjs.map → useViteRoutes.js.map} +0 -0
  260. /package/dist/cjs/utils/{assertIsReady.cjs.map → assertIsReady.js.map} +0 -0
  261. /package/dist/cjs/utils/{dynamicImport.cjs.map → dynamicImport.js.map} +0 -0
  262. /package/dist/cjs/utils/{existsAsync.cjs.map → existsAsync.js.map} +0 -0
  263. /package/dist/cjs/utils/{getPageExport.cjs.map → getPageExport.js.map} +0 -0
  264. /package/dist/cjs/utils/{globDir.cjs.map → globDir.js.map} +0 -0
  265. /package/dist/cjs/utils/{hashString.cjs.map → hashString.js.map} +0 -0
  266. /package/dist/cjs/utils/{isResponse.cjs.map → isResponse.js.map} +0 -0
  267. /package/dist/cjs/utils/{isStatus.cjs.map → isStatus.js.map} +0 -0
  268. /package/dist/cjs/utils/{promiseWithResolvers.cjs.map → promiseWithResolvers.js.map} +0 -0
  269. /package/dist/cjs/utils/{rand.cjs.map → rand.js.map} +0 -0
  270. /package/dist/cjs/utils/{redirect.cjs.map → redirect.js.map} +0 -0
  271. /package/dist/cjs/utils/{removeSearch.cjs.map → removeSearch.js.map} +0 -0
  272. /package/dist/cjs/utils/{removeUndefined.cjs.map → removeUndefined.js.map} +0 -0
  273. /package/dist/cjs/utils/{url.cjs.map → url.js.map} +0 -0
  274. /package/dist/cjs/utils/{weakKey.cjs.map → weakKey.js.map} +0 -0
  275. /package/dist/cjs/utils/{weakMemo.cjs.map → weakMemo.js.map} +0 -0
  276. /package/dist/cjs/views/{EmptyRoute.cjs.map → EmptyRoute.js.map} +0 -0
  277. /package/dist/cjs/views/{ErrorBoundary.cjs.map → ErrorBoundary.js.map} +0 -0
  278. /package/dist/cjs/views/{LoadProgressBar.cjs.map → LoadProgressBar.js.map} +0 -0
  279. /package/dist/cjs/views/{Navigator.cjs.map → Navigator.js.map} +0 -0
  280. /package/dist/cjs/views/{PreloadLinks.cjs.map → PreloadLinks.js.map} +0 -0
  281. /package/dist/cjs/views/{RootErrorBoundary.cjs.map → RootErrorBoundary.js.map} +0 -0
  282. /package/dist/cjs/views/{Screen.cjs.map → Screen.js.map} +0 -0
  283. /package/dist/cjs/views/{ScrollRestoration.cjs.map → ScrollRestoration.js.map} +0 -0
  284. /package/dist/cjs/views/{Try.cjs.map → Try.js.map} +0 -0
  285. /package/dist/cjs/vite/{build.cjs.map → build.js.map} +0 -0
  286. /package/dist/cjs/vite/{clientTreeShakePlugin.cjs.map → clientTreeShakePlugin.js.map} +0 -0
  287. /package/dist/cjs/vite/{constants.cjs.map → constants.js.map} +0 -0
  288. /package/dist/cjs/vite/{customNodeExternals.cjs.map → customNodeExternals.js.map} +0 -0
  289. /package/dist/cjs/vite/{ensureTsConfig.cjs.map → ensureTsConfig.js.map} +0 -0
  290. /package/dist/cjs/vite/{findDepsToOptimize.cjs.map → findDepsToOptimize.js.map} +0 -0
  291. /package/dist/cjs/vite/{fixDependenciesPlugin.cjs.map → fixDependenciesPlugin.js.map} +0 -0
  292. /package/dist/cjs/vite/{generateTypesForRoutes.cjs.map → generateTypesForRoutes.js.map} +0 -0
  293. /package/dist/cjs/vite/{getManifest.cjs.map → getManifest.js.map} +0 -0
  294. /package/dist/cjs/vite/{headers.cjs.map → headers.js.map} +0 -0
  295. /package/dist/cjs/vite/{makePluginWebOnly.cjs.map → makePluginWebOnly.js.map} +0 -0
  296. /package/dist/cjs/vite/{one.cjs.map → one.js.map} +0 -0
  297. /package/dist/cjs/vite/{removeReactNativeWebAnimatedPlugin.cjs.map → removeReactNativeWebAnimatedPlugin.js.map} +0 -0
  298. /package/dist/cjs/vite/{replaceLoader.cjs.map → replaceLoader.js.map} +0 -0
  299. /package/dist/cjs/vite/{resolveAPIRequest.cjs.map → resolveAPIRequest.js.map} +0 -0
  300. /package/dist/cjs/vite/{server.cjs.map → server.js.map} +0 -0
  301. /package/dist/cjs/vite/{types.cjs.map → types.js.map} +0 -0
  302. /package/dist/cjs/vite/{virtualEntryPlugin.cjs.map → virtualEntryPlugin.js.map} +0 -0
  303. /package/dist/cjs/vite/{vitePluginSsrCss.cjs.map → vitePluginSsrCss.js.map} +0 -0
  304. /package/dist/cjs/zero/{getQueryKey.cjs.map → getQueryKey.js.map} +0 -0
  305. /package/dist/cjs/zero/{isZeroQuery.cjs.map → isZeroQuery.js.map} +0 -0
  306. /package/dist/cjs/zero/{resolveQuery.cjs.map → resolveQuery.js.map} +0 -0
  307. /package/dist/cjs/zero/{subscribeToQuery.cjs.map → subscribeToQuery.js.map} +0 -0
  308. /package/dist/cjs/zero/{types.cjs.map → types.js.map} +0 -0
  309. /package/dist/cjs/zero/{useQuery.cjs.map → useQuery.js.map} +0 -0
  310. /package/dist/cjs/zero/{useQueryZero.cjs.map → useQueryZero.js.map} +0 -0
  311. /package/dist/cjs/{zero.cjs.map → zero.js.map} +0 -0
@@ -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
@@ -0,0 +1,182 @@
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 useLinking_exports = {};
24
+ __export(useLinking_exports, {
25
+ default: () => useLinking,
26
+ series: () => series
27
+ });
28
+ module.exports = __toCommonJS(useLinking_exports);
29
+ var import_core = require("@react-navigation/core"), import_fast_deep_equal = __toESM(require("fast-deep-equal"), 1), React = __toESM(require("react"), 1), import_createMemoryHistory = __toESM(require("./createMemoryHistory"), 1), import_serverLocationContext = require("../router/serverLocationContext"), import_getPathFromState = require("./getPathFromState");
30
+ const historyGlobal = (0, import_createMemoryHistory.default)();
31
+ typeof window < "u" && historyGlobal.listen(() => {
32
+ globalThis.__vxrntodopath = window.location.pathname;
33
+ });
34
+ const findMatchingState = (a, b) => {
35
+ if (a === void 0 || b === void 0 || a.key !== b.key)
36
+ return [void 0, void 0];
37
+ const aHistoryLength = a.history ? a.history.length : a.routes.length, bHistoryLength = b.history ? b.history.length : b.routes.length, aRoute = a.routes[a.index], bRoute = b.routes[b.index], aChildState = aRoute.state, bChildState = bRoute.state;
38
+ return aHistoryLength !== bHistoryLength || aRoute.key !== bRoute.key || aChildState === void 0 || bChildState === void 0 || aChildState.key !== bChildState.key ? [a, b] : findMatchingState(aChildState, bChildState);
39
+ }, series = (cb) => {
40
+ let queue = Promise.resolve();
41
+ return () => {
42
+ queue = queue.then(cb);
43
+ };
44
+ };
45
+ let linkingHandlers = [];
46
+ function useLinking(ref, {
47
+ independent,
48
+ enabled = !0,
49
+ config,
50
+ getStateFromPath = import_core.getStateFromPath,
51
+ getPathFromState = import_core.getPathFromState,
52
+ getActionFromState = import_core.getActionFromState
53
+ }) {
54
+ React.useEffect(() => {
55
+ if (process.env.NODE_ENV === "production" || independent)
56
+ return;
57
+ enabled !== !1 && linkingHandlers.length && console.error(
58
+ [
59
+ "Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:",
60
+ "- You don't have multiple NavigationContainers in the app each with 'linking' enabled",
61
+ "- Only a single instance of the root component is rendered"
62
+ ].join(`
63
+ `).trim()
64
+ );
65
+ const handler = Symbol();
66
+ return enabled !== !1 && linkingHandlers.push(handler), () => {
67
+ const index = linkingHandlers.indexOf(handler);
68
+ index > -1 && linkingHandlers.splice(index, 1);
69
+ };
70
+ }, [enabled, independent]);
71
+ const [history] = React.useState(historyGlobal), enabledRef = React.useRef(enabled), configRef = React.useRef(config), getStateFromPathRef = React.useRef(getStateFromPath), getPathFromStateRef = React.useRef(getPathFromState), getActionFromStateRef = React.useRef(getActionFromState);
72
+ React.useEffect(() => {
73
+ enabledRef.current = enabled, configRef.current = config, getStateFromPathRef.current = getStateFromPath, getPathFromStateRef.current = getPathFromState, getActionFromStateRef.current = getActionFromState;
74
+ });
75
+ const server = { location: React.useContext(import_serverLocationContext.ServerLocationContext) }, getInitialState = React.useCallback(() => {
76
+ let value;
77
+ if (enabledRef.current) {
78
+ const location2 = server?.location ?? (typeof window < "u" ? window.location : void 0), path = location2 ? location2.pathname + location2.search : void 0;
79
+ path && (value = getStateFromPathRef.current(path, configRef.current));
80
+ }
81
+ const thenable = {
82
+ // biome-ignore lint/suspicious/noThenProperty: <explanation>
83
+ then(onfulfilled) {
84
+ return Promise.resolve(onfulfilled ? onfulfilled(value) : value);
85
+ },
86
+ catch() {
87
+ return thenable;
88
+ }
89
+ };
90
+ return thenable;
91
+ }, []), previousIndexRef = React.useRef(void 0), previousStateRef = React.useRef(void 0), pendingPopStatePathRef = React.useRef(void 0);
92
+ return React.useEffect(() => (previousIndexRef.current = history.index, history.listen(() => {
93
+ const navigation = ref.current;
94
+ if (!navigation || !enabled)
95
+ return;
96
+ const { location: location2 } = window, path = location2.pathname + location2.search, index = history.index, previousIndex = previousIndexRef.current ?? 0;
97
+ previousIndexRef.current = index, pendingPopStatePathRef.current = path;
98
+ const record = history.get(index);
99
+ if (record?.path === path && record?.state) {
100
+ navigation.resetRoot(record.state);
101
+ return;
102
+ }
103
+ const state = getStateFromPathRef.current(path, configRef.current);
104
+ if (state) {
105
+ const rootState = navigation.getRootState();
106
+ if (state.routes.some((r) => !rootState?.routeNames.includes(r.name))) {
107
+ console.warn(
108
+ "The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration."
109
+ );
110
+ return;
111
+ }
112
+ if (index > previousIndex) {
113
+ const action = getActionFromStateRef.current(state, configRef.current);
114
+ if (action !== void 0)
115
+ try {
116
+ navigation.dispatch(action);
117
+ } catch (e) {
118
+ console.warn(
119
+ `An error occurred when trying to handle the link '${path}': ${typeof e == "object" && e != null && "message" in e ? e.message : e}`
120
+ );
121
+ }
122
+ else
123
+ navigation.resetRoot(state);
124
+ } else
125
+ navigation.resetRoot(state);
126
+ } else
127
+ navigation.resetRoot(state);
128
+ })), [enabled, history, ref]), React.useEffect(() => {
129
+ if (!enabled)
130
+ return;
131
+ const getPathForRoute = (route, state) => {
132
+ if (route?.path) {
133
+ const stateForPath = getStateFromPathRef.current(route.path, configRef.current);
134
+ if (stateForPath) {
135
+ const focusedRoute = (0, import_core.findFocusedRoute)(stateForPath);
136
+ if (focusedRoute && focusedRoute.name === route.name && (0, import_fast_deep_equal.default)(focusedRoute.params, route.params))
137
+ return (0, import_getPathFromState.appendBaseUrl)(route.path);
138
+ }
139
+ }
140
+ return getPathFromStateRef.current(state, configRef.current);
141
+ };
142
+ if (ref.current) {
143
+ const state = ref.current.getRootState();
144
+ if (state) {
145
+ const route = (0, import_core.findFocusedRoute)(state), path = getPathForRoute(route, state);
146
+ previousStateRef.current === void 0 && (previousStateRef.current = state), history.replace({ path, state });
147
+ }
148
+ }
149
+ const onStateChange = async () => {
150
+ const navigation = ref.current;
151
+ if (!navigation || !enabled)
152
+ return;
153
+ const previousState = previousStateRef.current, state = navigation.getRootState();
154
+ if (!state)
155
+ return;
156
+ const pendingPath = pendingPopStatePathRef.current, route = (0, import_core.findFocusedRoute)(state), path = getPathForRoute(route, state);
157
+ previousStateRef.current = state, pendingPopStatePathRef.current = void 0;
158
+ const [previousFocusedState, focusedState] = findMatchingState(previousState, state);
159
+ if (previousFocusedState && focusedState && // We should only handle push/pop if path changed from what was in last `popstate`
160
+ // Otherwise it's likely a change triggered by `popstate`
161
+ path !== pendingPath) {
162
+ const historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length);
163
+ if (historyDelta > 0)
164
+ history.push({ path, state });
165
+ else if (historyDelta < 0) {
166
+ const nextIndex = history.backIndex({ path }), currentIndex = history.index;
167
+ try {
168
+ nextIndex !== -1 && nextIndex < currentIndex && // We should only go back if the entry exists and it's less than current index
169
+ history.get(nextIndex - currentIndex) ? await history.go(nextIndex - currentIndex) : await history.go(historyDelta), history.replace({ path, state });
170
+ } catch {
171
+ }
172
+ } else
173
+ history.replace({ path, state });
174
+ } else
175
+ history.replace({ path, state });
176
+ };
177
+ return ref.current?.addListener("state", series(onStateChange));
178
+ }, [enabled, history, ref]), {
179
+ getInitialState
180
+ };
181
+ }
182
+ //# sourceMappingURL=useLinking.js.map
@@ -0,0 +1,46 @@
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 validatePathConfig_exports = {};
16
+ __export(validatePathConfig_exports, {
17
+ default: () => validatePathConfig
18
+ });
19
+ module.exports = __toCommonJS(validatePathConfig_exports);
20
+ const formatToList = (items) => items.map((key) => `- ${key}`).join(`
21
+ `);
22
+ function validatePathConfig(config, root = !0) {
23
+ const validKeys = ["initialRouteName", "screens", "_route"];
24
+ root || validKeys.push("path", "exact", "stringify", "parse");
25
+ const invalidKeys = Object.keys(config).filter((key) => !validKeys.includes(key));
26
+ if (invalidKeys.length)
27
+ throw new Error(
28
+ `Found invalid properties in the configuration:
29
+ ${formatToList(
30
+ invalidKeys
31
+ )}
32
+
33
+ Did you forget to specify them under a 'screens' property?
34
+
35
+ You can only specify the following properties:
36
+ ${formatToList(
37
+ validKeys
38
+ )}
39
+
40
+ See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`
41
+ );
42
+ config.screens && Object.entries(config.screens).forEach(([_, value]) => {
43
+ typeof value != "string" && validatePathConfig(value, !1);
44
+ });
45
+ }
46
+ //# sourceMappingURL=validatePathConfig.js.map
@@ -0,0 +1,59 @@
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 getLinkingConfig_exports = {};
16
+ __export(getLinkingConfig_exports, {
17
+ getLinkingConfig: () => getLinkingConfig,
18
+ getNavigationConfig: () => getNavigationConfig,
19
+ stateCache: () => stateCache
20
+ });
21
+ module.exports = __toCommonJS(getLinkingConfig_exports);
22
+ var import_native = require("@react-navigation/native"), import_getReactNavigationConfig = require("./getReactNavigationConfig"), import_linking = require("./link/linking");
23
+ function getNavigationConfig(routes, metaOnly = !0) {
24
+ return (0, import_getReactNavigationConfig.getReactNavigationConfig)(routes, metaOnly);
25
+ }
26
+ function getLinkingConfig(routes, metaOnly = !0) {
27
+ return {
28
+ prefixes: [],
29
+ // @ts-expect-error
30
+ config: getNavigationConfig(routes, metaOnly),
31
+ // A custom getInitialURL is used on native to ensure the app always starts at
32
+ // the root path if it's launched from something other than a deep link.
33
+ // This helps keep the native functionality working like the web functionality.
34
+ // For example, if you had a root navigator where the first screen was `/settings` and the second was `/index`
35
+ // then `/index` would be used on web and `/settings` would be used on native.
36
+ getInitialURL: import_linking.getInitialURL,
37
+ subscribe: import_linking.addEventListener,
38
+ getStateFromPath: getStateFromPathMemoized,
39
+ getPathFromState(state, options) {
40
+ return (0, import_linking.getPathFromState)(state, {
41
+ screens: [],
42
+ ...this.config,
43
+ ...options
44
+ }) ?? "/";
45
+ },
46
+ // Add all functions to ensure the types never need to fallback.
47
+ // This is a convenience for usage in the package.
48
+ getActionFromState: import_native.getActionFromState
49
+ };
50
+ }
51
+ const stateCache = /* @__PURE__ */ new Map();
52
+ function getStateFromPathMemoized(path, options) {
53
+ const cached = stateCache.get(path);
54
+ if (cached)
55
+ return cached;
56
+ const result = (0, import_linking.getStateFromPath)(path, options);
57
+ return stateCache.set(path, result), result;
58
+ }
59
+ //# sourceMappingURL=getLinkingConfig.js.map