+function rgx(tmplObj){var subst=[];for(var _i=1;_i<arguments.length;_i++){subst[_i-1]=arguments[_i]}var regexText=tmplObj.raw[0];var wsrgx=/^\s+|\s+\n|\s+#[\s\S]+?\n/gm;var txt2=regexText.replace(wsrgx,"");return new RegExp(txt2,"m")}var AnsiUp=function(){function AnsiUp(){this.VERSION="2.0.2";this.ansi_colors=[[{rgb:[0,0,0],class_name:"ansi-black"},{rgb:[187,0,0],class_name:"ansi-red"},{rgb:[0,187,0],class_name:"ansi-green"},{rgb:[187,187,0],class_name:"ansi-yellow"},{rgb:[0,0,187],class_name:"ansi-blue"},{rgb:[187,0,187],class_name:"ansi-magenta"},{rgb:[0,187,187],class_name:"ansi-cyan"},{rgb:[255,255,255],class_name:"ansi-white"}],[{rgb:[85,85,85],class_name:"ansi-bright-black"},{rgb:[255,85,85],class_name:"ansi-bright-red"},{rgb:[0,255,0],class_name:"ansi-bright-green"},{rgb:[255,255,85],class_name:"ansi-bright-yellow"},{rgb:[85,85,255],class_name:"ansi-bright-blue"},{rgb:[255,85,255],class_name:"ansi-bright-magenta"},{rgb:[85,255,255],class_name:"ansi-bright-cyan"},{rgb:[255,255,255],class_name:"ansi-bright-white"}]];this.htmlFormatter={transform:function(fragment,instance){var txt=fragment.text;if(txt.length===0)return txt;if(instance._escape_for_html)txt=instance.old_escape_for_html(txt);if(!fragment.bright&&fragment.fg===null&&fragment.bg===null)return txt;var styles=[];var classes=[];var fg=fragment.fg;var bg=fragment.bg;if(fg===null&&fragment.bright)fg=instance.ansi_colors[1][7];if(!instance._use_classes){if(fg)styles.push("color:rgb("+fg.rgb.join(",")+")");if(bg)styles.push("background-color:rgb("+bg.rgb+")")}else{if(fg){if(fg.class_name!=="truecolor"){classes.push(fg.class_name+"-fg")}else{styles.push("color:rgb("+fg.rgb.join(",")+")")}}if(bg){if(bg.class_name!=="truecolor"){classes.push(bg.class_name+"-bg")}else{styles.push("background-color:rgb("+bg.rgb.join(",")+")")}}}var class_string="";var style_string="";if(classes.length)class_string=' class="'+classes.join(" ")+'"';if(styles.length)style_string=' style="'+styles.join(";")+'"';return"<span"+class_string+style_string+">"+txt+"</span>"},compose:function(segments,instance){return segments.join("")}};this.textFormatter={transform:function(fragment,instance){return fragment.text},compose:function(segments,instance){return segments.join("")}};this.setup_256_palette();this._use_classes=false;this._escape_for_html=true;this.bright=false;this.fg=this.bg=null;this._buffer=""}Object.defineProperty(AnsiUp.prototype,"use_classes",{get:function(){return this._use_classes},set:function(arg){this._use_classes=arg},enumerable:true,configurable:true});Object.defineProperty(AnsiUp.prototype,"escape_for_html",{get:function(){return this._escape_for_html},set:function(arg){this._escape_for_html=arg},enumerable:true,configurable:true});AnsiUp.prototype.setup_256_palette=function(){var _this=this;this.palette_256=[];this.ansi_colors.forEach(function(palette){palette.forEach(function(rec){_this.palette_256.push(rec)})});var levels=[0,95,135,175,215,255];for(var r=0;r<6;++r){for(var g=0;g<6;++g){for(var b=0;b<6;++b){var col={rgb:[levels[r],levels[g],levels[b]],class_name:"truecolor"};this.palette_256.push(col)}}}var grey_level=8;for(var i=0;i<24;++i,grey_level+=10){var gry={rgb:[grey_level,grey_level,grey_level],class_name:"truecolor"};this.palette_256.push(gry)}};AnsiUp.prototype.old_escape_for_html=function(txt){return txt.replace(/[&<>]/gm,function(str){if(str==="&")return"&";if(str==="<")return"<";if(str===">")return">"})};AnsiUp.prototype.old_linkify=function(txt){return txt.replace(/(https?:\/\/[^\s]+)/gm,function(str){return'<a href="'+str+'">'+str+"</a>"})};AnsiUp.prototype.detect_incomplete_ansi=function(txt){return!/.*?[\x40-\x7e]/.test(txt)};AnsiUp.prototype.detect_incomplete_link=function(txt){var found=false;for(var i=txt.length-1;i>0;i--){if(/\s|\x1B/.test(txt[i])){found=true;break}}if(!found){if(/(https?:\/\/[^\s]+)/.test(txt))return 0;else return-1}var prefix=txt.substr(i+1,4);if(prefix.length===0)return-1;if("http".indexOf(prefix)===0)return i+1};AnsiUp.prototype.ansi_to=function(txt,formatter){var pkt=this._buffer+txt;this._buffer="";var raw_text_pkts=pkt.split(/\x1B\[/);if(raw_text_pkts.length===1)raw_text_pkts.push("");this.handle_incomplete_sequences(raw_text_pkts);var first_chunk=this.with_state(raw_text_pkts.shift());var blocks=new Array(raw_text_pkts.length);for(var i=0,len=raw_text_pkts.length;i<len;++i){blocks[i]=formatter.transform(this.process_ansi(raw_text_pkts[i]),this)}if(first_chunk.text.length>0)blocks.unshift(formatter.transform(first_chunk,this));return formatter.compose(blocks,this)};AnsiUp.prototype.ansi_to_html=function(txt){return this.ansi_to(txt,this.htmlFormatter)};AnsiUp.prototype.ansi_to_text=function(txt){return this.ansi_to(txt,this.textFormatter)};AnsiUp.prototype.with_state=function(text){return{bright:this.bright,fg:this.fg,bg:this.bg,text:text}};AnsiUp.prototype.handle_incomplete_sequences=function(chunks){var last_chunk=chunks[chunks.length-1];if(last_chunk.length>0&&this.detect_incomplete_ansi(last_chunk)){this._buffer="["+last_chunk;chunks.pop();chunks.push("")}else{if(last_chunk.slice(-1)===""){this._buffer="";console.log("raw",chunks);chunks.pop();chunks.push(last_chunk.substr(0,last_chunk.length-1));console.log(chunks);console.log(last_chunk)}if(chunks.length===2&&chunks[1]===""&&chunks[0].slice(-1)===""){this._buffer="";last_chunk=chunks.shift();chunks.unshift(last_chunk.substr(0,last_chunk.length-1))}}};AnsiUp.prototype.process_ansi=function(block){if(!this._sgr_regex){this._sgr_regex=(_a=["\n ^ # beginning of line\n ([!<-?]?) # a private-mode char (!, <, =, >, ?)\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n ([sS]*) # any text following this CSI sequence\n "],_a.raw=["\n ^ # beginning of line\n ([!\\x3c-\\x3f]?) # a private-mode char (!, <, =, >, ?)\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n ([\\s\\S]*) # any text following this CSI sequence\n "],rgx(_a))}var matches=block.match(this._sgr_regex);if(!matches){return this.with_state(block)}var orig_txt=matches[4];if(matches[1]!==""||matches[3]!=="m"){return this.with_state(orig_txt)}var sgr_cmds=matches[2].split(";");while(sgr_cmds.length>0){var sgr_cmd_str=sgr_cmds.shift();var num=parseInt(sgr_cmd_str,10);if(isNaN(num)||num===0){this.fg=this.bg=null;this.bright=false}else if(num===1){this.bright=true}else if(num===22){this.bright=false}else if(num===39){this.fg=null}else if(num===49){this.bg=null}else if(num>=30&&num<38){var bidx=this.bright?1:0;this.fg=this.ansi_colors[bidx][num-30]}else if(num>=90&&num<98){this.fg=this.ansi_colors[1][num-90]}else if(num>=40&&num<48){this.bg=this.ansi_colors[0][num-40]}else if(num>=100&&num<108){this.bg=this.ansi_colors[1][num-100]}else if(num===38||num===48){if(sgr_cmds.length>0){var is_foreground=num===38;var mode_cmd=sgr_cmds.shift();if(mode_cmd==="5"&&sgr_cmds.length>0){var palette_index=parseInt(sgr_cmds.shift(),10);if(palette_index>=0&&palette_index<=255){if(is_foreground)this.fg=this.palette_256[palette_index];else this.bg=this.palette_256[palette_index]}}if(mode_cmd==="2"&&sgr_cmds.length>2){var r=parseInt(sgr_cmds.shift(),10);var g=parseInt(sgr_cmds.shift(),10);var b=parseInt(sgr_cmds.shift(),10);if(r>=0&&r<=255&&(g>=0&&g<=255)&&(b>=0&&b<=255)){var c={rgb:[r,g,b],class_name:"truecolor"};if(is_foreground)this.fg=c;else this.bg=c}}}}}return this.with_state(orig_txt);var _a};return AnsiUp}();
0 commit comments