{"version":3,"sources":["jsdelivr-header.js","/npm/broccoli-base64-css@0.0.6/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,GAAK,QAAQ,MACb,KAAO,QAAQ,QACf,OAAS,QAAQ,mBAEjB,cAAgB,CAClB,IAAK,kBACL,IAAK,kBACL,KAAM,YACN,IAAK,oBACL,IAAK,OACL,IAAK,WAKP,SAAS,UAAW,EAAW,GAC7B,KAAM,gBAAgB,WAAY,OAAO,IAAI,UAAU,EAAW,IAElE,EAAU,GAAW,CAAC,GACd,YAAc,EAAQ,UAAY,UAC1C,EAAQ,WAAa,EAAQ,SAAW,UACxC,EAAQ,iBAAmB,EAAQ,gBAAiB,GAEpD,KAAK,UAAY,EACjB,KAAK,UAAY,EAAQ,UACzB,KAAK,SAAW,EAAQ,SACxB,KAAK,WAAa,EAAQ,YAAc,CAAC,OACzC,KAAK,YAAc,EAAQ,aAAe,KAC1C,KAAK,UAAY,EAAQ,WAAa,CAAC,MAAO,MAAO,OAAQ,MAAO,OACpE,KAAK,UAAY,4BACjB,KAAK,eAAiB,EAAQ,cAChC,CAlBA,UAAU,UAAY,OAAO,OAAO,OAAO,WAC3C,UAAU,UAAU,YAAc,UAkBlC,OAAO,QAAU,UAEjB,UAAU,UAAU,MAAQ,SAAU,EAAU,GAC9C,IAAI,EAAO,KACX,OAAO,EAAS,KAAK,WAAW,MAAK,SAAU,GAQ7C,OAPI,EAAK,gBACP,EAAK,cAAgB,KAAK,KAAK,EAAQ,EAAK,WAC5C,EAAK,aAAe,KAAK,KAAK,EAAQ,EAAK,YAE3C,EAAK,cAAgB,KAAK,KAAK,QAAQ,MAAO,EAAK,WACnD,EAAK,aAAe,KAAK,KAAK,QAAQ,MAAO,EAAK,WAE7C,OAAO,UAAU,MAAM,KAAK,EAAM,EAAU,EACrD,GACF,EAEA,UAAU,UAAU,cAAgB,SAAS,EAAQ,GACnD,IAAI,EAAY,KAAK,cACjB,EAAW,KAAK,aAChB,EAAc,KAAK,YACnB,EAAY,KAAK,UAErB,OAAO,EAAO,QAAQ,KAAK,WAAW,SAAS,EAAO,GACpD,GAAI,SAAS,KAAK,GAAW,OAAO,EACpC,EAAW,EAAS,QAAQ,kBAAmB,IAC/C,IAAI,EAAY,KAAK,QAAQ,GAAU,OAAO,GAC1C,EAAO,cAAc,IAAc,EACvC,KAAM,EAAU,QAAQ,GAAY,OAAO,EAE3C,IACI,EADA,EAAS,QAeb,MAZI,mBAAmB,KAAK,IAC1B,EAAS,cACT,EAAW,KAAK,KAAK,EAAU,IACtB,MAAM,KAAK,IACpB,EAAW,KAAK,KAAK,EAAU,GAC1B,GAAG,WAAW,KACjB,EAAW,KAAK,KAAK,EAAW,KAGlC,EAAW,KAAK,KAAK,EAAW,GAG7B,GAAG,WAAW,GAER,GAAG,SAAS,GAAU,KACtB,EAAoB,EAGxB,aAAe,EAAS,IAAM,EAAO,WAD/B,GAAG,aAAa,GAAU,SAAS,UACkB,KAN7B,CAOvC,GACF","file":"/npm/broccoli-base64-css@0.0.6/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/broccoli-base64-css@0.0.6/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 fs = require('fs');\nvar path = require('path');\nvar Filter = require('broccoli-filter');\n\nvar MEDIATYPE_MAP = {\n  ttf: 'x-font-truetype',\n  otf: 'x-font-opentype',\n  woff: 'font-woff',\n  eot: 'vnd.ms-fontobject',\n  jpg: 'jpeg',\n  svg: 'svg+xml'\n};\n\nBase64CSS.prototype = Object.create(Filter.prototype);\nBase64CSS.prototype.constructor = Base64CSS;\nfunction Base64CSS (inputTree, options) {\n  if (!(this instanceof Base64CSS)) return new Base64CSS(inputTree, options);\n\n  options = options || {};\n  options.imagePath || (options.imagePath = 'public');\n  options.fontPath || (options.fontPath = 'public');\n  options.assetsFromTree || (options.assetsFromTree = false);\n\n  this.inputTree = inputTree;\n  this.imagePath = options.imagePath;\n  this.fontPath = options.fontPath;\n  this.extensions = options.extensions || ['css'];\n  this.maxFileSize = options.maxFileSize || 4096;\n  this.fileTypes = options.fileTypes || ['png', 'jpg', 'jpeg', 'gif', 'svg'];\n  this.urlsRegex = /url\\([\"\\']?(.+?)[\"\\']?\\)/g;\n  this.assetsFromTree = options.assetsFromTree;\n}\nmodule.exports = Base64CSS;\n\nBase64CSS.prototype.write = function (readTree, destDir) {\n  var self = this\n  return readTree(this.inputTree).then(function (srcDir) {\n    if (self.assetsFromTree) {\n      self.fullImagePath = path.join(srcDir, self.imagePath);\n      self.fullFontPath = path.join(srcDir, self.fontPath);\n    } else {\n      self.fullImagePath = path.join(process.cwd(), self.imagePath);\n      self.fullFontPath = path.join(process.cwd(), self.fontPath);\n    }\n    return Filter.prototype.write.call(self, readTree, destDir);\n  });\n}\n\nBase64CSS.prototype.processString = function(string, relativePath) {\n  var imagePath = this.fullImagePath;\n  var fontPath = this.fullFontPath;\n  var maxFileSize = this.maxFileSize;\n  var fileTypes = this.fileTypes;\n\n  return string.replace(this.urlsRegex, function(match, fileName) {\n    if (/^data:/.test(fileName)) return match;\n    fileName = fileName.replace(/(\\?)?(#)(.*)\\b/g, '');\n    var extension = path.extname(fileName).substr(1);\n    var type = MEDIATYPE_MAP[extension] || extension;\n    if (!~fileTypes.indexOf(extension)) return match;\n\n    var prefix = 'image';\n    var filePath;\n\n    if (/ttf|otf|woff|eot/.test(extension)) {\n      prefix = 'application';\n      filePath = path.join(fontPath, fileName);\n    } else if (/svg/.test(extension)) {\n      filePath = path.join(fontPath, fileName);\n      if (!fs.existsSync(filePath)) {\n        filePath = path.join(imagePath, fileName);\n      }\n    } else {\n      filePath = path.join(imagePath, fileName);\n    }\n\n    if (!fs.existsSync(filePath)) return match;\n\n    var size = fs.statSync(filePath).size;\n    if (size > maxFileSize) return match;\n\n    var base64 = fs.readFileSync(filePath).toString('base64');\n    return 'url(\"data:' + prefix + '/' + type + ';base64,' + base64 + '\")';\n  });\n};\n\n\n"]}