{"version":3,"sources":["jsdelivr-header.js","/npm/github-avatar@1.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,WAAa,QAAQ,cACrB,QAAU,QAAQ,WAClB,OAAS,QAAQ,iBACjB,WAAa,QAAQ,cAEzB,OAAO,QAAU,SAAU,EAAM,GACxB,IAAM,EAAO,CAAC,GACnB,IAAI,EAAO,EAAK,MAAQ,IACpB,OAAyB,IAAhB,EAAK,OACZ,EAAK,OAAS,OAEhB,EAAK,EAAK,GAEV,EAAS,UAmBb,OAlBI,EACA,EAAG,IAAI,GAAM,SAAU,EAAK,GACxB,GAAiB,iBAAN,EACP,IAAM,EAAI,KAAK,MAAM,EAAG,CACxB,MAAO,GAAO,OAAO,EAAO,KAAK,QAAS,EAAK,CAE/C,GAAK,EAAE,IAAM,EAAE,OAAS,GAAQ,KAAK,MAAQ,EAAE,KAAO,GACtD,EAAO,MAAM,OAAO,EAAE,KAAM,WAC5B,EAAO,MAAM,OAER,GAAK,EAAE,GACZ,EAAS,EAAE,IAEV,EAAM,EACf,IAEC,EAAM,GAEJ,EAEP,SAAS,EAAO,GACZ,IAAI,EAAK,WAAW,gCAAkC,EAAM,CACxD,QAAS,CACL,aAAc,mBAGtB,EAAG,GAAG,QAAS,EAAO,KAAK,KAAK,EAAQ,UAExC,IAAI,EAAS,WAAW,MAAM,CAAE,gBAChC,EAAO,GAAG,QAAS,EAAO,KAAK,KAAK,EAAQ,UAE5C,IAAI,GAAM,EACV,EAAG,KAAK,GAAQ,KAAK,SAAQ,SAAU,GAC/B,IACJ,GAAM,EACN,EAAG,GACP,IACJ,CAEA,SAAS,EAAU,GACf,IAAI,EAAK,WAAW,8BAAgC,EAAK,MAAQ,GAC7D,GAAK,EAkBT,OAjBA,EAAG,GAAG,YAAY,SAAU,GACxB,EAAK,KAAK,KAAK,EAAI,WACvB,IACA,EAAG,GAAG,QAAS,EAAO,KAAK,KAAK,EAAQ,UACxC,EAAG,KAAK,GACR,EAAG,KAAK,QAAO,SAAU,GACrB,IAAI,EAAM,CACN,GAAI,EACJ,KAAM,KAAK,MACX,KAAM,EAAK,SAAS,UACpB,KAAM,GAEN,GAAM,EAAG,SAAwC,SAA7B,EAAG,QAAQ,gBAC/B,EAAM,KAAK,UAAU,IAErB,GAAM,GAAI,EAAG,IAAI,EAAM,EAC/B,KACO,CACX,CACJ","file":"/npm/github-avatar@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/github-avatar@1.0.0/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","var hyperquest = require('hyperquest');\nvar through = require('through');\nvar concat = require('concat-stream');\nvar JSONStream = require('JSONStream');\n\nmodule.exports = function (user, opts) {\n    if (!opts) opts = {};\n    var size = opts.size || 128;\n    var maxAge = opts.maxAge !== undefined\n        ? opts.maxAge : 3 * 24 * 60 * 60 * 1000\n    ;\n    var db = opts.db;\n    \n    var output = through();\n    if (db) {\n        db.get(user, function (err, u) {\n            if (typeof u === 'string') {\n                try { u = JSON.parse(u) }\n                catch (err) { return output.emit('error', err) }\n            }\n            if (u && u.id && u.size === size && Date.now() - u.last < maxAge) {\n                output.queue(Buffer(u.data, 'base64'));\n                output.queue(null);\n            }\n            else if (u && u.id) {\n                getImage(u.id);\n            }\n            else getId(getImage);\n        });\n    }\n    else getId(getImage);\n    \n    return output;\n    \n    function getId (cb) {\n        var hq = hyperquest('https://api.github.com/users/' + user, {\n            headers: {\n                'User-Agent': 'github-avatar'\n            }\n        });\n        hq.on('error', output.emit.bind(output, 'error'));\n        \n        var parser = JSONStream.parse([ 'gravatar_id' ]);\n        parser.on('error', output.emit.bind(output, 'error'));\n        \n        var got = false;\n        hq.pipe(parser).pipe(through(function (id) {\n            if (got) return;\n            got = true;\n            cb(id);\n        }));\n    }\n    \n    function getImage (id) {\n        var hq = hyperquest('http://gravatar.com/avatar/' + id + '?s=' + size);\n        var ok = false;\n        hq.on('response', function (res) {\n            ok = /^2/.test(res.statusCode);\n        });\n        hq.on('error', output.emit.bind(output, 'error'));\n        hq.pipe(output);\n        hq.pipe(concat(function (body) {\n            var row = {\n                id: id,\n                last: Date.now(),\n                data: body.toString('base64'),\n                size: size\n            };\n            if (db && db.options && db.options.valueEncoding !== 'json') {\n                row = JSON.stringify(row);\n            }\n            if (ok && db) db.put(user, row);\n        }));\n        return hq;\n    }\n};\n"]}