{"version":3,"file":"getStateFromPath-mods.js","names":[],"sources":["esm/fork/getStateFromPath-mods.js"],"sourcesContent":["import escape_ from \"escape-string-regexp\";\nimport { matchGroupName, stripGroupSegmentsFromPath } from \"../router/matchers\";\nfunction getUrlWithReactNavigationConcessions(path, baseUrl = process.env.EXPO_BASE_URL) {\n  const pathWithoutGroups = stripGroupSegmentsFromPath(stripBaseUrl(path, baseUrl));\n  let pathname = \"\";\n  let hash = \"\";\n  try {\n    const hashIndex = path.indexOf(\"#\");\n    const queryIndex = path.indexOf(\"?\");\n    if (hashIndex >= 0) {\n      hash = path.slice(hashIndex);\n    }\n    let end = path.length;\n    if (queryIndex >= 0) end = Math.min(end, queryIndex);\n    if (hashIndex >= 0) end = Math.min(end, hashIndex);\n    pathname = path.slice(0, end);\n    if (pathname.startsWith(\"http://\") || pathname.startsWith(\"https://\")) {\n      const originEnd = pathname.indexOf(\"/\", pathname.indexOf(\"//\") + 2);\n      if (originEnd >= 0) {\n        pathname = pathname.slice(originEnd);\n      }\n    }\n  } catch {\n  }\n  const withoutBaseUrl = stripBaseUrl(pathname, baseUrl);\n  return {\n    path,\n    // Make sure there is a trailing slash\n    // The slashes are at the end, not the beginning\n    nonstandardPathname: withoutBaseUrl.replace(/^\\/+/g, \"\").replace(/\\/+$/g, \"\") + \"/\",\n    hash,\n    pathWithoutGroups\n  };\n}\nfunction matchForEmptyPath(configs) {\n  const leafNodes = configs.filter((config) => !config.hasChildren).map((value) => {\n    return {\n      ...value,\n      // Collapse all levels of group segments before testing.\n      // This enables `app/(one)/(two)/index.js` to be matched.\n      path: stripGroupSegmentsFromPath(value.path)\n    };\n  });\n  const match = leafNodes.find(\n    (config) => (\n      // NOTE: Test leaf node index routes that either don't have a regex or match an empty string.\n      config.path === \"\" && (!config.regex || config.regex.test(\"\"))\n    )\n  ) ?? leafNodes.find(\n    (config) => (\n      // NOTE: Test leaf node dynamic routes that match an empty string.\n      config.path.startsWith(\":\") && config.regex.test(\"\")\n    )\n  ) ?? // NOTE: Test leaf node deep dynamic routes that match a slash.\n  // This should be done last to enable dynamic routes having a higher priority.\n  leafNodes.find((config) => config.path.startsWith(\"*\") && config.regex.test(\"/\"));\n  return match;\n}\nfunction appendIsInitial(initialRoutes) {\n  const resolvedInitialPatterns = initialRoutes.map(\n    (route) => joinPaths(...route.parentScreens, route.initialRouteName)\n  );\n  return (config) => {\n    config.isInitial = resolvedInitialPatterns.includes(config.routeNames.join(\"/\"));\n    return config;\n  };\n}\nconst joinPaths = (...paths) => [].concat(...paths.map((p) => p.split(\"/\"))).filter(Boolean).join(\"/\");\nfunction getRouteConfigSorter(previousSegments = []) {\n  return function sortConfigs(a, b) {\n    if (a.pattern === b.pattern) {\n      return b.routeNames.join(\">\").localeCompare(a.routeNames.join(\">\"));\n    }\n    if (a.pattern.startsWith(b.pattern) && !b.isIndex) {\n      return -1;\n    }\n    if (b.pattern.startsWith(a.pattern) && !a.isIndex) {\n      return 1;\n    }\n    if (a.type === \"static\" && b.type !== \"static\") {\n      return -1;\n    }\n    if (a.type !== \"static\" && b.type === \"static\") {\n      return 1;\n    }\n    if (a.staticPartCount !== b.staticPartCount) {\n      return b.staticPartCount - a.staticPartCount;\n    }\n    const similarToPreviousA = previousSegments.filter((value, index) => {\n      return value === a.expandedRouteNames[index] && value.startsWith(\"(\") && value.endsWith(\")\");\n    });\n    const similarToPreviousB = previousSegments.filter((value, index) => {\n      return value === b.expandedRouteNames[index] && value.startsWith(\"(\") && value.endsWith(\")\");\n    });\n    if ((similarToPreviousA.length > 0 || similarToPreviousB.length > 0) && similarToPreviousA.length !== similarToPreviousB.length) {\n      return similarToPreviousB.length - similarToPreviousA.length;\n    }\n    for (let i = 0; i < Math.max(a.parts.length, b.parts.length); i++) {\n      if (a.parts[i] == null) {\n        return 1;\n      }\n      if (b.parts[i] == null) {\n        return -1;\n      }\n      const aWildCard = a.parts[i].startsWith(\"*\");\n      const bWildCard = b.parts[i].startsWith(\"*\");\n      if (aWildCard && bWildCard) {\n        const aNotFound = a.parts[i].match(/^[*]not-found$/);\n        const bNotFound = b.parts[i].match(/^[*]not-found$/);\n        if (aNotFound && bNotFound) {\n          continue;\n        }\n        if (aNotFound) {\n          return 1;\n        }\n        if (bNotFound) {\n          return -1;\n        }\n        continue;\n      }\n      if (aWildCard) {\n        return 1;\n      }\n      if (bWildCard) {\n        return -1;\n      }\n      const aSlug = a.parts[i].startsWith(\":\");\n      const bSlug = b.parts[i].startsWith(\":\");\n      if (aSlug && bSlug) {\n        const aNotFound = a.parts[i].match(/^[*]not-found$/);\n        const bNotFound = b.parts[i].match(/^[*]not-found$/);\n        if (aNotFound && bNotFound) {\n          continue;\n        }\n        if (aNotFound) {\n          return 1;\n        }\n        if (bNotFound) {\n          return -1;\n        }\n        continue;\n      }\n      if (aSlug) {\n        return 1;\n      }\n      if (bSlug) {\n        return -1;\n      }\n    }\n    if (a.isInitial && !b.isInitial) {\n      return -1;\n    }\n    if (!a.isInitial && b.isInitial) {\n      return 1;\n    }\n    return b.parts.length - a.parts.length;\n  };\n}\nfunction formatRegexPattern(it) {\n  it = it.replace(/ /g, \"%20\");\n  if (it.startsWith(\":\")) {\n    return `(((?!\\\\+not-found(?:/|$))[^/]+\\\\/)${it.endsWith(\"?\") ? \"?\" : \"\"})`;\n  }\n  if (it.startsWith(\"*\")) {\n    return `((.*\\\\/)${it.endsWith(\"?\") ? \"?\" : \"\"})`;\n  }\n  if (matchGroupName(it) != null) {\n    return `(?:${escape(it)}\\\\/)?`;\n  }\n  return escape_(it) + `\\\\/`;\n}\nfunction decodeURIComponentSafe(str) {\n  try {\n    return decodeURIComponent(str);\n  } catch {\n    return str;\n  }\n}\nfunction populateParams(routes, params) {\n  if (!routes || !params || Object.keys(params).length === 0) return;\n  for (const route of routes) {\n    Object.assign(route, { params });\n  }\n  return routes;\n}\nfunction createConfigItemAdditionalProperties(screen, pattern, routeNames, config = {}) {\n  const parts = [];\n  let isDynamic = false;\n  let staticPartCount = 0;\n  const isIndex = screen === \"index\" || screen.endsWith(\"/index\");\n  for (const part of pattern.split(\"/\")) {\n    if (part) {\n      const isDynamicPart = part.startsWith(\":\") || part.startsWith(\"*\") || part.includes(\"*not-found\");\n      isDynamic ||= isDynamicPart;\n      if (!matchGroupName(part)) {\n        parts.push(part);\n        if (!isDynamicPart) {\n          staticPartCount++;\n        }\n      }\n    }\n  }\n  const hasChildren = config.screens ? !!Object.keys(config.screens)?.length : false;\n  const type = hasChildren ? \"layout\" : isDynamic ? \"dynamic\" : \"static\";\n  if (isIndex) {\n    parts.push(\"index\");\n    staticPartCount++;\n  }\n  return {\n    type,\n    isIndex,\n    hasChildren,\n    parts,\n    staticPartCount,\n    userReadableName: [...routeNames.slice(0, -1), config.path || screen].join(\"/\"),\n    expandedRouteNames: routeNames.flatMap((name) => {\n      return name.split(\"/\");\n    })\n  };\n}\nfunction parseQueryParamsExtended(path, route, parseConfig, hash) {\n  const queryIndex = path.indexOf(\"?\");\n  const hashIndex = path.indexOf(\"#\");\n  const queryEnd = hashIndex >= 0 && hashIndex > queryIndex ? hashIndex : void 0;\n  const searchParams = new URLSearchParams(\n    queryIndex >= 0 ? path.slice(queryIndex + 1, queryEnd) : \"\"\n  );\n  const params = /* @__PURE__ */ Object.create(null);\n  if (hash) {\n    params[\"#\"] = hash.slice(1);\n  }\n  for (const name of searchParams.keys()) {\n    if (route.params?.[name]) {\n      if (process.env.NODE_ENV !== \"production\") {\n        console.warn(\n          `Route '/${route.name}' with param '${name}' was specified both in the path and as a param, removing from path`\n        );\n      }\n    } else {\n      const values = parseConfig?.hasOwnProperty(name) ? searchParams.getAll(name).map((value) => parseConfig[name](value)) : searchParams.getAll(name);\n      params[name] = values.length === 1 ? values[0] : values;\n    }\n  }\n  return Object.keys(params).length ? params : void 0;\n}\nfunction stripBaseUrl(path, baseUrl = process.env.EXPO_BASE_URL) {\n  if (process.env.NODE_ENV !== \"development\") {\n    if (baseUrl) {\n      return path.replace(/^\\/+/g, \"/\").replace(new RegExp(`^\\\\/?${escape(baseUrl)}`, \"g\"), \"\");\n    }\n  }\n  return path;\n}\nexport {\n  appendIsInitial,\n  createConfigItemAdditionalProperties,\n  decodeURIComponentSafe,\n  formatRegexPattern,\n  getRouteConfigSorter,\n  getUrlWithReactNavigationConcessions,\n  matchForEmptyPath,\n  parseQueryParamsExtended,\n  populateParams,\n  stripBaseUrl\n};\n//# sourceMappingURL=getStateFromPath-mods.js.map\n"],"mappings":"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"}