{"ast":null,"code":"function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n} // About 1.5x faster than the two-arg version of Array#splice()\n\n\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n} // This implementation is based heavily on node's url.parse\n\n\nfunction resolvePathname(to, from) {\n  if (from === undefined) from = '';\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n  var hasTrailingSlash;\n\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n  if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n  var result = fromParts.join('/');\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n  return result;\n}\n\nexport default resolvePathname;","map":{"version":3,"sources":["/home/sonia/VisualStudioCode/Proyecto-React-Firebase/client/node_modules/resolve-pathname/esm/resolve-pathname.js"],"names":["isAbsolute","pathname","charAt","spliceOne","list","index","i","k","n","length","pop","resolvePathname","to","from","undefined","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","join","substr"],"mappings":"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","sourcesContent":["function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n  if (from === undefined) from = '';\n\n  var toParts = (to && to.split('/')) || [];\n  var fromParts = (from && from.split('/')) || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n  if (\n    mustEndAbs &&\n    fromParts[0] !== '' &&\n    (!fromParts[0] || !isAbsolute(fromParts[0]))\n  )\n    fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;\n"]},"metadata":{},"sourceType":"module"}