{"version":3,"names":["Filter","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","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","defaults","escapeXML","stream","constructor","Object","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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"}