one 1.1.390 → 1.1.392

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/dist/cjs/Root.cjs +6 -17
  2. package/dist/cjs/Root.js +9 -13
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +4 -12
  5. package/dist/cjs/Root.native.js.map +1 -1
  6. package/dist/cjs/cli/build.cjs +2 -3
  7. package/dist/cjs/cli/build.js +2 -3
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +2 -3
  10. package/dist/cjs/cli/build.native.js.map +2 -2
  11. package/dist/cjs/constants.cjs +9 -1
  12. package/dist/cjs/constants.js +7 -1
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/constants.native.js +9 -1
  15. package/dist/cjs/constants.native.js.map +2 -2
  16. package/dist/cjs/fork/NavigationContainer.cjs +49 -31
  17. package/dist/cjs/fork/NavigationContainer.js +40 -21
  18. package/dist/cjs/fork/NavigationContainer.js.map +2 -2
  19. package/dist/cjs/fork/NavigationContainer.native.js +51 -29
  20. package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
  21. package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
  22. package/dist/cjs/fork/createMemoryHistory.js +3 -2
  23. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  24. package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
  25. package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
  26. package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
  27. package/dist/cjs/fork/extractPathFromURL.js +44 -21
  28. package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
  29. package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
  30. package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
  31. package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
  32. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  33. package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
  34. package/dist/cjs/fork/getPathFromState-mods.js +56 -0
  35. package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
  36. package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
  37. package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
  38. package/dist/cjs/fork/getPathFromState.cjs +75 -224
  39. package/dist/cjs/fork/getPathFromState.js +68 -223
  40. package/dist/cjs/fork/getPathFromState.js.map +2 -2
  41. package/dist/cjs/fork/getPathFromState.native.js +79 -261
  42. package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
  43. package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
  44. package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
  45. package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
  46. package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
  47. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
  48. package/dist/cjs/fork/getStateFromPath.cjs +181 -263
  49. package/dist/cjs/fork/getStateFromPath.js +148 -264
  50. package/dist/cjs/fork/getStateFromPath.js.map +2 -2
  51. package/dist/cjs/fork/getStateFromPath.native.js +164 -304
  52. package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
  53. package/dist/cjs/fork/useBackButton.js.map +1 -1
  54. package/dist/cjs/fork/useBackButton.native.js.map +1 -1
  55. package/dist/cjs/fork/useDocumentTitle.js +4 -1
  56. package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
  57. package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
  58. package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
  59. package/dist/cjs/fork/useLinking.cjs +21 -24
  60. package/dist/cjs/fork/useLinking.js +21 -25
  61. package/dist/cjs/fork/useLinking.js.map +2 -2
  62. package/dist/cjs/fork/useLinking.native.js +68 -66
  63. package/dist/cjs/fork/useLinking.native.js.map +2 -2
  64. package/dist/cjs/fork/useThenable.js.map +1 -1
  65. package/dist/cjs/fork/useThenable.native.js.map +1 -1
  66. package/dist/cjs/fork/validatePathConfig.cjs +32 -11
  67. package/dist/cjs/fork/validatePathConfig.js +41 -11
  68. package/dist/cjs/fork/validatePathConfig.js.map +1 -1
  69. package/dist/cjs/fork/validatePathConfig.native.js +47 -18
  70. package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
  71. package/dist/cjs/layouts/withLayoutContext.cjs +1 -1
  72. package/dist/cjs/layouts/withLayoutContext.js +1 -1
  73. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  74. package/dist/cjs/layouts/withLayoutContext.native.js +1 -1
  75. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  76. package/dist/cjs/link/linking.cjs +4 -4
  77. package/dist/cjs/link/linking.js +3 -3
  78. package/dist/cjs/link/linking.js.map +2 -2
  79. package/dist/cjs/link/linking.native.js +3 -3
  80. package/dist/cjs/link/linking.native.js.map +1 -1
  81. package/dist/cjs/link/useLinkTo.cjs +2 -2
  82. package/dist/cjs/link/useLinkTo.js +2 -2
  83. package/dist/cjs/link/useLinkTo.js.map +1 -1
  84. package/dist/cjs/link/useLinkTo.native.js +2 -2
  85. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  86. package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
  87. package/dist/cjs/router/getNormalizedStatePath.js +2 -2
  88. package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
  89. package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
  90. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  91. package/dist/cjs/router/router.cjs +19 -3
  92. package/dist/cjs/router/router.js +25 -3
  93. package/dist/cjs/router/router.js.map +1 -1
  94. package/dist/cjs/router/router.native.js +39 -3
  95. package/dist/cjs/router/router.native.js.map +2 -2
  96. package/dist/cjs/utils/serverContext.cjs +7 -7
  97. package/dist/cjs/utils/serverContext.js +7 -7
  98. package/dist/cjs/utils/serverContext.js.map +1 -1
  99. package/dist/cjs/utils/serverContext.native.js +5 -5
  100. package/dist/cjs/utils/serverContext.native.js.map +2 -2
  101. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +6 -6
  102. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +3 -4
  103. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +2 -2
  104. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +3 -4
  105. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  106. package/dist/esm/Root.js +6 -2
  107. package/dist/esm/Root.js.map +1 -1
  108. package/dist/esm/Root.mjs +1 -1
  109. package/dist/esm/Root.mjs.map +1 -1
  110. package/dist/esm/Root.native.js +1 -1
  111. package/dist/esm/Root.native.js.map +2 -2
  112. package/dist/esm/cli/build.js +2 -3
  113. package/dist/esm/cli/build.js.map +1 -1
  114. package/dist/esm/cli/build.mjs +2 -3
  115. package/dist/esm/cli/build.mjs.map +1 -1
  116. package/dist/esm/cli/build.native.js +2 -3
  117. package/dist/esm/cli/build.native.js.map +2 -2
  118. package/dist/esm/constants.js +7 -1
  119. package/dist/esm/constants.js.map +1 -1
  120. package/dist/esm/constants.mjs +8 -2
  121. package/dist/esm/constants.mjs.map +1 -1
  122. package/dist/esm/constants.native.js +7 -1
  123. package/dist/esm/constants.native.js.map +2 -2
  124. package/dist/esm/fork/NavigationContainer.js +43 -20
  125. package/dist/esm/fork/NavigationContainer.js.map +1 -1
  126. package/dist/esm/fork/NavigationContainer.mjs +42 -24
  127. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  128. package/dist/esm/fork/NavigationContainer.native.js +44 -24
  129. package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
  130. package/dist/esm/fork/createMemoryHistory.js +3 -2
  131. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  132. package/dist/esm/fork/createMemoryHistory.mjs +4 -3
  133. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  134. package/dist/esm/fork/createMemoryHistory.native.js +4 -4
  135. package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
  136. package/dist/esm/fork/extractPathFromURL.js +42 -11
  137. package/dist/esm/fork/extractPathFromURL.js.map +1 -1
  138. package/dist/esm/fork/extractPathFromURL.mjs +39 -11
  139. package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
  140. package/dist/esm/fork/extractPathFromURL.native.js +52 -15
  141. package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
  142. package/dist/esm/fork/findFocusedRoute.js.map +1 -1
  143. package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
  144. package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
  145. package/dist/esm/fork/getPathFromState-mods.js +40 -0
  146. package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
  147. package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
  148. package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
  149. package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
  150. package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
  151. package/dist/esm/fork/getPathFromState.js +71 -228
  152. package/dist/esm/fork/getPathFromState.js.map +2 -2
  153. package/dist/esm/fork/getPathFromState.mjs +73 -221
  154. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  155. package/dist/esm/fork/getPathFromState.native.js +79 -260
  156. package/dist/esm/fork/getPathFromState.native.js.map +2 -2
  157. package/dist/esm/fork/getStateFromPath-mods.js +176 -0
  158. package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
  159. package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
  160. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
  161. package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
  162. package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
  163. package/dist/esm/fork/getStateFromPath.js +160 -265
  164. package/dist/esm/fork/getStateFromPath.js.map +2 -2
  165. package/dist/esm/fork/getStateFromPath.mjs +181 -260
  166. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  167. package/dist/esm/fork/getStateFromPath.native.js +164 -302
  168. package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
  169. package/dist/esm/fork/useBackButton.js.map +1 -1
  170. package/dist/esm/fork/useBackButton.mjs.map +1 -1
  171. package/dist/esm/fork/useBackButton.native.js.map +1 -1
  172. package/dist/esm/fork/useDocumentTitle.js +4 -1
  173. package/dist/esm/fork/useDocumentTitle.js.map +1 -1
  174. package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
  175. package/dist/esm/fork/useDocumentTitle.native.js +1 -1
  176. package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
  177. package/dist/esm/fork/useLinking.js +22 -26
  178. package/dist/esm/fork/useLinking.js.map +1 -1
  179. package/dist/esm/fork/useLinking.mjs +20 -23
  180. package/dist/esm/fork/useLinking.mjs.map +1 -1
  181. package/dist/esm/fork/useLinking.native.js +65 -67
  182. package/dist/esm/fork/useLinking.native.js.map +2 -2
  183. package/dist/esm/fork/useThenable.js.map +1 -1
  184. package/dist/esm/fork/useThenable.mjs.map +1 -1
  185. package/dist/esm/fork/useThenable.native.js.map +1 -1
  186. package/dist/esm/fork/validatePathConfig.js +41 -11
  187. package/dist/esm/fork/validatePathConfig.js.map +1 -1
  188. package/dist/esm/fork/validatePathConfig.mjs +32 -11
  189. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  190. package/dist/esm/fork/validatePathConfig.native.js +43 -18
  191. package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
  192. package/dist/esm/layouts/withLayoutContext.js +1 -1
  193. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  194. package/dist/esm/layouts/withLayoutContext.mjs +1 -1
  195. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  196. package/dist/esm/layouts/withLayoutContext.native.js +1 -1
  197. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  198. package/dist/esm/link/linking.js +2 -2
  199. package/dist/esm/link/linking.js.map +1 -1
  200. package/dist/esm/link/linking.mjs +2 -2
  201. package/dist/esm/link/linking.mjs.map +1 -1
  202. package/dist/esm/link/linking.native.js +2 -2
  203. package/dist/esm/link/linking.native.js.map +1 -1
  204. package/dist/esm/link/useLinkTo.js +1 -1
  205. package/dist/esm/link/useLinkTo.mjs +1 -1
  206. package/dist/esm/link/useLinkTo.native.js +1 -1
  207. package/dist/esm/router/getNormalizedStatePath.js +1 -1
  208. package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
  209. package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
  210. package/dist/esm/router/router.js +24 -2
  211. package/dist/esm/router/router.js.map +1 -1
  212. package/dist/esm/router/router.mjs +18 -2
  213. package/dist/esm/router/router.mjs.map +1 -1
  214. package/dist/esm/router/router.native.js +38 -2
  215. package/dist/esm/router/router.native.js.map +2 -2
  216. package/dist/esm/utils/serverContext.js +2 -1
  217. package/dist/esm/utils/serverContext.js.map +1 -1
  218. package/dist/esm/utils/serverContext.mjs +1 -1
  219. package/dist/esm/utils/serverContext.mjs.map +1 -1
  220. package/dist/esm/utils/serverContext.native.js +2 -1
  221. package/dist/esm/utils/serverContext.native.js.map +2 -2
  222. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +3 -3
  223. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  224. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +3 -3
  225. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  226. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +3 -3
  227. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  228. package/package.json +8 -9
  229. package/src/Root.tsx +6 -2
  230. package/src/cli/build.ts +2 -3
  231. package/src/constants.ts +8 -0
  232. package/src/fork/NavigationContainer.tsx +101 -39
  233. package/src/fork/createMemoryHistory.tsx +15 -13
  234. package/src/fork/extractPathFromURL.ts +85 -40
  235. package/src/fork/findFocusedRoute.tsx +9 -1
  236. package/src/fork/getPathFromState-mods.ts +142 -0
  237. package/src/fork/getPathFromState.ts +244 -501
  238. package/src/fork/getStateFromPath-mods.ts +400 -0
  239. package/src/fork/getStateFromPath.ts +447 -538
  240. package/src/fork/useBackButton.native.tsx +16 -2
  241. package/src/fork/useBackButton.tsx +11 -2
  242. package/src/fork/useDocumentTitle.native.tsx +9 -4
  243. package/src/fork/useDocumentTitle.tsx +12 -7
  244. package/src/fork/useLinking.native.ts +71 -63
  245. package/src/fork/useLinking.ts +75 -40
  246. package/src/fork/useThenable.tsx +7 -1
  247. package/src/fork/validatePathConfig.ts +64 -12
  248. package/src/layouts/withLayoutContext.tsx +1 -1
  249. package/src/link/linking.ts +2 -2
  250. package/src/link/useLinkTo.tsx +1 -1
  251. package/src/router/getNormalizedStatePath.tsx +1 -1
  252. package/src/router/router.ts +41 -2
  253. package/src/utils/serverContext.tsx +3 -1
  254. package/src/vite/plugins/fileSystemRouterPlugin.tsx +3 -3
  255. package/types/Root.d.ts.map +1 -1
  256. package/types/cli/build.d.ts.map +1 -1
  257. package/types/constants.d.ts +2 -0
  258. package/types/constants.d.ts.map +1 -1
  259. package/types/fork/NavigationContainer.d.ts +19 -8
  260. package/types/fork/NavigationContainer.d.ts.map +1 -1
  261. package/types/fork/createMemoryHistory.d.ts +10 -1
  262. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  263. package/types/fork/extractPathFromURL.d.ts +7 -1
  264. package/types/fork/extractPathFromURL.d.ts.map +1 -1
  265. package/types/fork/findFocusedRoute.d.ts +9 -0
  266. package/types/fork/findFocusedRoute.d.ts.map +1 -1
  267. package/types/fork/getPathFromState-mods.d.ts +23 -0
  268. package/types/fork/getPathFromState-mods.d.ts.map +1 -0
  269. package/types/fork/getPathFromState.d.ts +15 -14
  270. package/types/fork/getPathFromState.d.ts.map +1 -1
  271. package/types/fork/getStateFromPath-mods.d.ts +58 -0
  272. package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
  273. package/types/fork/getStateFromPath.d.ts +28 -29
  274. package/types/fork/getStateFromPath.d.ts.map +1 -1
  275. package/types/fork/useBackButton.d.ts +6 -0
  276. package/types/fork/useBackButton.d.ts.map +1 -1
  277. package/types/fork/useBackButton.native.d.ts +9 -1
  278. package/types/fork/useBackButton.native.d.ts.map +1 -1
  279. package/types/fork/useDocumentTitle.d.ts +8 -6
  280. package/types/fork/useDocumentTitle.d.ts.map +1 -1
  281. package/types/fork/useDocumentTitle.native.d.ts +5 -2
  282. package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
  283. package/types/fork/useLinking.d.ts +8 -1
  284. package/types/fork/useLinking.d.ts.map +1 -1
  285. package/types/fork/useLinking.native.d.ts +9 -2
  286. package/types/fork/useLinking.native.d.ts.map +1 -1
  287. package/types/fork/useThenable.d.ts +6 -0
  288. package/types/fork/useThenable.d.ts.map +1 -1
  289. package/types/fork/validatePathConfig.d.ts +8 -1
  290. package/types/fork/validatePathConfig.d.ts.map +1 -1
  291. package/types/link/linking.d.ts +2 -2
  292. package/types/link/linking.d.ts.map +1 -1
  293. package/types/utils/serverContext.d.ts.map +1 -1
  294. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
