phirepass-widgets 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,4 +46,4 @@ import{t,p as i,H as s,h as e,a as h}from"./index.js";
46
46
  * Fabrice Bellard's javascript vt100 for jslinux:
47
47
  * http://bellard.org/jslinux/
48
48
  * Copyright (c) 2011 Fabrice Bellard
49
- */function Ja(t,i){let s,e=this,h=!1;return function(){return h||(h=!0,i||(s=t.apply(e,arguments))),s}}(t=>{t.isLessThan=function(t){return t<0},t.isLessThanOrEqual=function(t){return t<=0},t.isGreaterThan=function(t){return t>0},t.isNeitherLessOrGreaterThan=function(t){return 0===t},t.greaterThan=1,t.lessThan=-1,t.neitherLessOrGreaterThan=0})(Ma||={}),(t=>{function i(t){return t&&"object"==typeof t&&"function"==typeof t[Symbol.iterator]}t.is=i;let s=Object.freeze([]);function*e(t){yield t}t.empty=function(){return s},t.single=e,t.wrap=function(t){return i(t)?t:e(t)},t.from=function(t){return t||s},t.reverse=function*(t){for(let i=t.length-1;i>=0;i--)yield t[i]},t.isEmpty=function(t){return!t||!0===t[Symbol.iterator]().next().done},t.first=function(t){return t[Symbol.iterator]().next().value},t.some=function(t,i){let s=0;for(let e of t)if(i(e,s++))return!0;return!1},t.find=function(t,i){for(let s of t)if(i(s))return s},t.filter=function*(t,i){for(let s of t)i(s)&&(yield s)},t.map=function*(t,i){let s=0;for(let e of t)yield i(e,s++)},t.flatMap=function*(t,i){let s=0;for(let e of t)yield*i(e,s++)},t.concat=function*(...t){for(let i of t)yield*i},t.reduce=function(t,i,s){let e=s;for(let s of t)e=i(e,s);return e},t.slice=function*(t,i,s=t.length){for(i<0&&(i+=t.length),s<0?s+=t.length:s>t.length&&(s=t.length);i<s;i++)yield t[i]},t.consume=function(i,s=1/0){let e=[];if(0===s)return[e,i];let h=i[Symbol.iterator]();for(let i=0;i<s;i++){let i=h.next();if(i.done)return[e,t.empty()];e.push(i.value)}return[e,{[Symbol.iterator]:()=>h}]},t.asyncToArray=async function(t){let i=[];for await(let s of t)i.push(s);return Promise.resolve(i)}})(ya||={});var Oa=class t{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{!function(t){if(ya.is(t)){let i=[];for(let s of t)if(s)try{s.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new AggregateError(i,"Encountered errors while disposing of store");return Array.isArray(t)?[]:t}t&&t.dispose()}(this._toDispose)}finally{this._toDispose.clear()}}add(i){if(!i)return i;if(i===this)throw Error("Cannot register a disposable on itself!");return this._isDisposed?t.DISABLE_DISPOSED_WARNING||console.warn(Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(i),i}delete(t){if(t){if(t===this)throw Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&this._toDispose.delete(t)}};Oa.DISABLE_DISPOSED_WARNING=!1;var Wa=Oa,qa=class{constructor(){this._store=new Wa}dispose(){this._store.dispose()}_register(t){if(t===this)throw Error("Cannot register a disposable on itself!");return this._store.add(t)}};qa.None=Object.freeze({dispose(){}});var za=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t}},Ka=class t extends qa{constructor(t){super(),this._terminal=t,this._optionsRefresh=this._register(new za),this._oldOpen=this._terminal._core.open,this._terminal._core.open=t=>{this._oldOpen?.call(this._terminal._core,t),this._open()},this._terminal._core.screenElement&&this._open(),this._optionsRefresh.value=this._terminal._core.optionsService.onOptionChange((t=>{"fontSize"===t&&(this.rescaleCanvas(),this._renderService?.refreshRows(0,this._terminal.rows))})),this._register(function(t){return{dispose:Ja((()=>{t()}))}}((()=>{this.removeLayerFromDom(),this._terminal._core&&this._oldOpen&&(this._terminal._core.open=this._oldOpen,this._oldOpen=void 0),this._renderService&&this._oldSetRenderer&&(this._renderService.setRenderer=this._oldSetRenderer,this._oldSetRenderer=void 0),this._renderService=void 0,this.canvas=void 0,this._ctx=void 0,this._placeholderBitmap?.close(),this._placeholderBitmap=void 0,this._placeholder=void 0})))}static createCanvas(t,i,s){let e=(t||document).createElement("canvas");return e.width=0|i,e.height=0|s,e}static createImageData(t,i,s,e){if("function"!=typeof ImageData){let h=t.createImageData(i,s);return e&&h.data.set(new Uint8ClampedArray(e,0,i*s*4)),h}return e?new ImageData(new Uint8ClampedArray(e,0,i*s*4),i,s):new ImageData(i,s)}static createImageBitmap(t){return"function"!=typeof createImageBitmap?Promise.resolve(void 0):createImageBitmap(t)}showPlaceholder(t){t?!this._placeholder&&-1!==this.cellSize.height&&this._createPlaceHolder(Math.max(this.cellSize.height+1,24)):(this._placeholderBitmap?.close(),this._placeholderBitmap=void 0,this._placeholder=void 0),this._renderService?.refreshRows(0,this._terminal.rows)}get dimensions(){return this._renderService?.dimensions}get cellSize(){return{width:this.dimensions?.css.cell.width||-1,height:this.dimensions?.css.cell.height||-1}}clearLines(t,i){this._ctx?.clearRect(0,t*(this.dimensions?.css.cell.height||0),this.dimensions?.css.canvas.width||0,(++i-t)*(this.dimensions?.css.cell.height||0))}clearAll(){this._ctx?.clearRect(0,0,this.canvas?.width||0,this.canvas?.height||0)}draw(t,i,s,e,h=1){if(!this._ctx)return;let{width:r,height:n}=this.cellSize;if(-1===r||-1===n)return;this._rescaleImage(t,r,n);let o=t.actual,l=Math.ceil(o.width/r),a=i%l*r,c=Math.floor(i/l)*n,u=s*r,A=e*n,f=h*r+a>o.width?o.width-a:h*r,d=c+n>o.height?o.height-c:n;this._ctx.drawImage(o,Math.floor(a),Math.floor(c),Math.ceil(f),Math.ceil(d),Math.floor(u),Math.floor(A),Math.ceil(f),Math.ceil(d))}extractTile(i,s){let{width:e,height:h}=this.cellSize;if(-1===e||-1===h)return;this._rescaleImage(i,e,h);let r=i.actual,n=Math.ceil(r.width/e),o=s%n*e,l=Math.floor(s/n)*h,a=e+o>r.width?r.width-o:e,c=l+h>r.height?r.height-l:h,u=t.createCanvas(this.document,a,c),A=u.getContext("2d");return A?(A.drawImage(r,Math.floor(o),Math.floor(l),Math.floor(a),Math.floor(c),0,0,Math.floor(a),Math.floor(c)),u):void 0}drawPlaceholder(t,i,s=1){if(this._ctx){let{width:e,height:h}=this.cellSize;if(-1===e||-1===h||(this._placeholder?h>=this._placeholder.height&&this._createPlaceHolder(h+1):this._createPlaceHolder(Math.max(h+1,24)),!this._placeholder))return;this._ctx.drawImage(this._placeholderBitmap||this._placeholder,t*e,i*h%2?0:1,e*s,h,t*e,i*h,e*s,h)}}rescaleCanvas(){this.canvas&&(this.canvas.width!==this.dimensions.css.canvas.width||this.canvas.height!==this.dimensions.css.canvas.height)&&(this.canvas.width=this.dimensions.css.canvas.width||0,this.canvas.height=this.dimensions.css.canvas.height||0)}_rescaleImage(i,s,e){if(s===i.actualCellSize.width&&e===i.actualCellSize.height)return;let{width:h,height:r}=i.origCellSize;if(s===h&&e===r)return i.actual=i.orig,i.actualCellSize.width=h,void(i.actualCellSize.height=r);let n=t.createCanvas(this.document,Math.ceil(i.orig.width*s/h),Math.ceil(i.orig.height*e/r)),o=n.getContext("2d");o&&(o.drawImage(i.orig,0,0,n.width,n.height),i.actual=n,i.actualCellSize.width=s,i.actualCellSize.height=e)}_open(){this._renderService=this._terminal._core._renderService,this._oldSetRenderer=this._renderService.setRenderer.bind(this._renderService),this._renderService.setRenderer=t=>{this.removeLayerFromDom(),this._oldSetRenderer?.call(this._renderService,t)}}insertLayerToDom(){this.document&&this._terminal._core.screenElement?this.canvas||(this.canvas=t.createCanvas(this.document,this.dimensions?.css.canvas.width||0,this.dimensions?.css.canvas.height||0),this.canvas.classList.add("xterm-image-layer"),this._terminal._core.screenElement.appendChild(this.canvas),this._ctx=this.canvas.getContext("2d",{alpha:!0,desynchronized:!0}),this.clearAll()):console.warn("image addon: cannot insert output canvas to DOM, missing document or screenElement")}removeLayerFromDom(){this.canvas&&(this._ctx=void 0,this.canvas.remove(),this.canvas=void 0)}_createPlaceHolder(i=24){this._placeholderBitmap?.close(),this._placeholderBitmap=void 0;let s=32,e=t.createCanvas(this.document,s,i),h=e.getContext("2d",{alpha:!1});if(!h)return;let r=t.createImageData(h,s,i),n=new Uint32Array(r.data.buffer),o=(0,Ga.toRGBA8888)(0,0,0),l=(0,Ga.toRGBA8888)(255,255,255);n.fill(o);for(let t=0;t<i;++t){let i=t%2,e=t*s;for(let t=0;t<s;t+=2)n[e+t+i]=l}h.putImageData(r,0,0);let a=screen.width+s-1&-32||4096;this._placeholder=t.createCanvas(this.document,a,i);let c=this._placeholder.getContext("2d",{alpha:!1});if(c){for(let t=0;t<a;t+=s)c.drawImage(e,t,0);t.createImageBitmap(this._placeholder).then((t=>this._placeholderBitmap=t))}else this._placeholder=void 0}get document(){return this._terminal._core._coreBrowserService?.window.document}},ja={width:7,height:14},Ya=class t{constructor(t=0,i=0,s=-1,e=-1){this.imageId=s,this.tileId=e,this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(t){this._ext&=-67108864,this._ext|=67108863&t}get underlineVariantOffset(){let t=(3758096384&this._ext)>>29;return t<0?4294967288^t:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}get urlId(){return this._urlId}set urlId(t){this._urlId=t}clone(){return new t(this._ext,this._urlId,this.imageId,this.tileId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId&&-1===this.imageId}},Za=new Ya,Xa=class{constructor(t,i,s){this._terminal=t,this._renderer=i,this._opts=s,this._images=new Map,this._lastId=0,this._lowestId=0,this._fullyCleared=!1,this._needsFullClear=!1,this._pixelLimit=25e5;try{this.setLimit(this._opts.storageLimit)}catch(t){console.error(t.message),console.warn(`storageLimit is set to ${this.getLimit()} MB`)}this._viewportMetrics={cols:this._terminal.cols,rows:this._terminal.rows}}dispose(){this.reset()}reset(){for(let t of this._images.values())t.marker?.dispose();this._images.clear(),this._renderer.clearAll()}getLimit(){return 4*this._pixelLimit/1e6}setLimit(t){if(t<.5||t>1e3)throw RangeError("invalid storageLimit, should be at least 0.5 MB and not exceed 1G");this._pixelLimit=t/4*1e6>>>0,this._evictOldest(0)}getUsage(){return 4*this._getStoredPixels()/1e6}_getStoredPixels(){let t=0;for(let i of this._images.values())i.orig&&(t+=i.orig.width*i.orig.height,i.actual&&i.actual!==i.orig&&(t+=i.actual.width*i.actual.height));return t}_delImg(t){let i=this._images.get(t);this._images.delete(t),i&&window.ImageBitmap&&i.orig instanceof ImageBitmap&&i.orig.close()}wipeAlternate(){let t=[];for(let[i,s]of this._images.entries())"alternate"===s.bufferType&&(s.marker?.dispose(),t.push(i));for(let i of t)this._delImg(i);this._needsFullClear=!0,this._fullyCleared=!1}advanceCursor(t){if(this._opts.sixelScrolling){let i=this._renderer.cellSize;(-1===i.width||-1===i.height)&&(i=ja);let s=Math.ceil(t/i.height);for(let t=1;t<s;++t)this._terminal._core._inputHandler.lineFeed()}}addImage(t){this._evictOldest(t.width*t.height);let i=this._renderer.cellSize;(-1===i.width||-1===i.height)&&(i=ja);let s=Math.ceil(t.width/i.width),e=Math.ceil(t.height/i.height),h=++this._lastId,r=this._terminal._core.buffer,n=this._terminal.cols,o=this._terminal.rows,l=r.x,a=r.y,c=l,u=0;this._opts.sixelScrolling||(r.x=0,r.y=0,c=0),this._terminal._core._inputHandler._dirtyRowTracker.markDirty(r.y);for(let t=0;t<e;++t){let i=r.lines.get(r.y+r.ybase);for(let e=0;e<s&&!(c+e>=n);++e)this._writeToCell(i,c+e,h,t*s+e),u++;if(this._opts.sixelScrolling)t<e-1&&this._terminal._core._inputHandler.lineFeed();else if(++r.y>=o)break;r.x=c}this._terminal._core._inputHandler._dirtyRowTracker.markDirty(r.y),this._opts.sixelScrolling?r.x=c:(r.x=l,r.y=a);let A=[];for(let[t,i]of this._images.entries())i.tileCount<1&&(i.marker?.dispose(),A.push(t));for(let t of A)this._delImg(t);let f=this._terminal.registerMarker(0);f?.onDispose((()=>{this._images.get(h)&&this._delImg(h)})),"alternate"===this._terminal.buffer.active.type&&this._evictOnAlternate();let d={orig:t,origCellSize:i,actual:t,actualCellSize:{...i},marker:f||void 0,tileCount:u,bufferType:this._terminal.buffer.active.type};this._images.set(h,d)}render(t){if(!this._renderer.canvas&&this._images.size&&(this._renderer.insertLayerToDom(),!this._renderer.canvas))return;if(this._renderer.rescaleCanvas(),!this._images.size)return this._fullyCleared||(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1),void(this._renderer.canvas&&this._renderer.removeLayerFromDom());this._needsFullClear&&(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1);let{start:i,end:s}=t,e=this._terminal._core.buffer,h=this._terminal._core.cols;this._renderer.clearLines(i,s);for(let t=i;t<=s;++t){let i=e.lines.get(t+e.ydisp);if(!i)return;for(let s=0;s<h;++s)if(268435456&i.getBg(s)){let e=i._extendedAttrs[s]||Za,r=e.imageId;if(void 0===r||-1===r)continue;let n=this._images.get(r);if(-1!==e.tileId){let o=e.tileId,l=s,a=1;for(;++s<h&&268435456&i.getBg(s)&&(e=i._extendedAttrs[s]||Za)&&e.imageId===r&&e.tileId===o+a;)a++;s--,n?n.actual&&this._renderer.draw(n,o,l,t,a):this._opts.showPlaceholder&&this._renderer.drawPlaceholder(l,t,a),this._fullyCleared=!1}}}}viewportResize(t){if(!this._images.size)return void(this._viewportMetrics=t);if(this._viewportMetrics.cols>=t.cols)return void(this._viewportMetrics=t);let i=this._terminal._core.buffer,s=i.lines.length,e=this._viewportMetrics.cols-1;for(let h=0;h<s;++h){let s=i.lines.get(h);if(268435456&s.getBg(e)){let i=s._extendedAttrs[e]||Za,h=i.imageId;if(void 0===h||-1===h)continue;let r=this._images.get(h);if(!r)continue;let n=Math.ceil((r.actual?.width||0)/r.actualCellSize.width);if(i.tileId%n+1>=n)continue;let o=!1;for(let i=e+1;i>t.cols;++i)if(4194303&s._data[3*i+0]){o=!0;break}if(o)continue;let l=Math.min(t.cols,n-i.tileId%n+e),a=i.tileId;for(let t=e+1;t<l;++t)this._writeToCell(s,t,h,++a),r.tileCount++}}this._viewportMetrics=t}getImageAtBufferCell(t,i){let s=this._terminal._core.buffer.lines.get(i);if(s&&268435456&s.getBg(t)){let i=s._extendedAttrs[t]||Za;if(i.imageId&&-1!==i.imageId){let t=this._images.get(i.imageId)?.orig;if(window.ImageBitmap&&t instanceof ImageBitmap){let i=Ka.createCanvas(window.document,t.width,t.height);return i.getContext("2d")?.drawImage(t,0,0,t.width,t.height),i}return t}}}extractTileAtBufferCell(t,i){let s=this._terminal._core.buffer.lines.get(i);if(s&&268435456&s.getBg(t)){let i=s._extendedAttrs[t]||Za;if(i.imageId&&-1!==i.imageId&&-1!==i.tileId){let t=this._images.get(i.imageId);if(t)return this._renderer.extractTile(t,i.tileId)}}}_evictOldest(t){let i=this._getStoredPixels(),s=i;for(;this._pixelLimit<s+t&&this._images.size;){let t=this._images.get(++this._lowestId);t&&t.orig&&(s-=t.orig.width*t.orig.height,t.actual&&t.orig!==t.actual&&(s-=t.actual.width*t.actual.height),t.marker?.dispose(),this._delImg(this._lowestId))}return i-s}_writeToCell(t,i,s,e){if(268435456&t._data[3*i+2]){let h=t._extendedAttrs[i];if(h){if(void 0!==h.imageId){let t=this._images.get(h.imageId);return t&&t.tileCount--,h.imageId=s,void(h.tileId=e)}return void(t._extendedAttrs[i]=new Ya(h.ext,h.urlId,s,e))}}t._data[3*i+2]|=268435456,t._extendedAttrs[i]=new Ya(0,0,s,e)}_evictOnAlternate(){for(let t of this._images.values())"alternate"===t.bufferType&&(t.tileCount=0);let t=this._terminal._core.buffer;for(let i=0;i<this._terminal.rows;++i){let s=t.lines.get(i);if(s)for(let t=0;t<this._terminal.cols;++t)if(268435456&s._data[3*t+2]){let i=s._extendedAttrs[t]?.imageId;if(i){let t=this._images.get(i);t&&t.tileCount++}}}let i=[];for(let[t,s]of this._images.entries())"alternate"===s.bufferType&&!s.tileCount&&(s.marker?.dispose(),i.push(t));for(let t of i)this._delImg(t)}},Va=Na(Ua());function tc(t){let i="";for(let s=0;s<t.length;++s)i+=String.fromCharCode(t[s]);return i}function ic(t){let i=0;for(let s=0;s<t.length;++s){if(t[s]<48||t[s]>57)throw Error("illegal char");i=10*i+t[s]-48}return i}function sc(t){let i=tc(t);if(!i.match(/^((auto)|(\d+?((px)|(%)){0,1}))$/))throw Error("illegal size");return i}var ec={inline:ic,size:ic,name:function(t){if(typeof Buffer<"u")return""+Buffer.from(tc(t),"base64");let i=atob(tc(t)),s=new Uint8Array(i.length);for(let t=0;t<s.length;++t)s[t]=i.charCodeAt(t);return(new TextDecoder).decode(s)},width:sc,height:sc,preserveAspectRatio:ic},hc=[70,105,108,101],rc=1024,nc=class{constructor(){this.state=0,this._buffer=new Uint32Array(rc),this._position=0,this._key="",this.fields={}}reset(){this._buffer.fill(0),this.state=0,this._position=0,this.fields={},this._key=""}parse(t,i,s){let e=this.state,h=this._position,r=this._buffer;if(1===e||4===e||0===e&&h>6)return-1;for(let n=i;n<s;++n){let i=t[n];switch(i){case 59:if(!this._storeValue(h))return this._a();e=2,h=0;break;case 61:if(0===e){for(let t=0;t<4;++t)if(r[t]!==hc[t])return this._a();e=2,h=0}else if(2===e){if(!this._storeKey(h))return this._a();e=3,h=0}else if(3===e){if(h>=rc)return this._a();r[h++]=i}break;case 58:return 3!==e||this._storeValue(h)?(this.state=4,n+1):this._a();default:if(h>=rc)return this._a();r[h++]=i}}return this.state=e,this._position=h,-2}_a(){return this.state=1,-1}_storeKey(t){let i=tc(this._buffer.subarray(0,t));return!!i&&(this._key=i,this.fields[i]=null,!0)}_storeValue(t){if(this._key){try{let i=this._buffer.slice(0,t);this.fields[this._key]=ec[this._key]?ec[this._key](i):i}catch{return!1}return!0}return!1}},oc={mime:"unsupported",width:0,height:0},lc={name:"Unnamed file",size:0,width:"auto",height:"auto",preserveAspectRatio:1,inline:0},ac=class{constructor(t,i,s,e){this._opts=t,this._renderer=i,this._storage=s,this._coreTerminal=e,this._aborted=!1,this._hp=new nc,this._header=lc,this._dec=new Va.default(4194304),this._metrics=oc}reset(){}start(){this._aborted=!1,this._header=lc,this._metrics=oc,this._hp.reset()}put(t,i,s){if(!this._aborted)if(4===this._hp.state)this._dec.put(t,i,s)&&(this._dec.release(),this._aborted=!0);else{let e=this._hp.parse(t,i,s);if(-1===e)return void(this._aborted=!0);if(e>0){if(this._header=Object.assign({},lc,this._hp.fields),!this._header.inline||!this._header.size||this._header.size>this._opts.iipSizeLimit)return void(this._aborted=!0);this._dec.init(this._header.size),this._dec.put(t,e,s)&&(this._dec.release(),this._aborted=!0)}}}end(t){if(this._aborted)return!0;let i=0,s=0,e=!0;if((e=t)&&(e=!this._dec.end())&&(this._metrics=function(t){if(t.length<24)return oc;let i=new Uint32Array(t.buffer,t.byteOffset,6);if(1196314761===i[0]&&169478669===i[1]&&1380206665===i[3])return{mime:"image/png",width:t[16]<<24|t[17]<<16|t[18]<<8|t[19],height:t[20]<<24|t[21]<<16|t[22]<<8|t[23]};if(255===t[0]&&216===t[1]&&255===t[2]){let[i,s]=function(t){let i=t.length,s=4,e=t[s]<<8|t[s+1];for(;;){if(s+=e,s>=i)return[0,0];if(255!==t[s])return[0,0];if(192===t[s+1]||194===t[s+1])return s+8<i?[t[s+7]<<8|t[s+8],t[s+5]<<8|t[s+6]]:[0,0];s+=2,e=t[s]<<8|t[s+1]}}(t);return{mime:"image/jpeg",width:i,height:s}}return 944130375!==i[0]||55!==t[4]&&57!==t[4]||97!==t[5]?oc:{mime:"image/gif",width:t[7]<<8|t[6],height:t[9]<<8|t[8]}}(this._dec.data8),(e="unsupported"!==this._metrics.mime)&&(i=this._metrics.width,s=this._metrics.height,(e=i&&s&&i*s<this._opts.pixelLimit)&&([i,s]=this._resize(i,s).map(Math.floor),e=i&&s&&i*s<this._opts.pixelLimit))),!e)return this._dec.release(),!0;let h=new Blob([this._dec.data8],{type:this._metrics.mime});if(this._dec.release(),!window.createImageBitmap){let t=URL.createObjectURL(h),e=new Image;return new Promise((h=>{e.addEventListener("load",(()=>{URL.revokeObjectURL(t);let r=Ka.createCanvas(window.document,i,s);r.getContext("2d")?.drawImage(e,0,0,i,s),this._storage.addImage(r),h(!0)})),e.src=t,setTimeout((()=>h(!0)),1e3)}))}return createImageBitmap(h,{resizeWidth:i,resizeHeight:s}).then((t=>(this._storage.addImage(t),!0)))}_resize(t,i){let s=this._renderer.dimensions?.css.cell.width||ja.width,e=this._renderer.dimensions?.css.cell.height||ja.height,h=this._renderer.dimensions?.css.canvas.width||s*this._coreTerminal.cols,r=this._renderer.dimensions?.css.canvas.height||e*this._coreTerminal.rows,n=this._dim(this._header.width,h,s),o=this._dim(this._header.height,r,e);if(!n&&!o){let s=Math.min(h/t,(r-e)/i);return s<1?[t*s,i*s]:[t,i]}return n?!this._header.preserveAspectRatio&&n&&o?[n,o]:[n,i*n/t]:[t*o/i,o]}_dim(t,i,s){return"auto"===t?0:t.endsWith("%")?parseInt(t.slice(0,-1))*i/100:t.endsWith("px")?parseInt(t.slice(0,-2)):parseInt(t)*s}},cc=Na(Fa()),uc=Na(Pa()),Ac=cc.PALETTE_ANSI_256;Ac.set(cc.PALETTE_VT340_COLOR);var fc=class{constructor(t,i,s){this._opts=t,this._storage=i,this._coreTerminal=s,this._size=0,this._aborted=!1,(0,uc.DecoderAsync)({memoryLimit:4*this._opts.pixelLimit,palette:Ac,paletteLimit:this._opts.sixelPaletteLimit}).then((t=>this._dec=t))}reset(){this._dec&&(this._dec.release(),this._dec._palette.fill(0),this._dec.init(0,Ac,this._opts.sixelPaletteLimit))}hook(t){if(this._size=0,this._aborted=!1,this._dec){let i=1===t.params[1]?0:function(t,i){let s=0;if(!i)return s;if(t.isInverse())if(t.isFgDefault())s=dc(i.foreground.rgba);else if(t.isFgRGB()){let i=t.constructor.toColorRGB(t.getFgColor());s=(0,cc.toRGBA8888)(...i)}else s=dc(i.ansi[t.getFgColor()].rgba);else if(t.isBgDefault())s=dc(i.background.rgba);else if(t.isBgRGB()){let i=t.constructor.toColorRGB(t.getBgColor());s=(0,cc.toRGBA8888)(...i)}else s=dc(i.ansi[t.getBgColor()].rgba);return s}(this._coreTerminal._core._inputHandler._curAttrData,this._coreTerminal._core._themeService?.colors);this._dec.init(i,null,this._opts.sixelPaletteLimit)}}put(t,i,s){if(!this._aborted&&this._dec){if(this._size+=s-i,this._size>this._opts.sixelSizeLimit)return console.warn("SIXEL: too much data, aborting"),this._aborted=!0,void this._dec.release();try{this._dec.decode(t,i,s)}catch(t){console.warn("SIXEL: error while decoding image - "+t),this._aborted=!0,this._dec.release()}}}unhook(t){if(this._aborted||!t||!this._dec)return!0;let i=this._dec.width,s=this._dec.height;if(!i||!s)return s&&this._storage.advanceCursor(s),!0;let e=Ka.createCanvas(void 0,i,s);return e.getContext("2d")?.putImageData(new ImageData(this._dec.data8,i,s),0,0),this._dec.memoryUsage>4194304&&this._dec.release(),this._storage.addImage(e),!0}};function dc(t){return cc.BIG_ENDIAN?t:(255&t)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255}var gc={enableSizeReports:!0,pixelLimit:16777216,sixelSupport:!0,sixelScrolling:!0,sixelPaletteLimit:256,sixelSizeLimit:25e6,storageLimit:128,showPlaceholder:!0,iipSupport:!0,iipSizeLimit:2e7},wc=class{constructor(t){this._disposables=[],this._handlers=new Map,this._opts=Object.assign({},gc,t),this._defaultOpts=Object.assign({},gc,t)}dispose(){for(let t of this._disposables)t.dispose();this._disposables.length=0,this._handlers.clear()}_disposeLater(...t){for(let i of t)this._disposables.push(i)}activate(t){if(this._terminal=t,this._renderer=new Ka(t),this._storage=new Xa(t,this._renderer,this._opts),this._opts.enableSizeReports){let i=t.options.windowOptions||{};i.getWinSizePixels=!0,i.getCellSizePixels=!0,i.getWinSizeChars=!0,t.options.windowOptions=i}if(this._disposeLater(this._renderer,this._storage,t.parser.registerCsiHandler({prefix:"?",final:"h"},(t=>this._decset(t))),t.parser.registerCsiHandler({prefix:"?",final:"l"},(t=>this._decrst(t))),t.parser.registerCsiHandler({final:"c"},(t=>this._da1(t))),t.parser.registerCsiHandler({prefix:"?",final:"S"},(t=>this._xtermGraphicsAttributes(t))),t.onRender((t=>this._storage?.render(t))),t.parser.registerCsiHandler({intermediates:"!",final:"p"},(()=>this.reset())),t.parser.registerEscHandler({final:"c"},(()=>this.reset())),t._core._inputHandler.onRequestReset((()=>this.reset())),t.buffer.onBufferChange((()=>this._storage?.wipeAlternate())),t.onResize((t=>this._storage?.viewportResize(t)))),this._opts.sixelSupport){let i=new fc(this._opts,this._storage,t);this._handlers.set("sixel",i),this._disposeLater(t._core._inputHandler._parser.registerDcsHandler({final:"q"},i))}if(this._opts.iipSupport){let i=new ac(this._opts,this._renderer,this._storage,t);this._handlers.set("iip",i),this._disposeLater(t._core._inputHandler._parser.registerOscHandler(1337,i))}}reset(){this._opts.sixelScrolling=this._defaultOpts.sixelScrolling,this._opts.sixelPaletteLimit=this._defaultOpts.sixelPaletteLimit,this._storage?.reset();for(let t of this._handlers.values())t.reset();return!1}get storageLimit(){return this._storage?.getLimit()||-1}set storageLimit(t){this._storage?.setLimit(t),this._opts.storageLimit=t}get storageUsage(){return this._storage?this._storage.getUsage():-1}get showPlaceholder(){return this._opts.showPlaceholder}set showPlaceholder(t){this._opts.showPlaceholder=t,this._renderer?.showPlaceholder(t)}getImageAtBufferCell(t,i){return this._storage?.getImageAtBufferCell(t,i)}extractTileAtBufferCell(t,i){return this._storage?.extractTileAtBufferCell(t,i)}_report(t){this._terminal?._core.coreService.triggerDataEvent(t)}_decset(t){for(let i=0;i<t.length;++i)80===t[i]&&(this._opts.sixelScrolling=!1);return!1}_decrst(t){for(let i=0;i<t.length;++i)80===t[i]&&(this._opts.sixelScrolling=!0);return!1}_da1(t){return!!t[0]||!!this._opts.sixelSupport&&(this._report("[?62;4;9;22c"),!0)}_xtermGraphicsAttributes(t){if(t.length<2)return!0;if(1===t[0])switch(t[1]){case 1:return this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`),!0;case 2:this._opts.sixelPaletteLimit=this._defaultOpts.sixelPaletteLimit,this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`);for(let t of this._handlers.values())t.reset();return!0;case 3:return t.length>2&&!(t[2]instanceof Array)&&t[2]<=4096?(this._opts.sixelPaletteLimit=t[2],this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`)):this._report(`[?${t[0]};2S`),!0;case 4:return this._report(`[?${t[0]};0;4096S`),!0;default:return this._report(`[?${t[0]};2S`),!0}if(2===t[0])switch(t[1]){case 1:let i=this._renderer?.dimensions?.css.canvas.width,s=this._renderer?.dimensions?.css.canvas.height;if(!i||!s){let t=ja;i=(this._terminal?.cols||80)*t.width,s=(this._terminal?.rows||24)*t.height}if(i*s<this._opts.pixelLimit)this._report(`[?${t[0]};0;${i.toFixed(0)};${s.toFixed(0)}S`);else{let i=Math.floor(Math.sqrt(this._opts.pixelLimit));this._report(`[?${t[0]};0;${i};${i}S`)}return!0;case 4:let e=Math.floor(Math.sqrt(this._opts.pixelLimit));return this._report(`[?${t[0]};0;${e};${e}S`),!0;default:return this._report(`[?${t[0]};2S`),!0}return this._report(`[?${t[0]};1S`),!0}};class pc{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,bc.unregister(this),t}free(){const t=this.__destroy_into_raw();Wc.__wbg_channel_free(t,0)}connect(){Wc.channel_connect(this.__wbg_ptr)}disconnect(){Wc.channel_disconnect(this.__wbg_ptr)}is_connected(){return 0!==Wc.channel_is_connected(this.__wbg_ptr)}is_disconnected(){return 0!==Wc.channel_is_disconnected(this.__wbg_ptr)}constructor(t){const i=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),s=Wc.channel_new(i,qc);return this.__wbg_ptr=s>>>0,bc.register(this,this.__wbg_ptr,this),this}on_connection_close(t){Wc.channel_on_connection_close(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_error(t){Wc.channel_on_connection_error(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_message(t){Wc.channel_on_connection_message(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_open(t){Wc.channel_on_connection_open(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_protocol_message(t){Wc.channel_on_protocol_message(this.__wbg_ptr,Fc(t)?0:Mc(t))}open_sftp_tunnel(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;var n=Fc(i)?0:Uc(i,Wc.__wbindgen_export,Wc.__wbindgen_export2),o=qc,l=Fc(s)?0:Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_open_sftp_tunnel(this.__wbg_ptr,h,r,n,o,l,qc,Fc(e)?4294967297:e>>>0)}open_ssh_tunnel(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;var n=Fc(i)?0:Uc(i,Wc.__wbindgen_export,Wc.__wbindgen_export2),o=qc,l=Fc(s)?0:Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_open_ssh_tunnel(this.__wbg_ptr,h,r,n,o,l,qc,Fc(e)?4294967297:e>>>0)}send_sftp_delete(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),n=qc,o=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_delete(this.__wbg_ptr,r,n,i,o,l,a,qc,Fc(h)?4294967297:h>>>0)}send_sftp_download_chunk(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_download_chunk(this.__wbg_ptr,r,qc,i,s,e,Fc(h)?4294967297:h>>>0)}send_sftp_download_start(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),n=qc,o=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_download_start(this.__wbg_ptr,r,n,i,o,l,a,qc,Fc(h)?4294967297:h>>>0)}send_sftp_list_data(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc,n=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_list_data(this.__wbg_ptr,h,r,i,n,qc,Fc(e)?4294967297:e>>>0)}send_sftp_upload_chunk(t,i,s,e,h,r,n){const o=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=function(t){const i=(0,Wc.__wbindgen_export)(1*t.length,1)>>>0;return _c().set(t,i/1),qc=t.length,i}(r);Wc.channel_send_sftp_upload_chunk(this.__wbg_ptr,o,l,i,s,e,h,a,qc,Fc(n)?4294967297:n>>>0)}send_sftp_upload_start(t,i,s,e,h,r,n){const o=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),c=qc,u=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_upload_start(this.__wbg_ptr,o,l,i,a,c,u,qc,h,r,Fc(n)?4294967297:n>>>0)}send_ssh_terminal_resize(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_ssh_terminal_resize(this.__wbg_ptr,h,qc,i,s,e)}send_ssh_tunnel_data(t,i,s){const e=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),h=qc,r=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_ssh_tunnel_data(this.__wbg_ptr,e,h,i,r,qc)}start_heartbeat(t){Wc.channel_start_heartbeat(this.__wbg_ptr,t)}stop_heartbeat(){Wc.channel_stop_heartbeat(this.__wbg_ptr)}}Symbol.dispose&&(pc.prototype[Symbol.dispose]=pc.prototype.free);const Cc=Object.freeze({Generic:0,0:"Generic",RequiresUsername:100,100:"RequiresUsername",RequiresPassword:110,110:"RequiresPassword"});function mc(){const t={__proto__:null,__wbg_Error_8c4e43fe74559d73:function(t,i){return Mc(Error(Dc(t,i)))},__wbg_String_8f0eb39a4a4c2f66:function(t,i){const s=Uc(Sc(i)+"",Wc.__wbindgen_export,Wc.__wbindgen_export2),e=qc;xc().setInt32(t+4,e,!0),xc().setInt32(t+0,s,!0)},__wbg___wbindgen_debug_string_0bc8482c6e3508ae:function(t,i){const s=Uc(Ec(Sc(i)),Wc.__wbindgen_export,Wc.__wbindgen_export2),e=qc;xc().setInt32(t+4,e,!0),xc().setInt32(t+0,s,!0)},__wbg___wbindgen_string_get_72fb696202c56729:function(t,i){const s=Sc(i),e="string"==typeof s?s:void 0;var h=Fc(e)?0:Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;xc().setInt32(t+4,r,!0),xc().setInt32(t+0,h,!0)},__wbg___wbindgen_throw_be289d5034ed271b:function(t,i){throw Error(Dc(t,i))},__wbg__wbg_cb_unref_d9b87ff7982e3b21:function(t){Sc(t)._wbg_cb_unref()},__wbg_call_389efe28435a9388:function(){return $c((function(t,i){return Mc(Sc(t).call(Sc(i)))}),arguments)},__wbg_call_4708e0c13bdc8e95:function(){return $c((function(t,i,s){return Mc(Sc(t).call(Sc(i),Sc(s)))}),arguments)},__wbg_clearInterval_dd1e598f425db353:function(t){return Mc(clearInterval(Tc(t)))},__wbg_close_1d08eaf57ed325c0:function(){return $c((function(t){Sc(t).close()}),arguments)},__wbg_data_5330da50312d0bc1:function(t){return Mc(Sc(t).data)},__wbg_from_bddd64e7d5ff6941:function(t){return Mc(Array.from(Sc(t)))},__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04:function(t){let i;try{i=Sc(t)instanceof ArrayBuffer}catch(t){i=!1}return i},__wbg_length_32ed9a279acd054c:function(t){return Sc(t).length},__wbg_new_057993d5b5e07835:function(){return $c((function(t,i){return Mc(new WebSocket(Dc(t,i)))}),arguments)},__wbg_new_361308b2356cecd0:function(){return Mc({})},__wbg_new_3eb36ae241fe6f44:function(){return Mc([])},__wbg_new_dd2b680c8bf6ae29:function(t){return Mc(new Uint8Array(Sc(t)))},__wbg_prototypesetcall_bdcdcc5842e4d77d:function(t,i,s){Uint8Array.prototype.set.call(Qc(t,i),Sc(s))},__wbg_readyState_1bb73ec7b8a54656:function(t){return Sc(t).readyState},__wbg_send_542f95dea2df7994:function(){return $c((function(t,i,s){Sc(t).send(Qc(i,s))}),arguments)},__wbg_setInterval_ed3b5e3c3ebb8a6d:function(){return $c((function(t,i){return Mc(setInterval(Sc(t),i))}),arguments)},__wbg_set_3f1d0b984ed272ed:function(t,i,s){Sc(t)[Tc(i)]=Tc(s)},__wbg_set_binaryType_5bbf62e9f705dc1a:function(t,i){Sc(t).binaryType=Bc[i]},__wbg_set_f43e577aea94465b:function(t,i,s){Sc(t)[i>>>0]=Tc(s)},__wbg_set_onclose_d382f3e2c2b850eb:function(t,i){Sc(t).onclose=Sc(i)},__wbg_set_onerror_377f18bf4569bf85:function(t,i){Sc(t).onerror=Sc(i)},__wbg_set_onmessage_2114aa5f4f53051e:function(t,i){Sc(t).onmessage=Sc(i)},__wbg_set_onopen_b7b52d519d6c0f11:function(t,i){Sc(t).onopen=Sc(i)},__wbg_warn_c6397c02b15f319f:function(t,i){console.warn(Dc(t,i))},__wbindgen_cast_0000000000000001:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000002:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000003:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000004:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,Ic))},__wbindgen_cast_0000000000000005:function(t){return Mc(t)},__wbindgen_cast_0000000000000006:function(t,i){return Mc(Qc(t,i))},__wbindgen_cast_0000000000000007:function(t,i){return Mc(Dc(t,i))},__wbindgen_cast_0000000000000008:function(t){return Mc(BigInt.asUintN(64,t))},__wbindgen_object_clone_ref:function(t){return Mc(Sc(t))},__wbindgen_object_drop_ref:function(t){Tc(t)}};return{__proto__:null,"./phirepass-channel_bg.js":t}}function Ic(t,i){Wc.__wasm_bindgen_func_elem_42(t,i)}function vc(t,i,s){Wc.__wasm_bindgen_func_elem_38(t,i,Mc(s))}const Bc=["blob","arraybuffer"],bc="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>Wc.__wbg_channel_free(t>>>0,1)));function Mc(t){Nc===Rc.length&&Rc.push(Rc.length+1);const i=Nc;return Nc=Rc[i],Rc[i]=t,i}const yc="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>t.dtor(t.a,t.b)));function Ec(t){const i=typeof t;if("number"==i||"boolean"==i||null==t)return""+t;if("string"==i)return`"${t}"`;if("symbol"==i){const i=t.description;return null==i?"Symbol":`Symbol(${i})`}if("function"==i){const i=t.name;return"string"==typeof i&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(t)){const i=t.length;let s="[";i>0&&(s+=Ec(t[0]));for(let e=1;e<i;e++)s+=", "+Ec(t[e]);return s+="]",s}const s=/\[object ([^\]]+)\]/.exec(toString.call(t));let e;if(!(s&&s.length>1))return toString.call(t);if(e=s[1],"Object"==e)try{return"Object("+JSON.stringify(t)+")"}catch(t){return"Object"}return t instanceof Error?`${t.name}: ${t.message}\n${t.stack}`:e}function Qc(t,i){return t>>>=0,_c().subarray(t/1,t/1+i)}let kc=null;function xc(){return(null===kc||!0===kc.buffer.detached||void 0===kc.buffer.detached&&kc.buffer!==Wc.memory.buffer)&&(kc=new DataView(Wc.memory.buffer)),kc}function Dc(t,i){return function(t,i){return Jc+=i,Jc>=Gc&&(Pc=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Pc.decode(),Jc=i),Pc.decode(_c().subarray(t,t+i))}(t>>>=0,i)}let Lc=null;function _c(){return null!==Lc&&0!==Lc.byteLength||(Lc=new Uint8Array(Wc.memory.buffer)),Lc}function Sc(t){return Rc[t]}function $c(t,i){try{return t.apply(this,i)}catch(t){Wc.__wbindgen_export3(Mc(t))}}let Rc=Array(128).fill(void 0);Rc.push(void 0,null,!0,!1);let Nc=Rc.length;function Fc(t){return null==t}function Hc(t,i,s,e){const h={a:t,b:i,cnt:1,dtor:s},r=(...t)=>{h.cnt++;const i=h.a;h.a=0;try{return e(i,h.b,...t)}finally{h.a=i,r._wbg_cb_unref()}};return r._wbg_cb_unref=()=>{0==--h.cnt&&(h.dtor(h.a,h.b),h.a=0,yc.unregister(h))},yc.register(r,h,h),r}function Uc(t,i,s){if(void 0===s){const s=Oc.encode(t),e=i(s.length,1)>>>0;return _c().subarray(e,e+s.length).set(s),qc=s.length,e}let e=t.length,h=i(e,1)>>>0;const r=_c();let n=0;for(;n<e;n++){const i=t.charCodeAt(n);if(i>127)break;r[h+n]=i}if(n!==e){0!==n&&(t=t.slice(n)),h=s(h,e,e=n+3*t.length,1)>>>0;const i=_c().subarray(h+n,h+e);n+=Oc.encodeInto(t,i).written,h=s(h,e,n,1)>>>0}return qc=n,h}function Tc(t){const i=Sc(t);return function(t){t<132||(Rc[t]=Nc,Nc=t)}(t),i}let Pc=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Pc.decode();const Gc=2146435072;let Jc=0;const Oc=new TextEncoder;"encodeInto"in Oc||(Oc.encodeInto=function(t,i){const s=Oc.encode(t);return i.set(s),{read:t.length,written:s.length}});let Wc,qc=0;var zc;!function(t){t[t.Username=0]="Username",t[t.Password=1]="Password",t[t.Default=2]="Default"}(zc||(zc={}));const Kc=i(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}terminal;fitAddon;webLinksAddon;searchAddon;webglAddon;serializeAddon;imageAddon;channel;inputMode=zc.Default;resizeObserver;resizeDebounceHandle;session_id;usernameBuffer="";passwordBuffer="";xtermImageSettings={enableSizeReports:!0,pixelLimit:16777216,sixelSupport:!0,sixelScrolling:!0,sixelPaletteLimit:256,sixelSizeLimit:25e6,storageLimit:128,showPlaceholder:!0,iipSupport:!0,iipSizeLimit:2e7};get el(){return this}terminalOptions={termName:"xterm-256color",rendererType:"canvas",allowTransparency:!1,fontFamily:'"Berkeley Mono", "Fira Code", "SFMono-Regular", Menlo, monospace',fontSize:12,letterSpacing:0,lineHeight:1,allowProposedApi:!0,cursorBlink:!0,cursorWidth:1,theme:{background:"#0b1021",foreground:"#e2e8f0",cursor:"#67e8f9"},scrollback:1e4,fastScrollModifier:"shift",fastScrollSensitivity:5,bellStyle:"sound",convertEol:!1,disableStdin:!1,rightClickSelectsWord:!0,drawBoldTextInBrightColors:!0,minimumContrastRatio:1,windowsMode:!1,macOptionIsMeta:!1,altClickMovesCursor:!0};serverHost="phirepass.io";serverPort=443;allowInsecure=!1;heartbeatInterval=3e4;nodeId;onNodeIdChange(t,i){this.resetSessionState(),this.terminal.reset(),this.channel&&this.channel.is_connected()&&this.close_comms(),t&&(this.open_comms(),this.channel.connect())}createWebSocketEndpoint(){const t=this.allowInsecure?"ws":"wss";return this.allowInsecure||443!==this.serverPort?this.allowInsecure&&80===this.serverPort?`${t}://${this.serverHost}`:`${t}://${this.serverHost}:${this.serverPort}`:`${t}://${this.serverHost}`}async connectedCallback(){await async function(t){if(void 0!==Wc)return Wc;void 0!==t&&(Object.getPrototypeOf(t)===Object.prototype?({module_or_path:t}=t):console.warn("using deprecated parameters for the initialization function; pass a single object instead")),void 0===t&&(t=new URL("phirepass-channel_bg.wasm",import.meta.url));const i=mc();("string"==typeof t||"function"==typeof Request&&t instanceof Request||"function"==typeof URL&&t instanceof URL)&&(t=fetch(t));const{instance:s}=await async function(t,i){if("function"==typeof Response&&t instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(t,i)}catch(i){if(!t.ok||!function(t){switch(t){case"basic":case"cors":case"default":return!0}return!1}(t.type)||"application/wasm"===t.headers.get("Content-Type"))throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i)}const s=await t.arrayBuffer();return await WebAssembly.instantiate(s,i)}{const s=await WebAssembly.instantiate(t,i);return s instanceof WebAssembly.Instance?{instance:s,module:t}:s}}(await t,i);return function(t){return Wc=t.exports,kc=null,Lc=null,Wc}(s)}(),this.setup_terminal(),this.open_comms(),this.nodeId?this.connect():console.warn("Prop node_id is not set. Cannot connect to terminal.")}async disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),this.close_comms(),this.destroy_terminal()}setup_terminal(){this.terminal=new fr(this.terminalOptions),this.fitAddon=new dr,this.terminal.loadAddon(this.fitAddon),this.webLinksAddon=new Ir,this.terminal.loadAddon(this.webLinksAddon),this.searchAddon=new mn,this.terminal.loadAddon(this.searchAddon),this.serializeAddon=new Qa,this.terminal.loadAddon(this.serializeAddon),this.imageAddon=new wc(this.xtermImageSettings),this.terminal.loadAddon(this.imageAddon);try{this.webglAddon=new ua,this.terminal.loadAddon(this.webglAddon)}catch(t){console.warn("WebGL addon not available or failed to load:",t)}this.fitAddon.fit()}destroy_terminal(){this.terminal&&(this.terminal.reset(),"function"==typeof this.terminal.dispose&&this.terminal.dispose())}open_comms(){this.channel=new pc(this.createWebSocketEndpoint()+"/api/web/ws"),this.channel.on_connection_open((()=>{this.channel.start_heartbeat(this.heartbeatInterval<=15e3?3e4:this.heartbeatInterval),this.channel.open_ssh_tunnel(this.nodeId)})),this.channel.on_connection_close((()=>{this.terminal.reset()})),this.channel.on_connection_error((t=>{console.error(">> connection error:",t)})),this.channel.on_connection_message((()=>{})),this.channel.on_protocol_message((t=>{const{web:i}=t.data;switch(i.type){case"Error":this.handle_error(i);break;case"TunnelOpened":this.session_id=i.sid,this.terminal.reset(),this.send_ssh_terminal_resize();break;case"TunnelClosed":this.handleTunnelClosed();break;case"TunnelData":this.terminal.write(new Uint8Array(i.data));break;default:console.warn("Unknown protocol message type:",i)}}))}send_ssh_terminal_resize(){if(!this.channel||!this.channel.is_connected()||!this.session_id)return;const t=this.terminal?.cols??0,i=this.terminal?.rows??0;if(!(t<=0||i<=0))try{this.channel.send_ssh_terminal_resize(this.nodeId,this.session_id,t,i)}catch(t){console.error("Failed to send terminal resize:",t)}}send_ssh_data(t){this.channel.is_connected()&&this.session_id&&this.channel.send_ssh_tunnel_data(this.nodeId,this.session_id,t)}handle_error(t){switch(t.kind){case Cc.Generic:this.terminal.reset(),this.terminal.write(t.message+"\r\n"),this.terminal.focus();break;case Cc.RequiresUsername:this.terminal.reset(),this.inputMode=zc.Username,this.usernameBuffer="",this.terminal.write("Enter your username: "),this.terminal.focus();break;case Cc.RequiresPassword:this.terminal.reset(),this.inputMode=zc.Password,this.passwordBuffer="",this.terminal.write("Enter your password: "),this.terminal.focus();break;default:console.warn("Unknown error kind:",t)}}close_comms(){this.channel.stop_heartbeat(),this.channel.disconnect()}cancelCredentialEntry(){this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer="",this.terminal.writeln("Authentication cancelled."),this.terminal.reset()}resetSessionState(){this.session_id=void 0,this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer=""}handleTunnelClosed(){this.session_id=void 0,this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer="",this.terminal.reset(),this.terminal.writeln("Connection closed.")}connect(){const t=this.el.shadowRoot.getElementById("ccc");t&&(this.terminal.open(t),this.fitAddon.fit(),this.terminal.focus(),this.terminal.onData(this.handleTerminalData.bind(this)),this.channel.connect(),this.setupResizeObserver())}setupResizeObserver(){this.resizeObserver=new ResizeObserver((()=>{this.resizeDebounceHandle&&clearTimeout(this.resizeDebounceHandle),this.resizeDebounceHandle=setTimeout((()=>{this.fitAddon.fit(),this.send_ssh_terminal_resize()}),100)})),this.resizeObserver.observe(this.el)}handleTerminalData(t){switch(this.inputMode){case zc.Username:this.handleUsernameInput(t);break;case zc.Password:this.handlePasswordInput(t);break;case zc.Default:this.send_ssh_data(t)}}handleUsernameInput(t){return"\r"===t||"\n"===t?(this.terminal.write("\r\n"),void this.submitUsername()):""===t?(this.terminal.write("^C\r\n"),void this.cancelCredentialEntry()):void(""!==t?t>=" "&&t<="~"&&(this.usernameBuffer+=t,this.terminal.write(t)):this.usernameBuffer.length&&(this.usernameBuffer=this.usernameBuffer.slice(0,-1),this.terminal.write("\b \b")))}submitUsername(){if(!this.channel.is_connected())return;const t=this.usernameBuffer.trim();if(!t)return this.terminal.writeln(""),this.terminal.write("Enter your username: "),void(this.usernameBuffer="");this.inputMode=zc.Default,this.channel.open_ssh_tunnel(this.nodeId,t)}handlePasswordInput(t){return"\r"===t||"\n"===t?(this.terminal.write("\r\n"),void this.submitPassword()):""===t?(this.terminal.write("^C\r\n"),void this.cancelCredentialEntry()):void(""!==t?t>=" "&&t<="~"&&(this.passwordBuffer+=t,this.terminal.write("*")):this.passwordBuffer.length&&(this.passwordBuffer=this.passwordBuffer.slice(0,-1),this.terminal.write("\b \b")))}submitPassword(){if(!this.channel.is_connected())return;const t=this.passwordBuffer;if(!t)return this.terminal.writeln(""),this.terminal.write("Enter your password: "),void(this.passwordBuffer="");this.inputMode=zc.Default,this.channel.open_ssh_tunnel(this.nodeId,this.usernameBuffer.trim(),t),this.passwordBuffer="",this.usernameBuffer=""}render(){return e(h,{key:"f3443a4e7b9e1a4c5377fb35d4b0cee540d03548"},e("div",{key:"b59a88b42d813cf991b02e755785df3a72334068",id:"ccc"}))}static get watchers(){return{nodeId:[{onNodeIdChange:0}]}}static get style(){return".xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#FFF;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1 !important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px !important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:rgba(0,0,0,0);transition:opacity 100ms linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity 800ms linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}:host{display:block;width:100%;height:100%}:host #ccc{width:inherit;height:inherit}"}},[513,"phirepass-terminal",{terminalOptions:[16],serverHost:[1,"server-host"],serverPort:[2,"server-port"],allowInsecure:[4,"allow-insecure"],heartbeatInterval:[2,"heartbeat-interval"],nodeId:[1,"node-id"]},void 0,{nodeId:[{onNodeIdChange:0}]}]);function jc(){"undefined"!=typeof customElements&&["phirepass-terminal"].forEach((i=>{"phirepass-terminal"===i&&(customElements.get(t(i))||customElements.define(t(i),Kc))}))}jc();const Yc=Kc,Zc=jc;export{Yc as PhirepassTerminal,Zc as defineCustomElement}
49
+ */function Ja(t,i){let s,e=this,h=!1;return function(){return h||(h=!0,i||(s=t.apply(e,arguments))),s}}(t=>{t.isLessThan=function(t){return t<0},t.isLessThanOrEqual=function(t){return t<=0},t.isGreaterThan=function(t){return t>0},t.isNeitherLessOrGreaterThan=function(t){return 0===t},t.greaterThan=1,t.lessThan=-1,t.neitherLessOrGreaterThan=0})(Ma||={}),(t=>{function i(t){return t&&"object"==typeof t&&"function"==typeof t[Symbol.iterator]}t.is=i;let s=Object.freeze([]);function*e(t){yield t}t.empty=function(){return s},t.single=e,t.wrap=function(t){return i(t)?t:e(t)},t.from=function(t){return t||s},t.reverse=function*(t){for(let i=t.length-1;i>=0;i--)yield t[i]},t.isEmpty=function(t){return!t||!0===t[Symbol.iterator]().next().done},t.first=function(t){return t[Symbol.iterator]().next().value},t.some=function(t,i){let s=0;for(let e of t)if(i(e,s++))return!0;return!1},t.find=function(t,i){for(let s of t)if(i(s))return s},t.filter=function*(t,i){for(let s of t)i(s)&&(yield s)},t.map=function*(t,i){let s=0;for(let e of t)yield i(e,s++)},t.flatMap=function*(t,i){let s=0;for(let e of t)yield*i(e,s++)},t.concat=function*(...t){for(let i of t)yield*i},t.reduce=function(t,i,s){let e=s;for(let s of t)e=i(e,s);return e},t.slice=function*(t,i,s=t.length){for(i<0&&(i+=t.length),s<0?s+=t.length:s>t.length&&(s=t.length);i<s;i++)yield t[i]},t.consume=function(i,s=1/0){let e=[];if(0===s)return[e,i];let h=i[Symbol.iterator]();for(let i=0;i<s;i++){let i=h.next();if(i.done)return[e,t.empty()];e.push(i.value)}return[e,{[Symbol.iterator]:()=>h}]},t.asyncToArray=async function(t){let i=[];for await(let s of t)i.push(s);return Promise.resolve(i)}})(ya||={});var Oa=class t{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{!function(t){if(ya.is(t)){let i=[];for(let s of t)if(s)try{s.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new AggregateError(i,"Encountered errors while disposing of store");return Array.isArray(t)?[]:t}t&&t.dispose()}(this._toDispose)}finally{this._toDispose.clear()}}add(i){if(!i)return i;if(i===this)throw Error("Cannot register a disposable on itself!");return this._isDisposed?t.DISABLE_DISPOSED_WARNING||console.warn(Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(i),i}delete(t){if(t){if(t===this)throw Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&this._toDispose.delete(t)}};Oa.DISABLE_DISPOSED_WARNING=!1;var Wa=Oa,qa=class{constructor(){this._store=new Wa}dispose(){this._store.dispose()}_register(t){if(t===this)throw Error("Cannot register a disposable on itself!");return this._store.add(t)}};qa.None=Object.freeze({dispose(){}});var za=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t}},Ka=class t extends qa{constructor(t){super(),this._terminal=t,this._optionsRefresh=this._register(new za),this._oldOpen=this._terminal._core.open,this._terminal._core.open=t=>{this._oldOpen?.call(this._terminal._core,t),this._open()},this._terminal._core.screenElement&&this._open(),this._optionsRefresh.value=this._terminal._core.optionsService.onOptionChange((t=>{"fontSize"===t&&(this.rescaleCanvas(),this._renderService?.refreshRows(0,this._terminal.rows))})),this._register(function(t){return{dispose:Ja((()=>{t()}))}}((()=>{this.removeLayerFromDom(),this._terminal._core&&this._oldOpen&&(this._terminal._core.open=this._oldOpen,this._oldOpen=void 0),this._renderService&&this._oldSetRenderer&&(this._renderService.setRenderer=this._oldSetRenderer,this._oldSetRenderer=void 0),this._renderService=void 0,this.canvas=void 0,this._ctx=void 0,this._placeholderBitmap?.close(),this._placeholderBitmap=void 0,this._placeholder=void 0})))}static createCanvas(t,i,s){let e=(t||document).createElement("canvas");return e.width=0|i,e.height=0|s,e}static createImageData(t,i,s,e){if("function"!=typeof ImageData){let h=t.createImageData(i,s);return e&&h.data.set(new Uint8ClampedArray(e,0,i*s*4)),h}return e?new ImageData(new Uint8ClampedArray(e,0,i*s*4),i,s):new ImageData(i,s)}static createImageBitmap(t){return"function"!=typeof createImageBitmap?Promise.resolve(void 0):createImageBitmap(t)}showPlaceholder(t){t?!this._placeholder&&-1!==this.cellSize.height&&this._createPlaceHolder(Math.max(this.cellSize.height+1,24)):(this._placeholderBitmap?.close(),this._placeholderBitmap=void 0,this._placeholder=void 0),this._renderService?.refreshRows(0,this._terminal.rows)}get dimensions(){return this._renderService?.dimensions}get cellSize(){return{width:this.dimensions?.css.cell.width||-1,height:this.dimensions?.css.cell.height||-1}}clearLines(t,i){this._ctx?.clearRect(0,t*(this.dimensions?.css.cell.height||0),this.dimensions?.css.canvas.width||0,(++i-t)*(this.dimensions?.css.cell.height||0))}clearAll(){this._ctx?.clearRect(0,0,this.canvas?.width||0,this.canvas?.height||0)}draw(t,i,s,e,h=1){if(!this._ctx)return;let{width:r,height:n}=this.cellSize;if(-1===r||-1===n)return;this._rescaleImage(t,r,n);let o=t.actual,l=Math.ceil(o.width/r),a=i%l*r,c=Math.floor(i/l)*n,u=s*r,A=e*n,f=h*r+a>o.width?o.width-a:h*r,d=c+n>o.height?o.height-c:n;this._ctx.drawImage(o,Math.floor(a),Math.floor(c),Math.ceil(f),Math.ceil(d),Math.floor(u),Math.floor(A),Math.ceil(f),Math.ceil(d))}extractTile(i,s){let{width:e,height:h}=this.cellSize;if(-1===e||-1===h)return;this._rescaleImage(i,e,h);let r=i.actual,n=Math.ceil(r.width/e),o=s%n*e,l=Math.floor(s/n)*h,a=e+o>r.width?r.width-o:e,c=l+h>r.height?r.height-l:h,u=t.createCanvas(this.document,a,c),A=u.getContext("2d");return A?(A.drawImage(r,Math.floor(o),Math.floor(l),Math.floor(a),Math.floor(c),0,0,Math.floor(a),Math.floor(c)),u):void 0}drawPlaceholder(t,i,s=1){if(this._ctx){let{width:e,height:h}=this.cellSize;if(-1===e||-1===h||(this._placeholder?h>=this._placeholder.height&&this._createPlaceHolder(h+1):this._createPlaceHolder(Math.max(h+1,24)),!this._placeholder))return;this._ctx.drawImage(this._placeholderBitmap||this._placeholder,t*e,i*h%2?0:1,e*s,h,t*e,i*h,e*s,h)}}rescaleCanvas(){this.canvas&&(this.canvas.width!==this.dimensions.css.canvas.width||this.canvas.height!==this.dimensions.css.canvas.height)&&(this.canvas.width=this.dimensions.css.canvas.width||0,this.canvas.height=this.dimensions.css.canvas.height||0)}_rescaleImage(i,s,e){if(s===i.actualCellSize.width&&e===i.actualCellSize.height)return;let{width:h,height:r}=i.origCellSize;if(s===h&&e===r)return i.actual=i.orig,i.actualCellSize.width=h,void(i.actualCellSize.height=r);let n=t.createCanvas(this.document,Math.ceil(i.orig.width*s/h),Math.ceil(i.orig.height*e/r)),o=n.getContext("2d");o&&(o.drawImage(i.orig,0,0,n.width,n.height),i.actual=n,i.actualCellSize.width=s,i.actualCellSize.height=e)}_open(){this._renderService=this._terminal._core._renderService,this._oldSetRenderer=this._renderService.setRenderer.bind(this._renderService),this._renderService.setRenderer=t=>{this.removeLayerFromDom(),this._oldSetRenderer?.call(this._renderService,t)}}insertLayerToDom(){this.document&&this._terminal._core.screenElement?this.canvas||(this.canvas=t.createCanvas(this.document,this.dimensions?.css.canvas.width||0,this.dimensions?.css.canvas.height||0),this.canvas.classList.add("xterm-image-layer"),this._terminal._core.screenElement.appendChild(this.canvas),this._ctx=this.canvas.getContext("2d",{alpha:!0,desynchronized:!0}),this.clearAll()):console.warn("image addon: cannot insert output canvas to DOM, missing document or screenElement")}removeLayerFromDom(){this.canvas&&(this._ctx=void 0,this.canvas.remove(),this.canvas=void 0)}_createPlaceHolder(i=24){this._placeholderBitmap?.close(),this._placeholderBitmap=void 0;let s=32,e=t.createCanvas(this.document,s,i),h=e.getContext("2d",{alpha:!1});if(!h)return;let r=t.createImageData(h,s,i),n=new Uint32Array(r.data.buffer),o=(0,Ga.toRGBA8888)(0,0,0),l=(0,Ga.toRGBA8888)(255,255,255);n.fill(o);for(let t=0;t<i;++t){let i=t%2,e=t*s;for(let t=0;t<s;t+=2)n[e+t+i]=l}h.putImageData(r,0,0);let a=screen.width+s-1&-32||4096;this._placeholder=t.createCanvas(this.document,a,i);let c=this._placeholder.getContext("2d",{alpha:!1});if(c){for(let t=0;t<a;t+=s)c.drawImage(e,t,0);t.createImageBitmap(this._placeholder).then((t=>this._placeholderBitmap=t))}else this._placeholder=void 0}get document(){return this._terminal._core._coreBrowserService?.window.document}},ja={width:7,height:14},Ya=class t{constructor(t=0,i=0,s=-1,e=-1){this.imageId=s,this.tileId=e,this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(t){this._ext&=-67108864,this._ext|=67108863&t}get underlineVariantOffset(){let t=(3758096384&this._ext)>>29;return t<0?4294967288^t:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}get urlId(){return this._urlId}set urlId(t){this._urlId=t}clone(){return new t(this._ext,this._urlId,this.imageId,this.tileId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId&&-1===this.imageId}},Za=new Ya,Xa=class{constructor(t,i,s){this._terminal=t,this._renderer=i,this._opts=s,this._images=new Map,this._lastId=0,this._lowestId=0,this._fullyCleared=!1,this._needsFullClear=!1,this._pixelLimit=25e5;try{this.setLimit(this._opts.storageLimit)}catch(t){console.error(t.message),console.warn(`storageLimit is set to ${this.getLimit()} MB`)}this._viewportMetrics={cols:this._terminal.cols,rows:this._terminal.rows}}dispose(){this.reset()}reset(){for(let t of this._images.values())t.marker?.dispose();this._images.clear(),this._renderer.clearAll()}getLimit(){return 4*this._pixelLimit/1e6}setLimit(t){if(t<.5||t>1e3)throw RangeError("invalid storageLimit, should be at least 0.5 MB and not exceed 1G");this._pixelLimit=t/4*1e6>>>0,this._evictOldest(0)}getUsage(){return 4*this._getStoredPixels()/1e6}_getStoredPixels(){let t=0;for(let i of this._images.values())i.orig&&(t+=i.orig.width*i.orig.height,i.actual&&i.actual!==i.orig&&(t+=i.actual.width*i.actual.height));return t}_delImg(t){let i=this._images.get(t);this._images.delete(t),i&&window.ImageBitmap&&i.orig instanceof ImageBitmap&&i.orig.close()}wipeAlternate(){let t=[];for(let[i,s]of this._images.entries())"alternate"===s.bufferType&&(s.marker?.dispose(),t.push(i));for(let i of t)this._delImg(i);this._needsFullClear=!0,this._fullyCleared=!1}advanceCursor(t){if(this._opts.sixelScrolling){let i=this._renderer.cellSize;(-1===i.width||-1===i.height)&&(i=ja);let s=Math.ceil(t/i.height);for(let t=1;t<s;++t)this._terminal._core._inputHandler.lineFeed()}}addImage(t){this._evictOldest(t.width*t.height);let i=this._renderer.cellSize;(-1===i.width||-1===i.height)&&(i=ja);let s=Math.ceil(t.width/i.width),e=Math.ceil(t.height/i.height),h=++this._lastId,r=this._terminal._core.buffer,n=this._terminal.cols,o=this._terminal.rows,l=r.x,a=r.y,c=l,u=0;this._opts.sixelScrolling||(r.x=0,r.y=0,c=0),this._terminal._core._inputHandler._dirtyRowTracker.markDirty(r.y);for(let t=0;t<e;++t){let i=r.lines.get(r.y+r.ybase);for(let e=0;e<s&&!(c+e>=n);++e)this._writeToCell(i,c+e,h,t*s+e),u++;if(this._opts.sixelScrolling)t<e-1&&this._terminal._core._inputHandler.lineFeed();else if(++r.y>=o)break;r.x=c}this._terminal._core._inputHandler._dirtyRowTracker.markDirty(r.y),this._opts.sixelScrolling?r.x=c:(r.x=l,r.y=a);let A=[];for(let[t,i]of this._images.entries())i.tileCount<1&&(i.marker?.dispose(),A.push(t));for(let t of A)this._delImg(t);let f=this._terminal.registerMarker(0);f?.onDispose((()=>{this._images.get(h)&&this._delImg(h)})),"alternate"===this._terminal.buffer.active.type&&this._evictOnAlternate();let d={orig:t,origCellSize:i,actual:t,actualCellSize:{...i},marker:f||void 0,tileCount:u,bufferType:this._terminal.buffer.active.type};this._images.set(h,d)}render(t){if(!this._renderer.canvas&&this._images.size&&(this._renderer.insertLayerToDom(),!this._renderer.canvas))return;if(this._renderer.rescaleCanvas(),!this._images.size)return this._fullyCleared||(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1),void(this._renderer.canvas&&this._renderer.removeLayerFromDom());this._needsFullClear&&(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1);let{start:i,end:s}=t,e=this._terminal._core.buffer,h=this._terminal._core.cols;this._renderer.clearLines(i,s);for(let t=i;t<=s;++t){let i=e.lines.get(t+e.ydisp);if(!i)return;for(let s=0;s<h;++s)if(268435456&i.getBg(s)){let e=i._extendedAttrs[s]||Za,r=e.imageId;if(void 0===r||-1===r)continue;let n=this._images.get(r);if(-1!==e.tileId){let o=e.tileId,l=s,a=1;for(;++s<h&&268435456&i.getBg(s)&&(e=i._extendedAttrs[s]||Za)&&e.imageId===r&&e.tileId===o+a;)a++;s--,n?n.actual&&this._renderer.draw(n,o,l,t,a):this._opts.showPlaceholder&&this._renderer.drawPlaceholder(l,t,a),this._fullyCleared=!1}}}}viewportResize(t){if(!this._images.size)return void(this._viewportMetrics=t);if(this._viewportMetrics.cols>=t.cols)return void(this._viewportMetrics=t);let i=this._terminal._core.buffer,s=i.lines.length,e=this._viewportMetrics.cols-1;for(let h=0;h<s;++h){let s=i.lines.get(h);if(268435456&s.getBg(e)){let i=s._extendedAttrs[e]||Za,h=i.imageId;if(void 0===h||-1===h)continue;let r=this._images.get(h);if(!r)continue;let n=Math.ceil((r.actual?.width||0)/r.actualCellSize.width);if(i.tileId%n+1>=n)continue;let o=!1;for(let i=e+1;i>t.cols;++i)if(4194303&s._data[3*i+0]){o=!0;break}if(o)continue;let l=Math.min(t.cols,n-i.tileId%n+e),a=i.tileId;for(let t=e+1;t<l;++t)this._writeToCell(s,t,h,++a),r.tileCount++}}this._viewportMetrics=t}getImageAtBufferCell(t,i){let s=this._terminal._core.buffer.lines.get(i);if(s&&268435456&s.getBg(t)){let i=s._extendedAttrs[t]||Za;if(i.imageId&&-1!==i.imageId){let t=this._images.get(i.imageId)?.orig;if(window.ImageBitmap&&t instanceof ImageBitmap){let i=Ka.createCanvas(window.document,t.width,t.height);return i.getContext("2d")?.drawImage(t,0,0,t.width,t.height),i}return t}}}extractTileAtBufferCell(t,i){let s=this._terminal._core.buffer.lines.get(i);if(s&&268435456&s.getBg(t)){let i=s._extendedAttrs[t]||Za;if(i.imageId&&-1!==i.imageId&&-1!==i.tileId){let t=this._images.get(i.imageId);if(t)return this._renderer.extractTile(t,i.tileId)}}}_evictOldest(t){let i=this._getStoredPixels(),s=i;for(;this._pixelLimit<s+t&&this._images.size;){let t=this._images.get(++this._lowestId);t&&t.orig&&(s-=t.orig.width*t.orig.height,t.actual&&t.orig!==t.actual&&(s-=t.actual.width*t.actual.height),t.marker?.dispose(),this._delImg(this._lowestId))}return i-s}_writeToCell(t,i,s,e){if(268435456&t._data[3*i+2]){let h=t._extendedAttrs[i];if(h){if(void 0!==h.imageId){let t=this._images.get(h.imageId);return t&&t.tileCount--,h.imageId=s,void(h.tileId=e)}return void(t._extendedAttrs[i]=new Ya(h.ext,h.urlId,s,e))}}t._data[3*i+2]|=268435456,t._extendedAttrs[i]=new Ya(0,0,s,e)}_evictOnAlternate(){for(let t of this._images.values())"alternate"===t.bufferType&&(t.tileCount=0);let t=this._terminal._core.buffer;for(let i=0;i<this._terminal.rows;++i){let s=t.lines.get(i);if(s)for(let t=0;t<this._terminal.cols;++t)if(268435456&s._data[3*t+2]){let i=s._extendedAttrs[t]?.imageId;if(i){let t=this._images.get(i);t&&t.tileCount++}}}let i=[];for(let[t,s]of this._images.entries())"alternate"===s.bufferType&&!s.tileCount&&(s.marker?.dispose(),i.push(t));for(let t of i)this._delImg(t)}},Va=Na(Ua());function tc(t){let i="";for(let s=0;s<t.length;++s)i+=String.fromCharCode(t[s]);return i}function ic(t){let i=0;for(let s=0;s<t.length;++s){if(t[s]<48||t[s]>57)throw Error("illegal char");i=10*i+t[s]-48}return i}function sc(t){let i=tc(t);if(!i.match(/^((auto)|(\d+?((px)|(%)){0,1}))$/))throw Error("illegal size");return i}var ec={inline:ic,size:ic,name:function(t){if(typeof Buffer<"u")return""+Buffer.from(tc(t),"base64");let i=atob(tc(t)),s=new Uint8Array(i.length);for(let t=0;t<s.length;++t)s[t]=i.charCodeAt(t);return(new TextDecoder).decode(s)},width:sc,height:sc,preserveAspectRatio:ic},hc=[70,105,108,101],rc=1024,nc=class{constructor(){this.state=0,this._buffer=new Uint32Array(rc),this._position=0,this._key="",this.fields={}}reset(){this._buffer.fill(0),this.state=0,this._position=0,this.fields={},this._key=""}parse(t,i,s){let e=this.state,h=this._position,r=this._buffer;if(1===e||4===e||0===e&&h>6)return-1;for(let n=i;n<s;++n){let i=t[n];switch(i){case 59:if(!this._storeValue(h))return this._a();e=2,h=0;break;case 61:if(0===e){for(let t=0;t<4;++t)if(r[t]!==hc[t])return this._a();e=2,h=0}else if(2===e){if(!this._storeKey(h))return this._a();e=3,h=0}else if(3===e){if(h>=rc)return this._a();r[h++]=i}break;case 58:return 3!==e||this._storeValue(h)?(this.state=4,n+1):this._a();default:if(h>=rc)return this._a();r[h++]=i}}return this.state=e,this._position=h,-2}_a(){return this.state=1,-1}_storeKey(t){let i=tc(this._buffer.subarray(0,t));return!!i&&(this._key=i,this.fields[i]=null,!0)}_storeValue(t){if(this._key){try{let i=this._buffer.slice(0,t);this.fields[this._key]=ec[this._key]?ec[this._key](i):i}catch{return!1}return!0}return!1}},oc={mime:"unsupported",width:0,height:0},lc={name:"Unnamed file",size:0,width:"auto",height:"auto",preserveAspectRatio:1,inline:0},ac=class{constructor(t,i,s,e){this._opts=t,this._renderer=i,this._storage=s,this._coreTerminal=e,this._aborted=!1,this._hp=new nc,this._header=lc,this._dec=new Va.default(4194304),this._metrics=oc}reset(){}start(){this._aborted=!1,this._header=lc,this._metrics=oc,this._hp.reset()}put(t,i,s){if(!this._aborted)if(4===this._hp.state)this._dec.put(t,i,s)&&(this._dec.release(),this._aborted=!0);else{let e=this._hp.parse(t,i,s);if(-1===e)return void(this._aborted=!0);if(e>0){if(this._header=Object.assign({},lc,this._hp.fields),!this._header.inline||!this._header.size||this._header.size>this._opts.iipSizeLimit)return void(this._aborted=!0);this._dec.init(this._header.size),this._dec.put(t,e,s)&&(this._dec.release(),this._aborted=!0)}}}end(t){if(this._aborted)return!0;let i=0,s=0,e=!0;if((e=t)&&(e=!this._dec.end())&&(this._metrics=function(t){if(t.length<24)return oc;let i=new Uint32Array(t.buffer,t.byteOffset,6);if(1196314761===i[0]&&169478669===i[1]&&1380206665===i[3])return{mime:"image/png",width:t[16]<<24|t[17]<<16|t[18]<<8|t[19],height:t[20]<<24|t[21]<<16|t[22]<<8|t[23]};if(255===t[0]&&216===t[1]&&255===t[2]){let[i,s]=function(t){let i=t.length,s=4,e=t[s]<<8|t[s+1];for(;;){if(s+=e,s>=i)return[0,0];if(255!==t[s])return[0,0];if(192===t[s+1]||194===t[s+1])return s+8<i?[t[s+7]<<8|t[s+8],t[s+5]<<8|t[s+6]]:[0,0];s+=2,e=t[s]<<8|t[s+1]}}(t);return{mime:"image/jpeg",width:i,height:s}}return 944130375!==i[0]||55!==t[4]&&57!==t[4]||97!==t[5]?oc:{mime:"image/gif",width:t[7]<<8|t[6],height:t[9]<<8|t[8]}}(this._dec.data8),(e="unsupported"!==this._metrics.mime)&&(i=this._metrics.width,s=this._metrics.height,(e=i&&s&&i*s<this._opts.pixelLimit)&&([i,s]=this._resize(i,s).map(Math.floor),e=i&&s&&i*s<this._opts.pixelLimit))),!e)return this._dec.release(),!0;let h=new Blob([this._dec.data8],{type:this._metrics.mime});if(this._dec.release(),!window.createImageBitmap){let t=URL.createObjectURL(h),e=new Image;return new Promise((h=>{e.addEventListener("load",(()=>{URL.revokeObjectURL(t);let r=Ka.createCanvas(window.document,i,s);r.getContext("2d")?.drawImage(e,0,0,i,s),this._storage.addImage(r),h(!0)})),e.src=t,setTimeout((()=>h(!0)),1e3)}))}return createImageBitmap(h,{resizeWidth:i,resizeHeight:s}).then((t=>(this._storage.addImage(t),!0)))}_resize(t,i){let s=this._renderer.dimensions?.css.cell.width||ja.width,e=this._renderer.dimensions?.css.cell.height||ja.height,h=this._renderer.dimensions?.css.canvas.width||s*this._coreTerminal.cols,r=this._renderer.dimensions?.css.canvas.height||e*this._coreTerminal.rows,n=this._dim(this._header.width,h,s),o=this._dim(this._header.height,r,e);if(!n&&!o){let s=Math.min(h/t,(r-e)/i);return s<1?[t*s,i*s]:[t,i]}return n?!this._header.preserveAspectRatio&&n&&o?[n,o]:[n,i*n/t]:[t*o/i,o]}_dim(t,i,s){return"auto"===t?0:t.endsWith("%")?parseInt(t.slice(0,-1))*i/100:t.endsWith("px")?parseInt(t.slice(0,-2)):parseInt(t)*s}},cc=Na(Fa()),uc=Na(Pa()),Ac=cc.PALETTE_ANSI_256;Ac.set(cc.PALETTE_VT340_COLOR);var fc=class{constructor(t,i,s){this._opts=t,this._storage=i,this._coreTerminal=s,this._size=0,this._aborted=!1,(0,uc.DecoderAsync)({memoryLimit:4*this._opts.pixelLimit,palette:Ac,paletteLimit:this._opts.sixelPaletteLimit}).then((t=>this._dec=t))}reset(){this._dec&&(this._dec.release(),this._dec._palette.fill(0),this._dec.init(0,Ac,this._opts.sixelPaletteLimit))}hook(t){if(this._size=0,this._aborted=!1,this._dec){let i=1===t.params[1]?0:function(t,i){let s=0;if(!i)return s;if(t.isInverse())if(t.isFgDefault())s=dc(i.foreground.rgba);else if(t.isFgRGB()){let i=t.constructor.toColorRGB(t.getFgColor());s=(0,cc.toRGBA8888)(...i)}else s=dc(i.ansi[t.getFgColor()].rgba);else if(t.isBgDefault())s=dc(i.background.rgba);else if(t.isBgRGB()){let i=t.constructor.toColorRGB(t.getBgColor());s=(0,cc.toRGBA8888)(...i)}else s=dc(i.ansi[t.getBgColor()].rgba);return s}(this._coreTerminal._core._inputHandler._curAttrData,this._coreTerminal._core._themeService?.colors);this._dec.init(i,null,this._opts.sixelPaletteLimit)}}put(t,i,s){if(!this._aborted&&this._dec){if(this._size+=s-i,this._size>this._opts.sixelSizeLimit)return console.warn("SIXEL: too much data, aborting"),this._aborted=!0,void this._dec.release();try{this._dec.decode(t,i,s)}catch(t){console.warn("SIXEL: error while decoding image - "+t),this._aborted=!0,this._dec.release()}}}unhook(t){if(this._aborted||!t||!this._dec)return!0;let i=this._dec.width,s=this._dec.height;if(!i||!s)return s&&this._storage.advanceCursor(s),!0;let e=Ka.createCanvas(void 0,i,s);return e.getContext("2d")?.putImageData(new ImageData(this._dec.data8,i,s),0,0),this._dec.memoryUsage>4194304&&this._dec.release(),this._storage.addImage(e),!0}};function dc(t){return cc.BIG_ENDIAN?t:(255&t)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255}var gc={enableSizeReports:!0,pixelLimit:16777216,sixelSupport:!0,sixelScrolling:!0,sixelPaletteLimit:256,sixelSizeLimit:25e6,storageLimit:128,showPlaceholder:!0,iipSupport:!0,iipSizeLimit:2e7},wc=class{constructor(t){this._disposables=[],this._handlers=new Map,this._opts=Object.assign({},gc,t),this._defaultOpts=Object.assign({},gc,t)}dispose(){for(let t of this._disposables)t.dispose();this._disposables.length=0,this._handlers.clear()}_disposeLater(...t){for(let i of t)this._disposables.push(i)}activate(t){if(this._terminal=t,this._renderer=new Ka(t),this._storage=new Xa(t,this._renderer,this._opts),this._opts.enableSizeReports){let i=t.options.windowOptions||{};i.getWinSizePixels=!0,i.getCellSizePixels=!0,i.getWinSizeChars=!0,t.options.windowOptions=i}if(this._disposeLater(this._renderer,this._storage,t.parser.registerCsiHandler({prefix:"?",final:"h"},(t=>this._decset(t))),t.parser.registerCsiHandler({prefix:"?",final:"l"},(t=>this._decrst(t))),t.parser.registerCsiHandler({final:"c"},(t=>this._da1(t))),t.parser.registerCsiHandler({prefix:"?",final:"S"},(t=>this._xtermGraphicsAttributes(t))),t.onRender((t=>this._storage?.render(t))),t.parser.registerCsiHandler({intermediates:"!",final:"p"},(()=>this.reset())),t.parser.registerEscHandler({final:"c"},(()=>this.reset())),t._core._inputHandler.onRequestReset((()=>this.reset())),t.buffer.onBufferChange((()=>this._storage?.wipeAlternate())),t.onResize((t=>this._storage?.viewportResize(t)))),this._opts.sixelSupport){let i=new fc(this._opts,this._storage,t);this._handlers.set("sixel",i),this._disposeLater(t._core._inputHandler._parser.registerDcsHandler({final:"q"},i))}if(this._opts.iipSupport){let i=new ac(this._opts,this._renderer,this._storage,t);this._handlers.set("iip",i),this._disposeLater(t._core._inputHandler._parser.registerOscHandler(1337,i))}}reset(){this._opts.sixelScrolling=this._defaultOpts.sixelScrolling,this._opts.sixelPaletteLimit=this._defaultOpts.sixelPaletteLimit,this._storage?.reset();for(let t of this._handlers.values())t.reset();return!1}get storageLimit(){return this._storage?.getLimit()||-1}set storageLimit(t){this._storage?.setLimit(t),this._opts.storageLimit=t}get storageUsage(){return this._storage?this._storage.getUsage():-1}get showPlaceholder(){return this._opts.showPlaceholder}set showPlaceholder(t){this._opts.showPlaceholder=t,this._renderer?.showPlaceholder(t)}getImageAtBufferCell(t,i){return this._storage?.getImageAtBufferCell(t,i)}extractTileAtBufferCell(t,i){return this._storage?.extractTileAtBufferCell(t,i)}_report(t){this._terminal?._core.coreService.triggerDataEvent(t)}_decset(t){for(let i=0;i<t.length;++i)80===t[i]&&(this._opts.sixelScrolling=!1);return!1}_decrst(t){for(let i=0;i<t.length;++i)80===t[i]&&(this._opts.sixelScrolling=!0);return!1}_da1(t){return!!t[0]||!!this._opts.sixelSupport&&(this._report("[?62;4;9;22c"),!0)}_xtermGraphicsAttributes(t){if(t.length<2)return!0;if(1===t[0])switch(t[1]){case 1:return this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`),!0;case 2:this._opts.sixelPaletteLimit=this._defaultOpts.sixelPaletteLimit,this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`);for(let t of this._handlers.values())t.reset();return!0;case 3:return t.length>2&&!(t[2]instanceof Array)&&t[2]<=4096?(this._opts.sixelPaletteLimit=t[2],this._report(`[?${t[0]};0;${this._opts.sixelPaletteLimit}S`)):this._report(`[?${t[0]};2S`),!0;case 4:return this._report(`[?${t[0]};0;4096S`),!0;default:return this._report(`[?${t[0]};2S`),!0}if(2===t[0])switch(t[1]){case 1:let i=this._renderer?.dimensions?.css.canvas.width,s=this._renderer?.dimensions?.css.canvas.height;if(!i||!s){let t=ja;i=(this._terminal?.cols||80)*t.width,s=(this._terminal?.rows||24)*t.height}if(i*s<this._opts.pixelLimit)this._report(`[?${t[0]};0;${i.toFixed(0)};${s.toFixed(0)}S`);else{let i=Math.floor(Math.sqrt(this._opts.pixelLimit));this._report(`[?${t[0]};0;${i};${i}S`)}return!0;case 4:let e=Math.floor(Math.sqrt(this._opts.pixelLimit));return this._report(`[?${t[0]};0;${e};${e}S`),!0;default:return this._report(`[?${t[0]};2S`),!0}return this._report(`[?${t[0]};1S`),!0}};class pc{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,bc.unregister(this),t}free(){const t=this.__destroy_into_raw();Wc.__wbg_channel_free(t,0)}connect(){Wc.channel_connect(this.__wbg_ptr)}disconnect(){Wc.channel_disconnect(this.__wbg_ptr)}is_connected(){return 0!==Wc.channel_is_connected(this.__wbg_ptr)}is_disconnected(){return 0!==Wc.channel_is_disconnected(this.__wbg_ptr)}constructor(t,i){const s=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),e=qc,h=Uc(i,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=Wc.channel_new(s,e,h,qc);return this.__wbg_ptr=r>>>0,bc.register(this,this.__wbg_ptr,this),this}on_connection_close(t){Wc.channel_on_connection_close(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_error(t){Wc.channel_on_connection_error(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_message(t){Wc.channel_on_connection_message(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_connection_open(t){Wc.channel_on_connection_open(this.__wbg_ptr,Fc(t)?0:Mc(t))}on_protocol_message(t){Wc.channel_on_protocol_message(this.__wbg_ptr,Fc(t)?0:Mc(t))}open_sftp_tunnel(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;var n=Fc(i)?0:Uc(i,Wc.__wbindgen_export,Wc.__wbindgen_export2),o=qc,l=Fc(s)?0:Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_open_sftp_tunnel(this.__wbg_ptr,h,r,n,o,l,qc,Fc(e)?4294967297:e>>>0)}open_ssh_tunnel(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;var n=Fc(i)?0:Uc(i,Wc.__wbindgen_export,Wc.__wbindgen_export2),o=qc,l=Fc(s)?0:Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_open_ssh_tunnel(this.__wbg_ptr,h,r,n,o,l,qc,Fc(e)?4294967297:e>>>0)}send_sftp_delete(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),n=qc,o=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_delete(this.__wbg_ptr,r,n,i,o,l,a,qc,Fc(h)?4294967297:h>>>0)}send_sftp_download_chunk(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_download_chunk(this.__wbg_ptr,r,qc,i,s,e,Fc(h)?4294967297:h>>>0)}send_sftp_download_start(t,i,s,e,h){const r=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),n=qc,o=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_download_start(this.__wbg_ptr,r,n,i,o,l,a,qc,Fc(h)?4294967297:h>>>0)}send_sftp_list_data(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc,n=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_list_data(this.__wbg_ptr,h,r,i,n,qc,Fc(e)?4294967297:e>>>0)}send_sftp_upload_chunk(t,i,s,e,h,r,n){const o=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=function(t){const i=(0,Wc.__wbindgen_export)(1*t.length,1)>>>0;return _c().set(t,i/1),qc=t.length,i}(r);Wc.channel_send_sftp_upload_chunk(this.__wbg_ptr,o,l,i,s,e,h,a,qc,Fc(n)?4294967297:n>>>0)}send_sftp_upload_start(t,i,s,e,h,r,n){const o=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),l=qc,a=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2),c=qc,u=Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_sftp_upload_start(this.__wbg_ptr,o,l,i,a,c,u,qc,h,r,Fc(n)?4294967297:n>>>0)}send_ssh_terminal_resize(t,i,s,e){const h=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_ssh_terminal_resize(this.__wbg_ptr,h,qc,i,s,e)}send_ssh_tunnel_data(t,i,s){const e=Uc(t,Wc.__wbindgen_export,Wc.__wbindgen_export2),h=qc,r=Uc(s,Wc.__wbindgen_export,Wc.__wbindgen_export2);Wc.channel_send_ssh_tunnel_data(this.__wbg_ptr,e,h,i,r,qc)}start_heartbeat(t){Wc.channel_start_heartbeat(this.__wbg_ptr,t)}stop_heartbeat(){Wc.channel_stop_heartbeat(this.__wbg_ptr)}}Symbol.dispose&&(pc.prototype[Symbol.dispose]=pc.prototype.free);const Cc=Object.freeze({Generic:0,0:"Generic",RequiresUsername:100,100:"RequiresUsername",RequiresPassword:110,110:"RequiresPassword"});function mc(){const t={__proto__:null,__wbg_Error_8c4e43fe74559d73:function(t,i){return Mc(Error(Dc(t,i)))},__wbg_String_8f0eb39a4a4c2f66:function(t,i){const s=Uc(Sc(i)+"",Wc.__wbindgen_export,Wc.__wbindgen_export2),e=qc;xc().setInt32(t+4,e,!0),xc().setInt32(t+0,s,!0)},__wbg___wbindgen_debug_string_0bc8482c6e3508ae:function(t,i){const s=Uc(Ec(Sc(i)),Wc.__wbindgen_export,Wc.__wbindgen_export2),e=qc;xc().setInt32(t+4,e,!0),xc().setInt32(t+0,s,!0)},__wbg___wbindgen_string_get_72fb696202c56729:function(t,i){const s=Sc(i),e="string"==typeof s?s:void 0;var h=Fc(e)?0:Uc(e,Wc.__wbindgen_export,Wc.__wbindgen_export2),r=qc;xc().setInt32(t+4,r,!0),xc().setInt32(t+0,h,!0)},__wbg___wbindgen_throw_be289d5034ed271b:function(t,i){throw Error(Dc(t,i))},__wbg__wbg_cb_unref_d9b87ff7982e3b21:function(t){Sc(t)._wbg_cb_unref()},__wbg_call_389efe28435a9388:function(){return $c((function(t,i){return Mc(Sc(t).call(Sc(i)))}),arguments)},__wbg_call_4708e0c13bdc8e95:function(){return $c((function(t,i,s){return Mc(Sc(t).call(Sc(i),Sc(s)))}),arguments)},__wbg_clearInterval_dd1e598f425db353:function(t){return Mc(clearInterval(Tc(t)))},__wbg_close_1d08eaf57ed325c0:function(){return $c((function(t){Sc(t).close()}),arguments)},__wbg_data_5330da50312d0bc1:function(t){return Mc(Sc(t).data)},__wbg_from_bddd64e7d5ff6941:function(t){return Mc(Array.from(Sc(t)))},__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04:function(t){let i;try{i=Sc(t)instanceof ArrayBuffer}catch(t){i=!1}return i},__wbg_length_32ed9a279acd054c:function(t){return Sc(t).length},__wbg_new_361308b2356cecd0:function(){return Mc({})},__wbg_new_3eb36ae241fe6f44:function(){return Mc([])},__wbg_new_dd2b680c8bf6ae29:function(t){return Mc(new Uint8Array(Sc(t)))},__wbg_new_with_str_8406051fb31dddaa:function(){return $c((function(t,i,s,e){return Mc(new WebSocket(Dc(t,i),Dc(s,e)))}),arguments)},__wbg_prototypesetcall_bdcdcc5842e4d77d:function(t,i,s){Uint8Array.prototype.set.call(Qc(t,i),Sc(s))},__wbg_readyState_1bb73ec7b8a54656:function(t){return Sc(t).readyState},__wbg_send_542f95dea2df7994:function(){return $c((function(t,i,s){Sc(t).send(Qc(i,s))}),arguments)},__wbg_setInterval_ed3b5e3c3ebb8a6d:function(){return $c((function(t,i){return Mc(setInterval(Sc(t),i))}),arguments)},__wbg_set_3f1d0b984ed272ed:function(t,i,s){Sc(t)[Tc(i)]=Tc(s)},__wbg_set_binaryType_5bbf62e9f705dc1a:function(t,i){Sc(t).binaryType=Bc[i]},__wbg_set_f43e577aea94465b:function(t,i,s){Sc(t)[i>>>0]=Tc(s)},__wbg_set_onclose_d382f3e2c2b850eb:function(t,i){Sc(t).onclose=Sc(i)},__wbg_set_onerror_377f18bf4569bf85:function(t,i){Sc(t).onerror=Sc(i)},__wbg_set_onmessage_2114aa5f4f53051e:function(t,i){Sc(t).onmessage=Sc(i)},__wbg_set_onopen_b7b52d519d6c0f11:function(t,i){Sc(t).onopen=Sc(i)},__wbg_warn_c98fcea8b5580ed2:function(t,i){console.warn(Dc(t,i))},__wbindgen_cast_0000000000000001:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000002:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000003:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,vc))},__wbindgen_cast_0000000000000004:function(t,i){return Mc(Hc(t,i,Wc.__wasm_bindgen_func_elem_37,Ic))},__wbindgen_cast_0000000000000005:function(t){return Mc(t)},__wbindgen_cast_0000000000000006:function(t,i){return Mc(Qc(t,i))},__wbindgen_cast_0000000000000007:function(t,i){return Mc(Dc(t,i))},__wbindgen_cast_0000000000000008:function(t){return Mc(BigInt.asUintN(64,t))},__wbindgen_object_clone_ref:function(t){return Mc(Sc(t))},__wbindgen_object_drop_ref:function(t){Tc(t)}};return{__proto__:null,"./phirepass-channel_bg.js":t}}function Ic(t,i){Wc.__wasm_bindgen_func_elem_42(t,i)}function vc(t,i,s){Wc.__wasm_bindgen_func_elem_38(t,i,Mc(s))}const Bc=["blob","arraybuffer"],bc="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>Wc.__wbg_channel_free(t>>>0,1)));function Mc(t){Nc===Rc.length&&Rc.push(Rc.length+1);const i=Nc;return Nc=Rc[i],Rc[i]=t,i}const yc="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((t=>t.dtor(t.a,t.b)));function Ec(t){const i=typeof t;if("number"==i||"boolean"==i||null==t)return""+t;if("string"==i)return`"${t}"`;if("symbol"==i){const i=t.description;return null==i?"Symbol":`Symbol(${i})`}if("function"==i){const i=t.name;return"string"==typeof i&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(t)){const i=t.length;let s="[";i>0&&(s+=Ec(t[0]));for(let e=1;e<i;e++)s+=", "+Ec(t[e]);return s+="]",s}const s=/\[object ([^\]]+)\]/.exec(toString.call(t));let e;if(!(s&&s.length>1))return toString.call(t);if(e=s[1],"Object"==e)try{return"Object("+JSON.stringify(t)+")"}catch(t){return"Object"}return t instanceof Error?`${t.name}: ${t.message}\n${t.stack}`:e}function Qc(t,i){return t>>>=0,_c().subarray(t/1,t/1+i)}let kc=null;function xc(){return(null===kc||!0===kc.buffer.detached||void 0===kc.buffer.detached&&kc.buffer!==Wc.memory.buffer)&&(kc=new DataView(Wc.memory.buffer)),kc}function Dc(t,i){return function(t,i){return Jc+=i,Jc>=Gc&&(Pc=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Pc.decode(),Jc=i),Pc.decode(_c().subarray(t,t+i))}(t>>>=0,i)}let Lc=null;function _c(){return null!==Lc&&0!==Lc.byteLength||(Lc=new Uint8Array(Wc.memory.buffer)),Lc}function Sc(t){return Rc[t]}function $c(t,i){try{return t.apply(this,i)}catch(t){Wc.__wbindgen_export3(Mc(t))}}let Rc=Array(128).fill(void 0);Rc.push(void 0,null,!0,!1);let Nc=Rc.length;function Fc(t){return null==t}function Hc(t,i,s,e){const h={a:t,b:i,cnt:1,dtor:s},r=(...t)=>{h.cnt++;const i=h.a;h.a=0;try{return e(i,h.b,...t)}finally{h.a=i,r._wbg_cb_unref()}};return r._wbg_cb_unref=()=>{0==--h.cnt&&(h.dtor(h.a,h.b),h.a=0,yc.unregister(h))},yc.register(r,h,h),r}function Uc(t,i,s){if(void 0===s){const s=Oc.encode(t),e=i(s.length,1)>>>0;return _c().subarray(e,e+s.length).set(s),qc=s.length,e}let e=t.length,h=i(e,1)>>>0;const r=_c();let n=0;for(;n<e;n++){const i=t.charCodeAt(n);if(i>127)break;r[h+n]=i}if(n!==e){0!==n&&(t=t.slice(n)),h=s(h,e,e=n+3*t.length,1)>>>0;const i=_c().subarray(h+n,h+e);n+=Oc.encodeInto(t,i).written,h=s(h,e,n,1)>>>0}return qc=n,h}function Tc(t){const i=Sc(t);return function(t){t<132||(Rc[t]=Nc,Nc=t)}(t),i}let Pc=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Pc.decode();const Gc=2146435072;let Jc=0;const Oc=new TextEncoder;"encodeInto"in Oc||(Oc.encodeInto=function(t,i){const s=Oc.encode(t);return i.set(s),{read:t.length,written:s.length}});let Wc,qc=0;var zc;!function(t){t[t.Username=0]="Username",t[t.Password=1]="Password",t[t.Default=2]="Default"}(zc||(zc={}));const Kc=i(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}terminal;fitAddon;webLinksAddon;searchAddon;webglAddon;serializeAddon;imageAddon;channel;inputMode=zc.Default;resizeObserver;resizeDebounceHandle;session_id;usernameBuffer="";passwordBuffer="";xtermImageSettings={enableSizeReports:!0,pixelLimit:16777216,sixelSupport:!0,sixelScrolling:!0,sixelPaletteLimit:256,sixelSizeLimit:25e6,storageLimit:128,showPlaceholder:!0,iipSupport:!0,iipSizeLimit:2e7};get el(){return this}terminalOptions={termName:"xterm-256color",rendererType:"canvas",allowTransparency:!1,fontFamily:'"Berkeley Mono", "Fira Code", "SFMono-Regular", Menlo, monospace',fontSize:12,letterSpacing:0,lineHeight:1,allowProposedApi:!0,cursorBlink:!0,cursorWidth:1,theme:{background:"#0b1021",foreground:"#e2e8f0",cursor:"#67e8f9"},scrollback:1e4,fastScrollModifier:"shift",fastScrollSensitivity:5,bellStyle:"sound",convertEol:!1,disableStdin:!1,rightClickSelectsWord:!0,drawBoldTextInBrightColors:!0,minimumContrastRatio:1,windowsMode:!1,macOptionIsMeta:!1,altClickMovesCursor:!0};serverHost="phirepass.io";serverPort=443;allowInsecure=!1;heartbeatInterval=3e4;nodeId;onNodeIdChange(t,i){this.resetSessionState(),this.terminal.reset(),this.channel&&this.channel.is_connected()&&this.close_comms(),t&&(this.open_comms(),this.channel.connect())}createWebSocketEndpoint(){const t=this.allowInsecure?"ws":"wss";return this.allowInsecure||443!==this.serverPort?this.allowInsecure&&80===this.serverPort?`${t}://${this.serverHost}`:`${t}://${this.serverHost}:${this.serverPort}`:`${t}://${this.serverHost}`}async connectedCallback(){await async function(t){if(void 0!==Wc)return Wc;void 0!==t&&(Object.getPrototypeOf(t)===Object.prototype?({module_or_path:t}=t):console.warn("using deprecated parameters for the initialization function; pass a single object instead")),void 0===t&&(t=new URL("phirepass-channel_bg.wasm",import.meta.url));const i=mc();("string"==typeof t||"function"==typeof Request&&t instanceof Request||"function"==typeof URL&&t instanceof URL)&&(t=fetch(t));const{instance:s}=await async function(t,i){if("function"==typeof Response&&t instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(t,i)}catch(i){if(!t.ok||!function(t){switch(t){case"basic":case"cors":case"default":return!0}return!1}(t.type)||"application/wasm"===t.headers.get("Content-Type"))throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i)}const s=await t.arrayBuffer();return await WebAssembly.instantiate(s,i)}{const s=await WebAssembly.instantiate(t,i);return s instanceof WebAssembly.Instance?{instance:s,module:t}:s}}(await t,i);return function(t){return Wc=t.exports,kc=null,Lc=null,Wc}(s)}(),this.setup_terminal(),this.open_comms(),this.nodeId?this.connect():console.warn("Prop node_id is not set. Cannot connect to terminal.")}async disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),this.close_comms(),this.destroy_terminal()}setup_terminal(){this.terminal=new fr(this.terminalOptions),this.fitAddon=new dr,this.terminal.loadAddon(this.fitAddon),this.webLinksAddon=new Ir,this.terminal.loadAddon(this.webLinksAddon),this.searchAddon=new mn,this.terminal.loadAddon(this.searchAddon),this.serializeAddon=new Qa,this.terminal.loadAddon(this.serializeAddon),this.imageAddon=new wc(this.xtermImageSettings),this.terminal.loadAddon(this.imageAddon);try{this.webglAddon=new ua,this.terminal.loadAddon(this.webglAddon)}catch(t){console.warn("WebGL addon not available or failed to load:",t)}this.fitAddon.fit()}destroy_terminal(){this.terminal&&(this.terminal.reset(),"function"==typeof this.terminal.dispose&&this.terminal.dispose())}open_comms(){this.channel=new pc(this.createWebSocketEndpoint()+"/api/web/ws",this.nodeId),this.channel.on_connection_open((()=>{this.channel.start_heartbeat(this.heartbeatInterval<=15e3?3e4:this.heartbeatInterval),this.channel.open_ssh_tunnel(this.nodeId)})),this.channel.on_connection_close((()=>{this.terminal.reset()})),this.channel.on_connection_error((t=>{console.error(">> connection error:",t)})),this.channel.on_connection_message((()=>{})),this.channel.on_protocol_message((t=>{const{web:i}=t.data;switch(i.type){case"Error":this.handle_error(i);break;case"TunnelOpened":this.session_id=i.sid,this.terminal.reset(),this.send_ssh_terminal_resize();break;case"TunnelClosed":this.handleTunnelClosed();break;case"TunnelData":this.terminal.write(new Uint8Array(i.data));break;default:console.warn("Unknown protocol message type:",i)}}))}send_ssh_terminal_resize(){if(!this.channel||!this.channel.is_connected()||!this.session_id)return;const t=this.terminal?.cols??0,i=this.terminal?.rows??0;if(!(t<=0||i<=0))try{this.channel.send_ssh_terminal_resize(this.nodeId,this.session_id,t,i)}catch(t){console.error("Failed to send terminal resize:",t)}}send_ssh_data(t){this.channel.is_connected()&&this.session_id&&this.channel.send_ssh_tunnel_data(this.nodeId,this.session_id,t)}handle_error(t){switch(t.kind){case Cc.Generic:this.terminal.reset(),this.terminal.write(t.message+"\r\n"),this.terminal.focus();break;case Cc.RequiresUsername:this.terminal.reset(),this.inputMode=zc.Username,this.usernameBuffer="",this.terminal.write("Enter your username: "),this.terminal.focus();break;case Cc.RequiresPassword:this.terminal.reset(),this.inputMode=zc.Password,this.passwordBuffer="",this.terminal.write("Enter your password: "),this.terminal.focus();break;default:console.warn("Unknown error kind:",t)}}close_comms(){this.channel.stop_heartbeat(),this.channel.disconnect()}cancelCredentialEntry(){this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer="",this.terminal.writeln("Authentication cancelled."),this.terminal.reset()}resetSessionState(){this.session_id=void 0,this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer=""}handleTunnelClosed(){this.session_id=void 0,this.inputMode=zc.Default,this.usernameBuffer="",this.passwordBuffer="",this.terminal.reset(),this.terminal.writeln("Connection closed.")}connect(){const t=this.el.shadowRoot.getElementById("ccc");t&&(this.terminal.open(t),this.fitAddon.fit(),this.terminal.focus(),this.terminal.onData(this.handleTerminalData.bind(this)),this.channel.connect(),this.setupResizeObserver())}setupResizeObserver(){this.resizeObserver=new ResizeObserver((()=>{this.resizeDebounceHandle&&clearTimeout(this.resizeDebounceHandle),this.resizeDebounceHandle=setTimeout((()=>{this.fitAddon.fit(),this.send_ssh_terminal_resize()}),100)})),this.resizeObserver.observe(this.el)}handleTerminalData(t){switch(this.inputMode){case zc.Username:this.handleUsernameInput(t);break;case zc.Password:this.handlePasswordInput(t);break;case zc.Default:this.send_ssh_data(t)}}handleUsernameInput(t){return"\r"===t||"\n"===t?(this.terminal.write("\r\n"),void this.submitUsername()):""===t?(this.terminal.write("^C\r\n"),void this.cancelCredentialEntry()):void(""!==t?t>=" "&&t<="~"&&(this.usernameBuffer+=t,this.terminal.write(t)):this.usernameBuffer.length&&(this.usernameBuffer=this.usernameBuffer.slice(0,-1),this.terminal.write("\b \b")))}submitUsername(){if(!this.channel.is_connected())return;const t=this.usernameBuffer.trim();if(!t)return this.terminal.writeln(""),this.terminal.write("Enter your username: "),void(this.usernameBuffer="");this.inputMode=zc.Default,this.channel.open_ssh_tunnel(this.nodeId,t)}handlePasswordInput(t){return"\r"===t||"\n"===t?(this.terminal.write("\r\n"),void this.submitPassword()):""===t?(this.terminal.write("^C\r\n"),void this.cancelCredentialEntry()):void(""!==t?t>=" "&&t<="~"&&(this.passwordBuffer+=t,this.terminal.write("*")):this.passwordBuffer.length&&(this.passwordBuffer=this.passwordBuffer.slice(0,-1),this.terminal.write("\b \b")))}submitPassword(){if(!this.channel.is_connected())return;const t=this.passwordBuffer;if(!t)return this.terminal.writeln(""),this.terminal.write("Enter your password: "),void(this.passwordBuffer="");this.inputMode=zc.Default,this.channel.open_ssh_tunnel(this.nodeId,this.usernameBuffer.trim(),t),this.passwordBuffer="",this.usernameBuffer=""}render(){return e(h,{key:"f554548d90e01c4a8ce0a326ebb37d53eea1f376"},e("div",{key:"afcc37241238d79e4781db3a5f5570c219647db5",id:"ccc"}))}static get watchers(){return{nodeId:[{onNodeIdChange:0}]}}static get style(){return".xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#FFF;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1 !important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px !important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:rgba(0,0,0,0);transition:opacity 100ms linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity 800ms linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}:host{display:block;width:100%;height:100%}:host #ccc{width:inherit;height:inherit}"}},[513,"phirepass-terminal",{terminalOptions:[16],serverHost:[1,"server-host"],serverPort:[2,"server-port"],allowInsecure:[4,"allow-insecure"],heartbeatInterval:[2,"heartbeat-interval"],nodeId:[1,"node-id"]},void 0,{nodeId:[{onNodeIdChange:0}]}]);function jc(){"undefined"!=typeof customElements&&["phirepass-terminal"].forEach((i=>{"phirepass-terminal"===i&&(customElements.get(t(i))||customElements.define(t(i),Kc))}))}jc();const Yc=Kc,Zc=jc;export{Yc as PhirepassTerminal,Zc as defineCustomElement}
@@ -2,7 +2,7 @@ const NAMESPACE = 'phirepass-widgets';
2
2
  const BUILD = /* phirepass-widgets */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, prop: true, propChangeCallback: true, updatable: true};
3
3
 
4
4
  /*
5
- Stencil Client Platform v4.41.2 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Platform v4.43.0 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
 
8
8
  var reWireGetterSetter = (instance, hostRef) => {
@@ -435,7 +435,37 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
435
435
  }
436
436
  let isProp = isMemberInElement(elm, memberName);
437
437
  memberName.toLowerCase();
438
- if (memberName === "key") ; else {
438
+ if (memberName === "key") ; else if (memberName[0] === "a" && memberName.startsWith("attr:")) {
439
+ const propName = memberName.slice(5);
440
+ let attrName;
441
+ {
442
+ const hostRef = getHostRef(elm);
443
+ if (hostRef && hostRef.$cmpMeta$ && hostRef.$cmpMeta$.$members$) {
444
+ const memberMeta = hostRef.$cmpMeta$.$members$[propName];
445
+ if (memberMeta && memberMeta[1]) {
446
+ attrName = memberMeta[1];
447
+ }
448
+ }
449
+ }
450
+ if (!attrName) {
451
+ attrName = propName.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
452
+ }
453
+ if (newValue == null || newValue === false) {
454
+ if (newValue !== false || elm.getAttribute(attrName) === "") {
455
+ elm.removeAttribute(attrName);
456
+ }
457
+ } else {
458
+ elm.setAttribute(attrName, newValue === true ? "" : newValue);
459
+ }
460
+ return;
461
+ } else if (memberName[0] === "p" && memberName.startsWith("prop:")) {
462
+ const propName = memberName.slice(5);
463
+ try {
464
+ elm[propName] = newValue;
465
+ } catch (e) {
466
+ }
467
+ return;
468
+ } else {
439
469
  const isComplex = isComplexType(newValue);
440
470
  if ((isProp || isComplex && newValue !== null) && true) {
441
471
  try {
@@ -443,7 +473,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
443
473
  const n = newValue == null ? "" : newValue;
444
474
  if (memberName === "list") {
445
475
  isProp = false;
446
- } else if (oldValue == null || elm[memberName] != n) {
476
+ } else if (oldValue == null || elm[memberName] !== n) {
447
477
  if (typeof elm.__lookupSetter__(memberName) === "function") {
448
478
  elm[memberName] = n;
449
479
  } else {
@@ -825,7 +855,7 @@ var updateComponent = async (hostRef, instance, isInitialLoad) => {
825
855
  if (childrenPromises.length === 0) {
826
856
  postUpdate();
827
857
  } else {
828
- Promise.all(childrenPromises).then(postUpdate);
858
+ Promise.all(childrenPromises).then(postUpdate).catch(postUpdate);
829
859
  hostRef.$flags$ |= 4 /* isWaitingForChildren */;
830
860
  childrenPromises.length = 0;
831
861
  }
@@ -949,13 +979,16 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
949
979
  });
950
980
  }
