one 1.1.390 → 1.1.391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) 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/fork/NavigationContainer.cjs +49 -31
  7. package/dist/cjs/fork/NavigationContainer.js +40 -21
  8. package/dist/cjs/fork/NavigationContainer.js.map +2 -2
  9. package/dist/cjs/fork/NavigationContainer.native.js +51 -29
  10. package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
  11. package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
  12. package/dist/cjs/fork/createMemoryHistory.js +3 -2
  13. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  14. package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
  15. package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
  16. package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
  17. package/dist/cjs/fork/extractPathFromURL.js +44 -21
  18. package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
  19. package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
  20. package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
  21. package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
  22. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  23. package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
  24. package/dist/cjs/fork/getPathFromState-mods.js +56 -0
  25. package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
  26. package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
  27. package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
  28. package/dist/cjs/fork/getPathFromState.cjs +75 -224
  29. package/dist/cjs/fork/getPathFromState.js +68 -223
  30. package/dist/cjs/fork/getPathFromState.js.map +2 -2
  31. package/dist/cjs/fork/getPathFromState.native.js +79 -261
  32. package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
  33. package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
  34. package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
  35. package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
  36. package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
  37. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
  38. package/dist/cjs/fork/getStateFromPath.cjs +181 -263
  39. package/dist/cjs/fork/getStateFromPath.js +148 -264
  40. package/dist/cjs/fork/getStateFromPath.js.map +2 -2
  41. package/dist/cjs/fork/getStateFromPath.native.js +164 -304
  42. package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
  43. package/dist/cjs/fork/useBackButton.js.map +1 -1
  44. package/dist/cjs/fork/useBackButton.native.js.map +1 -1
  45. package/dist/cjs/fork/useDocumentTitle.js +4 -1
  46. package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
  47. package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
  48. package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
  49. package/dist/cjs/fork/useLinking.cjs +21 -24
  50. package/dist/cjs/fork/useLinking.js +21 -25
  51. package/dist/cjs/fork/useLinking.js.map +2 -2
  52. package/dist/cjs/fork/useLinking.native.js +68 -66
  53. package/dist/cjs/fork/useLinking.native.js.map +2 -2
  54. package/dist/cjs/fork/useThenable.js.map +1 -1
  55. package/dist/cjs/fork/useThenable.native.js.map +1 -1
  56. package/dist/cjs/fork/validatePathConfig.cjs +32 -11
  57. package/dist/cjs/fork/validatePathConfig.js +41 -11
  58. package/dist/cjs/fork/validatePathConfig.js.map +1 -1
  59. package/dist/cjs/fork/validatePathConfig.native.js +47 -18
  60. package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
  61. package/dist/cjs/layouts/withLayoutContext.cjs +1 -1
  62. package/dist/cjs/layouts/withLayoutContext.js +1 -1
  63. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  64. package/dist/cjs/layouts/withLayoutContext.native.js +1 -1
  65. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  66. package/dist/cjs/link/linking.cjs +4 -4
  67. package/dist/cjs/link/linking.js +3 -3
  68. package/dist/cjs/link/linking.js.map +2 -2
  69. package/dist/cjs/link/linking.native.js +3 -3
  70. package/dist/cjs/link/linking.native.js.map +1 -1
  71. package/dist/cjs/link/useLinkTo.cjs +2 -2
  72. package/dist/cjs/link/useLinkTo.js +2 -2
  73. package/dist/cjs/link/useLinkTo.js.map +1 -1
  74. package/dist/cjs/link/useLinkTo.native.js +2 -2
  75. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  76. package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
  77. package/dist/cjs/router/getNormalizedStatePath.js +2 -2
  78. package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
  79. package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
  80. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  81. package/dist/cjs/router/router.cjs +19 -3
  82. package/dist/cjs/router/router.js +25 -3
  83. package/dist/cjs/router/router.js.map +1 -1
  84. package/dist/cjs/router/router.native.js +39 -3
  85. package/dist/cjs/router/router.native.js.map +2 -2
  86. package/dist/esm/Root.js +6 -2
  87. package/dist/esm/Root.js.map +1 -1
  88. package/dist/esm/Root.mjs +1 -1
  89. package/dist/esm/Root.mjs.map +1 -1
  90. package/dist/esm/Root.native.js +1 -1
  91. package/dist/esm/Root.native.js.map +2 -2
  92. package/dist/esm/fork/NavigationContainer.js +43 -20
  93. package/dist/esm/fork/NavigationContainer.js.map +1 -1
  94. package/dist/esm/fork/NavigationContainer.mjs +42 -24
  95. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  96. package/dist/esm/fork/NavigationContainer.native.js +44 -24
  97. package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
  98. package/dist/esm/fork/createMemoryHistory.js +3 -2
  99. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  100. package/dist/esm/fork/createMemoryHistory.mjs +4 -3
  101. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  102. package/dist/esm/fork/createMemoryHistory.native.js +4 -4
  103. package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
  104. package/dist/esm/fork/extractPathFromURL.js +42 -11
  105. package/dist/esm/fork/extractPathFromURL.js.map +1 -1
  106. package/dist/esm/fork/extractPathFromURL.mjs +39 -11
  107. package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
  108. package/dist/esm/fork/extractPathFromURL.native.js +52 -15
  109. package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
  110. package/dist/esm/fork/findFocusedRoute.js.map +1 -1
  111. package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
  112. package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
  113. package/dist/esm/fork/getPathFromState-mods.js +40 -0
  114. package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
  115. package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
  116. package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
  117. package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
  118. package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
  119. package/dist/esm/fork/getPathFromState.js +71 -228
  120. package/dist/esm/fork/getPathFromState.js.map +2 -2
  121. package/dist/esm/fork/getPathFromState.mjs +73 -221
  122. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  123. package/dist/esm/fork/getPathFromState.native.js +79 -260
  124. package/dist/esm/fork/getPathFromState.native.js.map +2 -2
  125. package/dist/esm/fork/getStateFromPath-mods.js +176 -0
  126. package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
  127. package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
  128. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
  129. package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
  130. package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
  131. package/dist/esm/fork/getStateFromPath.js +160 -265
  132. package/dist/esm/fork/getStateFromPath.js.map +2 -2
  133. package/dist/esm/fork/getStateFromPath.mjs +181 -260
  134. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  135. package/dist/esm/fork/getStateFromPath.native.js +164 -302
  136. package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
  137. package/dist/esm/fork/useBackButton.js.map +1 -1
  138. package/dist/esm/fork/useBackButton.mjs.map +1 -1
  139. package/dist/esm/fork/useBackButton.native.js.map +1 -1
  140. package/dist/esm/fork/useDocumentTitle.js +4 -1
  141. package/dist/esm/fork/useDocumentTitle.js.map +1 -1
  142. package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
  143. package/dist/esm/fork/useDocumentTitle.native.js +1 -1
  144. package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
  145. package/dist/esm/fork/useLinking.js +22 -26
  146. package/dist/esm/fork/useLinking.js.map +1 -1
  147. package/dist/esm/fork/useLinking.mjs +20 -23
  148. package/dist/esm/fork/useLinking.mjs.map +1 -1
  149. package/dist/esm/fork/useLinking.native.js +65 -67
  150. package/dist/esm/fork/useLinking.native.js.map +2 -2
  151. package/dist/esm/fork/useThenable.js.map +1 -1
  152. package/dist/esm/fork/useThenable.mjs.map +1 -1
  153. package/dist/esm/fork/useThenable.native.js.map +1 -1
  154. package/dist/esm/fork/validatePathConfig.js +41 -11
  155. package/dist/esm/fork/validatePathConfig.js.map +1 -1
  156. package/dist/esm/fork/validatePathConfig.mjs +32 -11
  157. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  158. package/dist/esm/fork/validatePathConfig.native.js +43 -18
  159. package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
  160. package/dist/esm/layouts/withLayoutContext.js +1 -1
  161. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  162. package/dist/esm/layouts/withLayoutContext.mjs +1 -1
  163. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  164. package/dist/esm/layouts/withLayoutContext.native.js +1 -1
  165. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  166. package/dist/esm/link/linking.js +2 -2
  167. package/dist/esm/link/linking.js.map +1 -1
  168. package/dist/esm/link/linking.mjs +2 -2
  169. package/dist/esm/link/linking.mjs.map +1 -1
  170. package/dist/esm/link/linking.native.js +2 -2
  171. package/dist/esm/link/linking.native.js.map +1 -1
  172. package/dist/esm/link/useLinkTo.js +1 -1
  173. package/dist/esm/link/useLinkTo.mjs +1 -1
  174. package/dist/esm/link/useLinkTo.native.js +1 -1
  175. package/dist/esm/router/getNormalizedStatePath.js +1 -1
  176. package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
  177. package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
  178. package/dist/esm/router/router.js +24 -2
  179. package/dist/esm/router/router.js.map +1 -1
  180. package/dist/esm/router/router.mjs +18 -2
  181. package/dist/esm/router/router.mjs.map +1 -1
  182. package/dist/esm/router/router.native.js +38 -2
  183. package/dist/esm/router/router.native.js.map +2 -2
  184. package/package.json +8 -9
  185. package/src/Root.tsx +6 -2
  186. package/src/fork/NavigationContainer.tsx +101 -39
  187. package/src/fork/createMemoryHistory.tsx +15 -13
  188. package/src/fork/extractPathFromURL.ts +85 -40
  189. package/src/fork/findFocusedRoute.tsx +9 -1
  190. package/src/fork/getPathFromState-mods.ts +142 -0
  191. package/src/fork/getPathFromState.ts +244 -501
  192. package/src/fork/getStateFromPath-mods.ts +400 -0
  193. package/src/fork/getStateFromPath.ts +447 -538
  194. package/src/fork/useBackButton.native.tsx +16 -2
  195. package/src/fork/useBackButton.tsx +11 -2
  196. package/src/fork/useDocumentTitle.native.tsx +9 -4
  197. package/src/fork/useDocumentTitle.tsx +12 -7
  198. package/src/fork/useLinking.native.ts +71 -63
  199. package/src/fork/useLinking.ts +75 -40
  200. package/src/fork/useThenable.tsx +7 -1
  201. package/src/fork/validatePathConfig.ts +64 -12
  202. package/src/layouts/withLayoutContext.tsx +1 -1
  203. package/src/link/linking.ts +2 -2
  204. package/src/link/useLinkTo.tsx +1 -1
  205. package/src/router/getNormalizedStatePath.tsx +1 -1
  206. package/src/router/router.ts +41 -2
  207. package/types/Root.d.ts.map +1 -1
  208. package/types/fork/NavigationContainer.d.ts +19 -8
  209. package/types/fork/NavigationContainer.d.ts.map +1 -1
  210. package/types/fork/createMemoryHistory.d.ts +10 -1
  211. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  212. package/types/fork/extractPathFromURL.d.ts +7 -1
  213. package/types/fork/extractPathFromURL.d.ts.map +1 -1
  214. package/types/fork/findFocusedRoute.d.ts +9 -0
  215. package/types/fork/findFocusedRoute.d.ts.map +1 -1
  216. package/types/fork/getPathFromState-mods.d.ts +23 -0
  217. package/types/fork/getPathFromState-mods.d.ts.map +1 -0
  218. package/types/fork/getPathFromState.d.ts +15 -14
  219. package/types/fork/getPathFromState.d.ts.map +1 -1
  220. package/types/fork/getStateFromPath-mods.d.ts +58 -0
  221. package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
  222. package/types/fork/getStateFromPath.d.ts +28 -29
  223. package/types/fork/getStateFromPath.d.ts.map +1 -1
  224. package/types/fork/useBackButton.d.ts +6 -0
  225. package/types/fork/useBackButton.d.ts.map +1 -1
  226. package/types/fork/useBackButton.native.d.ts +9 -1
  227. package/types/fork/useBackButton.native.d.ts.map +1 -1
  228. package/types/fork/useDocumentTitle.d.ts +8 -6
  229. package/types/fork/useDocumentTitle.d.ts.map +1 -1
  230. package/types/fork/useDocumentTitle.native.d.ts +5 -2
  231. package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
  232. package/types/fork/useLinking.d.ts +8 -1
  233. package/types/fork/useLinking.d.ts.map +1 -1
  234. package/types/fork/useLinking.native.d.ts +9 -2
  235. package/types/fork/useLinking.native.d.ts.map +1 -1
  236. package/types/fork/useThenable.d.ts +6 -0
  237. package/types/fork/useThenable.d.ts.map +1 -1
  238. package/types/fork/validatePathConfig.d.ts +8 -1
  239. package/types/fork/validatePathConfig.d.ts.map +1 -1
  240. package/types/link/linking.d.ts +2 -2
  241. package/types/link/linking.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
  }