{"version":3,"sources":["jsdelivr-header.js","/npm/grunt-blobify@0.1.1/tasks/blobify.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,MAAQ,QAAQ,SAChB,KAAO,QAAQ,QACf,cAAgB,WAAW,WAM/B,SAAS,WAAW,GAChB,IAAI,EAAM,EAAO,IACb,EAAc,EAAO,KACrB,EAAO,EAAO,MAAQ,GACtB,EAAO,KAAK,MAAM,GAAK,KACvB,EAAM,EAAK,OACX,EAAS,IAAI,YAAY,GACzB,EAAO,IAAI,WAAW,GAC1B,EAAK,IAAI,GAET,IAAI,EAAS,IAAI,KAAK,CAAC,GAAO,CAC1B,KAAM,IAIV,OADA,EAAO,KAAO,EACP,CACX,CArBA,KAAK,aAAe,KACpB,KAAK,OAAO,CACR,gCAAiC,CAAC,SAqBtC,OAAO,QAAU,SAAU,GACvB,EAAM,kBAAkB,UAAW,iBAAiB,WAChD,IAAI,EAAU,KAAK,QAAQ,CACvB,OAAQ,MACR,gBAAiB,WAGrB,KAAK,MAAM,SAAQ,SAAU,GACzB,IAAI,EAAM,EAAE,IAAI,QAAO,SAAU,GAC7B,QAAK,EAAM,KAAK,OAAO,KACnB,EAAM,IAAI,KAAK,eAAiB,MAAM,KAAK,GAAY,gBAChD,EAIf,IAEA,GAAmB,IAAf,EAAI,OAAR,CAKA,IAAI,EAAS,cAAgB,sBACzB,EAAW,GAsBf,GArBA,EAAI,SAAQ,SAAU,GAIlB,IAAI,EAAS,EAAM,KAAK,KAAK,EAAU,CACnC,SAAU,OAEV,EAAc,KAAK,OAAO,GAE9B,IAAK,EAED,OADA,EAAM,IAAI,KAAK,uBAAyB,MAAM,KAAK,KAC5C,EAGX,GAAY,UAAa,EAAb,0BACG,KAAK,UAAU,GADlB,cAEI,EAFJ,cAGI,EAAS,MAAM,KAAK,MAHxB,UAKhB,KAEK,EAED,OADA,EAAM,IAAI,KAAK,2BACR,EAKX,OAFA,GAAU,EAEF,EAAQ,QACZ,IAAK,MACD,GAAU,0BACV,MACJ,IAAK,SACD,EAAS,uBACT,EAAS,4BAA+B,EAAuB,gBAAE,QAAQ,OAAQ,IAAM,MAK/F,EAAM,KAAK,MAAM,EAAE,KAAM,GAGzB,EAAM,IAAI,QAAQ,QAAU,MAAM,KAAK,EAAE,MAAQ,YA9CjD,MAFI,EAAM,IAAI,KAAK,eAAiB,MAAM,KAAK,EAAE,MAAQ,6CAiD7D,GACJ,GACJ","file":"/npm/grunt-blobify@0.1.1/tasks/blobify.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/grunt-blobify@0.1.1/tasks/blobify.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 chalk = require('chalk');\nvar mime = require('mime');\nvar convertFnBody = createBlob.toString();\nmime.default_type = null;\nmime.define({\n    'application/x-fictionbook+xml': ['fb2']\n});\n\nfunction createBlob(params) {\n    var src = params.src;\n    var contentType = params.type;\n    var name = params.name || '';\n    var data = JSON.parse(src).data;\n    var len = data.length;\n    var buffer = new ArrayBuffer(len);\n    var view = new Uint8Array(buffer);\n    view.set(data);\n\n    var result = new Blob([view], {\n        type: contentType\n    });\n\n    result.name = name;\n    return result;\n}\n\nmodule.exports = function (grunt) {\n    grunt.registerMultiTask('blobify', 'Convert files', function () {\n        var options = this.options({\n            target: 'es6',\n            targetNamespace: 'window'\n        });\n\n        this.files.forEach(function (f) {\n            var src = f.src.filter(function (filepath) {\n                if (!grunt.file.exists(filepath)) {\n                    grunt.log.warn('Source file ' + chalk.cyan(filepath) + ' not found.');\n                    return false;\n                }\n\n                return true;\n            });\n\n            if (src.length === 0) {\n                grunt.log.warn('Destination ' + chalk.cyan(f.dest) + ' not written because src files were empty.');\n                return;\n            }\n\n            var output = convertFnBody + '\\nvar files = {};\\n';\n            var filesSrc = '';\n            src.forEach(function (filepath) {\n                /**\n                 * @description With encoding == null it returns a Buffer\n                 */\n                var buffer = grunt.file.read(filepath, {\n                    encoding: null\n                });\n                var contentType = mime.lookup(filepath);\n\n                if (!contentType) {\n                    grunt.log.warn('Unknown contentType ' + chalk.cyan(filepath));\n                    return false;\n                }\n\n                filesSrc += 'files[\\'' + filepath + '\\'] = createBlob({' +\n                    \"src: '\" + JSON.stringify(buffer) + \"',\\n\" +\n                    \"type: '\" + contentType + \"',\\n\" +\n                    \"name: '\" + filepath.split('/').pop() + \"'\\n\" +\n                    '});\\n';\n            });\n\n            if (!filesSrc) {\n                grunt.log.warn('No files are converted');\n                return false;\n            }\n\n            output += filesSrc;\n\n            switch (options.target) {\n                case 'es6':\n                    output += '\\nexport default files;';\n                    break;\n                case 'global':\n                    output = '(function (root) {\\n' +\n                    output + '\\nroot.files = files;\\n}(' + (options.targetNamespace).replace(/\\.+$/, '') + '));';\n                    break;\n            }\n\n            // Write the destination file.\n            grunt.file.write(f.dest, output);\n\n            // Print a success message.\n            grunt.log.writeln('File ' + chalk.cyan(f.dest) + ' created.');\n        });\n    });\n};\n"]}