ashb commented on a change in pull request #6998: [AIRFLOW-6404] - ANSI color 
support for WebUI logger
URL: https://github.com/apache/airflow/pull/6998#discussion_r372657932
 
 

 ##########
 File path: airflow/www/static/ansi_up.min.js
 ##########
 @@ -0,0 +1,7 @@
+/*  ansi_up.js
+ *  author : Dru Nelson
+ *  license : MIT
+ *  http://github.com/drudru/ansi_up
+ */
+!function(e,t){if("function"==typeof 
define&&define.amd)define(["exports"],t);else if("object"==typeof 
exports&&"string"!=typeof exports.nodeName)t(exports);else{var 
n={};t(n),e.AnsiUp=n.default}}(this,function(e){"use strict";var 
t,n=this&&this.__makeTemplateObject||function(e,t){return 
Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};!function(e){e[e.EOS=0]="EOS",e[e.Text=1]="Text",e[e.Incomplete=2]="Incomplete",e[e.ESC=3]="ESC",e[e.Unknown=4]="Unknown",e[e.SGR=5]="SGR",e[e.OSCURL=6]="OSCURL"}(t||(t={}));var
 i=function(){function 
e(){this.VERSION="4.0.4",this.setup_palettes(),this._use_classes=!1,this._escape_for_html=!0,this.bold=!1,this.fg=this.bg=null,this._buffer="",this._url_whitelist={http:1,https:1}}return
 Object.defineProperty(e.prototype,"use_classes",{get:function(){return 
this._use_classes},set:function(e){this._use_classes=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"escape_for_html",{get:function(){return
 
this._escape_for_html},set:function(e){this._escape_for_html=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url_whitelist",{get:function(){return
 
this._url_whitelist},set:function(e){this._url_whitelist=e},enumerable:!0,configurable:!0}),e.prototype.setup_palettes=function(){var
 
e=this;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.palette_256=[],this.ansi_colors.forEach(function(t){t.forEach(function(t){e.palette_256.push(t)})});for(var
 t=[0,95,135,175,215,255],n=0;n<6;++n)for(var i=0;i<6;++i)for(var 
s=0;s<6;++s){var 
r={rgb:[t[n],t[i],t[s]],class_name:"truecolor"};this.palette_256.push(r)}for(var
 a=8,l=0;l<24;++l,a+=10){var 
f={rgb:[a,a,a],class_name:"truecolor"};this.palette_256.push(f)}},e.prototype.escape_txt_for_html=function(e){return
 
e.replace(/[&<>]/gm,function(e){return"&"===e?"&amp;":"<"===e?"&lt;":">"===e?"&gt;":void
 0})},e.prototype.append_buffer=function(e){var 
t=this._buffer+e;this._buffer=t},e.prototype.get_next_packet=function(){var 
e={kind:t.EOS,text:"",url:""},i=this._buffer.length;if(0==i)return e;var 
r=this._buffer.indexOf("");if(-1==r)return 
e.kind=t.Text,e.text=this._buffer,this._buffer="",e;if(r>0)return 
e.kind=t.Text,e.text=this._buffer.slice(0,r),this._buffer=this._buffer.slice(r),e;if(0==r){if(1==i)return
 e.kind=t.Incomplete,e;var a=this._buffer.charAt(1);if("["!=a&&"]"!=a)return 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;if("["==a){if(this._csi_regex||(this._csi_regex=s(n(["\n
                        ^                           # beginning of line\n       
                                             #\n                                
                    # First attempt\n                        (?:                
         # legal sequence\n                          [                      # 
CSI\n                          ([<-?]?)              # private-mode char\n      
                    ([d;]*)                    # any digits or semicolons\n     
                     ([ -/]?               # an intermediate modifier\n         
                 [@-~])                # the command\n                        
)\n                        |                           # alternate (second 
attempt)\n                        (?:                         # illegal 
sequence\n                          [                      # CSI\n             
             [ -~]*                # anything legal\n                          
([\0-:])              # anything illegal\n                        )\n          
          "],["\n                        ^                           # 
beginning of line\n                                                    #\n      
                                              # First attempt\n                 
       (?:                         # legal sequence\n                          
\\x1b\\[                      # CSI\n                          ([\\x3c-\\x3f]?) 
             # private-mode char\n                          ([\\d;]*)           
         # any digits or semicolons\n                          ([\\x20-\\x2f]?  
             # an intermediate modifier\n                          
[\\x40-\\x7e])                # the command\n                        )\n        
                |                           # alternate (second attempt)\n      
                  (?:                         # illegal sequence\n              
            \\x1b\\[                      # CSI\n                          
[\\x20-\\x7e]*                # anything legal\n                          
([\\x00-\\x1f:])              # anything illegal\n                        )\n   
                 "]))),null===(h=this._buffer.match(this._csi_regex)))return 
e.kind=t.Incomplete,e;if(h[4])return 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;""!=h[1]||"m"!=h[3]?e.kind=t.Unknown:e.kind=t.SGR,e.text=h[2];var
 l=h[0].length;return 
this._buffer=this._buffer.slice(l),e}if("]"==a){if(i<4)return 
e.kind=t.Incomplete,e;if("8"!=this._buffer.charAt(2)||";"!=this._buffer.charAt(3))return
 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;this._osc_st||(this._osc_st=function(e){for(var
 t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var 
i=e.raw[0],s=i.replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,"");return new 
RegExp(s,"g")}(n(["\n                        (?:                         # 
legal sequence\n                          (\\)                    # ESC        
                   |                           # alternate\n                    
      ()                      # BEL (what xterm did)\n                        
)\n                        |                           # alternate (second 
attempt)\n                        (                           # illegal 
sequence\n                          [\0-]                 # anything illegal\n 
                         |                           # alternate\n              
            [\b-]                 # anything illegal\n                         
 |                           # alternate\n                          [-]       
          # anything illegal\n                        )\n                    
"],["\n                        (?:                         # legal sequence\n   
                       (\\x1b\\\\)                    # ESC \\\n                
          |                           # alternate\n                          
(\\x07)                      # BEL (what xterm did)\n                        
)\n                        |                           # alternate (second 
attempt)\n                        (                           # illegal 
sequence\n                          [\\x00-\\x06]                 # anything 
illegal\n                          |                           # alternate\n    
                      [\\x08-\\x1a]                 # anything illegal\n        
                  |                           # alternate\n                     
     [\\x1c-\\x1f]                 # anything illegal\n                        
)\n                    "]))),this._osc_st.lastIndex=0;var 
f=this._osc_st.exec(this._buffer);if(null===f)return 
e.kind=t.Incomplete,e;if(f[3])return 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;var
 h,o=this._osc_st.exec(this._buffer);if(null===o)return 
e.kind=t.Incomplete,e;if(o[3])return 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;if(this._osc_regex||(this._osc_regex=s(n(["\n
                        ^                           # beginning of line\n       
                                             #\n                        ]8;    
                # OSC Hyperlink\n                        [ -:<-~]*       # 
params (excluding ;)\n                        ;                           # end 
of params\n                        ([!-~]{0,512})        # URL capture\n        
                (?:                         # ST\n                          
(?:\\)                  # ESC                           |                      
     # alternate\n                          (?:)                    # BEL 
(what xterm did)\n                        )\n                        ([!-~]+)   
           # TEXT capture\n                        ]8;;                   # 
OSC Hyperlink End\n                        (?:                         # ST\n   
                       (?:\\)                  # ESC                           
|                           # alternate\n                          (?:)        
            # BEL (what xterm did)\n                        )\n                 
   "],["\n                        ^                           # beginning of 
line\n                                                    #\n                   
     \\x1b\\]8;                    # OSC Hyperlink\n                        
[\\x20-\\x3a\\x3c-\\x7e]*       # params (excluding ;)\n                        
;                           # end of params\n                        
([\\x21-\\x7e]{0,512})        # URL capture\n                        (?:        
                 # ST\n                          (?:\\x1b\\\\)                  
# ESC \\\n                          |                           # alternate\n   
                       (?:\\x07)                    # BEL (what xterm did)\n    
                    )\n                        ([\\x21-\\x7e]+)              # 
TEXT capture\n                        \\x1b\\]8;;                   # OSC 
Hyperlink End\n                        (?:                         # ST\n       
                   (?:\\x1b\\\\)                  # ESC \\\n                    
      |                           # alternate\n                          
(?:\\x07)                    # BEL (what xterm did)\n                        
)\n                    
"]))),null===(h=this._buffer.match(this._osc_regex)))return 
e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;e.kind=t.OSCURL,e.url=h[1],e.text=h[2];l=h[0].length;return
 
this._buffer=this._buffer.slice(l),e}}},e.prototype.ansi_to_html=function(e){this.append_buffer(e);for(var
 n=[];;){var 
i=this.get_next_packet();if(i.kind==t.EOS||i.kind==t.Incomplete)break;i.kind!=t.ESC&&i.kind!=t.Unknown&&(i.kind==t.Text?n.push(this.transform_to_html(this.with_state(i))):i.kind==t.SGR?this.process_ansi(i):i.kind==t.OSCURL&&n.push(this.process_hyperlink(i)))}return
 
n.join("")},e.prototype.with_state=function(e){return{bold:this.bold,fg:this.fg,bg:this.bg,text:e.text}},e.prototype.process_ansi=function(e){for(var
 t=e.text.split(";");t.length>0;){var 
n=t.shift(),i=parseInt(n,10);if(isNaN(i)||0===i)this.fg=this.bg=null,this.bold=!1;else
 if(1===i)this.bold=!0;else if(22===i)this.bold=!1;else 
if(39===i)this.fg=null;else if(49===i)this.bg=null;else 
if(i>=30&&i<38)this.fg=this.ansi_colors[0][i-30];else 
if(i>=40&&i<48)this.bg=this.ansi_colors[0][i-40];else 
if(i>=90&&i<98)this.fg=this.ansi_colors[1][i-90];else 
if(i>=100&&i<108)this.bg=this.ansi_colors[1][i-100];else 
if((38===i||48===i)&&t.length>0){var 
s=38===i,r=t.shift();if("5"===r&&t.length>0){var 
a=parseInt(t.shift(),10);a>=0&&a<=255&&(s?this.fg=this.palette_256[a]:this.bg=this.palette_256[a])}if("2"===r&&t.length>2){var
 
l=parseInt(t.shift(),10),f=parseInt(t.shift(),10),h=parseInt(t.shift(),10);if(l>=0&&l<=255&&f>=0&&f<=255&&h>=0&&h<=255){var
 
o={rgb:[l,f,h],class_name:"truecolor"};s?this.fg=o:this.bg=o}}}}},e.prototype.transform_to_html=function(e){var
 t=e.text;if(0===t.length)return 
t;if(this._escape_for_html&&(t=this.escape_txt_for_html(t)),!e.bold&&null===e.fg&&null===e.bg)return
 t;var 
n=[],i=[],s=e.fg,r=e.bg;e.bold&&n.push("font-weight:bold"),this._use_classes?(s&&("truecolor"!==s.class_name?i.push(s.class_name+"-fg"):n.push("color:rgb("+s.rgb.join(",")+")")),r&&("truecolor"!==r.class_name?i.push(r.class_name+"-bg"):n.push("background-color:rgb("+r.rgb.join(",")+")"))):(s&&n.push("color:rgb("+s.rgb.join(",")+")"),r&&n.push("background-color:rgb("+r.rgb+")"));var
 a="",l="";return i.length&&(a=' class="'+i.join(" ")+'"'),n.length&&(l=' 
style="'+n.join(";")+'"'),"<span"+l+a+">"+t+"</span>"},e.prototype.process_hyperlink=function(e){var
 t=e.url.split(":");return t.length<1?"":this._url_whitelist[t[0]]?'<a 
href="'+this.escape_txt_for_html(e.url)+'">'+this.escape_txt_for_html(e.text)+"</a>":""},e}();function
 s(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var 
i=e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,"");return new 
RegExp(i)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=i});
+//# 
sourceMappingURL=/sm/e54fac82455c5244f73ba6a437a8ca0fefeba655e9f1fae1535a2c5dad960c25.map
 
 Review comment:
   Since we've got a source map line in this file we should also include the 
ansi_up.js.map file for this release.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to