{"version":3,"names":["Filter","__SystemJSRewritingHack","defaults","getDefaultColors","colors","range","forEach","red","green","blue","setStyleColor","gray","c","l","toHexString","r","g","b","toColorHexString","num","str","toString","length","ref","results","j","len","push","join","generateOutput","stack","token","data","options","result","pushText","handleDisplay","pushForegroundColor","code","parseInt","codeMap","-1","resetStyles","pushTag","pushStyle","closeTag","fg","pushBackgroundColor","bg","stackClone","slice","reverse","map","tag","low","high","notCategory","category","e","categoryForCode","text","style","color","last","pop","tokenize","callback","ansiMatch","ansiHandler","remove","removeXterm256","m","g1","newline","ansiMess","trim","trimRight","split","o","realText","tokens","pattern","sub","process","handler","i","replace","results1","outer","updateStickyStack","stickyStack","filter","_export","setters","execute","_recorder_","_src_external_ansi_to_html_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","escapeXML","stream","constructor","assign","opts","toHtml","input","buf","element","output"],"sources":["ansi-to-html.js"],"sourcesContent":["const defaults = {\n    fg: '#FFF',\n    bg: '#000',\n    newline: false,\n    escapeXML: false,\n    stream: false,\n    colors: getDefaultColors()\n};\n\nfunction getDefaultColors() {\n    const colors = {\n        0: '#000',\n        1: '#A00',\n        2: '#0A0',\n        3: '#A50',\n        4: '#00A',\n        5: '#A0A',\n        6: '#0AA',\n        7: '#AAA',\n        8: '#555',\n        9: '#F55',\n        10: '#5F5',\n        11: '#FF5',\n        12: '#55F',\n        13: '#F5F',\n        14: '#5FF',\n        15: '#FFF'\n    };\n\n    range(0, 5).forEach(red => {\n        range(0, 5).forEach(green => {\n            range(0, 5).forEach(blue => setStyleColor(red, green, blue, colors));\n        });\n    });\n\n    range(0, 23).forEach(function (gray) {\n        const c = gray + 232;\n        const l = toHexString(gray * 10 + 8);\n\n        colors[c] = '#' + l + l + l;\n    });\n\n    return colors;\n}\n\n/**\n * @param {number} red\n * @param {number} green\n * @param {number} blue\n * @param {object} colors\n */\nfunction setStyleColor(red, green, blue, colors) {\n    const c = 16 + (red * 36) + (green * 6) + blue;\n    const r = red > 0 ? red * 40 + 55 : 0;\n    const g = green > 0 ? green * 40 + 55 : 0;\n    const b = blue > 0 ? blue * 40 + 55 : 0;\n\n    colors[c] = toColorHexString([r, g, b]);\n}\n\n/**\n * Converts from a number like 15 to a hex string like 'F'\n * @param {number} num\n * @returns {string}\n */\nfunction toHexString(num) {\n    var str = num.toString(16);\n\n    while (str.length < 2) {\n        str = '0' + str;\n    }\n\n    return str;\n}\n\n/**\n * Converts from an array of numbers like [15, 15, 15] to a hex string like 'FFF'\n * @param {[red, green, blue]} ref\n * @returns {string}\n */\nfunction toColorHexString(ref) {\n    var results = [];\n\n    for (var j = 0, len = ref.length; j < len; j++) {\n        results.push(toHexString(ref[j]));\n    }\n\n    return '#' + results.join('');\n}\n\n/**\n * @param {Array} stack\n * @param {string} token\n * @param {*} data\n * @param {object} options\n */\nfunction generateOutput(stack, token, data, options) {\n    var result;\n\n    if (token === 'text') {\n        result = pushText(data, options);\n    } else if (token === 'display') {\n        result = handleDisplay(stack, data, options);\n    } else if (token === 'xterm256') {\n        result = pushForegroundColor(stack, options.colors[data]);\n    }\n\n    return result;\n}\n\n/**\n * @param {Array} stack\n * @param {number} code\n * @param {object} options\n * @returns {*}\n */\nfunction handleDisplay(stack, code, options) {\n    code = parseInt(code, 10);\n    var result;\n\n    const codeMap = {\n        '-1': () => '<br/>',\n        0: () => stack.length && resetStyles(stack),\n        1: () => pushTag(stack, 'b'),\n        3: () => pushTag(stack, 'i'),\n        4: () => pushTag(stack, 'u'),\n        8: () => pushStyle(stack, 'display:none'),\n        9: () => pushTag(stack, 'strike'),\n        22: () => closeTag(stack, 'b'),\n        23: () => closeTag(stack, 'i'),\n        24: () => closeTag(stack, 'u'),\n        39: () => pushForegroundColor(stack, options.fg),\n        49: () => pushBackgroundColor(stack, options.bg)\n    };\n\n    if (codeMap[code]) {\n        result = codeMap[code]();\n    } else if (4 < code && code < 7) {\n        result = pushTag(stack, 'blink');\n    } else if (29 < code && code < 38) {\n        result = pushForegroundColor(stack, options.colors[code - 30]);\n    } else if ((39 < code && code < 48)) {\n        result = pushBackgroundColor(stack, options.colors[code - 40]);\n    } else if ((89 < code && code < 98)) {\n        result = pushForegroundColor(stack, options.colors[8 + (code - 90)]);\n    } else if ((99 < code && code < 108)) {\n        result = pushBackgroundColor(stack, options.colors[8 + (code - 100)]);\n    }\n\n    return result;\n}\n\n/**\n * Clear all the styles\n * @returns {string}\n */\nfunction resetStyles(stack) {\n    var stackClone = stack.slice(0);\n\n    stack.length = 0;\n\n    return stackClone.reverse().map(function (tag) {\n        return '</' + tag + '>';\n    }).join('');\n}\n\n/**\n * Creates an array of numbers ranging from low to high\n * @param {number} low\n * @param {number} high\n * @returns {Array}\n * @example range(3, 7); // creates [3, 4, 5, 6, 7]\n */\nfunction range(low, high) {\n    const results = [];\n\n    for (var j = low; j <= high; j++) {\n        results.push(j);\n    }\n\n    return results;\n}\n\n\n\n/**\n * Returns a new function that is true if value is NOT the same category\n * @param {string} category\n * @returns {function}\n */\nfunction notCategory(category) {\n    return function (e) {\n        return (category === null || e.category !== category) && category !== 'all';\n    };\n}\n\n/**\n * Converts a code into an ansi token type\n * @param {number} code\n * @returns {string}\n */\nfunction categoryForCode(code) {\n    code = parseInt(code, 10);\n    var result = null;\n\n    if (code === 0) {\n        result = 'all';\n    } else if (code === 1) {\n        result = 'bold';\n    } else if ((2 < code && code < 5)) {\n        result = 'underline';\n    } else if ((4 < code && code < 7)) {\n        result = 'blink';\n    } else if (code === 8) {\n        result = 'hide';\n    } else if (code === 9) {\n        result = 'strike';\n    } else if ((29 < code && code < 38) || code === 39 || (89 < code && code < 98)) {\n        result = 'foreground-color';\n    } else if ((39 < code && code < 48) || code === 49 || (99 < code && code < 108)) {\n        result = 'background-color';\n    }\n\n    return result;\n}\n\n/**\n * @param {string} text\n * @param {object} options\n * @returns {string}\n */\nfunction pushText(text, options) {\n  return text;\n}\n\n/**\n * @param {Array} stack\n * @param {string} tag\n * @param {string} [style='']\n * @returns {string}\n */\nfunction pushTag(stack, tag, style) {\n    if (!style) {\n        style = '';\n    }\n\n    stack.push(tag);\n\n    return ['<' + tag, (style ? ' style=\"' + style + '\"' : void 0), '>'].join('');\n}\n\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\nfunction pushStyle (stack, style) {\n    return pushTag(stack, 'span', style);\n}\n\nfunction pushForegroundColor(stack, color) {\n    return pushTag(stack, 'span', 'color:' + color);\n}\n\nfunction pushBackgroundColor(stack, color) {\n    return pushTag(stack, 'span', 'background-color:' + color);\n}\n\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\nfunction closeTag(stack, style) {\n    var last;\n\n    if (stack.slice(-1)[0] === style) {\n        last = stack.pop();\n    }\n\n    if (last) {\n        return '</' + style + '>';\n    }\n}\n\n/**\n * @param {string} text\n * @param {object} options\n * @param {function} callback\n * @returns {Array}\n */\nfunction tokenize(text, options, callback) {\n    var ansiMatch = false;\n    var ansiHandler = 3;\n\n    function remove() {\n        return '';\n    }\n\n    function removeXterm256(m, g1) {\n        callback('xterm256', g1);\n        return '';\n    }\n\n    function newline(m) {\n        if (options.newline) {\n            callback('display', -1);\n        } else {\n            callback('text', m);\n        }\n\n        return '';\n    }\n\n    function ansiMess(m, g1) {\n        ansiMatch = true;\n        if (g1.trim().length === 0) {\n            g1 = '0';\n        }\n\n        g1 = g1.trimRight(';').split(';');\n\n        for (var o = 0, len = g1.length; o < len; o++) {\n            callback('display', g1[o]);\n        }\n\n        return '';\n    }\n\n    function realText(m) {\n        callback('text', m);\n\n        return '';\n    }\n\n    /* eslint no-control-regex:0 */\n    const tokens = [{\n        pattern: /^\\x08+/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[[012]?K/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[\\(B/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[38;5;(\\d+)m/,\n        sub: removeXterm256\n    }, {\n        pattern: /^\\n/,\n        sub: newline\n    }, {\n        pattern: /^\\x1b\\[((?:\\d{1,3};?)+|)m/,\n        sub: ansiMess\n    }, {\n        pattern: /^\\x1b\\[?[\\d;]{0,3}/,\n        sub: remove\n    }, {\n        pattern: /^([^\\x1b\\x08\\n]+)/,\n        sub: realText\n    }];\n\n    function process(handler, i) {\n        if (i > ansiHandler && ansiMatch) {\n            return;\n        }\n\n        ansiMatch = false;\n\n        text = text.replace(handler.pattern, handler.sub);\n    }\n\n    var handler;\n    var results1 = [];\n    var length = text.length;\n\n    outer:\n    while (length > 0) {\n        for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) {\n            handler = tokens[i];\n            process(handler, i);\n\n            if (text.length !== length) {\n                // We matched a token and removed it from the text. We need to\n                // start matching *all* tokens against the new text.\n                length = text.length;\n                continue outer;\n            }\n        }\n\n        if (text.length === length) {\n            break;\n        } else {\n            results1.push(0);\n        }\n\n        length = text.length;\n    }\n\n    return results1;\n}\n\n/**\n * If streaming, then the stack is \"sticky\"\n *\n * @param {Array} stickyStack\n * @param {string} token\n * @param {*} data\n * @returns {Array}\n */\nfunction updateStickyStack(stickyStack, token, data) {\n    if (token !== 'text') {\n        stickyStack = stickyStack.filter(notCategory(categoryForCode(data)));\n        stickyStack.push({token: token, data: data, category: categoryForCode(data)});\n    }\n\n    return stickyStack;\n}\n\nexport default class Filter {\n  \n  constructor(options) {\n    options = options || {};\n\n    if (options.colors) {\n        options.colors = Object.assign({}, defaults.colors, options.colors);\n    }\n\n    this.opts = Object.assign({}, defaults, options);\n    this.stack = [];\n    this.stickyStack = [];\n  }\n  toHtml (input) {\n        input = typeof input === 'string' ? [input] : input;\n        const stack = this.stack;\n        const options = this.opts;\n        const buf = [];\n\n        this.stickyStack.forEach(element => {\n            var output = generateOutput(stack, element.token, element.data, options);\n\n            if (output) {\n                buf.push(output);\n            }\n        });\n\n        tokenize(input.join(''), options, (token, data) => {\n            var output = generateOutput(stack, token, data, options);\n\n            if (output) {\n                buf.push(output);\n            }\n\n            if (options.stream) {\n                this.stickyStack = updateStickyStack(this.stickyStack, token, data);\n            }\n        });\n\n        if (stack.length) {\n            buf.push(resetStyles(stack));\n        }\n\n        return buf.join('');\n    }\n}\n\n"],"mappings":"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"}