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
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var getPathFromState_mods_exports = {};
17
+ __export(getPathFromState_mods_exports, {
18
+ appendBaseUrl: () => appendBaseUrl,
19
+ getParamName: () => getParamName,
20
+ getPathWithConventionsCollapsed: () => getPathWithConventionsCollapsed
21
+ });
22
+ module.exports = __toCommonJS(getPathFromState_mods_exports);
23
+ var import_matchers = require("../router/matchers");
24
+ function getPathWithConventionsCollapsed(param) {
25
+ var { pattern, route, params, preserveGroups, preserveDynamicRoutes, shouldEncodeURISegment = !0, initialRouteName } = param, segments = pattern.split("/");
26
+ return segments.map(function(p, i) {
27
+ var name = getParamName(p);
28
+ if (p.startsWith("*"))
29
+ return preserveDynamicRoutes ? name === "not-found" ? "+not-found" : `[...${name}]` : params[name] ? Array.isArray(params[name]) ? params[name].join("/") : params[name] : route.name.startsWith("[") && route.name.endsWith("]") || p === "*not-found" ? "" : route.name;
30
+ if (p.startsWith(":")) {
31
+ if (preserveDynamicRoutes)
32
+ return `[${name}]`;
33
+ var value = params[name];
34
+ if (value === void 0 && p.endsWith("?"))
35
+ return;
36
+ var _ref;
37
+ return (_ref = shouldEncodeURISegment ? encodeURISegment(value) : value) !== null && _ref !== void 0 ? _ref : "undefined";
38
+ }
39
+ return !preserveGroups && (0, import_matchers.matchGroupName)(p) != null ? segments.length - 1 === i && initialRouteName ? segmentMatchesConvention(initialRouteName) ? "" : shouldEncodeURISegment ? encodeURISegment(initialRouteName, {
40
+ preserveBrackets: !0
41
+ }) : initialRouteName : "" : shouldEncodeURISegment ? encodeURISegment(p, {
42
+ preserveBrackets: !0
43
+ }) : p;
44
+ }).map(function(v) {
45
+ return v ?? "";
46
+ }).join("/");
47
+ }
48
+ var getParamName = function(pattern) {
49
+ return pattern.replace(/^[:*]/, "").replace(/\?$/, "");
50
+ };
51
+ function appendBaseUrl(path) {
52
+ var baseUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.env.EXPO_BASE_URL;
53
+ return process.env.NODE_ENV !== "development" && baseUrl ? `/${baseUrl.replace(/^\/+/, "").replace(/\/$/, "")}${path}` : path;
54
+ }
55
+ function segmentMatchesConvention(segment) {
56
+ return segment === "index" || (0, import_matchers.matchDynamicName)(segment) != null || (0, import_matchers.matchGroupName)(segment) != null || (0, import_matchers.matchDeepDynamicRouteName)(segment) != null;
57
+ }
58
+ function encodeURISegment(str) {
59
+ var { preserveBrackets = !1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
60
+ return str = String(str).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, function(char) {
61
+ return encodeURIComponent(char);
62
+ }), preserveBrackets && (str = str.replace(/%5B/g, "[").replace(/%5D/g, "]")), str;
63
+ }
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ appendBaseUrl,
67
+ getParamName,
68
+ getPathWithConventionsCollapsed
69
+ });
70
+ //# sourceMappingURL=getPathFromState-mods.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/fork/Users/n8/one/packages/one/src/fork/getPathFromState-mods.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;;;AAQA,sBAA4E;AAarE,SAASA,gCAAgC,OAa/C;MAb+C,EAC9CC,SACAC,OACAC,QACAC,gBACAC,uBACAC,yBAAyB,IACzBC,iBAAgB,IAP8B,OAcxCC,WAAWP,QAAQQ,MAAM,GAAA;AAE/B,SAAOD,SACJE,IAAI,SAACC,GAAGC,GAAAA;AACP,QAAMC,OAAOC,aAAaH,CAAAA;AAI1B,QAAIA,EAAEI,WAAW,GAAA;AACf,aAAIV,wBACEQ,SAAS,cACJ,eAGF,OAAOA,IAAAA,MAGZV,OAAOU,IAAAA,IACLG,MAAMC,QAAQd,OAAOU,IAAAA,CAAK,IACrBV,OAAOU,IAAAA,EAAMK,KAAK,GAAA,IAEpBf,OAAOU,IAAAA,IAGZX,MAAMW,KAAKE,WAAW,GAAA,KAAQb,MAAMW,KAAKM,SAAS,GAAA,KAIlDR,MAAM,eACD,KAGFT,MAAMW;AAIf,QAAIF,EAAEI,WAAW,GAAA,GAAM;AACrB,UAAIV;AACF,eAAO,IAAIQ,IAAAA;AAGb,UAAMO,QAAQjB,OAAOU,IAAAA;AACrB,UAAIO,UAAUC,UAAaV,EAAEQ,SAAS,GAAA;AACpC;UAGMb;AAAR,cAAQA,OAAAA,yBAAyBgB,iBAAiBF,KAAAA,IAASA,WAAAA,QAAnDd,SAAAA,SAAAA,OAA6D;IACvE;AAEA,WAAI,CAACF,sBAAkBmB,gCAAeZ,CAAAA,KAAM,OAItCH,SAASgB,SAAS,MAAMZ,KACtBL,mBAEEkB,yBAAyBlB,gBAAAA,IACpB,KAEFD,yBACHgB,iBAAiBf,kBAAkB;MAAEmB,kBAAkB;IAAK,CAAA,IAC5DnB,mBAGD,KAGFD,yBAAyBgB,iBAAiBX,GAAG;MAAEe,kBAAkB;IAAK,CAAA,IAAKf;EACpF,CAAA,EACCD,IAAI,SAACiB,GAAAA;WAAMA,KAAK;KAChBT,KAAK,GAAA;AACV;AAEO,IAAMJ,eAAe,SAACb,SAAAA;SAAoBA,QAAQ2B,QAAQ,SAAS,EAAA,EAAIA,QAAQ,OAAO,EAAA;;AAEtF,SAASC,cACdC,MAAY;MACZC,UAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAA8BC,QAAQC,IAAIC;AAE1C,SAAIF,QAAQC,IAAIE,aAAa,iBACvBJ,UACK,IAAIA,QAAQH,QAAQ,QAAQ,EAAA,EAAIA,QAAQ,OAAO,EAAA,CAAA,GAAME,IAAAA,KAGzDA;AACT;AAEA,SAASL,yBAAyBW,SAAe;AAC/C,SACEA,YAAY,eACZC,kCAAiBD,OAAAA,KAAY,YAC7Bb,gCAAea,OAAAA,KAAY,YAC3BE,2CAA0BF,OAAAA,KAAY;AAE1C;AAEA,SAASd,iBAAiBiB,KAAW;MAAE,EAAEb,mBAAmB,GAAK,IAA1B,UAAA,SAAA,KAAA,UAAA,CAAA,MAAA,SAAA,UAAA,CAAA,IAA+B,CAAC;AAGrEa,eAAMC,OAAOD,GAAAA,EAAKX,QAAQ,mCAAmC,SAACa,MAAAA;WAASC,mBAAmBD,IAAAA;MAEtFf,qBAEFa,MAAMA,IAAIX,QAAQ,QAAQ,GAAA,EAAKA,QAAQ,QAAQ,GAAA,IAE1CW;AACT;",
5
+ "names": ["getPathWithConventionsCollapsed", "pattern", "route", "params", "preserveGroups", "preserveDynamicRoutes", "shouldEncodeURISegment", "initialRouteName", "segments", "split", "map", "p", "i", "name", "getParamName", "startsWith", "Array", "isArray", "join", "endsWith", "value", "undefined", "encodeURISegment", "matchGroupName", "length", "segmentMatchesConvention", "preserveBrackets", "v", "replace", "appendBaseUrl", "path", "baseUrl", "process", "env", "EXPO_BASE_URL", "NODE_ENV", "segment", "matchDynamicName", "matchDeepDynamicRouteName", "str", "String", "char", "encodeURIComponent"]
6
+ }
@@ -20,239 +20,90 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
20
20
  }), mod);
