{"version":3,"sources":["jsdelivr-header.js","/npm/mermaid-filter@1.4.7/index.js"],"names":[],"mappings":"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","file":"/npm/mermaid-filter@1.4.7/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/mermaid-filter@1.4.7/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","#! /usr/bin/env node\nvar pandoc = require('pandoc-filter');\nvar _ = require('lodash');\nvar tmp = require('tmp');\nvar fs = require('fs');\nvar path = require('path');\nvar exec = require('child_process').execSync;\nvar process = require('process')\nvar sanfile = require('sanitize-filename')\n\nvar prefix = \"diagram\";\nvar cmd = externalTool(\"mmdc\");\nvar imgur = externalTool(\"imgur\");\nvar counter = 0;\nvar folder = process.cwd()\n// Create a writeable stream to redirect stderr to file - if it logs to stdout, then pandoc hangs due to improper json.\n// errorLog is used in pandoc.toJSONFilter\nvar errFile = path.join(folder,  \"mermaid-filter.err\");\nvar errorLog = fs.createWriteStream(errFile);\n\n// console.log(folder)\nfunction mermaid(type, value, format, meta) {\n    if (type != \"CodeBlock\") return null;\n    var attrs = value[0],\n        content = value[1];\n    var id = attrs[0],\n        classes = attrs[1];\n    var options = {\n        width: process.env.MERMAID_FILTER_WIDTH || 800,\n        format: process.env.MERMAID_FILTER_FORMAT || 'png',\n        loc: process.env.MERMAID_FILTER_LOC || 'inline',\n        theme: process.env.MERMAID_FILTER_THEME || 'default',\n        background: process.env.MERMAID_FILTER_BACKGROUND || 'white',\n        caption: process.env.MERMAID_FILTER_CAPTION || '',\n        filename: process.env.MERMAID_FILTER_FILENAME || '',\n        scale: process.env.MERMAID_FILTER_SCALE || 1,\n        imageClass: process.env.MERMAID_FILTER_IMAGE_CLASS || ''\n    };\n    var configFile = process.env.MERMAID_FILTER_MERMAID_CONFIG || path.join(folder, \".mermaid-config.json\");\n    var confFileOpts = \"\"\n    if (fs.existsSync(configFile)) {\n        confFileOpts += ` -c \"${configFile}\"`\n    }\n    var puppeteerConfig = process.env.MERMAID_FILTER_PUPPETEER_CONFIG || path.join(folder, \".puppeteer.json\");\n    var puppeteerOpts = \"\"\n    if (fs.existsSync(puppeteerConfig)) {\n        puppeteerOpts += ` -p \"${puppeteerConfig}\"`\n    }\n    var cssFile = process.env.MERMAID_FILTER_MERMAID_CSS || path.join(folder, \".mermaid.css\");\n    if (fs.existsSync(cssFile)) {\n        confFileOpts += ` -C \"${cssFile}\"`\n    }\n\n    // console.log(classes)\n    if (classes.indexOf('mermaid') < 0) return null;\n\n    // console.log(attrs, content);\n    attrs[2].map(item => {\n        if (item.length  === 1) options[item[0]] = true;\n        else options[item[0]] = item[1];\n    });\n    // console.log(options);\n    // if (options.loc === 'inline') options.format = 'svg'\n    counter++;\n    //console.log(content);\n    var tmpfileObj = tmp.fileSync();\n    // console.log(tmpfileObj.name);\n    fs.writeFileSync(tmpfileObj.name, content);\n    var outdir = options.loc !== 'imgur' ? options.loc : path.dirname(tmpfileObj.name);\n    // console.log(outdir);\n\n    if (options.caption !== \"\" && options.filename === \"\"){\n      options.filename = sanfile(options.caption, {replacement: ''}).replace(/[#$~%+;()\\[\\]{}&=_\\-\\s]/g, '');\n    }\n\n    if (options.filename === \"\"){\n      options.filename = `${prefix}-${counter}`;\n    }\n\n    var savePath = tmpfileObj.name + \".\" + options.format\n    var newPath = path.join(outdir, `${options.filename}.${options.format}`);\n    var fullCmd = `${cmd}  ${confFileOpts} ${puppeteerOpts} -w ${options.width} -s ${options.scale} -f -i \"${tmpfileObj.name}\" -t ${options.theme} -b ${options.background} -o \"${savePath}\"`\n    // console.log(fullCmd, savePath)\n    exec(fullCmd);\n    //console.log(oldPath, newPath);\n    if (options.loc == 'inline') {\n        if (options.format === 'svg') {\n            var data = fs.readFileSync(savePath, 'utf8')\n            newPath = \"data:image/svg+xml;base64,\" + new Buffer(data).toString('base64');\n        } else if (options.format === 'pdf') {\n            newPath = savePath\n        } else  {\n            var data = fs.readFileSync(savePath)\n            newPath = 'data:image/png;base64,' + new Buffer(data).toString('base64');\n        }\n    } else if (options.loc === 'imgur')\n        newPath = exec(`${imgur} ${savePath}`)\n            .toString()\n            .trim()\n            .replace(\"http://\", \"https://\");\n    else {\n        mv(savePath, newPath);\n    }\n\n    var fig = \"\";\n\n    if (options.caption != \"\") {\n        fig = \"fig:\";\n    }\n\n    var imageClasses = options.imageClass ? [options.imageClass] : []\n\n    return pandoc.Para(\n        [\n            pandoc.Image(\n                [id, imageClasses, []],\n                [pandoc.Str(options.caption)],\n                [newPath, fig]\n            )\n    ]);\n}\n\nfunction externalTool(command) {\n    var paths = [\n      path.resolve(__dirname, \"node_modules\", \".bin\", command),\n      path.resolve(__dirname, \"..\", \".bin\", command)\n    ];\n    // Ability to replace path of external tool by environment variable\n    // to replace `mmdc` use `MERMAID_FILTER_CMD_MMDC`\n    // to replace `imgur` use `MERMAID_FILTER_CMD_IMGUR`\n    var envCmdName = \"MERMAID_FILTER_CMD_\" + (command || \"\").toUpperCase().replace(/[^A-Z0-9-]/g, \"_\");\n    var envCmd = process.env[envCmdName];\n    if (envCmd) {\n      paths = [envCmd];\n      command = \"env: \" + envCmdName;  // for error message\n    }\n    return firstExisting(paths,\n        function() {\n            console.error(\"External tool not found: \" + command);\n            process.exit(1);\n        });\n}\n\nfunction mv(from, to) {\n    var readStream = fs.createReadStream(from)\n    var writeStream = fs.createWriteStream(to);\n\n    readStream.on('close', () => {\n        fs.unlinkSync(from);\n    });\n    readStream.pipe(writeStream);\n}\n\nfunction firstExisting(paths, error) {\n    for (var i = 0; i < paths.length; i++) {\n        if (fs.existsSync(paths[i])) return `\"${paths[i]}\"`;\n    }\n    error();\n}\n\npandoc.toJSONFilter(function(type, value, format, meta) {\n    // Redirect stderr to a globally created writeable stream\n    process.stderr.write = errorLog.write.bind(errorLog);\n    return mermaid(type, value, format, meta);\n});\n"]}