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
@@ -22,253 +22,158 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
23
  var getStateFromPath_exports = {};
24
24
  __export(getStateFromPath_exports, {
25
- default: () => getStateFromPath,
26
- getMatchableRouteConfigs: () => getMatchableRouteConfigs,
27
- getUrlWithReactNavigationConcessions: () => getUrlWithReactNavigationConcessions,
28
- stripBaseUrl: () => stripBaseUrl
25
+ getStateFromPath: () => getStateFromPath
29
26
  });
30
27
  module.exports = __toCommonJS(getStateFromPath_exports);
31
- var import_escape_string_regexp = __toESM(require("escape-string-regexp"), 1), import_matchers = require("../router/matchers"), import_findFocusedRoute = require("./findFocusedRoute"), import_validatePathConfig = __toESM(require("./validatePathConfig"), 1);
32
- function getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {
33
- let parsed;
34
- try {
35
- parsed = new URL(path, baseUrl || "http://phony.example");
36
- } catch (err) {
37
- return console.warn(`Error parsing url ${path}: ${err?.message}`), {
38
- nonstandardPathname: path,
39
- inputPathnameWithoutHash: path.replace(/#.*$/g, ""),
40
- url: null
41
- };
28
+ var import_escape_string_regexp = __toESM(require("escape-string-regexp"), 1), import_findFocusedRoute = require("./findFocusedRoute"), import_validatePathConfig = require("./validatePathConfig"), import_getStateFromPath_mods = require("./getStateFromPath-mods");
29
+ function getStateFromPath(path, options) {
30
+ const { initialRoutes, configs, configWithRegexes } = getConfigResources(options), screens = options?.screens, pathData = (0, import_getStateFromPath_mods.getUrlWithReactNavigationConcessions)(path);
31
+ let remaining = pathData.nonstandardPathname.replace(/\/+/g, "/").replace(/^\//, "").replace(/\?.*$/, "");
32
+ remaining = remaining.endsWith("/") ? remaining : `${remaining}/`;
33
+ const prefix = options?.path?.replace(/^\//, "");
34
+ if (prefix) {
35
+ const normalizedPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
36
+ if (!remaining.startsWith(normalizedPrefix))
37
+ return;
38
+ remaining = remaining.replace(normalizedPrefix, "");
39
+ }
40
+ if (screens === void 0) {
41
+ const routes2 = remaining.split("/").filter(Boolean).map((segment) => ({ name: decodeURIComponent(segment) }));
42
+ return routes2.length ? createNestedStateObject(pathData, routes2, initialRoutes, [], pathData.url.hash) : void 0;
43
+ }
44
+ if (remaining === "/") {
45
+ const match = (0, import_getStateFromPath_mods.matchForEmptyPath)(configWithRegexes);
46
+ return match ? createNestedStateObject(
47
+ pathData,
48
+ // @modified: pass pathData instead of path
49
+ match.routeNames.map((name) => ({ name })),
50
+ initialRoutes,
51
+ configs
52
+ ) : void 0;
42
53
  }
43
- const pathname = parsed.pathname;
54
+ let result, current;
55
+ const { routes, remainingPath } = matchAgainstConfigs(remaining, configWithRegexes);
56
+ if (routes !== void 0 && (current = createNestedStateObject(pathData, routes, initialRoutes, configs), remaining = remainingPath, result = current), !(current == null || result == null))
57
+ return result;
58
+ }
59
+ const cachedConfigResources = /* @__PURE__ */ new WeakMap();
60
+ function getConfigResources(options) {
61
+ if (!options) return prepareConfigResources();
62
+ const cached = cachedConfigResources.get(options);
63
+ if (cached) return cached;
64
+ const resources = prepareConfigResources(options);
65
+ return cachedConfigResources.set(options, resources), resources;
66
+ }
67
+ function prepareConfigResources(options, previousSegments) {
68
+ options && (0, import_validatePathConfig.validatePathConfig)(options);
69
+ const initialRoutes = getInitialRoutes(options), configs = getNormalizedConfigs(initialRoutes, options?.screens, previousSegments);
70
+ checkForDuplicatedConfigs(configs);
71
+ const configWithRegexes = getConfigsWithRegexes(configs);
44
72
  return {
45
- // The slashes are at the end, not the beginning
46
- nonstandardPathname: stripBaseUrl(pathname, baseUrl).replace(/^\/+/g, "").replace(/\/+$/g, "") + "/",
47
- url: parsed
73
+ initialRoutes,
74
+ configs,
75
+ configWithRegexes
48
76
  };
49
77
  }
50
- function getStateFromPath(path, options) {
51
- const { initialRoutes, configs } = getMatchableRouteConfigs(options);
52
- return getStateFromPathWithConfigs(path, configs, initialRoutes);
53
- }
54
- function getMatchableRouteConfigs(options) {
55
- options && (0, import_validatePathConfig.default)(options);
56
- const screens = options?.screens;
57
- if (!screens)
58
- throw Error("You must pass a 'screens' object to 'getStateFromPath' to generate a path.");
78
+ function getInitialRoutes(options) {
59
79
  const initialRoutes = [];
60
- options?.initialRouteName && initialRoutes.push({
80
+ return options?.initialRouteName && initialRoutes.push({
61
81
  initialRouteName: options.initialRouteName,
62
82
  parentScreens: []
63
- });
64
- const converted = Object.keys(screens).flatMap((key) => createNormalizedConfigs(key, screens, [], initialRoutes)).flat(), resolvedInitialPatterns = initialRoutes.map(
65
- (route) => joinPaths(...route.parentScreens, route.initialRouteName)
66
- ), configs = converted.map((config) => ({
67
- ...config,
68
- // TODO: Probably a safer way to do this
69
- // Mark initial routes to give them potential priority over other routes that match.
70
- isInitial: resolvedInitialPatterns.includes(config.routeNames.join("/"))
71
- })).sort(sortConfigs);
72
- return assertConfigDuplicates(configs), { configs, initialRoutes };
83
+ }), initialRoutes;
73
84
  }
74
- function assertConfigDuplicates(configs) {
85
+ function getNormalizedConfigs(initialRoutes, screens = {}, previousSegments) {
86
+ return [].concat(
87
+ ...Object.keys(screens).map(
88
+ (key) => createNormalizedConfigs(key, screens, [], initialRoutes, [])
89
+ )
90
+ ).map((0, import_getStateFromPath_mods.appendIsInitial)(initialRoutes)).sort((0, import_getStateFromPath_mods.getRouteConfigSorter)(previousSegments));
91
+ }
92
+ function checkForDuplicatedConfigs(configs) {
75
93
  configs.reduce((acc, config) => {
76
- const indexedKey = config.regex?.toString() ?? config.pattern, alpha = acc[indexedKey];
77
- if (alpha && !alpha.hasChildren && !config.hasChildren) {
78
- const a = alpha.routeNames, b = config.routeNames;
79
- if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it))) {
80
- const last = config.pattern.split("/").pop();
81
- if (!last?.match(/^\*not-found$/)) {
82
- const routeType = last?.startsWith(":") ? "dynamic route" : last?.startsWith("*") ? "dynamic-rest route" : "route";
83
- throw new Error(
84
- `The ${routeType} pattern '${config.pattern || "/"}' resolves to both '${alpha.userReadableName}' and '${config.userReadableName}'. Patterns must be unique and cannot resolve to more than one route.`
85
- );
86
- }
87
- }
94
+ if (acc[config.pattern]) {
95
+ const a = acc[config.pattern].routeNames, b = config.routeNames;
96
+ if (!(a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it)))
97
+ throw new Error(
98
+ `Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(" > ")}' and '${b.join(
99
+ " > "
100
+ )}'. Patterns must be unique and cannot resolve to more than one screen.`
101
+ );
88
102
  }
89
103
  return Object.assign(acc, {
90
- [indexedKey]: config
104
+ [config.pattern]: config
91
105
  });
92
106
  }, {});
93
107
  }
94
- function sortConfigs(a, b) {
95
- if (a.pattern === b.pattern)
96
- return b.routeNames.join(">").localeCompare(a.routeNames.join(">"));
97
- if (a.pattern.startsWith(b.pattern) && // NOTE: This is a hack to make sure that `*` is always at the end
98
- b.screen !== "index")
99
- return -1;
100
- if (b.pattern.startsWith(a.pattern) && a.screen !== "index")
101
- return 1;
102
- const aParts = a.pattern.split("/").filter((part) => (0, import_matchers.matchGroupName)(part) == null);
103
- (a.screen === "index" || a.screen.match(/\/index$/)) && aParts.push("index");
104
- const bParts = b.pattern.split("/").filter((part) => (0, import_matchers.matchGroupName)(part) == null);
105
- (b.screen === "index" || b.screen.match(/\/index$/)) && bParts.push("index");
106
- for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
107
- if (aParts[i] == null)
108
- return 1;
109
- if (bParts[i] == null)
110
- return -1;
111
- const aWildCard = aParts[i].startsWith("*"), bWildCard = bParts[i].startsWith("*");
112
- if (aWildCard && bWildCard) {
113
- const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
114
- if (aNotFound && bNotFound)
115
- continue;
116
- if (aNotFound)
117
- return 1;
118
- if (bNotFound)
119
- return -1;
120
- continue;
121
- }
122
- if (aWildCard)
123
- return 1;
124
- if (bWildCard)
125
- return -1;
126
- const aSlug = aParts[i].startsWith(":"), bSlug = bParts[i].startsWith(":");
127
- if (aSlug && bSlug) {
128
- const aNotFound = aParts[i].match(/^[*]not-found$/), bNotFound = bParts[i].match(/^[*]not-found$/);
129
- if (aNotFound && bNotFound)
130
- continue;
131
- if (aNotFound)
132
- return 1;
133
- if (bNotFound)
134
- return -1;
135
- continue;
136
- }
137
- if (aSlug)
138
- return 1;
139
- if (bSlug)
140
- return -1;
141
- }
142
- return a.isInitial && !b.isInitial ? -1 : !a.isInitial && b.isInitial ? 1 : bParts.length - aParts.length;
108
+ function getConfigsWithRegexes(configs) {
109
+ return configs.map((c) => ({
110
+ ...c,
111
+ // Add `$` to the regex to make sure it matches till end of the path and not just beginning
112
+ // @modified - start
113
+ // regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,
114
+ regex: c.pattern ? new RegExp(`^(${c.pattern.split("/").map(import_getStateFromPath_mods.formatRegexPattern).join("")})$`) : void 0
115
+ // @modified - end
116
+ }));
143
117
  }
144
- function getStateFromEmptyPathWithConfigs(path, hash, configs, initialRoutes) {
145
- const leafNodes = configs.filter((config) => !config.hasChildren).map((value) => ({
146
- ...value,
147
- // Collapse all levels of group segments before testing.
148
- // This enables `app/(one)/(two)/index.js` to be matched.
149
- path: (0, import_matchers.stripGroupSegmentsFromPath)(value.path)
150
- })), match = leafNodes.find(
151
- (config) => (
152
- // NOTE: Test leaf node index routes that either don't have a regex or match an empty string.
153
- config.path === "" && (!config.regex || config.regex.test(""))
154
- )
155
- ) ?? leafNodes.find(
156
- (config) => (
157
- // NOTE: Test leaf node dynamic routes that match an empty string.
158
- config.path.startsWith(":") && config.regex.test("")
159
- )
160
- ) ?? // NOTE: Test leaf node deep dynamic routes that match a slash.
161
- // This should be done last to enable dynamic routes having a higher priority.
162
- leafNodes.find((config) => config.path.startsWith("*") && config.regex.test("/"));
163
- if (!match)
164
- return;
165
- const routes = match.routeNames.map((name) => match._route ? {
166
- name,
167
- _route: match._route
168
- } : { name });
169
- return createNestedStateObject(path, hash, routes, configs, initialRoutes);
170
- }
171
- function getStateFromPathWithConfigs(path, configs, initialRoutes, baseUrl = process.env.EXPO_BASE_URL) {
172
- const formattedPaths = getUrlWithReactNavigationConcessions(path);
173
- if (!formattedPaths.url) {
174
- console.warn(`No url found for ${path}`);
175
- return;
176
- }
177
- let cleanPath = stripBaseUrl((0, import_matchers.stripGroupSegmentsFromPath)(formattedPaths.url.pathname), baseUrl) + formattedPaths.url.search;
178
- if (path.startsWith("/") || (cleanPath = cleanPath.slice(1)), formattedPaths.nonstandardPathname === "/")
179
- return getStateFromEmptyPathWithConfigs(
180
- cleanPath,
181
- formattedPaths.url.hash.slice(1),
182
- configs,
183
- initialRoutes
184
- );
185
- const routes = matchAgainstConfigs(formattedPaths.nonstandardPathname, configs);
186
- if (routes != null)
187
- return createNestedStateObject(
188
- cleanPath,
189
- formattedPaths.url.hash.slice(1),
190
- routes,
191
- configs,
192
- initialRoutes
193
- );
194
- }
195
- const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/");
196
- function matchAgainstConfigs(remaining, configs) {
118
+ const joinPaths = (...paths) => [].concat(...paths.map((p) => p.split("/"))).filter(Boolean).join("/"), matchAgainstConfigs = (remaining, configs) => {
197
119
  let routes, remainingPath = remaining;
120
+ const allParams = /* @__PURE__ */ Object.create(null);
198
121
  for (const config of configs) {
199
122
  if (!config.regex)
200
123
  continue;
201
124
  const match = remainingPath.match(config.regex);
202
- if (!match)
203
- continue;
204
- const matchedParams = config.pattern?.split("/").filter((p) => p.match(/^[:*]/)).reduce((acc, p, i) => p.match(/^\*/) ? {
205
- ...acc,
206
- [p]: match[(i + 1) * 2]
207
- //?.replace(/\//, ""),
208
- } : Object.assign(acc, {
209
- // The param segments appear every second item starting from 2 in the regex match result.
210
- // This will only work if we ensure groups aren't included in the match.
211
- [p]: match[(i + 1) * 2]?.replace(/\//, "")
212
- }), {}), routeFromName = (name) => {
213
- const config2 = configs.find((c) => c.screen === name);
214
- if (!config2?.path)
215
- return { name };
216
- const segments = config2.path.split("/"), params = {};
217
- return segments.filter((p) => p.match(/^[:*]/)).forEach((p) => {
218
- let value = matchedParams[p];
219
- if (value) {
220
- p.match(/^\*/) && (value = value?.split("/").filter(Boolean));
221
- const key = p.replace(/^[:*]/, "").replace(/\?$/, "");
222
- params[key] = config2.parse?.[key] ? config2.parse[key](value) : value;
223
- }
224
- }), params && Object.keys(params).length ? { name, params } : { name };
225
- };
226
- routes = config.routeNames.map((name) => config._route ? {
227
- ...routeFromName(name),
228
- _route: config._route
229
- } : { ...routeFromName(name) });
230
- const combinedParams = routes.reduce(
231
- (acc, r) => Object.assign(acc, r.params),
232
- {}
233
- ), hasCombinedParams = Object.keys(combinedParams).length > 0;
234
- routes = routes.map((r) => (hasCombinedParams && (r.params = combinedParams), r)), remainingPath = remainingPath.replace(match[1], "");
235
- break;
125
+ if (match) {
126
+ const matchedParams = (config.pattern?.split("/").reduce(
127
+ (acc, p, index) => {
128
+ if (!p.startsWith(":"))
129
+ return acc;
130
+ acc.pos += 1;
131
+ const decodedParamSegment = (0, import_getStateFromPath_mods.decodeURIComponentSafe)(
132
+ // @modified: use decodeURIComponent**Safe**
133
+ // The param segments appear every second item starting from 2 in the regex match result
134
+ match[(acc.pos + 1) * 2].replace(/\/$/, "")
135
+ );
136
+ return Object.assign(acc.matchedParams, {
137
+ [p]: Object.assign(acc.matchedParams[p] || {}, {
138
+ [index]: decodedParamSegment
139
+ })
140
+ }), acc;
141
+ },
142
+ { pos: -1, matchedParams: {} }
143
+ )).matchedParams || {};
144
+ routes = config.routeNames.map((name) => {
145
+ 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(`${(0, import_escape_string_regexp.default)(normalizedPath)}$`), "")?.split("/").length, params = normalizedPath?.split("/").reduce((acc, p, index) => {
146
+ if (!p.startsWith(":"))
147
+ return acc;
148
+ const offset = numInitialSegments ? numInitialSegments - 1 : 0, value = (0, import_getStateFromPath_mods.getParamValue)(p, matchedParams[p]?.[index + offset]);
149
+ if (value) {
150
+ const key = p.replace(/^:/, "").replace(/\?$/, "");
151
+ acc[key] = routeConfig?.parse?.[key] ? routeConfig.parse[key](value) : value;
152
+ }
153
+ return acc;
154
+ }, {});
155
+ return params && Object.keys(params).length ? { name, params } : { name };
156
+ }), remainingPath = remainingPath.replace(match[1], "");
157
+ break;
158
+ }
236
159
  }
237
- return routes;
238
- }
239
- function equalHeritage(a, b) {
240
- if (a.length !== b.length)
241
- return !1;
242
- for (let i = 0; i < a.length; i++)
243
- if (a[i].localeCompare(b[i]) !== 0)
244
- return !1;
245
- return !0;
246
- }
247
- const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials = [], parentScreens = [], parentPattern) => {
160
+ return (0, import_getStateFromPath_mods.populateParams)(routes, allParams), { routes, remainingPath };
161
+ }, createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials, parentScreens, parentPattern) => {
248
162
  const configs = [];
249
163
  routeNames.push(screen), parentScreens.push(screen);
250
164
  const config = routeConfig[screen];
251
165
  if (typeof config == "string") {
252
166
  const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
253
- configs.push(createConfigItem(screen, routeNames, pattern, config, !1));
167
+ configs.push(createConfigItem(screen, routeNames, pattern, config));
254
168
  } else if (typeof config == "object") {
255
169
  let pattern;
256
- const { _route } = config;
257
170
  if (typeof config.path == "string") {
258
171
  if (config.exact && config.path === void 0)
259
172
  throw new Error(
260
173
  "A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`."
261
174
  );
262
175
  pattern = config.exact !== !0 ? joinPaths(parentPattern || "", config.path || "") : config.path || "", configs.push(
263
- createConfigItem(
264
- screen,
265
- routeNames,
266
- pattern,
267
- config.path,
268
- config.screens ? !!Object.keys(config.screens)?.length : !1,
269
- config.parse,
270
- _route
271
- )
176
+ createConfigItem(screen, routeNames, pattern, config.path, config.parse, config)
272
177
  );
273
178
  }
274
179
  config.screens && (config.initialRouteName && initials.push({
@@ -287,13 +192,11 @@ const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials
287
192
  }));
288
193
  }
289
194
  return routeNames.pop(), configs;
290
- };
291
- function formatRegexPattern(it) {
292
- return it = it.replace(" ", "%20"), it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : it.startsWith("*") ? `((.*\\/)${it.endsWith("?") ? "?" : ""})` : (0, import_matchers.matchGroupName)(it) != null ? `(?:${(0, import_escape_string_regexp.default)(it)}\\/)?` : (0, import_escape_string_regexp.default)(it) + "\\/";
293
- }
294
- const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse, _route) => {
195
+ }, createConfigItem = (screen, routeNames, pattern, path, parse = void 0, config = {}) => {
295
196
  pattern = pattern.split("/").filter(Boolean).join("/");
296
- const regex = pattern ? new RegExp(`^(${pattern.split("/").map(formatRegexPattern).join("")})$`) : void 0;
197
+ const regex = pattern ? new RegExp(
198
+ `^(${pattern.split("/").map((it) => it.startsWith(":") ? `(([^/]+\\/)${it.endsWith("?") ? "?" : ""})` : `${it === "*" ? ".*" : (0, import_escape_string_regexp.default)(it)}\\/`).join("")})`
199
+ ) : void 0;
297
200
  return {
298
201
  screen,
299
202
  regex,
@@ -302,19 +205,27 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
302
205
  // The routeNames array is mutated, so copy it to keep the current state
303
206
  routeNames: [...routeNames],
304
207
  parse,
305
- userReadableName: [...routeNames.slice(0, -1), path || screen].join("/"),
306
- hasChildren: !!hasChildren,
307
- _route
208
+ // @modified - start
209
+ ...(0, import_getStateFromPath_mods.createConfigItemAdditionalProperties)(screen, pattern, routeNames, config)
210
+ // @modified - end
308
211
  };
309
- }, findParseConfigForRoute = (routeName, routeConfigs) => {
310
- for (const config of routeConfigs)
212
+ }, findParseConfigForRoute = (routeName, flatConfig) => {
213
+ for (const config of flatConfig)
311
214
  if (routeName === config.routeNames[config.routeNames.length - 1])
312
215
  return config.parse;
313
216
  }, findInitialRoute = (routeName, parentScreens, initialRoutes) => {
314
217
  for (const config of initialRoutes)
315
- if (equalHeritage(parentScreens, config.parentScreens))
316
- return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
317
- }, createStateObject = (route, isEmpty, initialRoute) => isEmpty ? initialRoute ? {
218
+ if (parentScreens.length === config.parentScreens.length) {
219
+ let sameParents = !0;
220
+ for (let i = 0; i < parentScreens.length; i++)
221
+ if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {
222
+ sameParents = !1;
223
+ break;
224
+ }
225
+ if (sameParents)
226
+ return routeName !== config.initialRouteName ? config.initialRouteName : void 0;
227
+ }
228
+ }, createStateObject = (initialRoute, route, isEmpty) => isEmpty ? initialRoute ? {
318
229
  index: 1,
319
230
  routes: [{ name: initialRoute }, route]
320
231
  } : {
@@ -324,58 +235,31 @@ const createConfigItem = (screen, routeNames, pattern, path, hasChildren, parse,
324
235
  routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }]
325
236
  } : {
326
237
  routes: [{ ...route, state: { routes: [] } }]
327
- }, createNestedStateObject = (path, hash, routes, routeConfigs, initialRoutes) => {
238
+ }, createNestedStateObject = ({ path, ...restPathData }, routes, initialRoutes, flatConfig, hash) => {
328
239
  let route = routes.shift();
329
240
  const parentScreens = [];
330
241
  let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
331
242
  parentScreens.push(route.name);
332
- const state = createStateObject(route, routes.length === 0, initialRoute);
243
+ const state = createStateObject(initialRoute, route, routes.length === 0);
333
244
  if (routes.length > 0) {
334
245
  let nestedState = state;
335
246
  for (; route = routes.shift(); ) {
336
247
  initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
337
248
  const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;
338
249
  nestedState.routes[nestedStateIndex].state = createStateObject(
250
+ initialRoute,
339
251
  route,
340
- routes.length === 0,
341
- initialRoute
252
+ routes.length === 0
342
253
  ), routes.length > 0 && (nestedState = nestedState.routes[nestedStateIndex].state), parentScreens.push(route.name);
343
254
  }
344
255
  }
345
- route = (0, import_findFocusedRoute.findFocusedRoute)(state), route.path = path;
346
- const params = parseQueryParams(route.path, findParseConfigForRoute(route.name, routeConfigs));
347
- if (params) {
348
- route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params);
349
- for (const [name, value] of Object.entries(params))
350
- if (route.params?.[name] && process.env.NODE_ENV !== "production" && console.warn(
351
- `Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`
352
- ), !route.params?.[name]) {
353
- route.params[name] = value;
354
- continue;
355
- }
356
- Object.keys(route.params).length === 0 && delete route.params;
357
- }
358
- return hash && (route.params = Object.assign(/* @__PURE__ */ Object.create(null), route.params), route.params["#"] = hash), state;
359
- }, parseQueryParams = (path, parseConfig) => {
360
- const query = path.split("?")[1], searchParams = new URLSearchParams(query), params = Object.fromEntries(
361
- // @ts-ignore: [Symbol.iterator] is indeed, available on every platform.
362
- searchParams
256
+ route = (0, import_findFocusedRoute.findFocusedRoute)(state), route.path = restPathData.pathWithoutGroups;
257
+ const params = (0, import_getStateFromPath_mods.parseQueryParamsExtended)(
258
+ path,
259
+ route,
260
+ flatConfig ? findParseConfigForRoute(route.name, flatConfig) : void 0,
261
+ hash
363
262
  );
364
- return parseConfig && Object.keys(params).forEach((name) => {
365
- Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] == "string" && (params[name] = parseConfig[name](params[name]));
366
- }), Object.keys(params).length ? params : void 0;
367
- }, baseUrlCache = /* @__PURE__ */ new Map();
368
- function getBaseUrlRegex(baseUrl) {
369
- if (baseUrlCache.has(baseUrl))
370
- return baseUrlCache.get(baseUrl);
371
- const regex = new RegExp(`^\\/?${(0, import_escape_string_regexp.default)(baseUrl)}`, "g");
372
- return baseUrlCache.set(baseUrl, regex), regex;
373
- }
374
- function stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
375
- if (process.env.NODE_ENV !== "development" && baseUrl) {
376
- const reg = getBaseUrlRegex(baseUrl);
377
- return path.replace(/^\/+/g, "/").replace(reg, "");
378
- }
379
- return path;
380
- }
263
+ return params && (route.params = { ...route.params, ...params }), state;
264
+ };
381
265
  //# 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": ["validatePathConfig", "config", "escape"]
4
+ "mappings": "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",
5
+ "names": ["routes", "escape"]
6
6
  }