@@ -1,247 +1,166 @@
1
1
  import escape from "escape-string-regexp";
2
- import { matchGroupName, stripGroupSegmentsFromPath } from "../router/matchers";
3
2
  import { findFocusedRoute } from "./findFocusedRoute";
4
- import validatePathConfig from "./validatePathConfig";
5
- function getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {
6
- let parsed;
7
- try {
8
- parsed = new URL(path, baseUrl || "http://phony.example");
9
- } catch (err) {
10
- return console.warn(`Error parsing url ${path}: ${err?.message}`), {
11
- nonstandardPathname: path,
12
- inputPathnameWithoutHash: path.replace(/#.*$/g, ""),
13
- url: null
14
- };
3
+ import { validatePathConfig } from "./validatePathConfig";
4
+ import {
5
+ appendIsInitial,
6
+ createConfigItemAdditionalProperties,
7
+ decodeURIComponentSafe,
8
+ formatRegexPattern,
9
+ getParamValue,
10
+ getRouteConfigSorter,
11
+ getUrlWithReactNavigationConcessions,
12
+ matchForEmptyPath,
13
+ parseQueryParamsExtended,
14
+ populateParams
15
+ } from "./getStateFromPath-mods";
16
+ function getStateFromPath(path, options) {
17
+ const { initialRoutes, configs, configWithRegexes } = getConfigResources(options), screens = options?.screens, pathData = getUrlWithReactNavigationConcessions(path);
18
+ let remaining = pathData.nonstandardPathname.replace(/\/+/g, "/").replace(/^\//, "").replace(/\?.*$/, "");
19
+ remaining = remaining.endsWith("/") ? remaining : `${remaining}/`;
20
+ const prefix = options?.path?.replace(/^\//, "");
21
+ if (prefix) {
22
+ const normalizedPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
23
+ if (!remaining.startsWith(normalizedPrefix))
24
+ return;
25
+ remaining = remaining.replace(normalizedPrefix, "");
15
26
  }
16
- const pathname = parsed.pathname;
17
- return {
18
- // The slashes are at the end, not the beginning
19
- nonstandardPathname: stripBaseUrl(pathname, baseUrl).replace(/^\/+/g, "").replace(/\/+$/g, "") + "/",
20
- url: parsed
21
- };
27
+ if (screens === void 0) {
28
+ const routes2 = remaining.split("/").filter(Boolean).map((segment) => ({ name: decodeURIComponent(segment) }));
29
+ return routes2.length ? createNestedStateObject(pathData, routes2, initialRoutes, [], pathData.url.hash) : void 0;
30
+ }
31
+ if (remaining === "/") {
32
+ const match = matchForEmptyPath(configWithRegexes);
33
+ return match ? createNestedStateObject(
34
+ pathData,
35
+ // @modified: pass pathData instead of path
36
+ match.routeNames.map((name) => ({ name })),
37
+ initialRoutes,
38
+ configs
39
+ ) : void 0;
40
+ }
41
+ let result, current;
42
+ const { routes, remainingPath } = matchAgainstConfigs(remaining, configWithRegexes);
43
+ if (routes !== void 0 && (current = createNestedStateObject(pathData, routes, initialRoutes, configs), remaining = remainingPath, result = current), !(current == null || result == null))
44
+ return result;
22
45
  }
23
- function getStateFromPath(path, options) {
24
- const { initialRoutes, configs } = getMatchableRouteConfigs(options);
25
- return getStateFromPathWithConfigs(path, configs, initialRoutes);
46
+ const cachedConfigResources = /* @__PURE__ */ new WeakMap();
47
+ function getConfigResources(options) {
48
+ if (!options) return prepareConfigResources();
49
+ const cached = cachedConfigResources.get(options);
50
+ if (cached) return cached;
51
+ const resources = prepareConfigResources(options);
52
+ return cachedConfigResources.set(options, resources), resources;
26
53
  }
27
- function getMatchableRouteConfigs(options) {
54
+ function prepareConfigResources(options, previousSegments) {
28
55
  options && validatePathConfig(options);
29
- const screens = options?.screens;
30
- if (!screens)
31
- throw Error("You must pass a 'screens' object to 'getStateFromPath' to generate a path.");
56
+ const initialRoutes = getInitialRoutes(options), configs = getNormalizedConfigs(initialRoutes, options?.screens, previousSegments);
57
+ checkForDuplicatedConfigs(configs);
58
+ const configWithRegexes = getConfigsWithRegexes(configs);
59
+ return {
60
+ initialRoutes,
61
+ configs,
62
+ configWithRegexes
63
+ };
64
+ }
65
+ function getInitialRoutes(options) {
32
66
  const initialRoutes = [];
33
- options?.initialRouteName && initialRoutes.push({
67
+ return options?.initialRouteName && initialRoutes.push({
34
68
  initialRouteName: options.initialRouteName,
35
69
  parentScreens: []
36
- });
37
- const converted = Object.keys(screens).flatMap((key) => createNormalizedConfigs(key, screens, [], initialRoutes)).flat(), resolvedInitialPatterns = initialRoutes.map(
38
- (route) => joinPaths(...route.parentScreens, route.initialRouteName)
39
- ), configs = converted.map((config) => ({
40
- ...config,
41
- // TODO: Probably a safer way to do this
42
- // Mark initial routes to give them potential priority over other routes that match.
43
- isInitial: resolvedInitialPatterns.includes(config.routeNames.join("/"))
44
- })).sort(sortConfigs);
45
- return assertConfigDuplicates(configs), { configs, initialRoutes };
70
+ }), initialRoutes;
71
+ }
72
+ function getNormalizedConfigs(initialRoutes, screens = {}, previousSegments) {
73
+ return [].concat(
74
+ ...Object.keys(screens).map(
75
+ (key) => createNormalizedConfigs(key, screens, [], initialRoutes, [])
76
+ )
77
+ ).map(appendIsInitial(initialRoutes)).sort(getRouteConfigSorter(previousSegments));
46
78
  }
47
- function assertConfigDuplicates(configs) {
79
+ function checkForDuplicatedConfigs(configs) {
48
80
  configs.reduce((acc, config) => {
49
- const indexedKey = config.regex?.toString() ?? config.pattern, alpha = acc[indexedKey];
50
- if (alpha && !alpha.hasChildren && !config.hasChildren) {
51
- const a = alpha.routeNames, b = config.routeNames;
52
- if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it))) {
53
- const last = config.pattern.split("/").pop();
54
- if (!last?.match(/^\*not-found$/)) {
55
- const routeType = last?.startsWith(":") ? "dynamic route" : last?.startsWith("*") ? "dynamic-rest route" : "route";
56
- throw new Error(
57
- `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.`
58
- );
59
- }
60
- }
81
+ if (acc[config.pattern]) {
82
+ const a = acc[config.pattern].routeNames, b = config.routeNames;
83
+ if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it)))
84
+ throw new Error(
85
+ `Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(" > ")}' and '${b.join(
86
+ " > "
87
+ )}'. Patterns must be unique and cannot resolve to more than one screen.`
88
+ );
61
89
  }
62
90
  return Object.assign(acc, {
63
- [indexedKey]: config
91
+ [config.pattern]: config
64
92
  });
65
93
  }, {});
66
94
  }
67
- function sortConfigs(a, b) {
68
- if (a.pattern === b.pattern)
69
- return b.routeNames.join(">").localeCompare(a.routeNames.join(">"));
70
- if (a.pattern.startsWith(b.pattern) && // NOTE: This is a hack to make sure that `*` is always at the end
71
- b.screen !== "index")
72
- return -1;
73
- if (b.pattern.startsWith(a.pattern) && a.screen !== "index")
74
- return 1;
75
- const aParts = a.pattern.split("/").filter((part) => matchGroupName(part) == null);
76
- (a.screen === "index" || a.screen.match(/\/index$/)) && aParts.push("index");
77
- const bParts = b.pattern.split("/").filter((part) => matchGroupName(part) == null);
78
- (b.screen === "index" || b.screen.match(/\/index$/)) && bParts.push("index");
79
- for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
80
- if (aParts[i] == null)
81
- return 1;
82
- if (bParts[i] == null)
83
- return -1;
84
- const aWildCard = aParts[i].startsWith("*"), bWildCard = bParts[i].startsWith("*");
85
- if (aWildCard && bWildCard) {
86
- const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
87
- if (aNotFound && bNotFound)
88
- continue;
89
- if (aNotFound)
90
- return 1;
91
- if (bNotFound)
92
- return -1;
93
- continue;
94
- }
95
- if (aWildCard)
96
- return 1;
97
- if (bWildCard)
98
- return -1;
99
- const aSlug = aParts[i].startsWith(":"), bSlug = bParts[i].startsWith(":");
100
- if (aSlug && bSlug) {
101
- const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
102
- if (aNotFound && bNotFound)
103
- continue;
104
- if (aNotFound)
105
- return 1;
106
- if (bNotFound)
107
- return -1;
108
- continue;
109
- }
110
- if (aSlug)
111
- return 1;
112
- if (bSlug)
113
- return -1;
114
- }
115
- return a.isInitial && !b.isInitial ? -1 : !a.isInitial && b.isInitial ? 1 : bParts.length - aParts.length;
95
+ function getConfigsWithRegexes(configs) {
96
+ return configs.map((c) => ({
97
+ ...c,
98
+ // Add `$` to the regex to make sure it matches till end of the path and not just beginning
99
+ // @modified - start
100
+ // regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,
101
+ regex: c.pattern ? new RegExp(`^(${c.pattern.split("/").map(formatRegexPattern).join("")})$`) : void 0
102
+ // @modified - end
103
+ }));
116
104
  }
117
- function getStateFromEmptyPathWithConfigs(path, hash, configs, initialRoutes) {
118
- const leafNodes = configs.filter((config) => !config.hasChildren).map((value) => ({
119
- ...value,
120
- // Collapse all levels of group segments before testing.
121
- // This enables `app/(one)/(two)/index.js` to be matched.
122
- path: stripGroupSegmentsFromPath(value.path)
123
- })), match = leafNodes.find(
124
- (config) => (
125
- // NOTE: Test leaf node index routes that either don't have a regex or match an empty string.
126
- config.path === "" && (!config.regex || config.regex.test(""))
127
- )
128
- ) ?? leafNodes.find(
129
- (config) => (
130
- // NOTE: Test leaf node dynamic routes that match an empty string.
131
- config.path.startsWith(":") && config.regex.test("")
132
- )
133
- ) ?? // NOTE: Test leaf node deep dynamic routes that match a slash.
134
- // This should be done last to enable dynamic routes having a higher priority.
135
- leafNodes.find((config) => config.path.startsWith("*") && config.regex.test("/"));
136
- if (!match)
137
- return;
138
- const routes = match.routeNames.map((name) => match._route ? {
139
- name,
140
- _route: match._route
141
- } : { name });
142
- return createNestedStateObject(path, hash, routes, configs, initialRoutes);
143
- }
144
- function getStateFromPathWithConfigs(path, configs, initialRoutes, baseUrl = process.env.EXPO_BASE_URL) {
145
- const formattedPaths = getUrlWithReactNavigationConcessions(path);
146
- if (!formattedPaths.url) {
147
- console.warn(`No url found for ${path}`);
148
- return;
149
- }
150
- let cleanPath = stripBaseUrl(stripGroupSegmentsFromPath(formattedPaths.url.pathname), baseUrl) + formattedPaths.url.search;
151
- if (path.startsWith("/") || (cleanPath = cleanPath.slice(1)), formattedPaths.nonstandardPathname === "/")
152
- return getStateFromEmptyPathWithConfigs(
153
- cleanPath,
154
- formattedPaths.url.hash.slice(1),
155
- configs,
156
- initialRoutes
157
- );
158
- const routes = matchAgainstConfigs(formattedPaths.nonstandardPathname, configs);
159
- if (routes != null)
160
- return createNestedStateObject(
161
- cleanPath,
162
- formattedPaths.url.hash.slice(1),
163
- routes,
164
- configs,
165
- initialRoutes
166
- );
167
- }
168
- const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/");
169
- function matchAgainstConfigs(remaining, configs) {
105
+ const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/"), matchAgainstConfigs = (remaining, configs) => {
170
106
  let routes, remainingPath = remaining;
107
+ const allParams = /* @__PURE__ */ Object.create(null);
171
108
  for (const config of configs) {
172
109
  if (!config.regex)
173
110
  continue;
174
111
  const match = remainingPath.match(config.regex);
175
- if (!match)
176
- continue;
177
- const matchedParams = config.pattern?.split("/").filter((p) => p.match(/^[:*]/)).reduce((acc, p, i) => p.match(/^\*/) ? {
178
- ...acc,
179
- [p]: match[(i + 1) * 2]
180
- //?.replace(/\//, ""),
181
- } : Object.assign(acc, {
182
- // The param segments appear every second item starting from 2 in the regex match result.
183
- // This will only work if we ensure groups aren't included in the match.
184
- [p]: match[(i + 1) * 2]?.replace(/\//, "")
185
- }), {}), routeFromName = (name) => {
186
- const config2 = configs.find((c) => c.screen === name);
187
- if (!config2?.path)
188
- return { name };
189
- const segments = config2.path.split("/"), params = {};
190
- return segments.filter((p) => p.match(/^[:*]/)).forEach((p) => {
191
- let value = matchedParams[p];
192
- if (value) {
193
- p.match(/^\*/) && (value = value?.split("/").filter(Boolean));
194
- const key = p.replace(/^[:*]/, "").replace(/\?$/, "");
195
- params[key] = config2.parse?.[key] ? config2.parse[key](value) : value;
196
- }
197
- }), params && Object.keys(params).length ? { name, params } : { name };
198
- };
199
- routes = config.routeNames.map((name) => config._route ? {
200
- ...routeFromName(name),
201
- _route: config._route
202
- } : { ...routeFromName(name) });
203
- const combinedParams = routes.reduce(
204
- (acc, r) => Object.assign(acc, r.params),
205
- {}
206
- ), hasCombinedParams = Object.keys(combinedParams).length > 0;
207
- routes = routes.map((r) => (hasCombinedParams && (r.params = combinedParams), r)), remainingPath = remainingPath.replace(match[1], "");
208
- break;
112
+ if (match) {
113
+ const matchedParams = (config.pattern?.split("/").reduce(
114
+ (acc, p, index) => {
115
+ if (!p.startsWith(":"))
116
+ return acc;
117
+ acc.pos += 1;
118
+ const decodedParamSegment = decodeURIComponentSafe(
119
+ // @modified: use decodeURIComponent**Safe**
120
+ // The param segments appear every second item starting from 2 in the regex match result
121
+ match[(acc.pos + 1) * 2].replace(/\/$/, "")
122
+ );
123
+ return Object.assign(acc.matchedParams, {
124
+ [p]: Object.assign(acc.matchedParams[p] || {}, {
125
+ [index]: decodedParamSegment
126
+ })
127
+ }), acc;
128
+ },
129
+ { pos: -1, matchedParams: {} }
130
+ )).matchedParams || {};
131
+ routes = config.routeNames.map((name) => {
132
+ const routeConfig = configs.find((c) => c.screen === name && config.pattern.startsWith(c.pattern)), normalizedPath = routeConfig?.path.split("/").filter(Boolean).join("/"), numInitialSegments = routeConfig?.pattern.replace(new RegExp(`${escape(normalizedPath)}$`), "")?.split("/").length, params = normalizedPath?.split("/").reduce((acc, p, index) => {
133
+ if (!p.startsWith(":"))
134
+ return acc;
135
+ const offset = numInitialSegments ? numInitialSegments - 1 : 0, value = getParamValue(p, matchedParams[p]?.[index + offset]);
136
+ if (value) {
137
+ const key = p.replace(/^:/, "").replace(/\?$/, "");
138
+ acc[key] = routeConfig?.parse?.[key] ? routeConfig.parse[key](value) : value;
139
+ }
140
+ return acc;
141
+ }, {});
142
+ return params && Object.keys(params).length ? { name, params } : { name };
143
+ }), remainingPath = remainingPath.replace(match[1], "");
144
+ break;
145
+ }
209
146
  }
210
- return routes;
211
- }
212
- function equalHeritage(a, b) {
213
- if (a.length !== b.length)
214
- return !1;
215
- for (let i = 0; i < a.length; i++)
216
- if (a[i].localeCompare(b[i]) !== 0)
217
- return !1;
218
- return !0;
219
- }
220
- const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials = [], parentScreens = [], parentPattern) => {
147
+ return populateParams(routes, allParams), { routes, remainingPath };
148
+ }, createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials, parentScreens, parentPattern) => {
221
149
  const configs = [];
222
150
  routeNames.push(screen), parentScreens.push(screen);
223
151
  const config = routeConfig[screen];
224
152
  if (typeof config == "string") {
225
153
  const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
226
- configs.push(createConfigItem(screen, routeNames, pattern, config, !1));
154
+ configs.push(createConfigItem(screen, routeNames, pattern, config));
227
155
  } else if (typeof config == "object") {
228
156
  let pattern;
229
- const { _route } = config;
230
157
  if (typeof config.path == "string") {
231
158
  if (config.exact && config.path === void 0)
232
159
  throw new Error(
233
160
  "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: ''`."
234
161
  );
235
162
  pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", configs.push(
236
- createConfigItem(
237
- screen,
238
- routeNames,
239
- pattern,
240
- config.path,
241
- config.screens ? !!Object.keys(config.screens)?.length : !1,
242
- config.parse,
243
- _route
244
- )
163
+ createConfigItem(screen, routeNames, pattern, config.path, config.parse, config)
245
164
  );
246
165
  }
247
166
  config.screens && (config.initialRouteName && initials.push({
@@ -260,13 +179,11 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials
260
179
  }));
261
180
  }
262
181
  return routeNames.pop(), configs;
263
- };
264
- function formatRegexPattern(it) {
265
- return it = it.replace(" ", "%20"), it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : it.startsWith("*") ? `((.*\\/)${it.endsWith("?") ? "?" : ""})` : matchGroupName(it) != null ? `(?:${escape(it)}\\/)?` : escape(it) + "\\/";
266
- }
267
- const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse, _route) => {
182
+ }, createConfigItem = (screen, routeNames, pattern, path, parse = void 0, config = {}) => {
268
183
  pattern = pattern.split("/").filter(Boolean).join("/");
269
- const regex = pattern ? new RegExp(`^(${pattern.split("/").map(formatRegexPattern).join("")})$`) : void 0;
184
+ const regex = pattern ? new RegExp(
185
+ `^(${pattern.split("/").map((it) => it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : `${it === "*" ? ".*" : escape(it)}\\/`).join("")})`
186
+ ) : void 0;
270
187
  return {
271
188
  screen,
272
189
  regex,
@@ -275,19 +192,27 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
275
192
  // The routeNames array is mutated, so copy it to keep the current state
276
193
  routeNames: [...routeNames],
277
194
  parse,
278
- userReadableName: [...routeNames.slice(0, -1), path || screen].join("/"),
279
- hasChildren: !!hasChildren,
280
- _route
195
+ // @modified - start
196
+ ...createConfigItemAdditionalProperties(screen, pattern, routeNames, config)
197
+ // @modified - end
281
198
  };
282
- }, findParseConfigForRoute = (routeName, routeConfigs) => {
283
- for (const config of routeConfigs)
199
+ }, findParseConfigForRoute = (routeName, flatConfig) => {
200
+ for (const config of flatConfig)
284
201
  if (routeName === config.routeNames[config.routeNames.length - 1])
285
202
  return config.parse;
286
203
  }, findInitialRoute = (routeName, parentScreens, initialRoutes) => {
287
204
  for (const config of initialRoutes)
288
- if (equalHeritage(parentScreens, config.parentScreens))
289
- return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
290
- }, createStateObject = (route, isEmpty, initialRoute) => isEmpty ? initialRoute ? {
205
+ if (parentScreens.length === config.parentScreens.length) {
206
+ let sameParents = !0;
207
+ for (let i = 0; i < parentScreens.length; i++)
208
+ if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {
209
+ sameParents = !1;
210
+ break;
211
+ }
212
+ if (sameParents)
213
+ return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
214
+ }
215
+ }, createStateObject = (initialRoute, route, isEmpty) => isEmpty ? initialRoute ? {
291
216
  index: 1,
292
217
  routes: [{ name: initialRoute }, route]
293
218
  } : {
@@ -297,64 +222,34 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
297
222
  routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }]