21
21
  var getPathFromState_exports = {};
22
22
  __export(getPathFromState_exports, {
23
- appendBaseUrl: () => appendBaseUrl,
24
- deepEqual: () => deepEqual,
25
- default: () => getPathFromState,
26
- getPathDataFromState: () => getPathDataFromState
23
+ default: () => getPathFromState_default,
24
+ getPathDataFromState: () => getPathDataFromState,
25
+ getPathFromState: () => getPathFromState
27
26
  });
28
27
  module.exports = __toCommonJS(getPathFromState_exports);
29
- var import_core = require("@react-navigation/core"),
30
- import_matchers = require("../router/matchers.cjs");
31
- const DEFAULT_SCREENS = {},
32
- getActiveRoute = state => {
28
+ var import_getPathFromState_mods = require("./getPathFromState-mods.cjs"),
29
+ import_validatePathConfig = require("./validatePathConfig.cjs");
30
+ const getActiveRoute = state => {
33
31
  const route = typeof state.index == "number" ? state.routes[state.index] : state.routes[state.routes.length - 1];
34
- return route.state ? getActiveRoute(route.state) : route && isInvalidParams(route.params) ? getActiveRoute(createFakeState(route.params)) : route;
35
- };
36
- function createFakeState(params) {
37
- return {
38
- stale: !1,
39
- type: "UNKNOWN",
40
- key: "UNKNOWN",
41
- index: 0,
42
- routeNames: [],
43
- routes: [{
44
- key: "UNKNOWN",
45
- name: params.screen,
46
- params: params.params,
47
- path: params.path
48
- }]
32
+ return route.state ? getActiveRoute(route.state) : route;
33
+ },
34
+ cachedNormalizedConfigs = /* @__PURE__ */new WeakMap(),
35
+ getNormalizedConfigs = options => {
36
+ if (!options?.screens) return {};
37
+ const cached = cachedNormalizedConfigs.get(options?.screens);
38
+ if (cached) return cached;
39
+ const normalizedConfigs = createNormalizedConfigs(options.screens);
40
+ return cachedNormalizedConfigs.set(options.screens, normalizedConfigs), normalizedConfigs;
49
41
  };
42
+ function getPathFromState(state, options) {
43
+ return getPathDataFromState(state, options).path;
50
44
  }
51
- function segmentMatchesConvention(segment) {
52
- return segment === "index" || (0, import_matchers.matchDynamicName)(segment) != null || (0, import_matchers.matchGroupName)(segment) != null || (0, import_matchers.matchDeepDynamicRouteName)(segment) != null;
53
- }
54
- function encodeURIComponentPreservingBrackets(str) {
55
- return encodeURIComponent(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
56
- }
57
- function getPathFromState(state, _options) {
58
- return getPathDataFromState(state, _options).path;
59
- }
60
- function getPathDataFromState(state, _options = {
61
- screens: DEFAULT_SCREENS
62
- }) {
45
+ function getPathDataFromState(state, options) {
63
46
  if (state == null) throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
64
- const {
65
- preserveGroups,
66
- preserveDynamicRoutes,
67
- ...options
68
- } = _options;
69
- if ((0, import_core.validatePathConfig)(options), Object.is(options.screens, DEFAULT_SCREENS)) throw Error("You must pass a 'screens' object to 'getPathFromState' to generate a path.");
70
- return getPathFromResolvedState(state,
71
- // Create a normalized configs object which will be easier to use
72
- createNormalizedConfigs(options.screens), {
73
- preserveGroups,
74
- preserveDynamicRoutes
75
- });
76
- }
77
- function processParamsWithUserSettings(configItem, params) {
78
- const stringify = configItem?.stringify;
79
- return Object.fromEntries(Object.entries(params).map(([key, value]) => [key,
80
- // TODO: Strip nullish values here.
81
- stringify?.[key] ? stringify[key](value) :
82
- // Preserve rest params
83
- Array.isArray(value) ? value : String(value)]));
84
- }
85
- function deepEqual(a, b) {
86
- if (a === b) return !0;
87
- if (Array.isArray(a) && Array.isArray(b)) {
88
- if (a.length !== b.length) return !1;
89
- for (let i = 0; i < a.length; i++) if (!deepEqual(a[i], b[i])) return !1;
90
- return !0;
91
- }
92
- if (typeof a == "object" && typeof b == "object") {
93
- const keysA = Object.keys(a),
94
- keysB = Object.keys(b);
95
- if (keysA.length !== keysB.length) return !1;
96
- for (const key of keysA) if (!deepEqual(a[key], b[key])) return !1;
97
- return !0;
98
- }
99
- return !1;
100
- }
101
- function walkConfigItems(route, focusedRoute, configs, {
102
- preserveDynamicRoutes
103
- }) {
104
- !route.state && isInvalidParams(route.params);
105
- let pattern = null,
106
- focusedParams,
107
- hash;
108
- const collectedParams = {};
109
- for (; route.name in configs;) {
110
- const configItem = configs[route.name],
111
- inputPattern = configItem.pattern;
112
- if (inputPattern == null) throw new Error("Unexpected: No pattern found for route " + route.name);
113
- if (pattern = inputPattern, route.params) {
114
- route.params["#"] && (hash = route.params["#"], delete route.params["#"]);
115
- const params = processParamsWithUserSettings(configItem, route.params);
116
- pattern != null && Object.assign(collectedParams, params), deepEqual(focusedRoute, route) && (preserveDynamicRoutes ? focusedParams = params : focusedParams = getParamsWithConventionsCollapsed({
117
- params,
118
- pattern,
119
- routeName: route.name
120
- }));
121
- }
122
- if (!route.state && isInvalidParams(route.params), !configItem.screens || route.state === void 0) {
123
- configItem.initialRouteName && configItem.screens && configItem.initialRouteName in configItem.screens && configItem.screens[configItem.initialRouteName]?.pattern && (pattern = configItem.screens[configItem.initialRouteName].pattern, focusedParams && (preserveDynamicRoutes || (focusedParams = getParamsWithConventionsCollapsed({
124
- params: focusedParams,
125
- pattern,
126
- routeName: route.name
127
- }))));
128
- break;
129
- }
130
- const index = route.state.index ?? route.state.routes.length - 1,
131
- nextRoute = route.state.routes[index],
132
- nestedScreens = configItem.screens;
133
- if (nestedScreens && nextRoute.name in nestedScreens) route = nextRoute, configs = nestedScreens;else break;
134
- }
135
- if (pattern == null) throw new Error(`No pattern found for route "${route.name}". Options are: ${Object.keys(configs).join(", ")}.`);
136
- return pattern && !focusedParams && focusedRoute.params && (preserveDynamicRoutes ? focusedParams = focusedRoute.params : focusedParams = getParamsWithConventionsCollapsed({
137
- params: focusedRoute.params,
138
- pattern,
139
- routeName: route.name
140
- }), focusedParams = {
141
- ...focusedParams,
142
- ...collectedParams
143
- }), {
144
- pattern,
145
- nextRoute: route,
146
- focusedParams,
147
- hash,
148
- params: collectedParams
149
- };
150
- }
151
- function getPathFromResolvedState(state, configs, {
152
- preserveGroups,
153
- preserveDynamicRoutes
154
- }) {
155
- let path = "",
156
- current = state,
157
- hash;
47
+ options && (0, import_validatePathConfig.validatePathConfig)(options);
48
+ const configs = getNormalizedConfigs(options);
49
+ let path = "/",
50
+ current = state;
158
51
  const allParams = {};
159
52
  for (; current;) {
160
- path += "/";
161
- const route = current.routes[current.index ?? 0];
162
- !route.state && isInvalidParams(route.params);
163
- const {
53
+ let index = typeof current.index == "number" ? current.index : 0,
54
+ route = current.routes[index],
164
55
  pattern,
165
- params: params2,
166
- nextRoute,
167
- focusedParams,
168
- hash: $hash
169
- } = walkConfigItems(route, getActiveRoute(current), {
170
- ...configs
171
- }, {
172
- preserveDynamicRoutes
173
- });
174
- if ($hash && (hash = $hash), Object.assign(allParams, params2), path += getPathWithConventionsCollapsed({
56
+ focusedParams;
57
+ const focusedRoute = getActiveRoute(state);
58
+ let currentOptions = configs;
59
+ const nestedRouteNames = [];
60
+ let hasNext = !0;
61
+ for (; route.name in currentOptions && hasNext;) {
62
+ if (pattern = currentOptions[route.name].pattern, nestedRouteNames.push(route.name), route.params) {
63
+ const stringify = currentOptions[route.name]?.stringify,
64
+ currentParams = Object.fromEntries(Object.entries(route.params).flatMap(([key, value]) => key === "screen" || key === "params" ? [] : [[key, stringify?.[key] ? stringify[key](value) : Array.isArray(value) ? value.map(String) : String(value)]]));
65
+ Object.assign(allParams, currentParams), focusedRoute === route && (focusedParams = {
66
+ ...currentParams
67
+ }, pattern?.split("/").filter(p => p.startsWith(":")).forEach(p => {
68
+ const name = getParamName(p);
69
+ focusedParams && delete focusedParams[name];
70
+ }));
71
+ }
72
+ if (!currentOptions[route.name].screens || route.state === void 0) {
73
+ const screens = currentOptions[route.name].screens,
74
+ screen = route.params && "screen" in route.params ? route.params.screen?.toString() : screens ? Object.keys(screens)[0] : void 0;
75
+ screen && screens && currentOptions[route.name].screens?.[screen] ? (route = {
76
+ ...screens[screen],
77
+ name: screen,
78
+ key: screen
79
+ }, currentOptions = screens) : hasNext = !1;
80
+ } else {
81
+ index = typeof route.state.index == "number" ? route.state.index : route.state.routes.length - 1;
82
+ const nextRoute = route.state.routes[index],
83
+ nestedConfig = currentOptions[route.name].screens;
84
+ nestedConfig && nextRoute.name in nestedConfig ? (route = nextRoute, currentOptions = nestedConfig) : hasNext = !1;
85
+ }
86
+ }
87
+ if (currentOptions[route.name] !== void 0 ? (pattern === void 0 && (pattern = nestedRouteNames.join("/")), path += (0, import_getPathFromState_mods.getPathWithConventionsCollapsed)({
88
+ ...options,
175
89
  pattern,
176
- routePath: nextRoute.path,
90
+ route,
177
91
  params: allParams,
178
- initialRouteName: configs[nextRoute.name]?.initialRouteName,
179
- preserveGroups,
180
- preserveDynamicRoutes
181
- }), nextRoute.state &&
182
- // NOTE: The upstream implementation allows for sending in synthetic states (states that weren't generated by `getStateFromPath`)
183
- // and any invalid routes will simply be ignored.
184
- // Because of this, we need to check if the next route is valid before continuing, otherwise our more strict
185
- // implementation will throw an error.
186
- configs[nextRoute.state.routes?.[nextRoute.state?.index ?? 0]?.name]) current = nextRoute.state;else {
187
- if (focusedParams &&
188
- // note: using [...route] is returning an array which shouldn't go on search, this is just
189
- // an initial hacky test to work around this as we dont want to pass that to search
190
- !Array.isArray(focusedParams)) {
191
- for (const param in focusedParams) focusedParams[param] === "undefined" && delete focusedParams[param];
192
- const query = new URLSearchParams(focusedParams).toString();
193
- query && (path += `?${query}`);
194
- }
195
- break;
92
+ initialRouteName: configs[route.name]?.initialRouteName
93
+ })) : route.name.startsWith("+") || (path += encodeURIComponent(route.name)), focusedParams || (focusedParams = focusedRoute.params), route.state) path += "/";else if (focusedParams) {
94
+ for (const param in focusedParams) focusedParams[param] === "undefined" && delete focusedParams[param];
95
+ delete focusedParams["#"];
96
+ const query = new URLSearchParams(focusedParams).toString();
97
+ query && (path += `?${query}`);
196
98
  }
99
+ current = route.state;
197
100
  }
198
- hash && (allParams["#"] = hash, path += `#${hash}`);
199
- const params = decodeParams(allParams);
200
- return {
201
- path: appendBaseUrl(basicSanitizePath(path)),
202
- params
101
+ return path = path.replace(/\/+/g, "/"), path = path.length > 1 ? path.replace(/\/$/, "") : path, options?.path && (path = joinPaths(options.path, path)), path = (0, import_getPathFromState_mods.appendBaseUrl)(path), allParams["#"] && (path += `#${allParams["#"]}`), {
102
+ path,
103
+ params: allParams
203
104
  };
204
105
  }
205
- function decodeParams(params) {
206
- const parsed = {};
207
- for (const [key, value] of Object.entries(params)) try {
208
- Array.isArray(value) ? parsed[key] = value.map(v => decodeURIComponent(v)) : parsed[key] = decodeURIComponent(value);
209
- } catch {
210
- parsed[key] = value;
211
- }
212
- return parsed;
213
- }
214
- function getPathWithConventionsCollapsed({
215
- pattern,
216
- routePath,
217
- params,
218
- preserveGroups,
219
- preserveDynamicRoutes,
220
- initialRouteName
221
- }) {
222
- const segments = pattern.split("/");
223
- return segments.map((p, i) => {
224
- const name = getParamName(p);
225
- return p.startsWith("*") ? preserveDynamicRoutes ? name === "not-found" ? "+not-found" : `[...${name}]` : params[name] ? Array.isArray(params[name]) ? params[name].join("/") : params[name] : i === 0 ? routePath : routePath?.split("/").slice(i + 1).join("/") : p.startsWith(":") ? preserveDynamicRoutes ? `[${name}]` : params[name] : !preserveGroups && (0, import_matchers.matchGroupName)(p) != null ? segments.length - 1 === i && initialRouteName ? segmentMatchesConvention(initialRouteName) ? "" : encodeURIComponentPreservingBrackets(initialRouteName) : "" : encodeURIComponentPreservingBrackets(p);
226
- }).map(v => v ?? "").join("/");
227
- }
228
- function getParamsWithConventionsCollapsed({
229
- pattern,
230
- routeName,
231
- params
232
- }) {
233
- const processedParams = {
234
- ...params
235
- },
236
- segments = pattern.split("/");
237
- if (segments.filter(segment => segment.startsWith(":")).forEach(segment => {
238
- const name = getParamName(segment);
239
- delete processedParams[name];
240
- }), segments.some(segment => segment.startsWith("*"))) {
241
- const name = (0, import_matchers.testNotFound)(routeName) ? "not-found" : (0, import_matchers.matchDeepDynamicRouteName)(routeName) ?? routeName;
242
- delete processedParams[name];
243
- }
244
- return processedParams;
245
- }
246
- function basicSanitizePath(path) {
247
- const simplifiedPath = path.replace(/\/+/g, "/");
248
- return simplifiedPath.length <= 1 ? simplifiedPath : simplifiedPath.replace(/\/$/, "");
249
- }
250
- function isInvalidParams(params) {
251
- return params ? "params" in params && typeof params.params == "object" && params.params ? !0 : "initial" in params && typeof params.initial == "boolean" &&
252
- // "path" in params &&
253
- "screen" in params : !1;
254
- }
255
- const getParamName = pattern => pattern.replace(/^[:*]/, "").replace(/\?$/, ""),
106
+ const getParamName = pattern => pattern.replace(/^:/, "").replace(/\?$/, ""),
256
107
  joinPaths = (...paths) => [].concat(...paths.map(p => p.split("/"))).filter(Boolean).join("/"),
257
108
  createConfigItem = (config, parentPattern) => {
258
109
  if (typeof config == "string") return {
@@ -265,11 +116,11 @@ const getParamName = pattern => pattern.replace(/^[:*]/, "").replace(/\?$/, ""),
265
116
  // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
266
117
  pattern: pattern?.split("/").filter(Boolean).join("/"),
267
118
  stringify: config.stringify,
268
- screens,
269
- initialRouteName: config.initialRouteName
119
+ screens
270
120
  };
271
121
  },
272
- createNormalizedConfigs = (options, pattern) => Object.fromEntries(Object.entries(options).map(([name, c]) => [name, createConfigItem(c, pattern)]));
273
- function appendBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {
274
- return process.env.NODE_ENV !== "development" && baseUrl ? `/${baseUrl.replace(/^\/+/, "").replace(/\/$/, "")}${path}` : path;
275
- }
122
+ createNormalizedConfigs = (options, pattern) => Object.fromEntries(Object.entries(options).map(([name, c]) => {
123
+ const result = createConfigItem(c, pattern);
124
+ return [name, result];
125
+ }));
126
+ var getPathFromState_default = getPathFromState;