{"version":3,"sources":["jsdelivr-header.js","/npm/get-link@1.0.4/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,OAAO,eAAe,QAAS,aAAc,CAC3C,OAAO,IAET,QAAQ,QAAU,SAElB,IAAI,KAAO,QAAQ,OAGnB,MAAM,UAAY,6GACZ,cAAgB,yCAChB,eAAiB,gBAUvB,SAAS,UAAU,GACjB,MAAM,EAAQ,IAAI,OAAO,WAAW,KAAK,GAEzC,IAAK,IAAU,EAAM,GACnB,MAAM,IAAI,MAAM,kBAAkB,KAGpC,MAAO,CACL,OAAQ,EAAM,GACd,KAAM,EAAM,GAEhB,CAUA,SAAS,eAAe,EAAM,GAC5B,MAAM,GAAa,EAAI,KAAK,OAAO,GAC7B,EAAa,EAAK,MAAM,KAC9B,IAAI,EAAQ,GACR,EAAO,GAEN,EAAK,WAAW,OACnB,EAAQ,EAAW,SAAS,MAAM,KAClC,EAAM,OAGR,IAAK,MAAM,KAAQ,EAEjB,GAAa,MAAT,EAKJ,GAAa,OAAT,GAEF,IAAK,EAAM,OAA0B,IAAjB,EAAM,OACxB,OAAO,UAGT,EAAM,KAAK,GASf,OALI,EAAW,OACb,EAAO,IAAM,EAAW,MAInB,GAAG,EAAW,aAAa,EAAW,WAAW,IAAO,EAAM,KAAK,MAC5E,CAUA,SAAS,SAAS,EAAM,GAEtB,GAAoB,iBAAT,GAAqB,EAAK,MAAM,eACzC,OAAO,EAIT,GAAI,EAAK,MAAM,gBACb,IACE,MAAM,EAAa,UAAU,GACvB,EAAa,UAAU,GAE7B,OAAI,EAAW,SAAW,EAAW,SAKjC,EAAW,MACN,EAAI,KAAK,SAAS,EAAM,EAAW,OAIrC,EAAI,KAAK,OAAO,GAAM,KAC/B,CAAE,MAAO,GACP,OAAO,CACT,CAIF,OAAO,eAAe,EAAM,EAC9B,CAEA,OAAO,QAAU,QAAQ","file":"/npm/get-link@1.0.4/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/get-link@1.0.4/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = _default;\n\nvar _url = require(\"url\");\n\n// eslint-disable-next-line\nconst REGEX_URL = /^(?:https?:\\/\\/)?(?:www\\.)?([-a-zA-Z0-9_.=]{2,255}\\.+(?:[a-z]{2,6})\\b)(\\/[-a-zA-Z0-9@:%_\\+.~#?&\\/\\/=]*)?/gi;\nconst REGEX_DYNAMIC = /^(?:[a-z]+\\:[^\\/]\\S{1,})|(?:#\\S{1,})/gi;\nconst REGEX_ABSOLUTE = /^https?:\\/\\//i;\n/**\n * Parse a link and return its \"normalized\" (without the `https://www.` prefix)\n * domain and path.\n *\n * @param   {string}    link    Link to parse\n * @return  {object}            Normalized domain and path\n * @throws  {Error}             When domain could not be resolved\n */\n\nfunction parseLink(link) {\n  const match = new RegExp(REGEX_URL).exec(link); // 0 = link; 1 = domain; 2 = path\n\n  if (!match || !match[1]) {\n    throw new Error(`Invalid domain ${link}`);\n  }\n\n  return {\n    domain: match[1],\n    path: match[2]\n  };\n}\n/**\n * Regenerates an absolute URL from `base` and relative `link`.\n *\n * @param   {string}    base    Absolute base url\n * @param   {string}    link    Relative link\n * @return  {string|null}\n */\n\n\nfunction regenerateLink(base, link) {\n  const parsedBase = (0, _url.parse)(base);\n  const parsedLink = link.split(\"/\");\n  let parts = [];\n  let port = \"\";\n\n  if (!link.startsWith(\"/\")) {\n    parts = parsedBase.pathname.split(\"/\");\n    parts.pop();\n  }\n\n  for (const part of parsedLink) {\n    // Current directory:\n    if (part === \".\") {\n      continue;\n    } // Parent directory:\n\n\n    if (part === \"..\") {\n      // Accessing non-existing parent directories:\n      if (!parts.pop() || parts.length === 0) {\n        return null;\n      }\n    } else {\n      parts.push(part);\n    }\n  }\n\n  if (parsedBase.port) {\n    port = \":\" + parsedBase.port;\n  } // eslint-disable-next-line max-len\n\n\n  return `${parsedBase.protocol}//${parsedBase.hostname}${port}${parts.join(\"/\")}`;\n}\n/**\n * Transform a relative path into an absolute url.\n *\n * @param   {string}    base    Absolute base url\n * @param   {string}    link    Link to parse\n * @return  {string|false}      Absolute path\n */\n\n\nfunction _default(base, link) {\n  // Dynamic stuff:\n  if (typeof link !== \"string\" || link.match(REGEX_DYNAMIC)) {\n    return base;\n  } // Link is absolute:\n\n\n  if (link.match(REGEX_ABSOLUTE)) {\n    try {\n      const parsedBase = parseLink(base);\n      const parsedLink = parseLink(link); // Both `base` and `link` are on different domains:\n\n      if (parsedBase.domain !== parsedLink.domain) {\n        return false;\n      } // Absolute path from same domain:\n\n\n      if (parsedLink.path) {\n        return (0, _url.resolve)(base, parsedLink.path);\n      } // Same domains without path:\n\n\n      return (0, _url.parse)(base).href;\n    } catch (err) {\n      return false;\n    }\n  } // Relative stuff:\n\n\n  return regenerateLink(base, link);\n}\n\nmodule.exports = exports.default;"]}