298
223
  } : {
299
224
  routes: [{ ...route, state: { routes: [] } }]
300
- }, createNestedStateObject = (path, hash, routes, routeConfigs, initialRoutes) => {
225
+ }, createNestedStateObject = ({ path, ...restPathData }, routes, initialRoutes, flatConfig, hash) => {
301
226
  let route = routes.shift();
302
227
  const parentScreens = [];
303
228
  let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
304
229
  parentScreens.push(route.name);
305
- const state = createStateObject(route, routes.length === 0, initialRoute);
230
+ const state = createStateObject(initialRoute, route, routes.length === 0);
306
231
  if (routes.length > 0) {
307
232
  let nestedState = state;
308
233
  for (; route = routes.shift(); ) {
309
234
  initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
310
235
  const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;
311
236
  nestedState.routes[nestedStateIndex].state = createStateObject(
237
+ initialRoute,
312
238
  route,
313
- routes.length === 0,
314
- initialRoute
239
+ routes.length === 0
315
240
  ), routes.length > 0 && (nestedState = nestedState.routes[nestedStateIndex].state), parentScreens.push(route.name);
316
241
  }
317
242
  }
318
- route = findFocusedRoute(state), route.path = path;
319
- const params = parseQueryParams(route.path, findParseConfigForRoute(route.name, routeConfigs));
320
- if (params) {
321
- route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params);
322
- for (const [name, value] of Object.entries(params))
323
- if (route.params?.[name] && process.env.NODE_ENV !== "production" && console.warn(
324
- `Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`
325
- ), !route.params?.[name]) {
326
- route.params[name] = value;
327
- continue;
328
- }
329
- Object.keys(route.params).length === 0 && delete route.params;
330
- }
331
- return hash && (route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params), route.params["#"] = hash), state;
332
- }, parseQueryParams = (path, parseConfig) => {
333
- const query = path.split("?")[1], searchParams = new URLSearchParams(query), params = Object.fromEntries(
334
- // @ts-ignore: [Symbol.iterator] is indeed, available on every platform.
335
- searchParams
243
+ route = findFocusedRoute(state), route.path = restPathData.pathWithoutGroups;
244
+ const params = parseQueryParamsExtended(
245
+ path,
246
+ route,
247
+ flatConfig ? findParseConfigForRoute(route.name, flatConfig) : void 0,
248
+ hash
336
249
  );
337
- return parseConfig && Object.keys(params).forEach((name) => {
338
- Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] == "string" && (params[name] = parseConfig[name](params[name]));
339
- }), Object.keys(params).length ? params : void 0;
340
- }, baseUrlCache = /* @__PURE__ */ new Map();
341
- function getBaseUrlRegex(baseUrl) {
342
- if (baseUrlCache.has(baseUrl))
343
- return baseUrlCache.get(baseUrl);
344
- const regex = new RegExp(`^\\/?${escape(baseUrl)}`, "g");
345
- return baseUrlCache.set(baseUrl, regex), regex;
346
- }
347
- function stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
348
- if (process.env.NODE_ENV !== "development" && baseUrl) {
349
- const reg = getBaseUrlRegex(baseUrl);
350
- return path.replace(/^\/+/g, "/").replace(reg, "");
351
- }
352
- return path;
353
- }
250
+ return params && (route.params = { ...route.params, ...params }), state;
251
+ };
354
252
  export {
355
- getStateFromPath as default,
356
- getMatchableRouteConfigs,
357
- getUrlWithReactNavigationConcessions,
358
- stripBaseUrl
253
+ getStateFromPath
359
254
  };
