{"version":3,"sources":["jsdelivr-header.js","/npm/pet-pet-gif@1.0.9/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,KAAO,QAAQ,QACf,EAAI,QAAQ,UAEZ,WAAa,QAAQ,cACrB,OAAS,QAAQ,UAEjB,OAAS,GAET,YAAc,GAEd,eAAiB,CACnB,WAAY,IACZ,MAAO,GACP,gBAAiB,MAGrB,OAAO,QAAU,MAAO,EAAW,EAAU,CAAC,KAC1C,EAAU,EAAE,SAAS,EAAS,gBAG9B,MAAM,EAAU,IAAI,WAAW,EAAQ,WAAY,EAAQ,YAE3D,EAAQ,QACR,EAAQ,UAAU,GAClB,EAAQ,SAAS,EAAQ,OACzB,EAAQ,iBAGR,MAAM,EAAS,OAAO,aAAa,EAAQ,WAAY,EAAQ,YACzD,EAAM,EAAO,WAAW,MAExB,QAAe,OAAO,UAAU,GAGtC,IAAK,IAAI,EAAI,EAAG,EA5BL,GA4BiB,IAAK,CAC7B,EAAI,UAAU,EAAG,EAAG,EAAO,MAAO,EAAO,QAErC,EAAQ,kBACR,EAAI,UAAY,EAAQ,gBACxB,EAAI,SAAS,EAAG,EAAG,EAAO,MAAO,EAAO,SAG5C,MAAM,EAAI,EAAI,EAAa,EApCpB,GAoCiC,EAElC,EAAQ,GAAU,IAAJ,EACd,EAAS,GAAU,IAAJ,EACf,EAAwB,IAAb,EAAI,GAAe,GAC9B,EAAW,EAAI,EAAU,IAE3B,GAAK,YAAY,QAAQ,YAAY,WAAW,OAAO,UAAU,KAAK,QAAQ,UAAW,UAAU,WAEvG,EAAI,UAAU,EAAQ,EAAQ,WAAa,EAAS,EAAQ,WAAa,EAAS,EAAQ,WAAa,EAAO,EAAQ,WAAa,GACnI,EAAI,UAAU,YAAY,GAAI,EAAG,EAAG,EAAQ,WAAY,EAAQ,YAEhE,EAAQ,SAAS,EACrB,CAGA,OADA,EAAQ,SACD,EAAQ,IAAI,SAAQ","file":"/npm/pet-pet-gif@1.0.9/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/pet-pet-gif@1.0.9/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","const path = require('path')\r\nconst _ = require('lodash')\r\n\r\nconst GIFEncoder = require('gifencoder')\r\nconst Canvas = require('canvas')\r\n\r\nconst FRAMES = 10\r\n\r\nconst petGifCache = []\r\n\r\nconst defaultOptions = {\r\n    resolution: 128,\r\n    delay: 20,\r\n    backgroundColor: null,\r\n}\r\n\r\nmodule.exports = async (avatarURL, options = {}) => {\r\n    options = _.defaults(options, defaultOptions) // Fill in the default option values\r\n\r\n    // Create GIF encoder\r\n    const encoder = new GIFEncoder(options.resolution, options.resolution)\r\n\r\n    encoder.start()\r\n    encoder.setRepeat(0)\r\n    encoder.setDelay(options.delay)\r\n    encoder.setTransparent()\r\n\r\n    // Create canvas and its context\r\n    const canvas = Canvas.createCanvas(options.resolution, options.resolution)\r\n    const ctx = canvas.getContext('2d')\r\n\r\n    const avatar = await Canvas.loadImage(avatarURL)\r\n\r\n    // Loop and create each frame\r\n    for (let i = 0; i < FRAMES; i++) {\r\n        ctx.clearRect(0, 0, canvas.width, canvas.height)\r\n\r\n        if (options.backgroundColor) {\r\n            ctx.fillStyle = options.backgroundColor\r\n            ctx.fillRect(0, 0, canvas.width, canvas.height)\r\n        }\r\n\r\n        const j = i < FRAMES / 2 ? i : FRAMES - i\r\n\r\n        const width = 0.8 + j * 0.02\r\n        const height = 0.8 - j * 0.05\r\n        const offsetX = (1 - width) * 0.5 + 0.1\r\n        const offsetY = (1 - height) - 0.08\r\n\r\n        if (i == petGifCache.length) petGifCache.push(await Canvas.loadImage(path.resolve(__dirname, `img/pet${i}.gif`)))\r\n\r\n        ctx.drawImage(avatar, options.resolution * offsetX, options.resolution * offsetY, options.resolution * width, options.resolution * height)\r\n        ctx.drawImage(petGifCache[i], 0, 0, options.resolution, options.resolution)\r\n\r\n        encoder.addFrame(ctx)\r\n    }\r\n\r\n    encoder.finish()\r\n    return encoder.out.getData()\r\n}"]}