terminal-kit
Version:
256 colors, keys and mouse, input field, progress bars, screen buffer (including 32-bit composition and image loading), text buffer, and many more... Whether you just need colors and styles, build a simple interactive command line tool or a complexe termi
1 lines • 944 kB
JavaScript
(function(t){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=t()}else if(typeof define==="function"&&define.amd){define([],t)}else{var e;if(typeof window!=="undefined"){e=window}else if(typeof global!=="undefined"){e=global}else if(typeof self!=="undefined"){e=self}else{e=this}e.TerminalKit=t()}})(function(){var n,t,e;return function(){function f(s,o,a){function u(r,t){if(!o[r]){if(!s[r]){var e="function"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};s[r][0].call(n.exports,function(t){var e=s[r][1][t];return u(e||t)},n,n.exports,f,s,o,a)}return o[r].exports}for(var l="function"==typeof require&&require,t=0;t<a.length;t++)u(a[t]);return u}return f}()({1:[function(t,e,r){"use strict";const l=t("./termkit.js");const i=[{names:["red"],code:"#e32322"},{names:["orange"],code:"#f18e1c"},{names:["gold","yellow-orange","amber"],code:"#fdc60b"},{names:["yellow"],code:"#f4e500"},{names:["chartreuse","yellow-green"],code:"#8cbb26"},{names:["green"],code:"#25ad28"},{names:["turquoise","turquoise-green"],code:"#1bc17d"},{names:["cyan","turquoise-blue"],code:"#0dc0cd"},{names:["blue"],code:"#2a60b0"},{names:["indigo"],code:"#3b3ba2"},{names:["violet","purple"],code:"#713795"},{names:["magenta"],code:"#bd0a7d"}];const n=[{names:["crimson"],code:"#dc143c"},{names:["vermilion","cinnabar"],code:"#e34234"},{names:["brown"],code:"#a52a2a"},{names:["bronze"],code:"#cd7f32"},{names:["coquelicot"],code:"#ff3800"},{names:["coral-pink"],code:"#f88379"},{names:["see-green"],code:"#2e8b57"},{names:["medium-spring-green"],code:"#00fa9a"},{names:["olivine"],code:"#9ab973"},{names:["royal-blue"],code:"#4169e1"},{names:["purple"],code:"#800080"},{names:["lavender-purple"],code:"#967bb6"},{names:["pink"],code:"#ffc0cb"}];const s={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,violet:5,cyan:6,white:7,grey:8,gray:8,"bright-black":8,"bright-red":9,"bright-green":10,"bright-yellow":11,"bright-blue":12,"bright-magenta":13,"bright-violet":13,"bright-cyan":14,"bright-white":15};function o(t={}){this.term=t.term||l.terminal;this.system=!!t.system;this.adaptivePaletteDef=this.system?null:t.adaptivePaletteDef||i;this.extraPaletteDef=this.system?null:t.extraPaletteDef||n;this.escape=[];this.bgEscape=[];this.chromaColors=[];this.colorIndex={};this.colorNameToIndex=this.colorNameToIndex.bind(this);this.generate()}e.exports=o;o.prototype.colorNameToIndex=function(t){t=t.toLowerCase();return this.colorIndex[t]||l.colorNameToIndex(t)};o.prototype.generate=function(){this.generateDefaultMapping();this.generateAnsiColorNames();this.generateAdaptive();this.generateExtra();this.generateGrayscale()};o.prototype.generateDefaultMapping=function(){var t;for(t=0;t<256;t++){this.escape[t]=this.term.str.color256(t);this.bgEscape[t]=this.term.str.bgColor256(t)}};o.prototype.generateAnsiColorNames=function(){var t,e;for(t in s){e=t.replace(/-/g,"");this.colorIndex[t]=s[t];if(e!==t){this.colorIndex[e]=s[t]}}};o.prototype.generateAdaptive=function(){if(this.system){return}var t,e,r,i,n,s,o,a,u;n=this.adaptivePaletteDef.map(t=>l.chroma(t.code));i=16;for(r=0;r>=-2;r--){if(r>0){o="!".repeat(r)}else if(r<0){o="~".repeat(-r)}else{o=""}for(e=2;e>=-3;e--){if(e>0){a="+".repeat(e)}else if(e<0){a="-".repeat(-e)}else{a=""}u=o+a;for(t=0;t<12;t++){s=this.clStep(n[t],r,e);this.addColor(i,s,this.adaptivePaletteDef[t].names,"@",u);i++}}}};o.prototype.generateExtra=function(){if(this.system){return}var t,e;e=232;for(t=0;t<13&&t<this.extraPaletteDef.length;t++){this.addColor(e,l.chroma(this.extraPaletteDef[t].code),this.extraPaletteDef[t].names,"*");e++}};const a=[["black"],["darkest-gray"],["darker-gray"],["dark-gray"],["dark-medium-gray"],["medium-gray","gray"],["light-medium-gray"],["light-gray"],["lighter-gray"],["lightest-gray"],["white"]];o.prototype.generateGrayscale=function(){if(this.system){return}var t,e,r;e=245;for(t=0;t<=10;t++){r=l.chroma(0,0,10*t,"hcl");this.addColor(e,r,a[t],"@");e++}};o.prototype.getRgb=function(t){var e=this.chromaColors[t];if(!e){return null}var[r,i,n]=e.rgb();return{r:r,g:i,b:n}};o.prototype.addColor=function(r,t,e,i="",n=""){var s,[o,a,u]=t.rgb();this.chromaColors[r]=t;if(this.term.support.trueColor){this.escape[r]=this.term.str.colorRgb(o,a,u);this.bgEscape[r]=this.term.str.bgColorRgb(o,a,u)}else if(this.term.support["256colors"]){s=this.term.registerForRgb({r:o,g:a,b:u},o===a&&a===u?232:0,255);this.escape[r]=this.term.str.color256(s);this.bgEscape[r]=this.term.str.bgColor256(s)}else{s=this.term.registerForRgb({r:o,g:a,b:u},0,15);this.escape[r]=this.term.str.color256(s);this.bgEscape[r]=this.term.str.bgColor256(s)}e.forEach(t=>{var e=i+t.replace(/-/g,"")+n;t=i+t+n;this.colorIndex[t]=r;if(e!==t){this.colorIndex[e]=r}})};const f=1.1;o.prototype.clStep=function(t,e,r,i=true){var n,s,o,a,u,l;if(!e&&!r){return t}n=t.get("hcl.c");s=t.get("hcl.l");n*=(e>0?1.6:1.7)**e;s*=(r>0?1.2:1.35)**r;t=t.set("hcl.c",n).set("hcl.l",s);if(!i||!t.clipped){return t}l=Math.abs(r)>=e;for(;;){o=t._rgb._unclipped;o.length=3;if(o.every(t=>t>-5&&t<260)){return t}u=[...o].sort((t,e)=>t-e);if(u[2]>=256){a=(u[0]+u[1]+u[2])/3;if(l){n=t.get("hcl.c");n/=f;t=t.set("hcl.c",n)}else{s=t.get("hcl.l");s/=f;t=t.set("hcl.l",s)}if(a>255){return t}}else if(u[1]<0){a=(u[0]+u[1]+u[2])/3;if(l){n=t.get("hcl.c");n/=f;t=t.set("hcl.c",n)}else{s=t.get("hcl.l");s*=f;t=t.set("hcl.l",s)}if(a<0){return t}}else{return t}}}},{"./termkit.js":56}],2:[function(t,e,r){"use strict";const s=t("./termkit.js");function d(t,e,r,i){var n=t;this.xmin=0;this.xmax=0;this.ymin=0;this.ymax=0;this.width=0;this.height=0;this.isNull=true;if(n&&(typeof n==="object"||typeof n==="function")){if(n instanceof s.Terminal){this.set({xmin:1,ymin:1,xmax:n.width,ymax:n.height})}else if(n instanceof s.ScreenBuffer){this.set({xmin:0,ymin:0,xmax:n.width-1,ymax:n.height-1})}else if(n instanceof s.TextBuffer){this.set({xmin:0,ymin:0,xmax:n.width-1,ymax:n.height-1})}else if(n instanceof d){this.set(n)}else if(n.xmin!==undefined||n.ymin!==undefined||n.xmax!==undefined||n.ymax!==undefined){this.set({xmin:n.xmin!==undefined?n.xmin:0,ymin:n.ymin!==undefined?n.ymin:0,xmax:n.xmax!==undefined?n.xmax:1,ymax:n.ymax!==undefined?n.ymax:1})}else if(n.x!==undefined||n.y!==undefined||n.width!==undefined||n.height!==undefined){this.set({xmin:n.x!==undefined?n.x:0,ymin:n.y!==undefined?n.y:0,xmax:n.width!==undefined?n.x+n.width-1:1,ymax:n.height!==undefined?n.y+n.height-1:1})}}else{this.set({xmin:t!==undefined?t:0,ymin:e!==undefined?e:0,xmax:r!==undefined?r:1,ymax:i!==undefined?i:1})}}e.exports=d;d.create=(...t)=>new d(...t);d.prototype.set=function(t){if(t.xmin!==undefined){this.xmin=Math.floor(t.xmin)}if(t.xmax!==undefined){this.xmax=Math.floor(t.xmax)}if(t.ymin!==undefined){this.ymin=Math.floor(t.ymin)}if(t.ymax!==undefined){this.ymax=Math.floor(t.ymax)}this.width=this.xmax-this.xmin+1;this.height=this.ymax-this.ymin+1;this.isNull=this.xmin>this.xmax||this.ymin>this.ymax};d.prototype.setSize=function(t){if(t.width!==undefined){this.width=Math.floor(t.width);this.xmax=this.xmin+this.width-1}if(t.height!==undefined){this.height=Math.floor(t.height);this.ymax=this.ymin+this.height-1}this.isNull=this.xmin>this.xmax||this.ymin>this.ymax};d.prototype.isInside=function(t,e){return t>=this.xmin&&t<=this.xmax&&e>=this.ymin&&e<=this.ymax};d.prototype.clip=function(t,e,r,i){var n=this;e=e||0;r=r||0;n.set({xmin:Math.max(n.xmin,t.xmin-e),ymin:Math.max(n.ymin,t.ymin-r),xmax:Math.min(n.xmax,t.xmax-e),ymax:Math.min(n.ymax,t.ymax-r)});if(i){t.set({xmin:Math.max(t.xmin,n.xmin+e),ymin:Math.max(t.ymin,n.ymin+r),xmax:Math.min(t.xmax,n.xmax+e),ymax:Math.min(t.ymax,n.ymax+r)})}return this};d.prototype.merge=function(t){this.set({xmin:Math.min(this.xmin,t.xmin),ymin:Math.min(this.ymin,t.ymin),xmax:Math.max(this.xmax,t.xmax),ymax:Math.max(this.ymax,t.ymax)});return this};d.wrappingRect=function(t){var e=[],r,i,n,s;r={srcRect:new d(t.srcRect),dstRect:new d(t.dstRect),offsetX:t.offsetX,offsetY:t.offsetY};if(t.wrapOnly!=="y"){r.offsetX=r.offsetX%t.dstRect.width;if(r.offsetX<0){r.offsetX+=t.dstRect.width}}if(t.wrapOnly!=="x"){r.offsetY=r.offsetY%t.dstRect.height;if(r.offsetY<0){r.offsetY+=t.dstRect.height}}r.srcRect.clip(r.dstRect,r.offsetX,r.offsetY,true);if(!r.srcRect.isNull){e.push(r)}if(r.srcRect.width<t.srcRect.width&&t.wrapOnly!=="y"){i={srcRect:new d(t.srcRect),dstRect:new d(t.dstRect),offsetX:r.offsetX-t.dstRect.width,offsetY:r.offsetY};i.srcRect.clip(i.dstRect,i.offsetX,i.offsetY,true);if(!i.srcRect.isNull){e.push(i)}}if(r.srcRect.height<t.srcRect.height&&t.wrapOnly!=="x"){n={srcRect:new d(t.srcRect),dstRect:new d(t.dstRect),offsetX:r.offsetX,offsetY:r.offsetY-t.dstRect.height};n.srcRect.clip(n.dstRect,n.offsetX,n.offsetY,true);if(!n.srcRect.isNull){e.push(n)}}if(i&&n){s={srcRect:new d(t.srcRect),dstRect:new d(t.dstRect),offsetX:r.offsetX-t.dstRect.width,offsetY:r.offsetY-t.dstRect.height};s.srcRect.clip(s.dstRect,s.offsetX,s.offsetY,true);if(!s.srcRect.isNull){e.push(s)}}return e};d.regionIterator=function(t,e){var r,i,n,s,o,a,u,l,f;if(!t.multiply){t.multiply=1}if(!t.offsetX){t.offsetX=0}if(!t.offsetY){t.offsetY=0}if(t.dstClipRect){t.dstClipRect.clip(t.dstRect)}else{t.dstClipRect=new d(t.dstRect)}if(t.srcClipRect){t.srcClipRect.clip(t.srcRect)}else{t.srcClipRect=new d(t.srcRect)}t.srcClipRect.clip(t.dstClipRect,t.offsetX,t.offsetY,true);if(t.dstRect.isNull||t.srcClipRect.isNull||t.dstClipRect.isNull){return}switch(t.type){case"line":for(i=0;i<t.srcClipRect.height;i++){s=t.srcClipRect.ymin+i;a=t.dstClipRect.ymin+i;e({context:t.context,srcXmin:t.srcClipRect.xmin,srcXmax:t.srcClipRect.xmax,srcY:s,srcStart:(s*t.srcRect.width+t.srcClipRect.xmin)*t.multiply,srcEnd:(s*t.srcRect.width+t.srcClipRect.xmax+1)*t.multiply,dstXmin:t.dstClipRect.xmin,dstXmax:t.dstClipRect.xmax,dstY:a,dstStart:(a*t.dstRect.width+t.dstClipRect.xmin)*t.multiply,dstEnd:(a*t.dstRect.width+t.dstClipRect.xmax+1)*t.multiply})}break;case"reversedLine":for(i=t.srcClipRect.height-1;i>=0;i--){s=t.srcClipRect.ymin+i;a=t.dstClipRect.ymin+i;e({context:t.context,srcXmin:t.srcClipRect.xmin,srcXmax:t.srcClipRect.xmax,srcY:s,srcStart:(s*t.srcRect.width+t.srcClipRect.xmin)*t.multiply,srcEnd:(s*t.srcRect.width+t.srcClipRect.xmax+1)*t.multiply,dstXmin:t.dstClipRect.xmin,dstXmax:t.dstClipRect.xmax,dstY:a,dstStart:(a*t.dstRect.width+t.dstClipRect.xmin)*t.multiply,dstEnd:(a*t.dstRect.width+t.dstClipRect.xmax+1)*t.multiply})}break;case"cell":for(i=0;i<t.srcClipRect.height;i++){for(r=0;r<t.srcClipRect.width;r++){n=t.srcClipRect.xmin+r;s=t.srcClipRect.ymin+i;o=t.dstClipRect.xmin+r;a=t.dstClipRect.ymin+i;u=(s*t.srcRect.width+n)*t.multiply;l=(a*t.dstRect.width+o)*t.multiply;f=e({context:t.context,srcX:n,srcY:s,srcStart:u,srcEnd:u+t.multiply,dstX:o,dstY:a,dstStart:l,dstEnd:l+t.multiply,startOfBlitLine:!r,endOfBlitLine:r===t.srcClipRect.width-1});if(f){r++}}}break}};d.tileIterator=function(t,e){var r,i,n,s,o,a,u,l,f,h,c;if(!t.multiply){t.multiply=1}if(!t.offsetX){t.offsetX=0}if(!t.offsetY){t.offsetY=0}if(t.dstClipRect){t.dstClipRect.clip(t.dstRect)}else{t.dstClipRect=new d(t.dstRect)}if(t.srcClipRect){t.srcClipRect.clip(t.srcRect)}else{t.srcClipRect=new d(t.srcRect)}switch(t.type){case"cell":for(a=0;a<t.dstClipRect.height;a++){i=(a-t.offsetY)%t.srcClipRect.height;if(i<0){i+=t.srcClipRect.height}for(o=0;o<t.dstClipRect.width;o++){r=(o-t.offsetX)%t.srcClipRect.width;if(r<0){r+=t.srcClipRect.width}n=t.srcClipRect.xmin+r;s=t.srcClipRect.ymin+i;u=t.dstClipRect.xmin+o;l=t.dstClipRect.ymin+a;h=(s*t.srcRect.width+n)*t.multiply;c=(l*t.dstRect.width+u)*t.multiply;e({context:t.context,srcX:n,srcY:s,srcStart:h,srcEnd:h+t.multiply,dstX:u,dstY:l,dstStart:c,dstEnd:c+t.multiply})}}break;case"line":for(a=0;a<t.dstClipRect.height;a++){i=(a-t.offsetY)%t.srcClipRect.height;if(i<0){i+=t.srcClipRect.height}o=0;while(o<t.dstClipRect.width){r=(o-t.offsetX)%t.srcClipRect.width;if(r<0){r+=t.srcClipRect.width}f=Math.min(t.srcClipRect.width-r,t.dstClipRect.width-o);n=t.srcClipRect.xmin+r;s=t.srcClipRect.ymin+i;u=t.dstClipRect.xmin+o;l=t.dstClipRect.ymin+a;h=(s*t.srcRect.width+n)*t.multiply;c=(l*t.dstRect.width+u)*t.multiply;e({context:t.context,srcXmin:n,srcXmax:n+f-1,srcY:s,srcStart:h,srcEnd:h+f*t.multiply,dstXmin:u,dstXmax:u+f-1,dstY:l,dstStart:c,dstEnd:c+f*t.multiply});o+=f}}break}};d.wrapIterator=function(t,e){var r,i;i=d.wrappingRect({dstRect:t.dstClipRect,srcRect:t.srcClipRect,offsetX:t.offsetX,offsetY:t.offsetY,wrapOnly:t.wrap});for(r=0;r<i.length;r++){t.dstClipRect=i[r].dstRect;t.srcClipRect=i[r].srcRect;t.offsetX=i[r].offsetX;t.offsetY=i[r].offsetY;d.regionIterator(t,e)}}},{"./termkit.js":56}],3:[function(r,P,t){(function(I){(function(){"use strict";const t=r("./misc.js");const o=r("fs");const _=r("string-kit");const e=r("nextgen-events");function d(t={}){this.dst=t.dst;this.inline=!!t.inline;this.width=Math.floor(t.width)||(t.dst?t.dst.width:1);this.height=Math.floor(t.height)||(t.dst?t.dst.height:1);this.x=t.x!==undefined?t.x:t.dst&&t.dst instanceof p.Terminal?1:0;this.y=t.y!==undefined?t.y:t.dst&&t.dst instanceof p.Terminal?1:0;this.cx=0;this.cy=0;this.ch=false;this.lastCh=null;this.lastBuffer=null;this.lastBufferUpToDate=false;this.blending=t.blending||false;this.wrap=!!t.wrap;this.buffer=I.allocUnsafe(this.width*this.height*this.ITEM_SIZE);this.palette=t.palette||this.dst&&this.dst.palette;if(!t.noFill){this.fill()}}P.exports=d;d.prototype=Object.create(e.prototype);d.prototype.constructor=d;d.prototype.bitsPerColor=8;d.create=(...t)=>new d(...t);const p=r("./termkit.js");const h=p.Rect;d.createFromString=function(t,e){var r,i,n,s,o,a,u,l,f;if(!t){t={}}if(typeof e!=="string"){if(!e.toString){throw new Error("[terminal] ScreenBuffer.createFromDataString(): argument #1 should be a string or provide a .toString() method.")}e=e.toString()}e=p.stripControlChars(e,true).split("\n");a=0;u=e.length;s=t.attr!==undefined?t.attr:d.prototype.DEFAULT_ATTR;if(s&&typeof s==="object"&&!s.BYTES_PER_ELEMENT){s=d.object2attr(s)}o=s;if(t.transparencyChar){if(!t.transparencyType){o|=T}else{o|=t.transparencyType&T}}for(i=0;i<e.length;i++){l=_.unicode.width(e[i]);if(l>a){a=l}}f=new d({width:a,height:u});for(i=0;i<e.length;i++){if(!t.transparencyChar){f.put({x:0,y:i,attr:s},e[i])}else{n=e[i].length;for(r=0;r<n;r++){if(e[i][r]===t.transparencyChar){f.put({x:r,y:i,attr:o},e[i][r])}else{f.put({x:r,y:i,attr:s},e[i][r])}}}}return f};d.createFromChars=d.createFromString;d.prototype.setClearAttr=function(t){this.CLEAR_ATTR=this.object2attr(t);this.CLEAR_BUFFER=I.allocUnsafe(this.ITEM_SIZE);if(I.isBuffer(this.CLEAR_ATTR)){this.CLEAR_ATTR.copy(this.CLEAR_BUFFER)}else{this.CLEAR_BUFFER.writeInt32BE(this.CLEAR_ATTR,0)}this.CLEAR_BUFFER.write(" \0\0\0",this.ATTR_SIZE)};d.prototype.fill=function(t){var e,r,i,n,s,o,a,u,l=this.CLEAR_BUFFER,f=this.buffer;if(t&&typeof t==="object"){if(t.char||t.attr){l=I.allocUnsafe(this.ITEM_SIZE);r=t.attr!==undefined?t.attr:this.DEFAULT_ATTR;if(r&&typeof r==="object"&&!r.BYTES_PER_ELEMENT){r=this.object2attr(r)}this.writeAttr(l,r,0);i=t.char&&typeof t.char==="string"?t.char:" ";i=_.unicode.firstChar(p.stripControlChars(i));this.writeChar(l,i,0)}else if(t.clearBuffer){l=t.clearBuffer}if(t.buffer){f=t.buffer}n=t.start?Math.floor(t.start/this.ITEM_SIZE):0;s=t.end?Math.floor(t.end/this.ITEM_SIZE):f.length/this.ITEM_SIZE;o=t.region?t.region:null}else{n=0;s=f.length/this.ITEM_SIZE}if(o){a=new h(0,0,0,0);u=new h(o);u.clip(new h(this));if(u.isNull){return}h.tileIterator({type:"line",context:{srcBuffer:l,dstBuffer:this.buffer},srcRect:a,dstRect:new h(this),dstClipRect:u,multiply:this.ITEM_SIZE},this.blitterLineIterator.bind(this))}else{for(e=n;e<s;e++){l.copy(f,e*this.ITEM_SIZE)}}};d.prototype.clear=d.prototype.fill;d.prototype.preserveMarkupFormat=t.preserveMarkupFormat;d.prototype.parseMarkup=_.markupMethod.bind(t.markupOptions);d.prototype.put=function(a,t,...e){var u,l,f,h,c,d,i,p,n,g,m=-1,b=0,y=0,v=this.width-1,w=this.height-1;if(!a){a={}}g=a.wrap!==undefined?a.wrap:this.wrap;u=f=Math.floor(a.x!==undefined?a.x:this.cx);l=h=Math.floor(a.y!==undefined?a.y:this.cy);if(a.clip){b=a.clip.x;y=a.clip.y;v=b+a.clip.width-1;w=y+a.clip.height-1}switch(a.direction){case"left":c=-1;break;case"up":c=0;d=-1;break;case"down":c=0;d=1;break;case null:case"none":c=0;d=0;break;case"right":default:c=1;d=0;break}if(typeof a.dx==="number"){c=a.dx}if(typeof a.dy==="number"){d=a.dy}p=a.attr!==undefined?a.attr:this.DEFAULT_ATTR;if(p&&typeof p==="object"&&!p.BYTES_PER_ELEMENT){p=this.object2attr(p)}i=p;if(a.resumeAttr!==undefined){p=a.resumeAttr}if(typeof t!=="string"){if(t.toString){t=t.toString()}else{return}}if(e.length){t=a.markup===true?this.preserveMarkupFormat(t,...e):_.format(t,...e)}var s=t=>{var o=_.unicode.toArray(t),e=o.length;for(let s=0;s<e;s++){let t=(h*this.width+f)*this.ITEM_SIZE;let e=o[s];let r=e.charCodeAt(0);if(r<32||r===127){if(a.newLine&&(r===10||r===13)){if(c){f=u;h++}else{h=l;f++}continue}else{e=" ";r=32}}let i=_.unicode.isFullWidth(e);let n=false;if(h>=y&&h<=w){if(i){if(f+i*c>=b&&f+i*(c||1)<=v){if(c<0){t-=this.ITEM_SIZE}m=t;if(this.hasTrailingFullWidth(this.buffer,t)&&f){this.removeFullWidth(this.buffer,t-this.ITEM_SIZE)}this.writeAttr(this.buffer,p,t,this.LEADING_FULLWIDTH);this.writeChar(this.buffer,e,t);t+=this.ITEM_SIZE;if(this.hasLeadingFullWidth(this.buffer,t)&&f<v){this.removeFullWidth(this.buffer,t+this.ITEM_SIZE)}this.writeAttr(this.buffer,p,t,this.TRAILING_FULLWIDTH);this.writeChar(this.buffer," ",t);n=true}}else{if(f>=b&&f<=v){if(this.hasLeadingFullWidth(this.buffer,t)&&f<v){this.removeFullWidth(this.buffer,t+this.ITEM_SIZE)}else if(this.hasTrailingFullWidth(this.buffer,t)&&f){this.removeFullWidth(this.buffer,t-this.ITEM_SIZE)}this.writeAttr(this.buffer,p,t);this.writeChar(this.buffer,e,t);m=t;n=true}}}else{if(h>w&&d>=0||h<y&&d<0){return true}}if(!n&&m>=0&&a.clipChar){if(this.hasLeadingFullWidth(this.buffer,m)&&f<v){this.removeFullWidth(this.buffer,m+this.ITEM_SIZE)}else if(this.hasTrailingFullWidth(this.buffer,m)&&f){this.removeFullWidth(this.buffer,m-this.ITEM_SIZE)}this.writeChar(this.buffer,a.clipChar,m);m=-1}f+=c*(1+i);h+=d;if(g){if(f<b){f=v;h--}else if(f>v){f=b;h++}}}};if(!a.markup){s(t)}else{const o=this.attr2object(this.DEFAULT_ATTR);const x=this.attr2object(i);let e=false;let r=null;switch(a.markup){case"ansi":r=_.ansi.parse(t);break;case"legacyAnsi":r=_.ansi.parse(t);e=true;break;case true:r=this.parseMarkup(t);break}for(let t of r){n=Object.assign({},t.specialReset?o:x,t);delete n.text;if(n.defaultColor&&n.color){delete n.defaultColor}if(n.bgDefaultColor&&n.bgColor){delete n.bgDefaultColor}p=this.object2attr(n,undefined,e);if(t.text){if(s(t.text)){break}}}}this.cx=f;this.cy=h;return p};d.prototype.get=function(t){var e,r,i;if(!t){t={}}e=t.x!==undefined?t.x:this.cx;r=t.y!==undefined?t.y:this.cy;if(typeof e!=="number"||e<0||e>=this.width){return null}e=Math.floor(e);if(typeof r!=="number"||r<0||r>=this.height){return null}r=Math.floor(r);i=(r*this.width+e)*this.ITEM_SIZE;return{attr:this.attr2object(this.readAttr(this.buffer,i)),char:this.readChar(this.buffer,i)}};d.prototype.resize=function(t){t=new h(t);var e=-t.xmin,r=-t.ymin;var i=new h({xmin:0,ymin:0,xmax:t.width-1,ymax:t.height-1});t.clip(new h(this));if(i.isNull){return false}var n=I.allocUnsafe(i.width*i.height*this.ITEM_SIZE);this.fill({buffer:n});h.regionIterator({type:"line",context:{srcBuffer:this.buffer,dstBuffer:n},dstRect:i,dstClipRect:new h(i),srcRect:new h(this),srcClipRect:t,offsetX:e,offsetY:r,multiply:this.ITEM_SIZE},this.blitterLineIterator.bind(this));this.width=i.width;this.height=i.height;this.buffer=n;this.lastBuffer=null;this.emit("resize",this.width,this.height);return true};d.prototype.draw=function(t){if(!t||typeof t!=="object"){t={}}var e={dst:t.dst||this.dst,inline:t.inline!==undefined?!!t.inline:this.inline,offsetX:t.x!==undefined?Math.floor(t.x):Math.floor(this.x),offsetY:t.y!==undefined?Math.floor(t.y):Math.floor(this.y),dstClipRect:t.dstClipRect?new h(t.dstClipRect):undefined,srcClipRect:t.srcClipRect?new h(t.srcClipRect):undefined,delta:t.delta,blending:t.blending!==undefined?t.blending:this.blending,wrap:t.wrap,tile:t.tile};if(e.dst instanceof d){return this.blitter(e)}else if(e.dst instanceof p.Terminal){return this.terminalBlitter(e)}};d.prototype.moveTo=function(t,e){this.cx=Math.max(0,Math.min(t,this.width-1));this.cy=Math.max(0,Math.min(e,this.height-1))};d.prototype.drawCursor=function(t){if(!t||typeof t!=="object"){t={}}var e=t.dst||this.dst;if(e instanceof d){if(this.ch){e.ch=true}else{e.ch=false;e.moveTo(this.cx+this.x,this.cy+this.y)}}else if(e instanceof p.Terminal){if(this.ch){if(this.ch!==this.lastCh){e.hideCursor()}}else{if(this.ch!==this.lastCh){e.hideCursor(false)}e.moveTo(Math.max(1,Math.min(this.cx+this.x,e.width)),Math.max(1,Math.min(this.cy+this.y,e.height)))}this.lastCh=this.ch}};d.prototype.blitter=function(t){var e,r,i;e={type:"line",context:{srcBuffer:this.buffer,dstBuffer:t.dst.buffer,blending:t.blending},dstRect:new h(t.dst),srcRect:new h(this),dstClipRect:t.dstClipRect||new h(t.dst),srcClipRect:t.srcClipRect||new h(this),offsetX:t.offsetX,offsetY:t.offsetY,wrap:t.wrap,tile:t.tile,multiply:this.ITEM_SIZE};r="regionIterator";i=this.blitterLineIterator.bind(this);if(t.blending){e.type="cell";i=this.blitterCellBlendingIterator.bind(this)}if(t.wrap){r="wrapIterator"}else if(t.tile){r="tileIterator"}else{r="regionIterator"}h[r](e,i)};d.prototype.blitterLineIterator=function(t){if(t.dstStart>=this.ITEM_SIZE){this.removeLeadingFullWidth(t.context.dstBuffer,t.dstStart-this.ITEM_SIZE)}t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart,t.srcStart,t.srcEnd);this.removeLeadingFullWidth(t.context.dstBuffer,t.dstEnd-this.ITEM_SIZE);if(t.dstEnd<t.context.dstBuffer.length){this.removeTrailingFullWidth(t.context.dstBuffer,t.dstEnd)}};d.prototype.blitterCellBlendingIterator=function(t){var e=this.readAttr(t.context.srcBuffer,t.srcStart),r=e&T;if(r===T){return}if(t.startOfBlitLine&&t.dstStart>=this.ITEM_SIZE){this.removeLeadingFullWidth(t.context.dstBuffer,t.dstStart-this.ITEM_SIZE)}if(t.endOfBlitLine&&t.dstEnd<t.context.dstBuffer.length){this.removeTrailingFullWidth(t.context.dstBuffer,t.dstEnd)}if(r===i&&!(t.endOfBlitLine||!(e&s))){t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart,t.srcStart,t.srcEnd);return}if(!(r&a)){t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart+3,t.srcStart+3,t.srcStart+4)}if(!(r&u)){t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart+2,t.srcStart+2,t.srcStart+3)}if(!(r&C)){t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart+1,t.srcStart+1,t.srcStart+2)}if(!(r&k)){if(t.endOfBlitLine&&e&s){this.writeChar(t.context.dstBuffer," ",t.dstStart)}else{t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart+this.ATTR_SIZE,t.srcStart+this.ATTR_SIZE,t.srcEnd)}}};d.prototype.terminalBlitter=function(t){var e,r,i,n;n={srcBuffer:this.buffer,blending:t.blending,term:t.dst,inline:t.inline,deltaEscapeSequence:t.dst.support.deltaEscapeSequence,rawTerm:t.dst.raw,lastAttr:null,sequence:"",cells:0,moves:0,attrs:0,writes:0};e={type:"line",context:n,dstRect:new h(t.dst),srcRect:new h(this),dstClipRect:t.dstClipRect,srcClipRect:t.srcClipRect,offsetX:t.offsetX,offsetY:t.offsetY,multiply:this.ITEM_SIZE};if(t.inline){e.dstRect.setSize({height:Infinity})}if(t.delta&&!t.inline){if(!this.lastBuffer||this.lastBuffer.length!==this.buffer.length){this.lastBuffer=I.from(this.buffer);i=this.terminalBlitterLineIterator.bind(this)}else if(this.lastBufferUpToDate){n.srcLastBuffer=this.lastBuffer;i=this.terminalBlitterCellIterator.bind(this);e.type="cell"}else{this.buffer.copy(this.lastBuffer);i=this.terminalBlitterLineIterator.bind(this)}this.lastBufferUpToDate=true}else{this.lastBufferUpToDate=false;i=this.terminalBlitterLineIterator.bind(this)}if(t.wrap){r="wrapIterator"}else if(t.tile){r="tileIterator"}else{r="regionIterator"}h[r](e,i);if(n.sequence.length){n.rawTerm(n.sequence);n.writes++}return{cells:n.cells,moves:n.moves,attrs:n.attrs,writes:n.writes}};d.prototype.terminalBlitterLineIterator=function(t){var e,r;if(!t.context.inline){t.context.sequence+=t.context.term.optimized.moveTo(t.dstXmin,t.dstY);t.context.moves++}for(e=t.srcStart;e<t.srcEnd;e+=this.ITEM_SIZE){r=this.readAttr(t.context.srcBuffer,e);if((r&T)===T){t.context.sequence+=t.context.term.optimized.right;continue}else if(r&E){continue}if((r&n)!==(t.context.lastAttr&n)){t.context.sequence+=t.context.lastAttr===null||!t.context.deltaEscapeSequence?this.generateEscapeSequence(t.context.term,r):this.generateDeltaEscapeSequence(t.context.term,r,t.context.lastAttr);t.context.lastAttr=r}t.context.sequence+=this.readChar(t.context.srcBuffer,e);t.context.cells++}if(t.context.inline){t.context.sequence+=t.context.term.optimized.styleReset+"\n";t.context.attrs++;t.context.lastAttr=null}if(t.context.sequence.length>O){t.context.rawTerm(t.context.sequence);t.context.sequence="";t.context.writes++}};d.prototype.terminalBlitterCellIterator=function(t){var e=this.readAttr(t.context.srcBuffer,t.srcStart);if(t.context.srcLastBuffer){if(e===this.readAttr(t.context.srcLastBuffer,t.srcStart)&&this.readChar(t.context.srcBuffer,t.srcStart)===this.readChar(t.context.srcLastBuffer,t.srcStart)){return}t.context.srcBuffer.copy(t.context.srcLastBuffer,t.srcStart,t.srcStart,t.srcEnd)}if((e&T)===T||e&E){return}t.context.cells++;if(t.dstX!==t.context.cx||t.dstY!==t.context.cy){t.context.sequence+=t.context.term.optimized.moveTo(t.dstX,t.dstY);t.context.moves++}if((e&n)!==(t.context.lastAttr&n)){t.context.sequence+=t.context.lastAttr===null||!t.context.deltaEscapeSequence?this.generateEscapeSequence(t.context.term,e):this.generateDeltaEscapeSequence(t.context.term,e,t.context.lastAttr);t.context.lastAttr=e;t.context.attrs++}t.context.sequence+=this.readChar(t.context.srcBuffer,t.srcStart);if(t.context.sequence.length>O){t.context.rawTerm(t.context.sequence);t.context.sequence="";t.context.writes++}t.context.cy=t.dstY;if(e&s){t.context.cx=t.dstX+2;return true}t.context.cx=t.dstX+1};d.fromNdarrayImage=function(t,e){var r=e.terminal||p.terminal;var i,n=t.shape[0],s,o=Math.ceil(t.shape[1]/2),a=t.shape[2]===4,u=r.support["256colors"]?255:15,l,f,h={};var c=new d({width:n,height:o,blending:true,noFill:true});for(i=0;i<n;i++){for(s=0;s<o;s++){l=r.registerForRgbCache(h,t.get(i,s*2,0),t.get(i,s*2,1),t.get(i,s*2,2),0,u,1);if(s*2+1<t.shape[1]){f=r.registerForRgbCache(h,t.get(i,s*2+1,0),t.get(i,s*2+1,1),t.get(i,s*2+1,2),0,u,1);c.put({x:i,y:s,attr:{color:l,fgTransparency:a&&t.get(i,s*2,3)<127,bgColor:f,bgTransparency:a&&t.get(i,s*2+1,3)<127}},"▀")}else{c.put({x:i,y:s,attr:{color:l,fgTransparency:a&&t.get(i,s*2,3)<127,bgTransparency:true}},"▀")}}}return c};d.loadImage=p.image.load.bind(d,d.fromNdarrayImage);d.prototype.dumpChars=function(){var t,e,r,i="";for(t=0;t<this.height;t++){for(e=0;e<this.width;e++){r=(t*this.width+e)*this.ITEM_SIZE;i+=this.readChar(this.buffer,r)}i+="\n"}return i};d.prototype.dump=function(){var t,e,r,i="",n;for(t=0;t<this.height;t++){for(e=0;e<this.width;e++){r=(t*this.width+e)*this.ITEM_SIZE;n=this.readChar(this.buffer,r);i+=n+(_.unicode.isFullWidth(n)?" ":" ");i+=_.format("%x%x%x%x ",this.buffer.readUInt8(r),this.buffer.readUInt8(r+1),this.buffer.readUInt8(r+2),this.buffer.readUInt8(r+3))}i+="\n"}return i};d.prototype.readAttr=function(t,e){return t.readInt32BE(e)};d.prototype.writeAttr=function(t,e,r,i=0){return t.writeInt32BE(e|i,r)};d.prototype.hasLeadingFullWidth=function(t,e){return!!(t.readInt32BE(e)&s)};d.prototype.hasTrailingFullWidth=function(t,e){return!!(t.readInt32BE(e)&E)};d.prototype.removeLeadingFullWidth=function(t,e){var r=t.readInt32BE(e);if(!(r&s)){return}r^=s;t.writeInt32BE(r,e);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};d.prototype.removeTrailingFullWidth=function(t,e){var r=t.readInt32BE(e);if(!(r&E)){return}r^=E;t.writeInt32BE(r,e);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};d.prototype.removeFullWidth=function(t,e){var r=t.readInt32BE(e);if(!(r&B)){return}r=r&R;t.writeInt32BE(r,e);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};d.prototype.readChar=function(t,e){var r;e+=this.ATTR_SIZE;if(t[e]<128){r=1}else if(t[e]<192){return"\0"}else if(t[e]<224){r=2}else if(t[e]<240){r=3}else if(t[e]<248){r=4}else if(t[e]<252){r=5}else{r=6}if(r>this.CHAR_SIZE){return"\0"}return t.toString("utf8",e,e+r)};d.prototype.writeChar=function(t,e,r){return t.write(e,r+this.ATTR_SIZE,this.CHAR_SIZE)};d.prototype.generateEscapeSequence=function(t,e){var r=this.palette||t.palette;var i=t.optimized.styleReset+(e&S?t.optimized.defaultColor:r.escape[e&255])+(e&A?t.optimized.bgDefaultColor:r.bgEscape[e>>>8&255]);if(e&f){i+=t.optimized.bold}if(e&c){i+=t.optimized.dim}if(e&g){i+=t.optimized.italic}if(e&m){i+=t.optimized.underline}if(e&b){i+=t.optimized.blink}if(e&y){i+=t.optimized.inverse}if(e&v){i+=t.optimized.hidden}if(e&w){i+=t.optimized.strike}return i};d.prototype.generateDeltaEscapeSequence=function(t,e,r){var i=this.palette||t.palette;var n="",s=e&255,o=r&255,a=e>>>8&255,u=r>>>8&255;if(e&S){if(!(r&S)){n+=t.optimized.defaultColor}}else if(s!==o||r&S){n+=i.escape[s]}if(e&A){if(!(r&A)){n+=t.optimized.bgDefaultColor}}else if(a!==u||r&A){n+=i.bgEscape[a]}if((e&l)!==(r&l)){if((e&x)!==(r&x)){if(r&f&&!(e&f)||r&c&&!(e&c)){n+=t.optimized.noBold;if(e&f){n+=t.optimized.bold}if(e&c){n+=t.optimized.dim}}else{if(e&f&&!(r&f)){n+=t.optimized.bold}if(e&c&&!(r&c)){n+=t.optimized.dim}}}if((e&g)!==(r&g)){n+=e&g?t.optimized.italic:t.optimized.noItalic}if((e&m)!==(r&m)){n+=e&m?t.optimized.underline:t.optimized.noUnderline}if((e&b)!==(r&b)){n+=e&b?t.optimized.blink:t.optimized.noBlink}if((e&y)!==(r&y)){n+=e&y?t.optimized.inverse:t.optimized.noInverse}if((e&v)!==(r&v)){n+=e&v?t.optimized.hidden:t.optimized.noHidden}if((e&w)!==(r&w)){n+=e&w?t.optimized.strike:t.optimized.noStrike}}return n};d.prototype.vScroll=function(t,e,r,i,n){if(!t){return}if(typeof e==="boolean"){n=e;e=r=i=undefined}if(e===undefined||e===null){e=this.DEFAULT_ATTR}else if(e&&typeof e==="object"&&!e.BYTES_PER_ELEMENT){e=this.object2attr(e)}if(r===undefined||r===null){r=0;i=this.height-1}else{if(r<0){r=0}if(i>this.height-1){i=this.height-1}}var s=t*this.width*this.ITEM_SIZE,o=r*this.width*this.ITEM_SIZE,a=(i+1)*this.width*this.ITEM_SIZE;if(s>0){this.buffer.copy(this.buffer,o+s,o,a-s);this.fill({start:o,end:o+s})}else{this.buffer.copy(this.buffer,o,o-s,a);this.fill({start:a+s,end:a})}if(n&&this.dst instanceof p.Terminal){if(this.lastBufferUpToDate&&this.lastBuffer){if(s>0){this.lastBuffer.copy(this.lastBuffer,o+s,o,a-s);this.fill({buffer:this.lastBuffer,start:o,end:o+s})}else{this.lastBuffer.copy(this.lastBuffer,o,o-s,a);this.fill({buffer:this.lastBuffer,start:a+s,end:a})}}this.dst.scrollingRegion(this.y+r,this.y+i);if(t>0){this.dst.scrollDown(t)}else{this.dst.scrollUp(-t)}this.dst.resetScrollingRegion()}};d.prototype.copyRegion=function(t,e,r,i){var n=new h(this),s=new h(t),o=new h(e);o.setSize(s);s.clip(n);o.clip(n);if(s.isNull){return}if(!o.isNull){h.regionIterator({type:o.ymin-s.ymin>0?"reversedLine":"line",context:{srcBuffer:this.buffer,dstBuffer:this.buffer},srcRect:new h(this),srcClipRect:s,dstRect:new h(this),dstClipRect:o,offsetX:o.xmin-s.xmin,offsetY:o.ymin-s.ymin,multiply:this.ITEM_SIZE},this.blitterLineIterator.bind(this))}if(r){throw new Error("Move is not coded ATM")}};d.attr2object=function(t){var e={};if(t&S){e.color=0;e.defaultColor=true}else{e.color=t&255}if(t&A){e.bgColor=0;e.bgDefaultColor=true}else{e.bgColor=t>>>8&255}if(t&f){e.bold=true}if(t&c){e.dim=true}if(t&g){e.italic=true}if(t&m){e.underline=true}if(t&b){e.blink=true}if(t&y){e.inverse=true}if(t&v){e.hidden=true}if(t&w){e.strike=true}if(t&a){e.fgTransparency=true}if(t&u){e.bgTransparency=true}if(t&C){e.styleTransparency=true}if(t&k){e.charTransparency=true}if((t&T)===T){e.transparency=true}return e};d.prototype.attr2object=d.attr2object;d.object2attr=function(t,e,r=false){var i=0,n=false,s=false;if(!t||typeof t!=="object"){t={}}e=e||p.colorNameToIndex;if(t.bold){if(r){n=true}else{i|=f}}if(t.dim){i|=c}if(t.italic){i|=g}if(t.underline){i|=m}if(t.blink){if(r){s=true}else{i|=b}}if(t.inverse){i|=y}if(t.hidden){i|=v}if(t.strike){i|=w}if(typeof t.color==="string"){if(t.color==="default"){t.color=0;t.defaultColor=true}else{t.color=e(t.color)}}if(typeof t.color!=="number"||t.color<0||t.color>255){t.color=0;t.defaultColor=true}else{t.color=Math.floor(t.color);if(r&&t.color<=15){if(n&&t.color<=7){t.color+=8}else if(!n&&t.color>=8){t.color-=8}}}i+=t.color;if(typeof t.bgColor==="string"){if(t.bgColor==="default"){t.bgColor=0;t.bgDefaultColor=true}else{t.bgColor=e(t.bgColor)}}if(typeof t.bgColor!=="number"||t.bgColor<0||t.bgColor>255){t.bgColor=0;t.bgDefaultColor=true}else{t.bgColor=Math.floor(t.bgColor);if(r&&t.bgColor<=15){if(s&&t.bgColor<=7){t.bgColor+=8}else if(!s&&t.bgColor>=8){t.bgColor-=8}}}i+=t.bgColor<<8;if(t.defaultColor){i|=S}if(t.bgDefaultColor){i|=A}if(t.transparency){i|=T}if(t.fgTransparency){i|=a}if(t.bgTransparency){i|=u}if(t.styleTransparency){i|=C}if(t.charTransparency){i|=k}return i};d.prototype.object2attr=function(t,e=this.palette&&this.palette.colorNameToIndex,r=false){return d.object2attr(t,e,r)};d.attrAndObject=function(t,e,r){if(!e||typeof e!=="object"){return t}r=r||p.colorNameToIndex;if(e.defaultColor||e.color==="default"){t-=t&255;t|=S}else if(typeof e.color==="string"){t=t-(t&255)+r(e.color);if(t&S){t^=S}}else if(typeof e.color==="number"&&e.color>=0&&e.color<=255){t=t-(t&255)+e.color;if(t&S){t^=S}}if(e.bgDefaultColor||e.bgColor==="default"){t-=(t>>>8&255)<<8;t|=A}else if(typeof e.bgColor==="string"){t=t-((t>>>8&255)<<8)+(r(e.bgColor)<<8);if(t&A){t^=A}}else if(typeof e.bgColor==="number"&&e.bgColor>=0&&e.bgColor<=255){t=t-((t>>>8&255)<<8)+(e.bgColor<<8);if(t&A){t^=A}}if(e.bold===true){t|=f}else if(e.bold===false){t&=~f}if(e.dim===true){t|=c}else if(e.dim===false){t&=~c}if(e.italic===true){t|=g}else if(e.italic===false){t&=~g}if(e.underline===true){t|=m}else if(e.underline===false){t&=~m}if(e.blink===true){t|=b}else if(e.blink===false){t&=~b}if(e.inverse===true){t|=y}else if(e.inverse===false){t&=~y}if(e.hidden===true){t|=v}else if(e.hidden===false){t&=~v}if(e.strike===true){t|=w}else if(e.strike===false){t&=~w}if(e.transparency===true){t|=T}else if(e.transparency===false){t&=~T}if(e.fgTransparency===true){t|=a}else if(e.fgTransparency===false){t&=~a}if(e.bgTransparency===true){t|=u}else if(e.bgTransparency===false){t&=~u}if(e.styleTransparency===true){t|=C}else if(e.styleTransparency===false){t&=~C}if(e.charTransparency===true){t|=k}else if(e.charTransparency===false){t&=~k}return t};d.prototype.attrAndObject=function(t,e){return d.attrAndObject(t,e,this.palette&&this.palette.colorNameToIndex)};d.attrInverse=d.prototype.attrInverse=t=>t^y;const i=0;const l=255<<16;const f=1<<16;const c=2<<16;const g=4<<16;const m=8<<16;const b=16<<16;const y=32<<16;const v=64<<16;const w=128<<16;const x=f|c;const a=1<<24;const u=2<<24;const C=4<<24;const k=8<<24;const T=a|u|C|k;const S=16<<24;const A=32<<24;const n=255+(255<<8)+(255<<16)+T+S+A;const s=64<<24;const E=128<<24;const B=s|E;const R=~B;const O=1e4;const M=40;d.prototype.ATTR_SIZE=4;d.prototype.CHAR_SIZE=4;d.prototype.ITEM_SIZE=d.prototype.ATTR_SIZE+d.prototype.CHAR_SIZE;d.DEFAULT_ATTR=d.prototype.DEFAULT_ATTR=d.object2attr({defaultColor:true,bgDefaultColor:true});d.prototype.CLEAR_ATTR=d.object2attr({defaultColor:true,bgDefaultColor:true,transparency:true});d.prototype.CLEAR_BUFFER=I.allocUnsafe(d.prototype.ITEM_SIZE);d.prototype.CLEAR_BUFFER.writeInt32BE(d.prototype.CLEAR_ATTR,0);d.prototype.CLEAR_BUFFER.write(" \0\0\0",d.prototype.ATTR_SIZE);d.prototype.LEADING_FULLWIDTH=s;d.prototype.TRAILING_FULLWIDTH=E;d.loadSyncV1=function(t){var e,r,i,n,s;e=o.readFileSync(t);if(e.length<M){throw new Error("No header found: this is not a ScreenBuffer file")}if(e[0]!==83||e[1]!==66){throw new Error("Magic number mismatch: this is not a ScreenBuffer file")}r=e.readUInt16BE(4);i=e.readUInt16BE(6);n=M+r*i*d.prototype.ITEM_SIZE;if(e.length!==n){throw new Error("Bad file size: this is not a ScreenBuffer file")}s=new d({width:r,height:i});e.copy(s.buffer,0,M);return s};d.prototype.saveSyncV1=function(t){var e;e=I.allocUnsafe(M+this.buffer.length);e.fill(0,0,M);e[0]=83;e[1]=66;e.writeUInt16BE(this.width,4);e.writeUInt16BE(this.height,6);this.buffer.copy(e,M);o.writeFileSync(t,e)};d.loadSyncV2=function(t){var e,r,i,n;r=o.readFileSync(t);if(r.length<3||r.toString("ascii",0,3)!=="SB\n"){throw new Error("Magic number mismatch: this is not a ScreenBuffer file")}for(e=3;e<r.length;e++){if(r[e]===10){break}}if(e===r.length){throw new Error("No header found: this is not a ScreenBuffer file")}try{i=JSON.parse(r.toString("utf8",3,e))}catch(t){throw new Error("No correct one-lined JSON header found: this is not a ScreenBuffer file")}if(i.version===undefined||i.width===undefined||i.height===undefined){throw new Error("Missing mandatory header data, this is a corrupted or obsolete ScreenBuffer file")}if(i.bitsPerColor&&i.bitsPerColor!==d.prototype.bitsPerColor){throw new Error("Bad Bits Per Color: "+i.bitsPerColor+" (should be "+d.prototype.bitsPerColor+")")}if(r.length!==e+1+i.width*i.height*d.prototype.ITEM_SIZE){throw new Error("Bad file size: this is a corrupted ScreenBuffer file")}n=new d({width:i.width,height:i.height});r.copy(n.buffer,0,e+1);return n};d.prototype.saveSyncV2=function(t){var e,r;r={version:2,width:this.width,height:this.height,bpp:this.bpp};r="SB\n"+JSON.stringify(r)+"\n";e=I.allocUnsafe(r.length+this.buffer.length);e.write(r);this.buffer.copy(e,r.length);o.writeFileSync(t,e)};d.loadSync=d.loadSyncV2;d.prototype.saveSync=d.prototype.saveSyncV2}).call(this)}).call(this,r("buffer").Buffer)},{"./misc.js":48,"./termkit.js":56,buffer:159,fs:148,"nextgen-events":78,"string-kit":133}],4:[function(N,U,t){(function(H){(function(){"use strict";const e=N("./ScreenBuffer.js");const i=N("./misc.js");const s=N("fs");const h=N("string-kit");function c(t={}){e.call(this,t)}U.exports=c;const d=N("./termkit.js");c.prototype=Object.create(e.prototype);c.prototype.constructor=c;c.prototype.bitsPerColor=24;c.create=(...t)=>new c(...t);c.createFromString=function(t,e){var r,i,n,s,o,a,u,l,f;if(!t){t={}}if(typeof e!=="string"){if(!e.toString){throw new Error("[terminal] ScreenBufferHD.createFromDataString(): argument #1 should be a string or provide a .toString() method.")}e=e.toString()}e=d.stripControlChars(e,true).split("\n");a=0;u=e.length;s=t.attr!==undefined?t.attr:c.prototype.DEFAULT_ATTR;if(s&&typeof s==="object"&&!s.BYTES_PER_ELEMENT){s=c.object2attr(s)}o=s;if(t.transparencyChar){if(!t.transparencyType){o|=c.prototype.TRANSPARENCY}else{o|=t.transparencyType&c.prototype.TRANSPARENCY}}for(i=0;i<e.length;i++){l=h.unicode.width(e[i]);if(l>a){a=l}}f=new c({width:a,height:u});for(i=0;i<e.length;i++){if(!t.transparencyChar){f.put({x:0,y:i,attr:s},e[i])}else{n=e[i].length;for(r=0;r<n;r++){if(e[i][r]===t.transparencyChar){f.put({x:r,y:i,attr:o},e[i][r])}else{f.put({x:r,y:i,attr:s},e[i][r])}}}}return f};c.createFromChars=c.createFromString;var t=N("./colorScheme/gnome.json").map(t=>({color:{r:t.r,g:t.g,b:t.b}}));var r=t.map(t=>({bgColor:{r:t.r,g:t.g,b:t.b}}));c.prototype.markupToAttrObject={normal:{"-":{dim:true},"+":{bold:true},_:{underline:true},"/":{italic:true},"!":{inverse:true},k:t[0],r:t[1],g:t[2],y:t[3],b:t[4],m:t[5],c:t[6],w:t[7],K:t[8],R:t[9],G:t[10],Y:t[11],B:t[12],M:t[13],C:t[14],W:t[15]},background:{k:r[0],r:r[1],g:r[2],y:r[3],b:r[4],m:r[5],c:r[6],w:r[7],K:r[8],R:r[9],G:r[10],Y:r[11],B:r[12],M:r[13],C:r[14],W:r[15]}};c.prototype.blitterCellBlendingIterator=function(t){var e=this.readAttr(t.context.srcBuffer,t.srcStart);var r=c.blendFn.normal;var i=1;var n=false;if(typeof t.context.blending==="object"){if(t.context.blending.fn){r=t.context.blending.fn}if(t.context.blending.opacity!==undefined){i=t.context.blending.opacity}if(t.context.blending.blendSrcFgWithDstBg){n=true}}if(e[w]&M&&e[w]&I&&(!i||e[p]===0&&e[y]===0)){return}if(t.startOfBlitLine&&t.dstStart>=this.ITEM_SIZE){this.removeLeadingFullWidth(t.context.dstBuffer,t.dstStart-this.ITEM_SIZE)}if(t.endOfBlitLine&&t.dstEnd<t.context.dstBuffer.length){this.removeTrailingFullWidth(t.context.dstBuffer,t.dstEnd)}if(!(e[w]&M)&&!(e[w]&I)&&e[p]===255&&e[y]===255&&i===1&&r===c.blendFn.normal&&!(t.endOfBlitLine||!(e[w]&j))){t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart,t.srcStart,t.srcEnd);return}var s;if(e[p]){s=i*e[p]/255;if(n){t.context.dstBuffer[t.dstStart+u]=o(t.context.srcBuffer[t.srcStart+u],t.context.dstBuffer[t.dstStart+g],s,r);t.context.dstBuffer[t.dstStart+l]=o(t.context.srcBuffer[t.srcStart+l],t.context.dstBuffer[t.dstStart+m],s,r);t.context.dstBuffer[t.dstStart+f]=o(t.context.srcBuffer[t.srcStart+f],t.context.dstBuffer[t.dstStart+b],s,r);t.context.dstBuffer[t.dstStart+p]=o(t.context.srcBuffer[t.srcStart+p],t.context.dstBuffer[t.dstStart+y],i,c.blendFn.screen)}else{t.context.dstBuffer[t.dstStart+u]=o(t.context.srcBuffer[t.srcStart+u],t.context.dstBuffer[t.dstStart+u],s,r);t.context.dstBuffer[t.dstStart+l]=o(t.context.srcBuffer[t.srcStart+l],t.context.dstBuffer[t.dstStart+l],s,r);t.context.dstBuffer[t.dstStart+f]=o(t.context.srcBuffer[t.srcStart+f],t.context.dstBuffer[t.dstStart+f],s,r);t.context.dstBuffer[t.dstStart+p]=o(t.context.srcBuffer[t.srcStart+p],t.context.dstBuffer[t.dstStart+p],i,c.blendFn.screen)}}if(e[y]){s=i*e[y]/255;t.context.dstBuffer[t.dstStart+g]=o(t.context.srcBuffer[t.srcStart+g],t.context.dstBuffer[t.dstStart+g],s,r);t.context.dstBuffer[t.dstStart+m]=o(t.context.srcBuffer[t.srcStart+m],t.context.dstBuffer[t.dstStart+m],s,r);t.context.dstBuffer[t.dstStart+b]=o(t.context.srcBuffer[t.srcStart+b],t.context.dstBuffer[t.dstStart+b],s,r);t.context.dstBuffer[t.dstStart+y]=o(t.context.srcBuffer[t.srcStart+y],t.context.dstBuffer[t.dstStart+y],i,c.blendFn.screen)}if(!(e[w]&M)){t.context.dstBuffer[t.dstStart+v]=t.context.srcBuffer[t.srcStart+v]}if(!(e[w]&I)){if(t.endOfBlitLine&&e[w]&j){this.writeChar(t.context.dstBuffer," ",t.dstStart)}else{t.context.srcBuffer.copy(t.context.dstBuffer,t.dstStart+this.ATTR_SIZE,t.srcStart+this.ATTR_SIZE,t.srcEnd)}}};function o(t,e,r,i){return Math.round(i(t,e)*r+e*(1-r))}c.blendFn={normal:t=>t,multiply:(t,e)=>255*(t/255*(e/255)),screen:(t,e)=>255*(1-(1-t/255)*(1-e/255)),overlay:(t,e)=>e<=127?255*(2*(t/255)*(e/255)):255*(1-2*(1-t/255)*(1-e/255)),hardLight:(t,e)=>t<=127?255*(2*(t/255)*(e/255)):255*(1-2*(1-t/255)*(1-e/255)),softLight:(t,e)=>{t/=255;e/=255;return 255*((1-2*t)*e*e+2*t*e)}};function n(t,e){if(t.readUInt32BE(x)!==e.readUInt32BE(x)){return false}if(t.readUInt32BE(_)!==e.readUInt32BE(_)){return false}if(t[v]!==e[v]){return false}if((t[w]&P)!==(e[w]&P)){return false}return true}c.prototype.terminalBlitterLineIterator=function(t){var e,r;if(!t.context.inline){t.context.sequence+=t.context.term.optimized.moveTo(t.dstXmin,t.dstY);t.context.moves++}for(e=t.srcStart;e<t.srcEnd;e+=this.ITEM_SIZE){r=this.readAttr(t.context.srcBuffer,e);if(r[w]&L){continue}if(!t.context.lastAttr||!n(r,t.context.lastAttr)){t.context.sequence+=!t.context.lastAttr||!t.context.deltaEscapeSequence?this.generateEscapeSequence(t.context.term,r):this.generateDeltaEscapeSequence(t.context.term,r,t.context.lastAttr);t.context.lastAttr=r;t.context.attrs++}t.context.sequence+=this.readChar(t.context.srcBuffer,e);t.context.cells++}if(t.context.inline){t.context.sequence+=t.context.term.optimized.styleReset+"\n";t.context.attrs++;t.context.lastAttr=null}if(t.context.sequence.length>W){t.context.rawTerm(t.context.sequence);t.context.sequence="";t.context.writes++}};c.prototype.terminalBlitterCellIterator=function(t){var e=this.readAttr(t.context.srcBuffer,t.srcStart);if(t.context.srcLastBuffer){if(n(e,this.readAttr(t.context.srcLastBuffer,t.srcStart))&&this.readChar(t.context.srcBuffer,t.srcStart)===this.readChar(t.context.srcLastBuffer,t.srcStart)){return}t.context.srcBuffer.copy(t.context.srcLastBuffer,t.srcStart,t.srcStart,t.srcEnd)}if(e[w]&L){return}t.context.cells++;if(t.dstX!==t.context.cx||t.dstY!==t.context.cy){t.context.sequence+=t.context.term.optimized.moveTo(t.dstX,t.dstY);t.context.moves++}if(!t.context.lastAttr||!n(e,t.context.lastAttr)){t.context.sequence+=!t.context.lastAttr||!t.context.deltaEscapeSequence?this.generateEscapeSequence(t.context.term,e):this.generateDeltaEscapeSequence(t.context.term,e,t.context.lastAttr);t.context.lastAttr=e;t.context.attrs++}t.context.sequence+=this.readChar(t.context.srcBuffer,t.srcStart);if(t.context.sequence.length>W){t.context.rawTerm(t.context.sequence);t.context.sequence="";t.context.writes++}t.context.cy=t.dstY;if(e&j){t.context.cx=t.dstX+2;return true}t.context.cx=t.dstX+1};c.fromNdarrayImage=function(t){var e,r=t.shape[0],i,n=Math.ceil(t.shape[1]/2),s=t.shape[2]===4;var o=new c({width:r,height:n,blending:true,noFill:true});for(e=0;e<r;e++){for(i=0;i<n;i++){if(i*2+1<t.shape[1]){o.put({x:e,y:i,attr:{color:{r:t.get(e,i*2,0),g:t.get(e,i*2,1),b:t.get(e,i*2,2),a:s?t.get(e,i*2,3):255},bgColor:{r:t.get(e,i*2+1,0),g:t.get(e,i*2+1,1),b:t.get(e,i*2+1,2),a:s?t.get(e,i*2+1,3):255}}},"▀")}else{o.put({x:e,y:i,attr:{color:{r:t.get(e,i*2,0),g:t.get(e,i*2,1),b:t.get(e,i*2,2),a:s?t.get(e,i*2,3):255},bgColor:{r:0,g:0,b:0,a:0}}},"▀")}}}return o};c.loadImage=d.image.load.bind(c,c.fromNdarrayImage);c.prototype.dump=function(){var t,e,r,i="",n;for(t=0;t<this.height;t++){for(e=0;e<this.width;e++){r=(t*this.width+e)*this.ITEM_SIZE;n=this.readChar(this.buffer,r);i+=n+(h.unicode.isFullWidth(n)?" ":" ");i+=h.format("%x%x%x%x %x%x%x%x %x%x ",this.buffer.readUInt8(r),this.buffer.readUInt8(r+1),this.buffer.readUInt8(r+2),this.buffer.readUInt8(r+3),this.buffer.readUInt8(r+4),this.buffer.readUInt8(r+5),this.buffer.readUInt8(r+6),this.buffer.readUInt8(r+7),this.buffer.readUInt8(r+8),this.buffer.readUInt8(r+9))}i+="\n"}return i};c.prototype.readAttr=function(t,e){return t.slice(e,e+this.ATTR_SIZE)};c.prototype.writeAttr=function(t,e,r,i=0){if(!i){return e.copy(t,r)}e.copy(t,r);return t.writeUInt8(e[w]|i,r+w)};c.prototype.hasLeadingFullWidth=function(t,e){return!!(t.readUInt8(e+w)&j)};c.prototype.hasTrailingFullWidth=function(t,e){return!!(t.readUInt8(e+w)&L)};c.prototype.removeLeadingFullWidth=function(t,e){var r=t.readUInt8(e+w);if(!(r&j)){return}r^=j;t.writeUInt8(r,e+w);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};c.prototype.removeTrailingFullWidth=function(t,e){var r=t.readUInt8(e+w);if(!(r&L)){return}r^=L;t.writeUInt8(r,e+w);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};c.prototype.removeFullWidth=function(t,e){var r=t.readUInt8(e+w);if(!(r&D)){return}r=r&F;t.writeUInt8(r,e+w);t.write(" ",e+this.ATTR_SIZE,this.CHAR_SIZE)};c.prototype.attrLeadingFullWidth=function(t){t.writeUInt8(t[w]|j,w);return t};c.prototype.attrTrailingFullWidth=function(t){t.writeUInt8(t[w]|L,w);return t};c.prototype.readChar=function(t,e){var r;e+=this.ATTR_SIZE;if(t[e]<128){r=1}else if(t[e]<192){return"\0"}else if(t[e]<224){r=2}else if(t[e]<240){r=3}else if(t[e]<248){r=4}else if(t[e]<252){r=5}else{r=6}if(r>this.CHAR_SIZE){return"\0"}return t.toString("utf8",e,e+r)};c.prototype.writeChar=function(t,e,r){return t.write(e,r+this.ATTR_SIZE,this.CHAR_SIZE)};c.prototype.generateEscapeSequence=function(t,e){var r=t.optimized.styleReset+t.optimized.color24bits(e[u],e[l],e[f])+t.optimized.bgColor24bits(e[g],e[m],e[b]);var i=e[v];if(i&C){r+=t.optimized.bold}if(i&k){r+=t.optimized.dim}if(i&T){r+=t.optimized.italic}if(i&S){r+=t.optimized.underline}if(i&A){r+=t.optimized.blink}if(i&E){r+=t.optimized.inverse}if(i&B){r+=t.optimized.hidden}if(i&R){r+=t.optimized.strike}return r};c.prototype.generateDeltaEscapeSequence=function(t,e,r){var i="";if(e[u]!==r[u]||e[l]!==r[l]||e[f]!==r[f]){i+=t.optimized.color24bits(e[u],e[l],e[f])}if(e[g]!==r[g]||e[m]!==r[m]||e[b]!==r[b]){i+=t.optimized.bgColor24bits(e[g],e[m],e[b])}var n=e[v];var s=r[v];if(n!==s){if((n&O)!==(s&O)){if(s&C&&!(n&C)||s&k&&!(n&k)){i+=t.optimized.noBold;if(n&C){i+=t.optimized.bold}if(n&k){i+=t.optimized.dim}}else{if(n&C&&!(s&C)){i+=t.optimized.bold}if(n&k&&!(s&k)){i+=t.optimized.dim}}}if((n&T)!==(s&T)){i+=n&T?t.optimized.italic:t.optimized.noItalic}if((n&S)!==(s&S)){i+=n&S?t.optimized.underline:t.optimized.noUnderline}if((n&A)!==(s&A)){i+=n&A?t.optimized.blink:t.optimized.noBlink}if((n&E)!==(s&E)){i+=n&E?t.optimized.inverse:t.optimized.noInverse}if((n&B)!==(s&B)){i+=n&B?t.optimized.hidden:t.optimized.noHidden}if((n&R)!==(s&R)){i+=n&R?t.optimized.strike:t.optimized.noStrike}}return i};c.attr2object=function(t){var e={color:{},bgColor:{}};e.color.r=t[u];e.color.g=t[l];e.color.b=t[f];e.color.a=t[p];e.bgColor.r=t[g];e.bgColor.g=t[m];e.bgColor.b=t[b];e.bgColor.a=t[y];e.bold=!!(t[v]&C);e.dim=!!(t[v]&k);e.italic=!!(t[v]&T);e.underline=!!(t[v]&S);e.blink=!!(t[v]&A);e.inverse=!!(t[v]&E);e.hidden=!!(t[v]&B);e.strike=!!(t[v]&R);e.styleTransparency=!!(t[w]&M);e.charTransparency=!!(t[w]&I);return e};c.prototype.attr2object=c.attr2object;c.object2attr=function(e){var r=H.allocUnsafe(c.prototype.ATTR_SIZE);if(!e||typeof e!=="object"){e={}}r[w]=0;if(typeof e.color==="string"){let t=i.hexToRgba(e.color);r[u]=t.r;r[l]=t.g;r[f]=t.b;r[p]=t.a}else if(e.color&&typeof e.color==="object"){r[u]=+e.color.r||0;r[l]=+e.color.g||0;r[f]=+e.color.b||0;r[p]=e.color.a!==undefined?+e.color.a||0:255}else{r[u]=0;r[l]=0;r[f]=0;r[p]=255}if(typeof e.bgColor==="string"){let t=i.hexToRgba(e.bgColor);r[g]=t.r;r[m]=t.g;r[b]=t.b;r[y]=t.a}else if(e.bgColor&&typeof e.bgColor==="object"){r[g]=+e.bgColor.r||0;r[m]=+e.bgColor.g||0;r[b]=+e.bgColor.b||0;r[y]=e.bgColor.a!==undefined?+e.bgColor.a||0:255}else{r[g]=0;r[m]=0;r[b]=0;r[y]=255}if(e.styleTransparency){r[w]|=M}if(e.charTransparency){r[w]|=I}r[v]=0;if(e.bold){r[v]|=C}if(e.dim){r[v]|=k}if(e.italic){r[v]|=T}if(e.underline){r[v]|=S}if(e.blink){r[v]|=A}if(e.inverse){r[v]|=E}if(e.hidden){r[v]|=B}if(e.strike){r[v]|=R}return r};c.prototype.object2attr=c.object2attr;c.attrAndObject=function(t,e){if(!e||typeof e!=="object"){return t}if(e.color&&typeof e.color==="object"){if(e.color.r!==undefined){t[u]=+e.color.r||0}if(e.color.g!==undefined){t[l]=+e.color.g||0}if(e.color.b!==undefined){t[f]=+e.color.b||0}if(e.color.a!==undefined){t[p]=+e.color.a||0}}if(e.bgColor&&typeof e.bgColor==="o