360
255
  //# sourceMappingURL=getStateFromPath.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/fork/getStateFromPath.ts"],
4
- "mappings": "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",
5
- "names": ["config"]
4
+ "mappings": "AAUA,OAAO,YAAY;AAGnB,SAAS,wBAAwB;AAEjC,SAAS,0BAA0B;AACnC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAgEA,SAAS,iBACd,MACA,SACyB;AACzB,QAAM,EAAE,eAAe,SAAS,kBAAkB,IAAI,mBAAmB,OAAO,GAE1E,UAAU,SAAS,SAGnB,WAAW,qCAAqC,IAAI;AAG1D,MAAI,YAAY,SAAS,oBACtB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,EAAE,EACjB,QAAQ,SAAS,EAAE;AAGtB,cAAY,UAAU,SAAS,GAAG,IAAI,YAAY,GAAG,SAAS;AAE9D,QAAM,SAAS,SAAS,MAAM,QAAQ,OAAO,EAAE;AAE/C,MAAI,QAAQ;AAEV,UAAM,mBAAmB,OAAO,SAAS,GAAG,IAAI,SAAS,GAAG,MAAM;AAGlE,QAAI,CAAC,UAAU,WAAW,gBAAgB;AACxC;AAIF,gBAAY,UAAU,QAAQ,kBAAkB,EAAE;AAAA,EACpD;AAEA,MAAI,YAAY,QAAW;AAEzB,UAAMA,UAAS,UACZ,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAAC,aAEG,EAAE,MADI,mBAAmB,OAAO,EACzB,EACf;AAEH,WAAIA,QAAO,SAGF,wBAAwB,UAAUA,SAAQ,eAAe,CAAC,GAAG,SAAS,IAAI,IAAI,IAIvF;AAAA,EACF;AAEA,MAAI,cAAc,KAAK;AAYrB,UAAM,QAAQ,kBAAkB,iBAAiB;AAGjD,WAAI,QACK;AAAA,MACL;AAAA;AAAA,MACA,MAAM,WAAW,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;AAAA,MACzC;AAAA,MACA;AAAA,IACF,IAGF;AAAA,EACF;AAEA,MAAI,QACA;AAIJ,QAAM,EAAE,QAAQ,cAAc,IAAI,oBAAoB,WAAW,iBAAiB;AAUlF,MARI,WAAW,WAGb,UAAU,wBAAwB,UAAU,QAAQ,eAAe,OAAO,GAC1E,YAAY,eACZ,SAAS,UAGP,aAAW,QAAQ,UAAU;AAIjC,WAAO;AACT;AAKA,MAAM,wBAAwB,oBAAI,QAAsC;AAExE,SAAS,mBAAyC,SAAyC;AACzF,MAAI,CAAC,QAAS,QAAO,uBAAuB;AAE5C,QAAM,SAAS,sBAAsB,IAAI,OAAO;AAEhD,MAAI,OAAQ,QAAO;AAEnB,QAAM,YAAY,uBAAuB,OAAO;AAEhD,+BAAsB,IAAI,SAAS,SAAS,GAErC;AACT;AAGA,SAAS,uBAAuB,SAAuB,kBAA6B;AAClF,EAAI,WACF,mBAAmB,OAAO;AAG5B,QAAM,gBAAgB,iBAAiB,OAAO,GAGxC,UAAU,qBAAqB,eAAe,SAAS,SAAS,gBAAgB;AAEtF,4BAA0B,OAAO;AAEjC,QAAM,oBAAoB,sBAAsB,OAAO;AAEvD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAAuB;AAC/C,QAAM,gBAAsC,CAAC;AAE7C,SAAI,SAAS,oBACX,cAAc,KAAK;AAAA,IACjB,kBAAkB,QAAQ;AAAA,IAC1B,eAAe,CAAC;AAAA,EAClB,CAAC,GAGI;AACT;AAEA,SAAS,qBACP,eACA,UAAiC,CAAC,GAElC,kBAEA;AAEA,SACG,CAAC,EACC;AAAA,IACC,GAAG,OAAO,KAAK,OAAO,EAAE;AAAA,MAAI,CAAC,QAC3B,wBAAwB,KAAK,SAAkC,CAAC,GAAG,eAAe,CAAC,CAAC;AAAA,IACtF;AAAA,EACF,EAoDC,IAAI,gBAAgB,aAAa,CAAC,EAClC,KAAK,qBAAqB,gBAAgB,CAAC;AAGlD;AAEA,SAAS,0BAA0B,SAAwB;AAEzD,UAAQ,OAAoC,CAAC,KAAK,WAAW;AAC3D,QAAI,IAAI,OAAO,OAAO,GAAG;AACvB,YAAM,IAAI,IAAI,OAAO,OAAO,EAAE,YACxB,IAAI,OAAO;AAOjB,UAAI,EAFF,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE;AAGtF,cAAM,IAAI;AAAA,UACR,iEACE,OAAO,OACT,uBAAuB,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE;AAAA,YAC9C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,IAEJ;AAEA,WAAO,OAAO,OAAO,KAAK;AAAA,MACxB,CAAC,OAAO,OAAO,GAAG;AAAA,IACpB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AACP;AAEA,SAAS,sBAAsB,SAAwB;AACrD,SAAO,QAAQ,IAAI,CAAC,OAAO;AAAA,IACzB,GAAG;AAAA;AAAA;AAAA;AAAA,IAIH,OAAO,EAAE,UACL,IAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,GAAG,EAAE,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC,IAAI,IACzE;AAAA;AAAA,EAEN,EAAE;AACJ;AAEA,MAAM,YAAY,IAAI,UACnB,CAAC,EACC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,EACxC,OAAO,OAAO,EACd,KAAK,GAAG,GAEP,sBAAsB,CAAC,WAAmB,YAA2B;AACzE,MAAI,QACA,gBAAgB;AAGpB,QAAM,YAAY,uBAAO,OAAO,IAAI;AAIpC,aAAW,UAAU,SAAS;AAC5B,QAAI,CAAC,OAAO;AACV;AAGF,UAAM,QAAQ,cAAc,MAAM,OAAO,KAAK;AAG9C,QAAI,OAAO;AAgCT,YAAM,iBA/Bc,OAAO,SAAS,MAAM,GAAG,EAAE;AAAA,QAI7C,CAAC,KAAK,GAAG,UAAU;AACjB,cAAI,CAAC,EAAE,WAAW,GAAG;AACnB,mBAAO;AAIT,cAAI,OAAO;AAEX,gBAAM,sBAAsB;AAAA;AAAA;AAAA,YAG1B,OAAQ,IAAI,MAAM,KAAK,CAAC,EAErB,QAAQ,OAAO,EAAE;AAAA,UACtB;AAEA,wBAAO,OAAO,IAAI,eAAe;AAAA,YAC/B,CAAC,CAAC,GAAG,OAAO,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG;AAAA,cAC7C,CAAC,KAAK,GAAG;AAAA,YACX,CAAC;AAAA,UACH,CAAC,GAEM;AAAA,QACT;AAAA,QACA,EAAE,KAAK,IAAI,eAAe,CAAC,EAAE;AAAA,MAC/B,GAEkC,iBAAiB,CAAC;AAEpD,eAAS,OAAO,WAAW,IAAI,CAAC,SAAS;AACvC,cAAM,cAAc,QAAQ,KAAK,CAAC,MAEzB,EAAE,WAAW,QAAQ,OAAO,QAAQ,WAAW,EAAE,OAAO,CAChE,GAGK,iBAAiB,aAAa,KAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAGtE,qBAAqB,aAAa,QAErC,QAAQ,IAAI,OAAO,GAAG,OAAO,cAAe,CAAC,GAAG,GAAG,EAAE,GACpD,MAAM,GAAG,EAAE,QAET,SAAS,gBACX,MAAM,GAAG,EACV,OAAgC,CAAC,KAAK,GAAG,UAAU;AAClD,cAAI,CAAC,EAAE,WAAW,GAAG;AACnB,mBAAO;AAKT,gBAAM,SAAS,qBAAqB,qBAAqB,IAAI,GAGvD,QAAQ,cAAc,GAAG,cAAc,CAAC,IAAI,QAAQ,MAAM,CAAC;AAGjE,cAAI,OAAO;AACT,kBAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,OAAO,EAAE;AACjD,gBAAI,GAAG,IAAI,aAAa,QAAQ,GAAG,IAAI,YAAY,MAAM,GAAG,EAAE,KAAY,IAAI;AAAA,UAChF;AAEA,iBAAO;AAAA,QACT,GAAG,CAAC,CAAC;AAEP,eAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SACzB,EAAE,MAAM,OAAO,IAGjB,EAAE,KAAK;AAAA,MAChB,CAAC,GAED,gBAAgB,cAAc,QAAQ,MAAM,CAAC,GAAG,EAAE;AAElD;AAAA,IACF;AAAA,EACF;AAGA,wBAAe,QAAQ,SAAS,GAGzB,EAAE,QAAQ,cAAc;AACjC,GAEM,0BAA0B,CAC9B,QACA,aACA,aAAuB,CAAC,GACxB,UACA,eACA,kBACkB;AAClB,QAAM,UAAyB,CAAC;AAEhC,aAAW,KAAK,MAAM,GAEtB,cAAc,KAAK,MAAM;AAEzB,QAAM,SAAS,YAAY,MAAM;AAEjC,MAAI,OAAO,UAAW,UAAU;AAE9B,UAAM,UAAU,gBAAgB,UAAU,eAAe,MAAM,IAAI;AAEnE,YAAQ,KAAK,iBAAiB,QAAQ,YAAY,SAAS,MAAM,CAAC;AAAA,EACpE,WAAW,OAAO,UAAW,UAAU;AACrC,QAAI;AAKJ,QAAI,OAAO,OAAO,QAAS,UAAU;AACnC,UAAI,OAAO,SAAS,OAAO,SAAS;AAClC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAGF,gBACE,OAAO,UAAU,KACb,UAAU,iBAAiB,IAAI,OAAO,QAAQ,EAAE,IAChD,OAAO,QAAQ,IAIrB,QAAQ;AAAA,QACN,iBAAiB,QAAQ,YAAY,SAAU,OAAO,MAAM,OAAO,OAAO,MAAM;AAAA,MAClF;AAAA,IAEF;AAEA,IAAI,OAAO,YAEL,OAAO,oBACT,SAAS,KAAK;AAAA,MACZ,kBAAkB,OAAO;AAAA,MACzB;AAAA,IACF,CAAC,GAGH,OAAO,KAAK,OAAO,OAAO,EAAE,QAAQ,CAAC,iBAAiB;AACpD,YAAM,SAAS;AAAA,QACb;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,CAAC,GAAG,aAAa;AAAA,QACjB,WAAW;AAAA,MACb;AAEA,cAAQ,KAAK,GAAG,MAAM;AAAA,IACxB,CAAC;AAAA,EAEL;AAEA,oBAAW,IAAI,GAER;AACT,GAEM,mBAAmB,CACvB,QACA,YACA,SACA,MACA,QAAiC,QAEjC,SAA8B,CAAC,MAEf;AAEhB,YAAU,QAAQ,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAErD,QAAM,QAAQ,UACV,IAAI;AAAA,IACF,KAAK,QACF,MAAM,GAAG,EACT,IAAI,CAAC,OACA,GAAG,WAAW,GAAG,IACZ,cAAc,GAAG,SAAS,GAAG,IAAI,MAAM,EAAE,MAG3C,GAAG,OAAO,MAAM,OAAO,OAAO,EAAE,CAAC,KACzC,EACA,KAAK,EAAE,CAAC;AAAA,EACb,IACA;AAEJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA,YAAY,CAAC,GAAG,UAAU;AAAA,IAC1B;AAAA;AAAA,IAEA,GAAG,qCAAqC,QAAQ,SAAS,YAAY,MAAM;AAAA;AAAA,EAE7E;AACF,GAEM,0BAA0B,CAC9B,WACA,eAC4B;AAC5B,aAAW,UAAU;AACnB,QAAI,cAAc,OAAO,WAAW,OAAO,WAAW,SAAS,CAAC;AAC9D,aAAO,OAAO;AAKpB,GAGM,mBAAmB,CACvB,WACA,eACA,kBACuB;AACvB,aAAW,UAAU;AACnB,QAAI,cAAc,WAAW,OAAO,cAAc,QAAQ;AACxD,UAAI,cAAc;AAClB,eAAS,IAAI,GAAG,IAAI,cAAc,QAAQ;AACxC,YAAI,cAAc,CAAC,EAAE,cAAc,OAAO,cAAc,CAAC,CAAC,MAAM,GAAG;AACjE,wBAAc;AACd;AAAA,QACF;AAEF,UAAI;AACF,eAAO,cAAc,OAAO,mBAAmB,OAAO,mBAAmB;AAAA,IAE7E;AAGJ,GAIM,oBAAoB,CACxB,cACA,OACA,YAEI,UACE,eACK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ,CAAC,EAAE,MAAM,aAAa,GAAG,KAAK;AACxC,IAGO;AAAA,EACL,QAAQ,CAAC,KAAK;AAChB,IAIE,eACK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ,CAAC,EAAE,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;AACtE,IAGO;AAAA,EACL,QAAQ,CAAC,EAAE,GAAG,OAAO,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;AAC9C,GAKA,0BAA0B,CAG9B,EAAE,MAAM,GAAG,aAAa,GAExB,QACA,eACA,YACA,SACG;AACH,MAAI,QAAQ,OAAO,MAAM;AACzB,QAAM,gBAA0B,CAAC;AAEjC,MAAI,eAAe,iBAAiB,MAAM,MAAM,eAAe,aAAa;AAE5E,gBAAc,KAAK,MAAM,IAAI;AAE7B,QAAM,QAAsB,kBAAkB,cAAc,OAAO,OAAO,WAAW,CAAC;AAEtF,MAAI,OAAO,SAAS,GAAG;AACrB,QAAI,cAAc;AAElB,WAAQ,QAAQ,OAAO,MAAM,KAAmB;AAC9C,qBAAe,iBAAiB,MAAM,MAAM,eAAe,aAAa;AAExE,YAAM,mBAAmB,YAAY,SAAS,YAAY,OAAO,SAAS;AAE1E,kBAAY,OAAO,gBAAgB,EAAE,QAAQ;AAAA,QAC3C;AAAA,QACA;AAAA,QACA,OAAO,WAAW;AAAA,MACpB,GAEI,OAAO,SAAS,MAClB,cAAc,YAAY,OAAO,gBAAgB,EAAE,QAGrD,cAAc,KAAK,MAAM,IAAI;AAAA,IAC/B;AAAA,EACF;AAEA,UAAQ,iBAAiB,KAAK,GAG9B,MAAM,OAAO,aAAa;AAQ1B,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,IACA,aAAa,wBAAwB,MAAM,MAAM,UAAU,IAAI;AAAA,IAC/D;AAAA,EACF;AAGA,SAAI,WACF,MAAM,SAAS,EAAE,GAAG,MAAM,QAAQ,GAAG,OAAO,IAGvC;AACT;",
5
+ "names": ["routes"]
6
6
  }