{"version":3,"sources":["jsdelivr-header.js","/npm/fetch-url@1.0.9/lib/fetch-url.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,IAAM,QAAQ,SACd,GAAU,QAAQ,MAClB,QAAU,QAAQ,WAClB,EAAU,QAAQ,cAElB,SAAW,SAAS,EAAS,EAAW,EAAS,EAAM,GAiDzD,QAHmB,IAAR,IACT,EAAO,cAEe,IAAZ,GAAyC,KAAZ,EACvC,EAAQ,KAAK,EAAS,yBAEtB,GAAI,EAAE,SAAS,GAAU,CACvB,EAAO,SACgB,IAAnB,EAAQ,SACV,EAAO,UAET,IAAI,EA1CK,SAAS,GACpB,IAAI,EAAQ,GACZ,GAA0B,MAAtB,EAAI,UAAU,EAAE,GAClB,EAAQ,QAAU,OACb,GAA2B,KAAtB,EAAI,UAAU,EAAE,SAA4C,IAAtB,EAAQ,WAGxD,GADI,EAAS,IAAI,IAAI,EAAQ,aACd,WAAa,MAAQ,EAAO,OACvC,EAAO,OAAO,OAAS,IACzB,GAAS,IAAM,EAAO,QAExB,GAAS,OACJ,GAA2B,QAAtB,EAAI,UAAU,EAAE,SAA+C,IAAtB,EAAQ,WAA4B,CAEvF,IAAI,EACJ,GADI,EAAS,IAAI,IAAI,EAAQ,aACd,WAAa,MAAQ,EAAO,OACvC,EAAO,OAAO,OAAS,IACzB,GAAS,IAAM,EAAO,QAExB,IAAI,EAAQ,EAAO,OAAO,MAAM,KAC5B,EAAW,EAAM,EAAM,OAAS,GACnB,MAAZ,GAAyC,GAAnB,EAAS,QAClC,EAAM,MAER,GAAS,EAAM,KAAK,KAAO,IAAM,CACnC,MACE,EAAQ,EAEV,OAAO,CACT,CAac,CAAO,EAAQ,KACzB,SAAS,EAAK,EAAW,EAAS,EAAM,EAC1C,MAAO,GAAqC,IAAjC,EAAQ,QAAQ,aAAoB,CAEjC,QADR,EA1DiB,SAAS,GAChC,IAAI,EAAQ,EAAI,MAAM,KACtB,OAAI,EAAM,OAAS,EACV,MAET,EAAM,QACN,EAAM,QAIC,0BAHI,EAAM,QAGyB,IAF/B,EAAM,QAEsC,WAD5C,EAAM,KAAK,KAExB,CA+Cc,CAAmB,IAE3B,EAAQ,KAAK,EAAS,uBAAyB,GAE/C,SAAS,EAAK,EAAW,EAAS,EAAM,EAE5C,MAAO,GAAoC,IAA/B,EAAQ,QAAQ,YACgB,IAAhC,EAAQ,QAAQ,YAAoB,CAC9C,IAAI,EAAW,CACb,IAAK,GAGK,UAAR,IACF,EAAS,SAAW,UAGtB,QAAQ,GAAU,SAAS,EAAK,EAAU,GACxC,GAAI,EAAK,CAEP,EAAQ,KAAK,EAAS,EACxB,MACM,OAAO,SAAS,KAClB,EAAO,EAAK,SAAS,EAAS,WAEhC,EAAU,KAAK,EAAS,EAE5B,GACF,MAEE,GAAG,SAAS,EAAS,GAAM,SAAS,EAAK,GACnC,EACF,EAAQ,KAAK,EAAS,0BAA4B,EAAU,KAAO,GAEnE,EAAU,KAAK,EAAS,EAE5B,GAGN,EAEA,OAAO,QAAU","file":"/npm/fetch-url@1.0.9/lib/fetch-url.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/fetch-url@1.0.9/lib/fetch-url.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var Uri = require(\"jsuri\");\nvar fs      = require(\"fs\");\nvar request = require(\"request\");\nvar _       = require(\"underscore\");\n\nvar FetchUrl = function(fileRef, cbSuccess, cbError, kind, context) {\n\n  var githubUrlToRealUrl = function(url) {\n    var parts = url.split(\"/\");\n    if (parts.length < 5) {\n      return null;\n    }\n    parts.shift(); // bye http\n    parts.shift(); // bye //\n    var user = parts.shift();\n    var repo = parts.shift();\n    var file = parts.join(\"/\");\n    return \"https://raw.github.com/\" + user + \"/\" + repo + \"/master/\" + file;\n  };\n\n  var fixUrl = function(url) {\n    var fixed = \"\";\n    if (url.substring(0,2) == \"//\") {\n      fixed = \"http:\" + url;\n    } else if ((url.substring(0,1) == \"/\") && (typeof fileRef.linkedFrom != 'undefined')) {\n      // Absolute path\n      var linked = new Uri(fileRef.linkedFrom);\n      fixed = linked.protocol() + '://' + linked.host();\n      if (linked.port().length > 0) {\n        fixed += ':' + linked.port();\n      }\n      fixed += url;\n    } else if ((url.substring(0,4) != 'http') && (typeof fileRef.linkedFrom != 'undefined')) {\n      // Relative path\n      var linked = new Uri(fileRef.linkedFrom);\n      fixed = linked.protocol() + '://' + linked.host();\n      if (linked.port().length > 0) {\n        fixed += ':' + linked.port();\n      }\n      var parts = linked.path().split(\"/\");\n      var filename = parts[parts.length - 1];\n      if ((filename != null) && (filename.length != 0)) {\n        parts.pop();\n      }\n      fixed += parts.join('/') + '/' + url;\n    } else {\n      fixed = url;\n    }\n    return fixed;\n  };\n\n  if (typeof kind == 'undefined') {\n    kind = 'utf-8';\n  }\n  if ((typeof fileRef === 'undefined') || (fileRef === \"\")) {\n    cbError.call(context, \"Empty file spec.\");\n  } else {\n    if (_.isObject(fileRef)) {\n      kind = 'utf-8';\n      if (fileRef.binary === true) {\n        kind = 'binary';\n      }\n      var url = fixUrl(fileRef.url);\n      FetchUrl(url, cbSuccess, cbError, kind, context);\n    } else if (fileRef.indexOf(\"github://\") === 0) {\n      var url = githubUrlToRealUrl(fileRef);\n      if (url === null) {\n        cbError.call(context, \"Invalid github URL: \" + fileRef);\n      } else {\n        FetchUrl(url, cbSuccess, cbError, kind, context);\n      }\n    } else if ((fileRef.indexOf(\"http://\") === 0) ||\n               (fileRef.indexOf(\"https://\") === 0)) {\n      var settings = {\n        uri: fileRef\n      };\n\n      if (kind == 'binary') {\n        settings.encoding = 'binary';\n      }\n\n      request(settings, function(err, response, body) {\n        if (err) {\n          var sc = \"\";\n          cbError.call(context, err);\n        } else {\n          if (Buffer.isBuffer(body)) {\n            body = body.toString(settings.encoding);\n          }\n          cbSuccess.call(context, body);\n        }\n      });\n    } else {\n      // Load from FS\n      fs.readFile(fileRef, kind, function(err, data) {\n        if (err) {\n          cbError.call(context, \"  Could not read file: \" + fileRef + \"\\n\" + err);\n        } else {\n          cbSuccess.call(context, data);\n        }\n      });\n    }\n  }\n};\n\nmodule.exports = FetchUrl;\n"]}