UNPKG

neo-neo-bblessed

Version:

A fork of neo-blessed (which is a fork of blessed) with bug fixes and maintenance.

10 lines (9 loc) 31.7 kB
var D=Object.create;var P=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var $=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var J=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of L(r))!H.call(e,n)&&n!==t&&P(e,n,{get:()=>r[n],enumerable:!(i=B(r,n))||i.enumerable});return e};var q=(e,r,t)=>(t=e!=null?D($(e)):{},J(r||!e||!e.__esModule?P(t,"default",{value:e,enumerable:!0}):t,e));var I=q(require("./internal-term")),j=require("assert"),E=require("path"),w=require("fs"),X=require("child_process");function s(e){if(!(this instanceof s))return new s(e);e=e||{},typeof e=="string"&&(e={terminal:e}),this.options=e,this.terminal=e.terminal||e.term||process.env.TERM||(process.platform==="win32"?"windows-ansi":"xterm"),this.terminal=this.terminal.toLowerCase(),this.debug=e.debug,this.padding=e.padding,this.extended=e.extended,this.printf=e.printf,this.termcap=e.termcap,this.error=null,this.terminfoPrefix=e.terminfoPrefix,this.terminfoFile=e.terminfoFile,this.termcapFile=e.termcapFile,(e.terminal||e.term)&&this.setup()}s.prototype.setup=function(){this.error=null;try{if(this.termcap)try{this.injectTermcap()}catch(e){if(this.debug)throw e;this.error=new Error("Termcap parse error."),this._useInternalCap(this.terminal)}else try{this.injectTerminfo()}catch(e){if(this.debug)throw e;this.error=new Error("Terminfo parse error."),this._useInternalInfo(this.terminal)}}catch(e){if(this.debug)throw e;this.error=new Error("Terminfo not found."),this._useXtermInfo()}},s.prototype.term=function(e){return this.terminal.indexOf(e)===0},s.prototype._debug=function(...e){if(this.debug)return console.log.apply(console,arguments)},s.prototype._useVt102Cap=function(){return this.injectTermcap("vt102")},s.prototype._useXtermCap=function(){return this.injectTermcap(__dirname+"/../usr/xterm.termcap")},s.prototype._useXtermInfo=function(){try{return this.injectTerminfo(require.resolve("../usr/xterm"))}catch(t){var e=Buffer.from(I.default.xterm,"base64"),r=this.compile(this.parseTerminfo(e,"xterm"));return this.inject(r)}},s.prototype._useInternalInfo=function(e){e=E.basename(e);try{return this.injectTerminfo(require.resolve("../usr/"+e))}catch(i){if(I.default[e]){var r=Buffer.from(I.default[e],"base64"),t=this.compile(this.parseTerminfo(r,e));return this.inject(t)}throw i}},s.prototype._useInternalCap=function(e){e=E.basename(e);try{return this.injectTermcap(require.resolve("../usr/"+e+".termcap"))}catch(i){if(I.default[e]){var r=Buffer.from(I.default[e],"base64"),t=this.compile(this.parseTerminfo(r,e));return this.inject(t)}throw i}},s.ipaths=[process.env.TERMINFO||"",(process.env.TERMINFO_DIRS||"").split(":"),(process.env.HOME||"")+"/.terminfo","/usr/share/terminfo","/usr/share/lib/terminfo","/usr/lib/terminfo","/usr/local/share/terminfo","/usr/local/share/lib/terminfo","/usr/local/lib/terminfo","/usr/local/ncurses/lib/terminfo","/lib/terminfo"],s.prototype.readTerminfo=function(e){var r,t,i;return e=e||this.terminal,I.default[e]?i=this.parseTerminfo(Buffer.from(I.default[e],"base64"),"<inline:"+e+">"):(t=E.normalize(this._prefix(e)),r=w.readFileSync(t),i=this.parseTerminfo(r,t)),this.debug&&(this._terminfo=i),i},s._prefix=s.prototype._prefix=function(e){if(e){if(~e.indexOf(E.sep))return e;if(this.terminfoFile)return this.terminfoFile}var r=s.ipaths.slice(),t;if(this.terminfoPrefix&&r.unshift(this.terminfoPrefix),t=this._tprefix(r,e),t||(t=this._tprefix(r,e,!0),t))return t;throw new Error("Terminfo directory not found.")},s._tprefix=s.prototype._tprefix=function(e,r,t){if(e){var i,n,o,m,c,u;if(Array.isArray(e)){for(o=0;o<e.length;o++)if(i=this._tprefix(e[o],r,t),i)return i;return}var p=function(f){var a,h;a=E.resolve(e,f[0]);try{return w.statSync(a),a}catch(_){}h=f[0].charCodeAt(0).toString(16),h.length<2&&(h="0"+h),a=E.resolve(e,h);try{return w.statSync(a),a}catch(_){}};if(!r){try{if(n=w.readdirSync(e).filter(function(f){return f.length!==1&&!/^[0-9a-fA-F]{2}$/.test(f)}),!n.length)return e}catch(f){}return}if(r=E.basename(r),n=p(r),!!n){if(t){try{u=w.readdirSync(n)}catch(f){return}return u.forEach(function(f){if(f.indexOf(r)===0){var a=f.length-r.length;(!c||a<m)&&(m=a,c=f)}}),c&&(t||m===0)?E.resolve(n,c):null}i=E.resolve(n,r);try{return w.statSync(i),i}catch(f){}}}},s.prototype.parseTerminfo=function(e,r){var t={},i,n=e.length,o=0,m,c,u=t.header={dataSize:e.length,headerSize:12,magicNumber:e[1]<<8|e[0],namesSize:e[3]<<8|e[2],boolCount:e[5]<<8|e[4],numCount:e[7]<<8|e[6],strCount:e[9]<<8|e[8],strTableSize:e[11]<<8|e[10]};u.total=u.headerSize+u.namesSize+u.boolCount+u.numCount*2+u.strCount*2+u.strTableSize,o+=u.headerSize;var p=e.toString("ascii",o,o+u.namesSize-1),f=p.split("|"),a=f[0],h=f.pop()||"";for(t.name=a,t.names=f,t.desc=h,t.dir=E.resolve(r,"..",".."),t.file=r,o+=u.namesSize-1,j.equal(e[o],0),o++,t.bools={},n=o+u.boolCount,c=0;o<n;o++)m=s.bools[c++],t.bools[m]=e[o]===1;for(o%2&&(j.equal(e[o],0),o++),t.numbers={},n=o+u.numCount*2,c=0;o<n;o+=2)m=s.numbers[c++],e[o+1]===255&&e[o]===255?t.numbers[m]=-1:t.numbers[m]=e[o+1]<<8|e[o];for(t.strings={},n=o+u.strCount*2,c=0;o<n;o+=2)m=s.strings[c++],e[o+1]===255&&e[o]===255?t.strings[m]=-1:t.strings[m]=e[o+1]<<8|e[o];if(Object.keys(t.strings).forEach(function(_){if(t.strings[_]===-1){delete t.strings[_];return}if(t.strings[_]===65534){delete t.strings[_];return}for(var l=o+t.strings[_],b=l;e[b];)b++;j(b<e.length),t.strings[_]=e.toString("ascii",l,b)}),this.extended!==!1&&(o--,o+=u.strTableSize,o%2&&(j.equal(e[o],0),o++),n=e.length,o<n-1)){try{i=this.parseExtended(e.slice(o))}catch(_){if(this.debug)throw _;return t}t.header.extended=i.header,["bools","numbers","strings"].forEach(function(_){U(t[_],i[_])})}return t},s.prototype.parseExtended=function(e){var r={},t=e.length,i=0,n=r.header={dataSize:e.length,headerSize:10,boolCount:e[i+1]<<8|e[i+0],numCount:e[i+3]<<8|e[i+2],strCount:e[i+5]<<8|e[i+4],strTableSize:e[i+7]<<8|e[i+6],lastStrTableOffset:e[i+9]<<8|e[i+8]};n.total=n.headerSize+n.boolCount+n.numCount*2+n.strCount*2+n.strTableSize,i+=n.headerSize;var o=[];for(t=i+n.boolCount;i<t;i++)o.push(e[i]===1);i%2&&(j.equal(e[i],0),i++);var m=[];for(t=i+n.numCount*2;i<t;i+=2)e[i+1]===255&&e[i]===255?m.push(-1):m.push(e[i+1]<<8|e[i]);var c=[];for(t=i+n.strCount*2;i<t;i+=2)e[i+1]===255&&e[i]===255?c.push(-1):c.push(e[i+1]<<8|e[i]);i=e.length-n.lastStrTableOffset;var u=0;c.forEach(function(a,h){if(a===-1){c[h]="";return}for(var _=i+a,l=_;e[l];)l++;j(l<e.length),u<l-i&&(u=l-i),c[h]=e.toString("ascii",_,l)}),i+=u+1,t=e.length;for(var p=[],f;i<t;i++){for(f=i;e[f];)f++;p.push(e.toString("ascii",i,f)),i=f}return f=0,r.bools={},o.forEach(function(a){r.bools[p[f++]]=a}),r.numbers={},m.forEach(function(a){r.numbers[p[f++]]=a}),r.strings={},c.forEach(function(a){r.strings[p[f++]]=a}),j.equal(i,e.length),r},s.prototype.compileTerminfo=function(e){return this.compile(this.readTerminfo(e))},s.prototype.injectTerminfo=function(e){return this.inject(this.compileTerminfo(e))},s.prototype.compile=function(e){var r=this;if(!e)throw new Error("Terminal not found.");return this.detectFeatures(e),this._debug(e),e.all={},e.methods={},["bools","numbers","strings"].forEach(function(t){Object.keys(e[t]).forEach(function(i){e.all[i]=e[t][i],e.methods[i]=r._compile(e,i,e.all[i])})}),s.bools.forEach(function(t){e.methods[t]==null&&(e.methods[t]=!1)}),s.numbers.forEach(function(t){e.methods[t]==null&&(e.methods[t]=-1)}),s.strings.forEach(function(t){e.methods[t]||(e.methods[t]=F)}),Object.keys(e.methods).forEach(function(t){s.alias[t]&&s.alias[t].forEach(function(i){e.methods[i]=e.methods[t]})}),e},s.prototype.inject=function(e){var r=this,t=e.methods||e;Object.keys(t).forEach(function(i){if(typeof t[i]!="function"){r[i]=t[i];return}r[i]=function(){var n=Array.prototype.slice.call(arguments);return t[i].call(r,n)}}),this.info=e,this.all=e.all,this.methods=e.methods,this.bools=e.bools,this.numbers=e.numbers,this.strings=e.strings,~e.names.indexOf(this.terminal)||(this.terminal=e.name),this.features=e.features,Object.keys(e.features).forEach(function(i){if(i==="padding"){!e.features.padding&&r.options.padding!==!0&&(r.padding=!1);return}r[i]=e.features[i]})},s.prototype._compile=function(e,r,t){var i;switch(this._debug("Compiling %s: %s",r,JSON.stringify(t)),typeof t){case"boolean":return t;case"number":return t;case"string":break;default:return F}if(!t)return F;if(r==="init_file"||r==="reset_file")try{return t=w.readFileSync(t,"utf8"),this.debug&&(i=("return "+JSON.stringify(t)+";").replace(/\x1b/g,"\\x1b").replace(/\r/g,"\\r").replace(/\n/g,"\\n"),process.stdout.write(i+` `)),function(){return t}}catch(x){return F}var n=e.name+"."+r,o="var v, dyn = {}, stat = {}, stack = [], out = [];",m=';return out.join("");',c=o,u=t,p="",f,a,h,_,l,b;function d(x,N){if(f=x.exec(u),!!f)return u=u.substring(f[0].length),a=f[1],N||C(),f}function T(x){c[c.length-1]===","&&(c=c.slice(0,-1)),c+=x}function k(x){c+=x+","}function v(x){x!=='""'&&k("out.push("+x+")")}function S(x){p+=x}function C(){p&&(v(JSON.stringify(p).replace(/\\u00([0-9a-fA-F]{2})/g,"\\x$1")),p="")}for(;u;)if(!d(/^\n /,!0)){if(d(/^\^(.)/i,!0)){if(!(a>=" "&&a<="~")){this._debug("%s: bad caret char.",n),S(f[0]);continue}a==="?"?a="\x7F":(a=a.charCodeAt(0)&31,a===0&&(a=128),a=String.fromCharCode(a)),S(a);continue}if(d(/^\\([0-7]{3})/,!0)){S(String.fromCharCode(parseInt(a,8)));continue}if(d(/^\\([eEnlrtbfs\^\\,:0]|.)/,!0)){switch(a){case"e":case"E":a="\x1B";break;case"n":a=` `;break;case"l":a="\x85";break;case"r":a="\r";break;case"t":a=" ";break;case"b":a="\b";break;case"f":a="\f";break;case"s":a=" ";break;case"^":a="^";break;case"\\":a="\\";break;case",":a=",";break;case":":a=":";break;case"0":a="\x80";break;case"a":a="\x07";break;default:this._debug("%s: bad backslash char.",n),a=f[0];break}S(a);continue}if(d(/^\$<(\d+)([*\/]{0,2})>/,!0)){this.padding&&S(f[0]);continue}if(d(/^%%/,!0)){S("%");continue}if(d(/^%((?::-|[+# ]){1,4})?(\d+(?:\.\d+)?)?([doxXsc])/)){this.printf||f[1]||f[2]||~"oxX".indexOf(f[3])?v('sprintf("'+f[0].replace(":-","-")+'", stack.pop())'):f[3]==="c"?v('(v = stack.pop(), isFinite(v) ? String.fromCharCode(v || 0200) : "")'):v("stack.pop()");continue}if(d(/^%p([1-9])/)){k("(stack.push(v = params["+(a-1)+"]), v)");continue}if(d(/^%P([a-z])/)){k("dyn."+a+" = stack.pop()");continue}if(d(/^%g([a-z])/)){k("(stack.push(dyn."+a+"), dyn."+a+")");continue}if(d(/^%P([A-Z])/)){k("stat."+a+" = stack.pop()");continue}if(d(/^%g([A-Z])/)){k("(stack.push(v = stat."+a+"), v)");continue}if(d(/^%'(.)'/)){k("(stack.push(v = "+a.charCodeAt(0)+"), v)");continue}if(d(/^%\{(\d+)\}/)){k("(stack.push(v = "+a+"), v)");continue}if(d(/^%l/)){k('(stack.push(v = (stack.pop() || "").length || 0), v)');continue}if(d(/^%([+\-*\/m&|\^=><])/)){a==="="?a="===":a==="m"&&(a="%"),k("(v = stack.pop(), stack.push(v = (stack.pop() "+a+" v) || 0), v)");continue}if(d(/^%([AO])/)){k("(stack.push(v = (stack.pop() "+(a==="A"?"&&":"||")+" stack.pop())), v)");continue}if(d(/^%([!~])/)){k("(stack.push(v = "+a+"stack.pop()), v)");continue}if(d(/^%i/)){k("(params[0]++, params[1]++)");continue}if(d(/^%\?/)){b=-1,T(";if (");continue}if(d(/^%t/)){b=-1,T(") {");continue}if(d(/^%e/)){h=u.indexOf("%?"),_=u.indexOf("%t"),l=u.indexOf("%e"),b=u.indexOf("%;"),b===-1&&(b=1/0),_!==-1&&_<b&&(h===-1||_<h)&&(l===-1||_<l)?T("} else if ("):T("} else {");continue}if(d(/^%;/)){b=null,T("}");continue}p+=u[0],u=u.substring(1)}C(),b!=null&&T("}"),T(m),i=c.slice(o.length,-m.length),i.length?(i=/^out\.push\(("(?:[^"]|\\")+")\)$/.exec(i))?c="return "+i[1]+";":(c=c.replace(/\(stack\.push\(v = params\[(\d+)\]\), v\),out\.push\(stack\.pop\(\)\)/g,"out.push(params[$1])"),i=c.slice(o.length,-m.length),~i.indexOf("v = ")||(c=c.replace("v, ","")),~i.indexOf("dyn")||(c=c.replace("dyn = {}, ","")),~i.indexOf("stat")||(c=c.replace("stat = {}, ","")),~i.indexOf("stack")||(c=c.replace("stack = [], ","")),c=c.replace(/out = \[\];out\.push\(("(?:[^"]|\\")+")\),/,"out = [$1];")):c='return "";',t==="\x1B%?"&&(c='return "\\x1b";'),this.debug&&(i=c.replace(/\x1b/g,"\\x1b").replace(/\r/g,"\\r").replace(/\n/g,"\\n"),process.stdout.write(i+` `));try{return this.options.stringify&&c.indexOf("return ")===0?new Function("",c)():this.printf||~c.indexOf("sprintf(")?new Function("sprintf, params",c).bind(null,M):new Function("params",c)}catch(x){throw console.error(""),console.error("Error on %s:",n),console.error(JSON.stringify(t)),console.error(""),console.error(c.replace(/(,|;)/g,`$1 `)),x.stack=x.stack.replace(/\x1b/g,"\\x1b"),x}},s.prototype._print=function(e,r,t){var i=!this.bools.needs_xon_xoff||this.bools.xon_xoff;if(r=r||G,t=t||F,!this.padding)return r(e),t();var n=e.split(/(?=\$<[\d.]+[*\/]{0,2}>)/),o=0;(function m(){if(o===n.length)return t();var c=n[o++],u=/^\$<([\d.]+)([*\/]{0,2})>/.exec(c),p,f;return!u||(c=c.substring(u[0].length),p=+u[1],f=u[2],i&&!~f.indexOf("/"))?(r(c),m()):(~f.indexOf("*")&&(p=p),setTimeout(function(){return r(c),m()},p))})()},s.print=function(){var e={padding:!0,bools:{needs_xon_xoff:!0,xon_xoff:!1}};return s.prototype._print.apply(e,arguments)},s.cpaths=[process.env.TERMCAP||"",(process.env.TERMPATH||"").split(/[: ]/),(process.env.HOME||"")+"/.termcap","/usr/share/misc/termcap","/etc/termcap"],s.prototype.readTermcap=function(e){var r=this,t,i,n,o;if(e=e||this.terminal,~e.indexOf(E.sep)&&(t=this._tryCap(E.resolve(e)))?(i=E.basename(e).split(".")[0],t[process.env.TERM]?e=process.env.TERM:t[i]?e=i:e=Object.keys(t)[0]):(o=s.cpaths.slice(),this.termcapFile&&o.unshift(this.termcapFile),o.push(s.termcap),t=this._tryCap(o,e)),!t)throw new Error("Cannot find termcap for: "+e);return n=t[e],this.debug&&(this._termcap=t),function m(c){if(c&&c.strings.tc){n.inherits=n.inherits||[],n.inherits.push(c.strings.tc);var u=t[c.strings.tc]?t[c.strings.tc].names:[c.strings.tc];r._debug("%s inherits from %s.",c.names.join("/"),u.join("/"));var p=m(t[c.strings.tc]);p&&["bools","numbers","strings"].forEach(function(f){U(c[f],p[f])})}return c}(n),n=this.translateTermcap(n),n},s.prototype._tryCap=function(e,r){if(e){var t,i,n;if(Array.isArray(e)){for(n=0;n<e.length;n++)if(i=this._tryCap(e[n],r),i)return i;return}if(i=e[0]==="/"?R(e):e,!!i&&(t=this.parseTermcap(i,e),!(r&&!t[r])))return t}},s.prototype.parseTermcap=function(e,r){var t={},i,n,o,m,c,u,p,f,a;for(e=e.replace(/\\\n[ \t]*/g,""),e=e.replace(/^#[^\n]+/gm,""),o=e.trim().split(/\n+/),p=0;p<o.length;p++)for(m=o[p].split(/:+/),f=0;f<m.length;f++)if(c=m[f].trim(),!!c){if(f===0){for(u=c.split("|"),n={name:u[0],names:u,desc:u.pop(),file:~r.indexOf(E.sep)?E.resolve(r):r,termcap:!0},a=0;a<u.length;a++)t[u[a]]=n;n.bools={},n.numbers={},n.strings={};continue}~c.indexOf("=")?(i=c.split("="),n.strings[i[0]]=i.slice(1).join("=")):~c.indexOf("#")?(i=c.split("#"),n.numbers[i[0]]=+i.slice(1).join("#")):n.bools[c]=!0}return t},s.prototype.translateTermcap=function(e){var r=this,t={};if(e){this._debug(e),["name","names","desc","file","termcap"].forEach(function(n){t[n]=e[n]});var i=function(){var n={};return Object.keys(s.alias).forEach(function(o){var m=s.alias[o];n[m.termcap]=o}),n}();return["bools","numbers","strings"].forEach(function(n){t[n]={},Object.keys(e[n]).forEach(function(o){n==="strings"&&(e.strings[o]=r._captoinfo(o,e.strings[o],1)),i[o]?t[n][i[o]]=e[n][o]:t[n][o]=e[n][o]})}),t}},s.prototype.compileTermcap=function(e){return this.compile(this.readTermcap(e))},s.prototype.injectTermcap=function(e){return this.inject(this.compileTermcap(e))},s.prototype._captoinfo=function(e,r,t){var i=this,n;t==null&&(t=0);var o=16,m=[],c=0,u=0,p=0,f=0,a=0,h=1,_=0,l="";function b(){var g=Array.prototype.slice.call(arguments);return g[0]="captoinfo: "+(g[0]||""),i._debug.apply(i,g)}function d(g){return g>="0"&&g<="9"}function T(g){return g>" "&&g<="~"}function k(g){var y="\0",O,A=_;switch(g[A]){case"\\":switch(g[++A]){case"'":case"$":case"\\":case"%":y=g[A],O=2;break;case"\0":y="\\",O=1;break;case"0":case"1":case"2":case"3":for(O=1;d(g[A]);)y=String.fromCharCode(8*y.charCodeAt(0)+(g[A++].charCodeAt(0)-48)),O++;break;default:y=g[A],O=2;break}break;case"^":y=String.fromCharCode(g[++A].charCodeAt(0)&31),O=2;break;default:y=g[A],O=1}return T(y)&&y!==","&&y!=="'"&&y!=="\\"&&y!==":"?(l+="%'",l+=y,l+="'"):(l+="%{",y.charCodeAt(0)>99&&(l+=String.fromCharCode((y.charCodeAt(0)/100|0)+48)),y.charCodeAt(0)>9&&(l+=String.fromCharCode((y.charCodeAt(0)/10|0)%10+48)),l+=String.fromCharCode(y.charCodeAt(0)%10+48),l+="}"),O}function v(g,y){if(a&&(g===1?g=2:g===2&&(g=1)),u===g){if(y>1)for(b("string may not be optimal"),l+="%Pa";y--;)l+="%ga";return}for(u!==0&&S(),u=g;y--;)l+="%p",l+=String.fromCharCode(48+g);f&&g<3&&(l+="%{96}%^"),p&&g<3&&(l+="%{127}%^")}function S(){c>=o?b("string too complex to convert"):m[c++]=u}function C(){c===0?u===0?b("I'm confused"):u=0:u=m[--c],h++}function x(){v(h,1),l+="%3d",C()}function N(){l+="%",_--,b("unknown %% code %s (%#x) in %s",JSON.stringify(r[_]),r[_].charCodeAt(0),e)}if(n=null,r==null&&(r=""),t>=0&&d(r[_]))for(n=_;d(r[_])||r[_]==="*"||r[_]===".";_++);for(;r[_];)switch(r[_]){case"%":if(_++,t<1){l+="%";break}switch(r[_++]){case"%":l+="%";break;case"r":a++===1&&b("saw %%r twice in %s",e);break;case"m":p++===1&&b("saw %%m twice in %s",e);break;case"n":f++===1&&b("saw %%n twice in %s",e);break;case"i":l+="%i";break;case"6":case"B":v(h,1),l+="%{10}%/%{16}%*",v(h,1),l+="%{10}%m%+";break;case"8":case"D":v(h,2),l+="%{2}%*%-";break;case">":v(h,2),l+="%?",_+=k(r),l+="%>%t",_+=k(r),l+="%+%;";break;case"a":if((r[_]==="="||r[_]==="+"||r[_]==="-"||r[_]==="*"||r[_]==="/")&&(r[_+1]==="p"||r[_+1]==="c")&&r[_+2]!=="\0"&&r[_+2]){var z;switch(z=2,r[_]!=="="&&v(h,1),r[_+1]==="p"?(v(h+r[_+2].charCodeAt(0)-64,1),h!==u&&(C(),h--),z++):(_+=2,z+=k(r),_-=2),r[_]){case"+":l+="%+";break;case"-":l+="%-";break;case"*":l+="%*";break;case"/":l+="%/";break;case"=":a?h===1?u=2:h===2?u=1:u=h:u=h;break}_+=z;break}v(h,1),_+=k(r),l+="%+";break;case"+":v(h,1),_+=k(r),l+="%+%c",C();break;case"s":v(h,1),l+="%s",C();break;case"-":_+=k(r),v(h,1),l+="%-%c",C();break;case".":v(h,1),l+="%c",C();break;case"0":if(r[_]==="3"){x();break}else if(r[_]!=="2"){N();break}case"2":v(h,1),l+="%2d",C();break;case"3":x();break;case"d":v(h,1),l+="%d",C();break;case"f":h++;break;case"b":h--;break;case"\\":l+="%\\";break;default:N();break}break;default:l+=r[_++];break}if(n!=null){for(l+="$<",_=n;d(r[_])||r[_]==="*"||r[_]===".";_++)l+=r[_];l+="/>"}return r!==l&&b("Translating %s from %s to %s.",e,JSON.stringify(r),JSON.stringify(l)),l},s.prototype.getAll=function(){var e=this._prefix(),r=i(w.readdirSync(e)),t=[];r.forEach(function(n){var o=i(w.readdirSync(E.resolve(e,n)));t.push.apply(t,o)});function i(n){return n.sort(function(o,m){return o=o.toLowerCase().charCodeAt(0),m=m.toLowerCase().charCodeAt(0),o-m})}return t},s.prototype.compileAll=function(e){var r=this,t={};return this.getAll().forEach(function(i){e&&i!==e||(e=null,t[i]=r.compileTerminfo(i))}),t},s.prototype.detectFeatures=function(e){var r=this.parseACS(e);return e.features={unicode:this.detectUnicode(e),brokenACS:this.detectBrokenACS(e),PCRomSet:this.detectPCRomSet(e),magicCookie:this.detectMagicCookie(e),padding:this.detectPadding(e),setbuf:this.detectSetbuf(e),acsc:r.acsc,acscr:r.acscr},e.features},s.prototype.detectUnicode=function(){if(process.env.NCURSES_FORCE_UNICODE!=null)return!!+process.env.NCURSES_FORCE_UNICODE;if(this.options.forceUnicode!=null)return this.options.forceUnicode;var e=process.env.LANG+":"+process.env.LANGUAGE+":"+process.env.LC_ALL+":"+process.env.LC_CTYPE;return/utf-?8/i.test(e)||this.GetConsoleCP()===65001},s.prototype.detectBrokenACS=function(e){return process.env.NCURSES_NO_UTF8_ACS!=null?!!+process.env.NCURSES_NO_UTF8_ACS:e.numbers.U8>=0?!!e.numbers.U8:!!(e.name==="linux"||this.detectPCRomSet(e)||this.termcap&&e.name.indexOf("screen")===0&&process.env.TERMCAP&&~process.env.TERMCAP.indexOf("screen")&&~process.env.TERMCAP.indexOf("hhII00")&&(~e.strings.enter_alt_charset_mode.indexOf("")||~e.strings.enter_alt_charset_mode.indexOf("")||~e.strings.set_attributes.indexOf("")||~e.strings.set_attributes.indexOf("")))},s.prototype.detectPCRomSet=function(e){var r=e.strings;return!!(r.enter_pc_charset_mode&&r.enter_alt_charset_mode&&r.enter_pc_charset_mode===r.enter_alt_charset_mode&&r.exit_pc_charset_mode===r.exit_alt_charset_mode)},s.prototype.detectMagicCookie=function(){return process.env.NCURSES_NO_MAGIC_COOKIE==null},s.prototype.detectPadding=function(){return process.env.NCURSES_NO_PADDING==null},s.prototype.detectSetbuf=function(){return process.env.NCURSES_NO_SETBUF==null},s.prototype.parseACS=function(e){var r={};return r.acsc={},r.acscr={},this.detectPCRomSet(e)||Object.keys(s.acsc).forEach(function(t){var i=e.strings.acs_chars||"",n=i.indexOf(t),o=i[n+1];!o||n===-1||!s.acsc[o]||(r.acsc[t]=s.acsc[o],r.acscr[s.acsc[o]]=t)}),r},s.prototype.GetConsoleCP=function(){var e;if(process.platform!=="win32")return-1;if(+process.env.NCURSES_NO_WINDOWS_UNICODE!=1)return 65001;try{e=X.execFileSync(process.env.WINDIR+"\\system32\\chcp.com",[],{stdio:["ignore","pipe","ignore"],encoding:"ascii",timeout:1500})}catch(r){}return e=/\d+/.exec(e),e?(e=+e[0],e):-1};function F(){return""}F.unsupported=!0;function U(e,r){return Object.keys(r).forEach(function(t){e[t]=r[t]}),e}function G(e){return process.stdout.write(e)}function R(e){if(Array.isArray(e)){for(var r=0;r<e.length;r++){var t=R(e[r]);if(t)return t}return""}if(!e)return"";e=E.resolve.apply(E,arguments);try{return w.readFileSync(e,"utf8")}catch(i){return""}}function M(e){var r=Array.prototype.slice.call(arguments,1),t=/%([\-+# ]{1,4})?(\d+(?:\.\d+)?)?([doxXsc])/g,i=0;return e.replace(t,function(n,o,m,c){var u=(o||"").split(""),p=r[i]!=null?r[i]:"",f=p,a={},h="";switch(i++,c){case"d":p=(+p).toString(10);break;case"o":p=(+p).toString(8);break;case"x":p=(+p).toString(16);break;case"X":p=(+p).toString(16).toUppercase();break;case"s":break;case"c":p=isFinite(p)?String.fromCharCode(p||128):"";break}if(u.forEach(function(_){switch(_){case"-":a.left=!0;break;case"+":a.signs=!0;break;case"#":a.hexpoint=!0;break;case" ":a.space=!0;break}}),m=+m.split(".")[0],m&&!a.left)for(p=p+"";p.length<m;)p="0"+p;if(a.signs&&+f>=0&&(h+="+"),a.space&&!a.signs&&+f>=0&&(h+=" "),a.hexpoint)switch(c){case"o":h+="0";break;case"x":h+="0x";break;case"X":h+="0X";break}return a.left&&m>h.length+p.length&&(m-=h.length+p.length,h=Array(m+1).join(" ")+h),h+p})}s._alias=require("./alias"),s.alias={},["bools","numbers","strings"].forEach(function(e){Object.keys(s._alias[e]).forEach(function(r){var t=s._alias[e][r];s.alias[r]=[t[0]],s.alias[r].terminfo=t[0],s.alias[r].termcap=t[1]})}),s.alias.no_esc_ctlc.push("beehive_glitch"),s.alias.dest_tabs_magic_smso.push("teleray_glitch"),s.alias.micro_col_size.push("micro_char_size"),s.aliasMap={},Object.keys(s.alias).forEach(function(e){s.aliasMap[e]=e,s.alias[e].forEach(function(r){s.aliasMap[r]=e})}),s.prototype.has=function(e){e=s.aliasMap[e];var r=this.all[e];return e?typeof r=="number"?r!==-1:!!r:!1},s.termcap=`vt102|dec vt102::do=^J:co#80:li#24:cl=50\\E[;H\\E[2J::le=^H:bs:cm=5\\E[%i%d;%dH:nd=2\\E[C:up=2\\E[A::ce=3\\E[K:cd=50\\E[J:so=2\\E[7m:se=2\\E[m:us=2\\E[4m:ue=2\\E[m::md=2\\E[1m:mr=2\\E[7m:mb=2\\E[5m:me=2\\E[m:is=\\E[1;24r\\E[24;1H::rs=\\E>\\E[?3l\\E[?4l\\E[?5l\\E[?7h\\E[?8h:ks=\\E[?1h\\E=:ke=\\E[?1l\\E>::ku=\\EOA:kd=\\EOB:kr=\\EOC:kl=\\EOD:kb=^H:\\ :ho=\\E[H:k1=\\EOP:k2=\\EOQ:k3=\\EOR:k4=\\EOS:pt:sr=5\\EM:vt#3::sc=\\E7:rc=\\E8:cs=\\E[%i%d;%dr:vs=\\E[?7l:ve=\\E[?7h::mi:al=\\E[L:dc=\\E[P:dl=\\E[M:ei=\\E[4l:im=\\E[4h:`,s.bools=["auto_left_margin","auto_right_margin","no_esc_ctlc","ceol_standout_glitch","eat_newline_glitch","erase_overstrike","generic_type","hard_copy","has_meta_key","has_status_line","insert_null_glitch","memory_above","memory_below","move_insert_mode","move_standout_mode","over_strike","status_line_esc_ok","dest_tabs_magic_smso","tilde_glitch","transparent_underline","xon_xoff","needs_xon_xoff","prtr_silent","hard_cursor","non_rev_rmcup","no_pad_char","non_dest_scroll_region","can_change","back_color_erase","hue_lightness_saturation","col_addr_glitch","cr_cancels_micro_mode","has_print_wheel","row_addr_glitch","semi_auto_right_margin","cpi_changes_res","lpi_changes_res","backspaces_with_bs","crt_no_scrolling","no_correctly_working_cr","gnu_has_meta_key","linefeed_is_newline","has_hardware_tabs","return_does_clr_eol"],s.numbers=["columns","init_tabs","lines","lines_of_memory","magic_cookie_glitch","padding_baud_rate","virtual_terminal","width_status_line","num_labels","label_height","label_width","max_attributes","maximum_windows","max_colors","max_pairs","no_color_video","buffer_capacity","dot_vert_spacing","dot_horz_spacing","max_micro_address","max_micro_jump","micro_col_size","micro_line_size","number_of_pins","output_res_char","output_res_line","output_res_horz_inch","output_res_vert_inch","print_rate","wide_char_size","buttons","bit_image_entwining","bit_image_type","magic_cookie_glitch_ul","carriage_return_delay","new_line_delay","backspace_delay","horizontal_tab_delay","number_of_function_keys"],s.strings=["back_tab","bell","carriage_return","change_scroll_region","clear_all_tabs","clear_screen","clr_eol","clr_eos","column_address","command_character","cursor_address","cursor_down","cursor_home","cursor_invisible","cursor_left","cursor_mem_address","cursor_normal","cursor_right","cursor_to_ll","cursor_up","cursor_visible","delete_character","delete_line","dis_status_line","down_half_line","enter_alt_charset_mode","enter_blink_mode","enter_bold_mode","enter_ca_mode","enter_delete_mode","enter_dim_mode","enter_insert_mode","enter_secure_mode","enter_protected_mode","enter_reverse_mode","enter_standout_mode","enter_underline_mode","erase_chars","exit_alt_charset_mode","exit_attribute_mode","exit_ca_mode","exit_delete_mode","exit_insert_mode","exit_standout_mode","exit_underline_mode","flash_screen","form_feed","from_status_line","init_1string","init_2string","init_3string","init_file","insert_character","insert_line","insert_padding","key_backspace","key_catab","key_clear","key_ctab","key_dc","key_dl","key_down","key_eic","key_eol","key_eos","key_f0","key_f1","key_f10","key_f2","key_f3","key_f4","key_f5","key_f6","key_f7","key_f8","key_f9","key_home","key_ic","key_il","key_left","key_ll","key_npage","key_ppage","key_right","key_sf","key_sr","key_stab","key_up","keypad_local","keypad_xmit","lab_f0","lab_f1","lab_f10","lab_f2","lab_f3","lab_f4","lab_f5","lab_f6","lab_f7","lab_f8","lab_f9","meta_off","meta_on","newline","pad_char","parm_dch","parm_delete_line","parm_down_cursor","parm_ich","parm_index","parm_insert_line","parm_left_cursor","parm_right_cursor","parm_rindex","parm_up_cursor","pkey_key","pkey_local","pkey_xmit","print_screen","prtr_off","prtr_on","repeat_char","reset_1string","reset_2string","reset_3string","reset_file","restore_cursor","row_address","save_cursor","scroll_forward","scroll_reverse","set_attributes","set_tab","set_window","tab","to_status_line","underline_char","up_half_line","init_prog","key_a1","key_a3","key_b2","key_c1","key_c3","prtr_non","char_padding","acs_chars","plab_norm","key_btab","enter_xon_mode","exit_xon_mode","enter_am_mode","exit_am_mode","xon_character","xoff_character","ena_acs","label_on","label_off","key_beg","key_cancel","key_close","key_command","key_copy","key_create","key_end","key_enter","key_exit","key_find","key_help","key_mark","key_message","key_move","key_next","key_open","key_options","key_previous","key_print","key_redo","key_reference","key_refresh","key_replace","key_restart","key_resume","key_save","key_suspend","key_undo","key_sbeg","key_scancel","key_scommand","key_scopy","key_screate","key_sdc","key_sdl","key_select","key_send","key_seol","key_sexit","key_sfind","key_shelp","key_shome","key_sic","key_sleft","key_smessage","key_smove","key_snext","key_soptions","key_sprevious","key_sprint","key_sredo","key_sreplace","key_sright","key_srsume","key_ssave","key_ssuspend","key_sundo","req_for_input","key_f11","key_f12","key_f13","key_f14","key_f15","key_f16","key_f17","key_f18","key_f19","key_f20","key_f21","key_f22","key_f23","key_f24","key_f25","key_f26","key_f27","key_f28","key_f29","key_f30","key_f31","key_f32","key_f33","key_f34","key_f35","key_f36","key_f37","key_f38","key_f39","key_f40","key_f41","key_f42","key_f43","key_f44","key_f45","key_f46","key_f47","key_f48","key_f49","key_f50","key_f51","key_f52","key_f53","key_f54","key_f55","key_f56","key_f57","key_f58","key_f59","key_f60","key_f61","key_f62","key_f63","clr_bol","clear_margins","set_left_margin","set_right_margin","label_format","set_clock","display_clock","remove_clock","create_window","goto_window","hangup","dial_phone","quick_dial","tone","pulse","flash_hook","fixed_pause","wait_tone","user0","user1","user2","user3","user4","user5","user6","user7","user8","user9","orig_pair","orig_colors","initialize_color","initialize_pair","set_color_pair","set_foreground","set_background","change_char_pitch","change_line_pitch","change_res_horz","change_res_vert","define_char","enter_doublewide_mode","enter_draft_quality","enter_italics_mode","enter_leftward_mode","enter_micro_mode","enter_near_letter_quality","enter_normal_quality","enter_shadow_mode","enter_subscript_mode","enter_superscript_mode","enter_upward_mode","exit_doublewide_mode","exit_italics_mode","exit_leftward_mode","exit_micro_mode","exit_shadow_mode","exit_subscript_mode","exit_superscript_mode","exit_upward_mode","micro_column_address","micro_down","micro_left","micro_right","micro_row_address","micro_up","order_of_pins","parm_down_micro","parm_left_micro","parm_right_micro","parm_up_micro","select_char_set","set_bottom_margin","set_bottom_margin_parm","set_left_margin_parm","set_right_margin_parm","set_top_margin","set_top_margin_parm","start_bit_image","start_char_set_def","stop_bit_image","stop_char_set_def","subscript_characters","superscript_characters","these_cause_cr","zero_motion","char_set_names","key_mouse","mouse_info","req_mouse_pos","get_mouse","set_a_foreground","set_a_background","pkey_plab","device_type","code_set_init","set0_des_seq","set1_des_seq","set2_des_seq","set3_des_seq","set_lr_margin","set_tb_margin","bit_image_repeat","bit_image_newline","bit_image_carriage_return","color_names","define_bit_image_region","end_bit_image_region","set_color_band","set_page_length","display_pc_char","enter_pc_charset_mode","exit_pc_charset_mode","enter_scancode_mode","exit_scancode_mode","pc_term_options","scancode_escape","alt_scancode_esc","enter_horizontal_hl_mode","enter_left_hl_mode","enter_low_hl_mode","enter_right_hl_mode","enter_top_hl_mode","enter_vertical_hl_mode","set_a_attributes","set_pglen_inch","termcap_init2","termcap_reset","linefeed_if_not_lf","backspace_if_not_bs","other_non_function_keys","arrow_key_map","acs_ulcorner","acs_llcorner","acs_urcorner","acs_lrcorner","acs_ltee","acs_rtee","acs_btee","acs_ttee","acs_hline","acs_vline","acs_plus","memory_lock","memory_unlock","box_chars_1"],s.acsc={"`":"\u25C6",a:"\u2592",b:" ",c:"\f",d:"\r",e:` `,f:"\xB0",g:"\xB1",h:"\u2424",i:"\v",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"},s.utoa=s.prototype.utoa={"\u25C6":"*","\u2592":" ","\xB0":"*","\xB1":"+","\u2424":` `,"\u2518":"+","\u2510":"+","\u250C":"+","\u2514":"+","\u253C":"+","\u23BA":"-","\u23BB":"-","\u2500":"-","\u23BC":"-","\u23BD":"_","\u251C":"+","\u2524":"+","\u2534":"+","\u252C":"+","\u2502":"|","\u2264":"<","\u2265":">",\u03C0:"?","\u2260":"=","\xA3":"?","\xB7":"*"},exports=s,exports.sprintf=M,exports.tryRead=R,module.exports=exports; //# sourceMappingURL=tput.js.map