951
981
  }
952
- if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
982
+ if (flags & 2 /* hasRendered */) {
953
983
  if (instance.componentShouldUpdate) {
954
- if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {
984
+ const shouldUpdate = instance.componentShouldUpdate(newVal, oldVal, propName);
985
+ if (shouldUpdate === false && !(flags & 16 /* isQueuedForUpdate */)) {
955
986
  return;
956
987
  }
957
988
  }
958
- scheduleUpdate(hostRef, false);
989
+ if (!(flags & 16 /* isQueuedForUpdate */)) {
990
+ scheduleUpdate(hostRef, false);
991
+ }
959
992
  }
960
993
  }
961
994
  };
@@ -1109,73 +1142,84 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1109
1142
  // src/runtime/initialize-component.ts
1110
1143
  var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1111
1144
  let Cstr;
1112
- if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1113
- hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1114
- const bundleId = cmpMeta.$lazyBundleId$;
1115
- if (bundleId) {
1116
- const CstrImport = loadModule(cmpMeta, hostRef);
1117
- if (CstrImport && "then" in CstrImport) {
1118
- const endLoad = uniqueTime();
1119
- Cstr = await CstrImport;
1120
- endLoad();
1121
- } else {
1122
- Cstr = CstrImport;
1123
- }
1124
- if (!Cstr) {
1125
- throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1126
- }
1127
- if (!Cstr.isProxied) {
1145
+ try {
1146
+ if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1147
+ hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1148
+ const bundleId = cmpMeta.$lazyBundleId$;
1149
+ if (bundleId) {
1150
+ const CstrImport = loadModule(cmpMeta, hostRef);
1151
+ if (CstrImport && "then" in CstrImport) {
1152
+ const endLoad = uniqueTime();
1153
+ Cstr = await CstrImport;
1154
+ endLoad();
1155
+ } else {
1156
+ Cstr = CstrImport;
1157
+ }
1158
+ if (!Cstr) {
1159
+ throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1160
+ }
1161
+ if (!Cstr.isProxied) {
1162
+ {
1163
+ cmpMeta.$watchers$ = Cstr.watchers;
1164
+ cmpMeta.$serializers$ = Cstr.serializers;
1165
+ cmpMeta.$deserializers$ = Cstr.deserializers;
1166
+ }
1167
+ proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1168
+ Cstr.isProxied = true;
1169
+ }
1170
+ const endNewInstance = createTime("createInstance", cmpMeta.$tagName$);
1128
1171
  {
1129
- cmpMeta.$watchers$ = Cstr.watchers;
1130
- cmpMeta.$serializers$ = Cstr.serializers;
1131
- cmpMeta.$deserializers$ = Cstr.deserializers;
1172
+ hostRef.$flags$ |= 8 /* isConstructingInstance */;
1132
1173
  }
1133
- proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1134
- Cstr.isProxied = true;
1135
- }
1136
- const endNewInstance = createTime("createInstance", cmpMeta.$tagName$);
1137
- {
1138
- hostRef.$flags$ |= 8 /* isConstructingInstance */;
1139
- }
1140
- try {
1141
- new Cstr(hostRef);
1142
- } catch (e) {
1143
- consoleError(e, elm);
1144
- }
1145
- {
1146
- hostRef.$flags$ &= -9 /* isConstructingInstance */;
1147
- }
1148
- {
1149
- hostRef.$flags$ |= 128 /* isWatchReady */;
1174
+ try {
1175
+ new Cstr(hostRef);
1176
+ } catch (e) {
1177
+ consoleError(e, elm);
1178
+ }
1179
+ {
1180
+ hostRef.$flags$ &= -9 /* isConstructingInstance */;
1181
+ }
1182
+ {
1183
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1184
+ }
1185
+ endNewInstance();
1186
+ {
1187
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1188
+ }
1189
+ } else {
1190
+ Cstr = elm.constructor;
1191
+ const cmpTag = elm.localName;
1192
+ customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
1150
1193
  }
1151
- endNewInstance();
1152
- {
1153
- fireConnectedCallback(hostRef.$lazyInstance$, elm);
1194
+ if (Cstr && Cstr.style) {
1195
+ let style;
1196
+ if (typeof Cstr.style === "string") {
1197
+ style = Cstr.style;
1198
+ }
1199
+ const scopeId2 = getScopeId(cmpMeta);
1200
+ if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {
1201
+ const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
1202
+ registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1203
+ endRegisterStyles();
1204
+ }
1154
1205
  }
1206
+ }
1207
+ const ancestorComponent = hostRef.$ancestorComponent$;
1208
+ const schedule = () => scheduleUpdate(hostRef, true);
1209
+ if (ancestorComponent && ancestorComponent["s-rc"]) {
1210
+ ancestorComponent["s-rc"].push(schedule);
1155
1211
  } else {
1156
- Cstr = elm.constructor;
1157
- const cmpTag = elm.localName;
1158
- customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
1212
+ schedule();
1159
1213
  }
1160
- if (Cstr && Cstr.style) {
1161
- let style;
1162
- if (typeof Cstr.style === "string") {
1163
- style = Cstr.style;
1164
- }
1165
- const scopeId2 = getScopeId(cmpMeta);
1166
- if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {
1167
- const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
1168
- registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1169
- endRegisterStyles();
1170
- }
1214
+ } catch (e) {
1215
+ consoleError(e, elm);
1216
+ if (hostRef.$onRenderResolve$) {
1217
+ hostRef.$onRenderResolve$();
1218
+ hostRef.$onRenderResolve$ = void 0;
1219
+ }
1220
+ if (hostRef.$onReadyResolve$) {
1221
+ hostRef.$onReadyResolve$(elm);
1171
1222
  }
1172
- }
1173
- const ancestorComponent = hostRef.$ancestorComponent$;
1174
- const schedule = () => scheduleUpdate(hostRef, true);
1175
- if (ancestorComponent && ancestorComponent["s-rc"]) {
1176
- ancestorComponent["s-rc"].push(schedule);
1177
- } else {
1178
- schedule();
1179
1223
  }
1180
1224
  };
1181
1225
  var fireConnectedCallback = (instance, elm) => {
@@ -1,5 +1,5 @@
1
- import { b as bootstrapLazy } from './index-DvJqTeLJ.js';
2
- export { s as setNonce } from './index-DvJqTeLJ.js';
1
+ import { b as bootstrapLazy } from './index-elO6rcMK.js';
2
+ export { s as setNonce } from './index-elO6rcMK.js';
3
3
  import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
4
 
5
5
  const defineCustomElements = async (win, options) => {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-DvJqTeLJ.js';
1
+ import { r as registerInstance, h, H as Host } from './index-elO6rcMK.js';
2
2
 
3
3
  const phirepassSftpClientCss = () => `:host{display:block}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, g as getElement, h as h$1, H as Host } from './index-DvJqTeLJ.js';
1
+ import { r as registerInstance, g as getElement, h as h$1, H as Host } from './index-elO6rcMK.js';
2
2
 
3
3
  /**
4
4
  * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
@@ -246,11 +246,14 @@ class Channel {
246
246
  }
247
247
  /**
248
248
  * @param {string} endpoint
249
+ * @param {string} node_id
249
250
  */
250
- constructor(endpoint) {
251
+ constructor(endpoint, node_id) {
251
252
  const ptr0 = passStringToWasm0(endpoint, wasm.__wbindgen_export, wasm.__wbindgen_export2);
252
253
  const len0 = WASM_VECTOR_LEN;
253
- const ret = wasm.channel_new(ptr0, len0);
254
+ const ptr1 = passStringToWasm0(node_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
255
+ const len1 = WASM_VECTOR_LEN;
256
+ const ret = wasm.channel_new(ptr0, len0, ptr1, len1);
254
257
  this.__wbg_ptr = ret >>> 0;
255
258
  ChannelFinalization.register(this, this.__wbg_ptr, this);
256
259
  return this;
@@ -522,10 +525,6 @@ function __wbg_get_imports() {
522
525
  const ret = getObject(arg0).length;
523
526
  return ret;
524
527
  },
525
- __wbg_new_057993d5b5e07835: function() { return handleError(function (arg0, arg1) {
526
- const ret = new WebSocket(getStringFromWasm0(arg0, arg1));
527
- return addHeapObject(ret);
528
- }, arguments); },
529
528
  __wbg_new_361308b2356cecd0: function() {
530
529
  const ret = new Object();
531
530
  return addHeapObject(ret);
@@ -538,6 +537,10 @@ function __wbg_get_imports() {
538
537
  const ret = new Uint8Array(getObject(arg0));
539
538
  return addHeapObject(ret);
540
539
  },
540
+ __wbg_new_with_str_8406051fb31dddaa: function() { return handleError(function (arg0, arg1, arg2, arg3) {
541
+ const ret = new WebSocket(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
542
+ return addHeapObject(ret);
543
+ }, arguments); },
541
544
  __wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) {
542
545
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
543
546
  },
@@ -573,7 +576,7 @@ function __wbg_get_imports() {
573
576
  __wbg_set_onopen_b7b52d519d6c0f11: function(arg0, arg1) {
574
577
  getObject(arg0).onopen = getObject(arg1);
575
578
  },
576
- __wbg_warn_c6397c02b15f319f: function(arg0, arg1) {
579
+ __wbg_warn_c98fcea8b5580ed2: function(arg0, arg1) {
577
580
  console.warn(getStringFromWasm0(arg0, arg1));
578
581
  },
579
582
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
@@ -1107,7 +1110,7 @@ const PhirepassTerminal = class {
1107
1110
  }
1108
1111
  }
1109
1112
  open_comms() {
1110
- this.channel = new Channel(`${this.createWebSocketEndpoint()}/api/web/ws`);
1113
+ this.channel = new Channel(`${this.createWebSocketEndpoint()}/api/web/ws`, this.nodeId);
1111
1114
  this.channel.on_connection_open(() => {
1112
1115
  this.channel.start_heartbeat(this.heartbeatInterval <= 15_000 ? 30_000 : this.heartbeatInterval);
1113
1116
  this.channel.open_ssh_tunnel(this.nodeId);
@@ -1333,7 +1336,7 @@ const PhirepassTerminal = class {
1333
1336
  this.usernameBuffer = "";
1334
1337
  }
1335
1338
  render() {
1336
- return (h$1(Host, { key: 'f3443a4e7b9e1a4c5377fb35d4b0cee540d03548' }, h$1("div", { key: 'b59a88b42d813cf991b02e755785df3a72334068', id: "ccc" })));
1339
+ return (h$1(Host, { key: 'f554548d90e01c4a8ce0a326ebb37d53eea1f376' }, h$1("div", { key: 'afcc37241238d79e4781db3a5f5570c219647db5', id: "ccc" })));
1337
1340
  }
1338
1341
  static get watchers() { return {
1339
1342
  "nodeId": [{
@@ -1,9 +1,9 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-DvJqTeLJ.js';
2
- export { s as setNonce } from './index-DvJqTeLJ.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-elO6rcMK.js';
2
+ export { s as setNonce } from './index-elO6rcMK.js';
3
3
  import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
4
 
5
5
  /*
6
- Stencil Client Patch Browser v4.41.2 | MIT Licensed | https://stenciljs.com
6
+ Stencil Client Patch Browser v4.43.0 | MIT Licensed | https://stenciljs.com
7
7
  */
8
8
 
9
9
  var patchBrowser = () => {