UNPKG

@node-ai/comfyui-local-adapter

Version:

node-ai comfyui local adapter

3 lines 144 kB
"use strict";var C=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var Zt=C(B=>{"use strict";var cr=Object.create,Oe=Object.defineProperty,dr=Object.getOwnPropertyDescriptor,pr=Object.getOwnPropertyNames,_r=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty,I=(n,t)=>()=>(n&&(t=n(n=0)),t),A=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),vr=(n,t)=>{for(var s in t)Oe(n,s,{get:t[s],enumerable:!0})},xt=(n,t,s,h)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of pr(t))!gr.call(n,u)&&u!==s&&Oe(n,u,{get:()=>t[u],enumerable:!(h=dr(t,u))||h.enumerable});return n},be=(n,t,s)=>(s=n!=null?cr(_r(n)):{},xt(t||!n||!n.__esModule?Oe(s,"default",{value:n,enumerable:!0}):s,n)),yr=n=>xt(Oe({},"__esModule",{value:!0}),n),Ye=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isNone=void 0;var t=s=>s==null;n.isNone=t}),mr=A(n=>{"use strict";var t=n&&n.__createBinding||(Object.create?function(h,u,f,g){g===void 0&&(g=f);var e=Object.getOwnPropertyDescriptor(u,f);(!e||("get"in e?!u.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return u[f]}}),Object.defineProperty(h,g,e)}:function(h,u,f,g){g===void 0&&(g=f),h[g]=u[f]}),s=n&&n.__exportStar||function(h,u){for(var f in h)f!=="default"&&!Object.prototype.hasOwnProperty.call(u,f)&&t(u,h,f)};Object.defineProperty(n,"__esModule",{value:!0}),s(Ye(),n)});function Nt(){return se>oe.length-16&&(It.default.randomFillSync(oe),se=0),oe.slice(se,se+=16)}var It,oe,se,kt=I(()=>{It=be(require("crypto")),oe=new Uint8Array(256),se=oe.length}),At,Er=I(()=>{At=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function Sr(n){return typeof n=="string"&&At.test(n)}var ae,Ce=I(()=>{Er(),ae=Sr});function Te(n,t=0){return N[n[t+0]]+N[n[t+1]]+N[n[t+2]]+N[n[t+3]]+"-"+N[n[t+4]]+N[n[t+5]]+"-"+N[n[t+6]]+N[n[t+7]]+"-"+N[n[t+8]]+N[n[t+9]]+"-"+N[n[t+10]]+N[n[t+11]]+N[n[t+12]]+N[n[t+13]]+N[n[t+14]]+N[n[t+15]]}function wr(n,t=0){let s=Te(n,t);if(!ae(s))throw TypeError("Stringified UUID is invalid");return s}var N,Lt,xe=I(()=>{Ce(),N=[];for(let n=0;n<256;++n)N.push((n+256).toString(16).slice(1));Lt=wr});function Or(n,t,s){let h=t&&s||0,u=t||new Array(16);n=n||{};let f=n.node||Ot,g=n.clockseq!==void 0?n.clockseq:qe;if(f==null||g==null){let l=n.random||(n.rng||Nt)();f==null&&(f=Ot=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),g==null&&(g=qe=(l[6]<<8|l[7])&16383)}let e=n.msecs!==void 0?n.msecs:Date.now(),i=n.nsecs!==void 0?n.nsecs:we+1,r=e-Se+(i-we)/1e4;if(r<0&&n.clockseq===void 0&&(g=g+1&16383),(r<0||e>Se)&&n.nsecs===void 0&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Se=e,we=i,qe=g,e+=122192928e5;let o=((e&268435455)*1e4+i)%4294967296;u[h++]=o>>>24&255,u[h++]=o>>>16&255,u[h++]=o>>>8&255,u[h++]=o&255;let a=e/4294967296*1e4&268435455;u[h++]=a>>>8&255,u[h++]=a&255,u[h++]=a>>>24&15|16,u[h++]=a>>>16&255,u[h++]=g>>>8|128,u[h++]=g&255;for(let l=0;l<6;++l)u[h+l]=f[l];return t||Te(u)}var Ot,qe,Se,we,Pt,br=I(()=>{kt(),xe(),Se=0,we=0,Pt=Or});function Cr(n){if(!ae(n))throw TypeError("Invalid UUID");let t,s=new Uint8Array(16);return s[0]=(t=parseInt(n.slice(0,8),16))>>>24,s[1]=t>>>16&255,s[2]=t>>>8&255,s[3]=t&255,s[4]=(t=parseInt(n.slice(9,13),16))>>>8,s[5]=t&255,s[6]=(t=parseInt(n.slice(14,18),16))>>>8,s[7]=t&255,s[8]=(t=parseInt(n.slice(19,23),16))>>>8,s[9]=t&255,s[10]=(t=parseInt(n.slice(24,36),16))/1099511627776&255,s[11]=t/4294967296&255,s[12]=t>>>24&255,s[13]=t>>>16&255,s[14]=t>>>8&255,s[15]=t&255,s}var Je,Dt=I(()=>{Ce(),Je=Cr});function Tr(n){n=unescape(encodeURIComponent(n));let t=[];for(let s=0;s<n.length;++s)t.push(n.charCodeAt(s));return t}function Ut(n,t,s){function h(u,f,g,e){var i;if(typeof u=="string"&&(u=Tr(u)),typeof f=="string"&&(f=Je(f)),((i=f)===null||i===void 0?void 0:i.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let r=new Uint8Array(16+u.length);if(r.set(f),r.set(u,f.length),r=s(r),r[6]=r[6]&15|t,r[8]=r[8]&63|128,g){e=e||0;for(let o=0;o<16;++o)g[e+o]=r[o];return g}return Te(r)}try{h.name=n}catch{}return h.DNS=Bt,h.URL=Rt,h}var Bt,Rt,Mt=I(()=>{xe(),Dt(),Bt="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Rt="6ba7b811-9dad-11d1-80b4-00c04fd430c8"});function xr(n){return Array.isArray(n)?n=Buffer.from(n):typeof n=="string"&&(n=Buffer.from(n,"utf8")),Ft.default.createHash("md5").update(n).digest()}var Ft,Gt,Nr=I(()=>{Ft=be(require("crypto")),Gt=xr}),bt,Wt,Ir=I(()=>{Mt(),Nr(),bt=Ut("v3",48,Gt),Wt=bt}),Ct,He,kr=I(()=>{Ct=be(require("crypto")),He={randomUUID:Ct.default.randomUUID}});function Ar(n,t,s){if(He.randomUUID&&!t&&!n)return He.randomUUID();n=n||{};let h=n.random||(n.rng||Nt)();if(h[6]=h[6]&15|64,h[8]=h[8]&63|128,t){s=s||0;for(let u=0;u<16;++u)t[s+u]=h[u];return t}return Te(h)}var jt,Lr=I(()=>{kr(),kt(),xe(),jt=Ar});function Pr(n){return Array.isArray(n)?n=Buffer.from(n):typeof n=="string"&&(n=Buffer.from(n,"utf8")),$t.default.createHash("sha1").update(n).digest()}var $t,zt,Dr=I(()=>{$t=be(require("crypto")),zt=Pr}),Tt,qt,Ur=I(()=>{Mt(),Dr(),Tt=Ut("v5",80,zt),qt=Tt}),Ht,Br=I(()=>{Ht="00000000-0000-0000-0000-000000000000"});function Rr(n){if(!ae(n))throw TypeError("Invalid UUID");return parseInt(n.slice(14,15),16)}var Vt,Mr=I(()=>{Ce(),Vt=Rr}),Yt={};vr(Yt,{NIL:()=>Ht,parse:()=>Je,stringify:()=>Lt,v1:()=>Pt,v3:()=>Wt,v4:()=>jt,v5:()=>qt,validate:()=>ae,version:()=>Vt});var Fr=I(()=>{br(),Ir(),Lr(),Ur(),Br(),Mr(),Ce(),xe(),Dt()}),Gr=A((n,t)=>{"use strict";var s=Object.prototype.hasOwnProperty,h="~";function u(){}Object.create&&(u.prototype=Object.create(null),new u().__proto__||(h=!1));function f(r,o,a){this.fn=r,this.context=o,this.once=a||!1}function g(r,o,a,l,c){if(typeof a!="function")throw new TypeError("The listener must be a function");var p=new f(a,l||r,c),d=h?h+o:o;return r._events[d]?r._events[d].fn?r._events[d]=[r._events[d],p]:r._events[d].push(p):(r._events[d]=p,r._eventsCount++),r}function e(r,o){--r._eventsCount===0?r._events=new u:delete r._events[o]}function i(){this._events=new u,this._eventsCount=0}i.prototype.eventNames=function(){var r=[],o,a;if(this._eventsCount===0)return r;for(a in o=this._events)s.call(o,a)&&r.push(h?a.slice(1):a);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(o)):r},i.prototype.listeners=function(r){var o=h?h+r:r,a=this._events[o];if(!a)return[];if(a.fn)return[a.fn];for(var l=0,c=a.length,p=new Array(c);l<c;l++)p[l]=a[l].fn;return p},i.prototype.listenerCount=function(r){var o=h?h+r:r,a=this._events[o];return a?a.fn?1:a.length:0},i.prototype.emit=function(r,o,a,l,c,p){var d=h?h+r:r;if(!this._events[d])return!1;var _=this._events[d],v=arguments.length,y,m;if(_.fn){switch(_.once&&this.removeListener(r,_.fn,void 0,!0),v){case 1:return _.fn.call(_.context),!0;case 2:return _.fn.call(_.context,o),!0;case 3:return _.fn.call(_.context,o,a),!0;case 4:return _.fn.call(_.context,o,a,l),!0;case 5:return _.fn.call(_.context,o,a,l,c),!0;case 6:return _.fn.call(_.context,o,a,l,c,p),!0}for(m=1,y=new Array(v-1);m<v;m++)y[m-1]=arguments[m];_.fn.apply(_.context,y)}else{var w=_.length,E;for(m=0;m<w;m++)switch(_[m].once&&this.removeListener(r,_[m].fn,void 0,!0),v){case 1:_[m].fn.call(_[m].context);break;case 2:_[m].fn.call(_[m].context,o);break;case 3:_[m].fn.call(_[m].context,o,a);break;case 4:_[m].fn.call(_[m].context,o,a,l);break;default:if(!y)for(E=1,y=new Array(v-1);E<v;E++)y[E-1]=arguments[E];_[m].fn.apply(_[m].context,y)}}return!0},i.prototype.on=function(r,o,a){return g(this,r,o,a,!1)},i.prototype.once=function(r,o,a){return g(this,r,o,a,!0)},i.prototype.removeListener=function(r,o,a,l){var c=h?h+r:r;if(!this._events[c])return this;if(!o)return e(this,c),this;var p=this._events[c];if(p.fn)p.fn===o&&(!l||p.once)&&(!a||p.context===a)&&e(this,c);else{for(var d=0,_=[],v=p.length;d<v;d++)(p[d].fn!==o||l&&!p[d].once||a&&p[d].context!==a)&&_.push(p[d]);_.length?this._events[c]=_.length===1?_[0]:_:e(this,c)}return this},i.prototype.removeAllListeners=function(r){var o;return r?(o=h?h+r:r,this._events[o]&&e(this,o)):(this._events=new u,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=h,i.EventEmitter=i,typeof t<"u"&&(t.exports=i)}),Jt=A(n=>{"use strict";var t=n&&n.__awaiter||function(d,_,v,y){function m(w){return w instanceof v?w:new v(function(E){E(w)})}return new(v||(v=Promise))(function(w,E){function S(b){try{x(y.next(b))}catch(M){E(M)}}function O(b){try{x(y.throw(b))}catch(M){E(M)}}function x(b){b.done?w(b.value):m(b.value).then(S,O)}x((y=y.apply(d,_||[])).next())})},s=n&&n.__classPrivateFieldGet||function(d,_,v,y){if(v==="a"&&!y)throw new TypeError("Private accessor was defined without a getter");if(typeof _=="function"?d!==_||!y:!_.has(d))throw new TypeError("Cannot read private member from an object whose class did not declare it");return v==="m"?y:v==="a"?y.call(d):y?y.value:_.get(d)},h=n&&n.__classPrivateFieldSet||function(d,_,v,y,m){if(y==="m")throw new TypeError("Private method is not writable");if(y==="a"&&!m)throw new TypeError("Private accessor was defined without a setter");if(typeof _=="function"?d!==_||!m:!_.has(d))throw new TypeError("Cannot write private member to an object whose class did not declare it");return y==="a"?m.call(d,v):m?m.value=v:_.set(d,v),v},u,f,g,e,i,r,o;Object.defineProperty(n,"__esModule",{value:!0}),n.ComfyUIWsClient=void 0;var a=(Fr(),yr(Yt)),l=Gr(),c=typeof window<"u",p=class{constructor(d){u.add(this),this.config=d,this.closed=!1,this.socketReconnectDelay=300,this.events=new l.EventEmitter,this.socketCallbacks={},f.set(this,null),g.set(this,1e3);let _=d?.serverAddress||"127.0.0.1:8188";_.endsWith("/")&&(_=_.substring(0,_.length-1));let v=d?.ssl?"s":"",y=_.split("://");if(y.length>1){let m=y[0];this.apiBaseUrl=`${m}://${y[1]}`,this.wsBaseUrl=`${m.replace("http","ws")}://${y[1]}`}else this.apiBaseUrl=`http${v}://${y[0]}`,this.wsBaseUrl=`ws${v}://${y[0]}`;if(this.user=d?.user||"",this.clientId=d?.clientId||(0,a.v4)(),d?.WebSocket)this.WebSocket=d.WebSocket;else{let m;if(c&&(typeof WebSocket<"u"?m=WebSocket:typeof MozWebSocket<"u"?m=MozWebSocket:typeof global<"u"?m=global.WebSocket||global.MozWebSocket:typeof window<"u"?m=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(m=self.WebSocket||self.MozWebSocket)),!m)throw new Error("WebSocket is not defined, please config it manual");this.WebSocket=m}if(d?.fetch)this.fetch=d.fetch;else if(globalThis.fetch)this.fetch=globalThis.fetch;else throw new Error("fetch is not defined, please config it manual")}apiURL(d){return`${this.apiBaseUrl}/${d}`}viewURL(d,_,v,y,m){let w=new URLSearchParams(Object.entries({filename:d,subfolder:_,type:v,preview:y,channel:m}).reduce((E,[S,O])=>(O!=null&&(E[S]=O.toString()),E),{})).toString();return`${this.apiBaseUrl}/view?${w}`}fetchApi(d,_){return t(this,void 0,void 0,function*(){var v;let y=Object.assign(Object.assign(Object.assign({},this.user?{"Comfy-User":this.user}:{}),{Accept:"*/*"}),(v=_?.headers)!==null&&v!==void 0?v:{}),m=this.apiURL(d);return this.doFetch(m,Object.assign(Object.assign({},_),{headers:y}))})}addEventListener(d,_,v){return this.events.on(d,_,v),()=>{this.events.off(d,_)}}addOnceEventListener(d,_,v){return this.events.once(d,_,v),()=>{this.events.off(d,_)}}removeEventListener(d,_){this.events.off(d,_)}on(d,_,v){return this.addEventListener(d,_,v)}once(d,_,v){return this.addOnceEventListener(d,_,v)}off(d,_){return this.removeEventListener(d,_)}addSocketCallback(d,_,v,y){return this.socketCallbacks[_]=v,d.addEventListener(_,v,y),()=>{delete this.socketCallbacks[_],d.removeEventListener(_,v,y)}}removeSocketCallbacks(){if(this.socket)for(let d in this.socketCallbacks){let _=this.socketCallbacks[d];this.socket.removeEventListener(d,_)}this.socketCallbacks={}}loadImageData(d){let _=new DataView(d).getUint32(0),v=d.slice(4);switch(_){case 1:let y=new DataView(v).getUint32(0),m;switch(y){case 1:default:m="image/jpeg";break;case 2:m="image/png";break}return{imageBuf:d.slice(8),imageMime:m};case 2:default:throw new Error(`Unknown binary websocket message of type ${_}`)}}close(){this.closed||(this.closed=!0,this.disconnect(),this.events.removeAllListeners())}connect({polling:d={enabled:!1},websocket:_={enabled:!0}}={}){var v;return d?.enabled&&(h(this,g,(v=d.interval)!==null&&v!==void 0?v:s(this,g,"f"),"f"),s(this,u,"m",e).call(this)),_?.enabled&&s(this,u,"m",i).call(this),this}waitForConnect(d={}){return new Promise((_,v)=>{if(this.socket&&this.socket.readyState===1){_();return}let y=()=>{this.off("open",m),this.off("error",w)},m=()=>{y(),_()},w=E=>{y(),v(E)};this.on("open",m),this.on("error",w),this.connect(d)})}disconnect(){s(this,u,"m",r).call(this),s(this,u,"m",o).call(this)}log(d,_){var v;if(!((v=this.config)===null||v===void 0)&&v.debug){let{logger:y}=this.config;y?y(d,_):console[d](_)}}doFetch(d,_){return this.fetch(d,_)}};n.ComfyUIWsClient=p,f=new WeakMap,g=new WeakMap,u=new WeakSet,e=function(){s(this,f,"f")||h(this,f,setInterval(()=>t(this,void 0,void 0,function*(){try{let d=yield(yield this.fetchApi("/prompt")).json();this.events.emit("status",d)}catch{this.events.emit("status",null)}}),s(this,g,"f")),"f")},i=function d(_=!1){if(this.socket||this.closed)return;let v=!1,y="";this.clientId&&(y="?clientId="+this.clientId);let m=`${this.wsBaseUrl}/ws${y}`;this.log("info",`Connecting to url: ${m}`),this.socket=new this.WebSocket(m),this.socket.binaryType="arraybuffer",this.addSocketCallback(this.socket,"open",()=>{this.log("info","Connection open"),v=!0,_?this.events.emit("reconnected"):this.events.emit("open")}),this.addSocketCallback(this.socket,"error",E=>{this.log("error",`WebSockets error: ${E}`),this.socket&&this.socket.close(),this.events.emit("error",E),!_&&!v&&s(this,u,"m",e).call(this)}),this.addSocketCallback(this.socket,"close",()=>{this.log("info","Connection closed"),setTimeout(()=>{this.socket=null,s(this,u,"m",d).call(this,!0)},this.socketReconnectDelay),v&&(this.events.emit("status",null),this.events.emit("reconnecting"))});let w=E=>typeof E.data=="string"?!1:c?E.data instanceof Blob:!!(ArrayBuffer&&E.data instanceof ArrayBuffer||Buffer&&Buffer.isBuffer(E.data));this.addSocketCallback(this.socket,"message",E=>{typeof E.data!="string"?this.log("debug","Received binary data"):this.log("debug",`Received data: ${E.data.toString()}`),this.events.emit("message",E.data);try{if(w(E)){let{imageBuf:S,imageMime:O}=this.loadImageData(E.data);this.events.emit("image_data",S,O)}else{let S=JSON.parse(E.data);switch(S.type){case"status":S.data.sid&&(this.clientId=S.data.sid),this.events.emit("status",S.data.status);break;case"execution_start":this.events.emit("execution_start",S.data);break;case"execution_interrupted":this.events.emit("execution_interrupted",S.data);break;case"executing":this.events.emit(S.data.node?"executing":"execution_finish",S.data);break;case"execution_cached":this.events.emit("execution_cached",S.data);break;case"progress":this.events.emit("progress",S.data);break;case"executed":this.events.emit("executed",S.data);break;case"execution_error":this.events.emit("execution_error",S.data);break;default:let{type:x,data:b}=S;this.events.emit(x,b)}let{type:O}=S;this.events.eventNames().includes(O)||this.events.emit("unhandled",O,S.data)}}catch(S){this.log("warn",`exception when process message: ${S} [${E.data}]`)}})},r=function(){var d;let{socket:_}=this;if(_){if(this.socket=null,_.readyState===1){this.log("info","Closing connection");try{_.close(1e3,"Client closed")}catch{}}this.removeSocketCallbacks(),"removeAllListeners"in _&&((d=_.removeAllListeners)===null||d===void 0||d.call(_))}},o=function(){s(this,f,"f")!==null&&(clearInterval(s(this,f,"f")),h(this,f,null,"f"))}}),Wr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CachedFn=void 0;var t=class Ve{constructor(){this._cached=globalThis[Ve.__KEY__]||new Map,globalThis[Ve.__KEY__]=this._cached}clear(){this._cached.clear()}get(u){return this._cached.get(u)}set(u,f){this._cached.set(u,f)}};t.__KEY__="__GLOBAL_CACHE__";var s=class Xt{constructor(u,f){var g,e;this._cached=new t,this.cache_ns="",this.expire_time_ms=(g=f?.expire_time)!==null&&g!==void 0?g:Xt._defaultExpire,this.enabled=(e=f?.enabled)!==null&&e!==void 0?e:!0,this.cache_ns=u}reset(){this._cached.clear()}_hashArgs(u){try{return JSON.stringify(u)}catch{return u.toString()}}warp(u,f){return this.enabled?(...g)=>{let e=Date.now(),i=this._hashArgs(g),r=`${this.cache_ns}:${u}:${i}`,o=this._cached.get(r);if(o&&o.expire>e)return o.result;let a=f(...g);return this._cached.set(r,{result:a,expire:e+this.expire_time_ms}),a}:f}};n.CachedFn=s,s._defaultExpire=60*1e3}),Kt=A(n=>{"use strict";var t=n&&n.__awaiter||function(a,l,c,p){function d(_){return _ instanceof c?_:new c(function(v){v(_)})}return new(c||(c=Promise))(function(_,v){function y(E){try{w(p.next(E))}catch(S){v(S)}}function m(E){try{w(p.throw(E))}catch(S){v(S)}}function w(E){E.done?_(E.value):d(E.value).then(y,m)}w((p=p.apply(a,l||[])).next())})},s=n&&n.__classPrivateFieldSet||function(a,l,c,p,d){if(p==="m")throw new TypeError("Private method is not writable");if(p==="a"&&!d)throw new TypeError("Private accessor was defined without a setter");if(typeof l=="function"?a!==l||!d:!l.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return p==="a"?d.call(a,c):d?d.value=c:l.set(a,c),c},h=n&&n.__classPrivateFieldGet||function(a,l,c,p){if(c==="a"&&!p)throw new TypeError("Private accessor was defined without a getter");if(typeof l=="function"?a!==l||!p:!l.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return c==="m"?p:c==="a"?p.call(a):p?p.value:l.get(a)},u;Object.defineProperty(n,"__esModule",{value:!0}),n.ComfyUIApiClient=void 0;var f=Ye(),g=Jt(),e=Wr(),i=require("node:assert");function r(a){return t(this,arguments,void 0,function*(l,c="json"){try{let p,d=l.headers.get("content-length");if(d&&parseInt(d)>0){if(p=yield l[c](),p&&"error"in p)throw new Error(JSON.stringify(p));return p}return}catch(p){throw new Error(p.message)}})}var o=class extends g.ComfyUIWsClient{constructor(a){super(a),u.set(this,void 0);let l=`${this.apiBaseUrl}`;s(this,u,new e.CachedFn(l),"f")}getExtensions(){return t(this,void 0,void 0,function*(){let a=()=>t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/extensions`);return r(l)});return h(this,u,"f").warp("extensions",a)()})}getEmbeddings(){return t(this,void 0,void 0,function*(){let a=()=>t(this,void 0,void 0,function*(){let l=yield this.fetchApi(`${this.apiBaseUrl}/embeddings`);return r(l)});return h(this,u,"f").warp("embeddings",a)()})}getObjectInfo(a){return t(this,void 0,void 0,function*(){let l=()=>t(this,void 0,void 0,function*(){let c=yield this.doFetch(`${this.apiBaseUrl}/object_info`+(a?`/${a}`:""));return r(c)});return h(this,u,"f").warp("object_info",l)()})}resetCache(){h(this,u,"f").reset()}getSettings(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/settings`);return r(a)})}getSetting(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/settings/${encodeURIComponent(a)}`);return r(l)})}putSettings(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return r(l)})}putSetting(a,l){return t(this,void 0,void 0,function*(){let c=yield this.doFetch(`${this.apiBaseUrl}/settings/${encodeURIComponent(a)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});return r(c)})}getUsers(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/users`);return r(a)})}createUser(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/users`,{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:a})});return r(l)})}getUserData(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/userdata/${encodeURIComponent(a)}`);return r(l)})}putUserData(a,l){return t(this,void 0,void 0,function*(){let c=yield this.doFetch(`${this.apiBaseUrl}/userdata/${encodeURIComponent(a)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:typeof l=="object"?JSON.stringify(l):l});return r(c)})}getSystemStats(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/system_stats`);return r(a)})}getPrompt(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/prompt`);return r(a)})}getHistory(a){return t(this,arguments,void 0,function*(l,c=10){let p;l?.length?p=`/${l}`:p=`?max_items=${c}`;let d=yield this.doFetch(`${this.apiBaseUrl}/history${p}`);return r(d)})}updateHistory(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/history`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(a)});yield r(l)})}getQueue(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/queue`);return r(a)})}updateQueue(a){return t(this,void 0,void 0,function*(){let l=yield this.doFetch(`${this.apiBaseUrl}/queue`,{method:"post",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(a)});return r(l,"text")})}uploadImage(a,l,c,p,d){return t(this,void 0,void 0,function*(){let _=new FormData;_.append("image",new Blob([a]),l),c!=null&&_.append("overwrite",c.toString()),p&&_.append("type",p),d&&_.append("subfolder",d);let v=yield this.doFetch(`${this.apiBaseUrl}/upload/image`,{method:"POST",body:_});return r(v)})}uploadMask(a,l,c,p,d,_){return t(this,void 0,void 0,function*(){let v=new FormData;v.append("image",new Blob([a]),l),v.append("original_ref",JSON.stringify(c)),p!==void 0&&v.append("overwrite",p.toString()),d&&v.append("type",d),_&&v.append("subfolder",_);let y=yield this.doFetch(`${this.apiBaseUrl}/upload/mask`,{method:"POST",body:v});return r(y)})}viewImage(a,l,c,p,d){return t(this,arguments,void 0,function*(_,v,y,m,w,E=!0){let S=yield this.doFetch(this.viewURL(_,y,v,m,w));return E?S.arrayBuffer():S.blob()})}viewMetadata(a,l){return t(this,void 0,void 0,function*(){let c=yield this.doFetch(`${this.apiBaseUrl}/view_metadata/${a}?filename=${l}`);return r(c)})}queuePrompt(a,l){return t(this,arguments,void 0,function*(c,p,d=0){let _={client_id:this.clientId,prompt:c,extra_data:{extra_pnginfo:{workflow:p}}};d===-1?_.front=!0:d!==0&&(_.number=d);let v=yield this.doFetch(`${this.apiBaseUrl}/prompt`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(_)});return r(v)})}interrupt(){return t(this,void 0,void 0,function*(){let a=yield this.doFetch(`${this.apiBaseUrl}/interrupt`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}});yield r(a)})}free(a,l){return t(this,void 0,void 0,function*(){let c=yield this.doFetch(`${this.apiBaseUrl}/free`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({unload_models:a,free_memory:l})});yield r(c)})}_extract_pose_json(a){try{let l=a.output;if("openpose_json"in l)return JSON.parse(l.openpose_json[0])}catch(l){this.log("warn",`Error processing message, error=${l}, msg=${a}`)}return null}_validate_executed_node(a,l){try{let c=a.output;i(!("openpose_json"in c));let p=c.images;if(p.length!==l&&this.log("warn",`Received number of images does not match: ${p.length} !== ${l}`),p.length>0&&p[0].type==="output")return!0}catch(c){return this.log("warn",`Error processing message, error=${c}, msg=${a}`),!1}}waitForPromptWebSocket(a){return t(this,void 0,void 0,function*(){let l={images:[],outputs:{},prompt_id:a};return new Promise((c,p)=>{let d=!1,_=this.on("image_data",E=>{l.images.push({node:"",type:"buff",data:E})}),v=this.on("execution_finish",E=>{E.prompt_id===a&&(d=!0,w(),c(l))}),y=this.on("executed",E=>{let{node:S,prompt_id:O,output:x}=E;if(d||O!==a)return;let b=this._extract_pose_json(E);b&&(l.pose_json=b);let{images:M=[]}=x||{};for(let Ee of M){let{filename:$e,subfolder:ze,type:wt}=Ee||{};(0,f.isNone)($e)||(0,f.isNone)(ze)||wt!=="output"||l.images.push({node:S,type:"url",filename:$e,subfolder:ze,dir:"output",data:this.viewURL($e,ze,wt)})}}),m=this.on("execution_error",E=>{let S=E.exception_message||"execution_error",O=E.traceback||["no traceback"];this.log("error",`${S} ${O.join(` `)}`),w(),p(new Error(S))});function w(){_(),v(),y(),m()}})})}randomizePrompt(a){for(let l of Object.values(a))l.class_type==="KSampler"&&(l.inputs.seed=Math.floor(Math.random()*(2**32-1)))}_enqueue_prompt(a,l){return l?.disable_random_seed||this.randomizePrompt(a),this.queuePrompt(a,l?.workflow,0)}enqueue(a,l){return t(this,void 0,void 0,function*(){let c=(yield this._enqueue_prompt(a,l)).prompt_id,p;l?.progress&&(p=this.on("progress",d=>{var _;d.prompt_id===c&&((_=l?.progress)===null||_===void 0||_.call(l,d))}));try{return yield this.waitForPromptWebSocket(c)}finally{p?.()}})}execPromptAndWaitOutputs(a,l){return t(this,void 0,void 0,function*(){if(!this.socket)throw new Error("WebSocket client is not connected. Please call connect() before interacting.");let c=(yield this.queuePrompt(a)).prompt_id;return new Promise((p,d)=>{var _;let v={},y=m=>t(this,void 0,void 0,function*(){var w;if(typeof m.data=="string")try{let E=JSON.parse(m.data);if(E.type==="executing"){let S=E.data;if(!S.node){let O=S.prompt_id;if(this.log("info",`done executing prompt (ID: ${O})`),S.prompt_id===c){let x=(yield this.getHistory(c))[c];for(let b of Object.keys(x.outputs))if(b===l.toString()){v=x.outputs[b];break}return(w=this.socket)===null||w===void 0||w.removeEventListener("message",y),p(v)}}}}catch(E){return d(E)}});(_=this.socket)===null||_===void 0||_.addEventListener("message",y)})})}};n.ComfyUIApiClient=o,u=new WeakMap}),jr=A(n=>{"use strict";var t=n&&n.__awaiter||function(f,g,e,i){function r(o){return o instanceof e?o:new e(function(a){a(o)})}return new(e||(e=Promise))(function(o,a){function l(d){try{p(i.next(d))}catch(_){a(_)}}function c(d){try{p(i.throw(d))}catch(_){a(_)}}function p(d){d.done?o(d.value):r(d.value).then(l,c)}p((i=i.apply(f,g||[])).next())})};Object.defineProperty(n,"__esModule",{value:!0}),n.ComfyUIHApiClient=void 0;var s=Kt(),h=Ye(),u=class extends s.ComfyUIApiClient{constructor(f){super(f)}getSamplers(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).KSampler?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.sampler_name)===null||e===void 0?void 0:e[0])||[]})}getSchedulers(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).KSampler?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.scheduler)===null||e===void 0?void 0:e[0])||[]})}getSDModels(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).CheckpointLoaderSimple?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.ckpt_name)===null||e===void 0?void 0:e[0])||[]})}getControlNetModels(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).ControlNetLoader?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.control_net_name)===null||e===void 0?void 0:e[0])||[]})}getUpscaleModels(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).UpscaleModelLoader?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.model_name)===null||e===void 0?void 0:e[0])||[]})}getHyperNetworks(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).HypernetworkLoader?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.hypernetwork_name)===null||e===void 0?void 0:e[0])||[]})}getLoRAs(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).LoraLoader?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.lora_name)===null||e===void 0?void 0:e[0])||[]})}getVAEs(){return t(this,void 0,void 0,function*(){var f,g,e;return((e=(g=(f=(yield this.getObjectInfo()).VAELoader?.input)===null||f===void 0?void 0:f.required)===null||g===void 0?void 0:g.vae_name)===null||e===void 0?void 0:e[0])||[]})}getPromptStatus(f){return t(this,void 0,void 0,function*(){let{queue_running:g,queue_pending:e}=yield this.getQueue(),i=g.some(o=>o?.[1]===f),r=e.some(o=>o?.[1]===f);return{running:i,pending:r,done:!i&&!r}})}getPromptOutputs(f){return t(this,void 0,void 0,function*(){let g=(yield this.getHistory())[f];if(!g)throw new Error(`Prompt [${f}] not found in history`);let e=g.status.status_str;if(e!=="success")throw new Error(`Prompt [${f}] failed with status: ${e}`);return g.outputs})}getPromptImageResult(f){return t(this,void 0,void 0,function*(){let g=yield this.getPromptOutputs(f);return{images:Object.values(g).flatMap(e=>e.images||[]).map(e=>{let{filename:i,subfolder:r,type:o}=e;return(0,h.isNone)(i)||(0,h.isNone)(r)||o!=="output"?null:this.viewURL(i,r,o)}).filter(Boolean).map(e=>({type:"url",data:e})),prompt_id:f}})}waitForPrompt(f){return t(this,arguments,void 0,function*(g,e=1e3){let i=yield this.getPromptStatus(g);for(;!i.done;)yield new Promise(r=>setTimeout(r,e)),i=yield this.getPromptStatus(g)})}enqueue_polling(f,g){return t(this,void 0,void 0,function*(){let e=(yield this._enqueue_prompt(f,g)).prompt_id;return yield this.waitForPrompt(e,g?.polling_ms),this.getPromptImageResult(e)})}};n.ComfyUIHApiClient=u}),$r=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),zr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),qr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),Hr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),Vr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),Yr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),Jr=A(n=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0})}),Xr=A(n=>{"use strict";var t=n&&n.__createBinding||(Object.create?function(h,u,f,g){g===void 0&&(g=f);var e=Object.getOwnPropertyDescriptor(u,f);(!e||("get"in e?!u.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return u[f]}}),Object.defineProperty(h,g,e)}:function(h,u,f,g){g===void 0&&(g=f),h[g]=u[f]}),s=n&&n.__exportStar||function(h,u){for(var f in h)f!=="default"&&!Object.prototype.hasOwnProperty.call(u,f)&&t(u,h,f)};Object.defineProperty(n,"__esModule",{value:!0}),s($r(),n),s(zr(),n),s(qr(),n),s(Hr(),n),s(Vr(),n),s(Yr(),n),s(Jr(),n)}),Kr=B&&B.__createBinding||(Object.create?function(n,t,s,h){h===void 0&&(h=s);var u=Object.getOwnPropertyDescriptor(t,s);(!u||("get"in u?!t.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(n,h,u)}:function(n,t,s,h){h===void 0&&(h=s),n[h]=t[s]}),ue=B&&B.__exportStar||function(n,t){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(t,s)&&Kr(t,n,s)};Object.defineProperty(B,"__esModule",{value:!0});ue(mr(),B);ue(Jt(),B);ue(Kt(),B);ue(jr(),B);ue(Xr(),B)});var z=C((Is,Qt)=>{"use strict";Qt.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var he=C((ks,Ne)=>{"use strict";var{EMPTY_BUFFER:Zr}=z(),Xe=Buffer[Symbol.species];function Qr(n,t){if(n.length===0)return Zr;if(n.length===1)return n[0];let s=Buffer.allocUnsafe(t),h=0;for(let u=0;u<n.length;u++){let f=n[u];s.set(f,h),h+=f.length}return h<t?new Xe(s.buffer,s.byteOffset,h):s}function ei(n,t,s,h,u){for(let f=0;f<u;f++)s[h+f]=n[f]^t[f&3]}function ti(n,t){for(let s=0;s<n.length;s++)n[s]^=t[s&3]}function en(n){return n.length===n.buffer.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.length)}function Ke(n){if(Ke.readOnly=!0,Buffer.isBuffer(n))return n;let t;return n instanceof ArrayBuffer?t=new Xe(n):ArrayBuffer.isView(n)?t=new Xe(n.buffer,n.byteOffset,n.byteLength):(t=Buffer.from(n),Ke.readOnly=!1),t}Ne.exports={concat:Qr,mask:ei,toArrayBuffer:en,toBuffer:Ke,unmask:ti};if(!process.env.WS_NO_BUFFER_UTIL)try{let n=require("bufferutil");Ne.exports.mask=function(t,s,h,u,f){f<48?ei(t,s,h,u,f):n.mask(t,s,h,u,f)},Ne.exports.unmask=function(t,s){t.length<32?ti(t,s):n.unmask(t,s)}}catch{}});var ni=C((As,ri)=>{"use strict";var ii=Symbol("kDone"),Ze=Symbol("kRun"),Qe=class{constructor(t){this[ii]=()=>{this.pending--,this[Ze]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[Ze]()}[Ze](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[ii])}}};ri.exports=Qe});var ce=C((Ls,ui)=>{"use strict";var le=require("zlib"),si=he(),tn=ni(),{kStatusCode:oi}=z(),rn=Buffer[Symbol.species],nn=Buffer.from([0,0,255,255]),Ae=Symbol("permessage-deflate"),G=Symbol("total-length"),fe=Symbol("callback"),q=Symbol("buffers"),ke=Symbol("error"),Ie,et=class{constructor(t,s,h){if(this._maxPayload=h|0,this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!s,this._deflate=null,this._inflate=null,this.params=null,!Ie){let u=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Ie=new tn(u)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[fe];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let s=this._options,h=t.find(u=>!(s.serverNoContextTakeover===!1&&u.server_no_context_takeover||u.server_max_window_bits&&(s.serverMaxWindowBits===!1||typeof s.serverMaxWindowBits=="number"&&s.serverMaxWindowBits>u.server_max_window_bits)||typeof s.clientMaxWindowBits=="number"&&!u.client_max_window_bits));if(!h)throw new Error("None of the extension offers can be accepted");return s.serverNoContextTakeover&&(h.server_no_context_takeover=!0),s.clientNoContextTakeover&&(h.client_no_context_takeover=!0),typeof s.serverMaxWindowBits=="number"&&(h.server_max_window_bits=s.serverMaxWindowBits),typeof s.clientMaxWindowBits=="number"?h.client_max_window_bits=s.clientMaxWindowBits:(h.client_max_window_bits===!0||s.clientMaxWindowBits===!1)&&delete h.client_max_window_bits,h}acceptAsClient(t){let s=t[0];if(this._options.clientNoContextTakeover===!1&&s.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!s.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(s.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&s.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return s}normalizeParams(t){return t.forEach(s=>{Object.keys(s).forEach(h=>{let u=s[h];if(u.length>1)throw new Error(`Parameter "${h}" must have only a single value`);if(u=u[0],h==="client_max_window_bits"){if(u!==!0){let f=+u;if(!Number.isInteger(f)||f<8||f>15)throw new TypeError(`Invalid value for parameter "${h}": ${u}`);u=f}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${h}": ${u}`)}else if(h==="server_max_window_bits"){let f=+u;if(!Number.isInteger(f)||f<8||f>15)throw new TypeError(`Invalid value for parameter "${h}": ${u}`);u=f}else if(h==="client_no_context_takeover"||h==="server_no_context_takeover"){if(u!==!0)throw new TypeError(`Invalid value for parameter "${h}": ${u}`)}else throw new Error(`Unknown parameter "${h}"`);s[h]=u})}),t}decompress(t,s,h){Ie.add(u=>{this._decompress(t,s,(f,g)=>{u(),h(f,g)})})}compress(t,s,h){Ie.add(u=>{this._compress(t,s,(f,g)=>{u(),h(f,g)})})}_decompress(t,s,h){let u=this._isServer?"client":"server";if(!this._inflate){let f=`${u}_max_window_bits`,g=typeof this.params[f]!="number"?le.Z_DEFAULT_WINDOWBITS:this.params[f];this._inflate=le.createInflateRaw({...this._options.zlibInflateOptions,windowBits:g}),this._inflate[Ae]=this,this._inflate[G]=0,this._inflate[q]=[],this._inflate.on("error",on),this._inflate.on("data",ai)}this._inflate[fe]=h,this._inflate.write(t),s&&this._inflate.write(nn),this._inflate.flush(()=>{let f=this._inflate[ke];if(f){this._inflate.close(),this._inflate=null,h(f);return}let g=si.concat(this._inflate[q],this._inflate[G]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[G]=0,this._inflate[q]=[],s&&this.params[`${u}_no_context_takeover`]&&this._inflate.reset()),h(null,g)})}_compress(t,s,h){let u=this._isServer?"server":"client";if(!this._deflate){let f=`${u}_max_window_bits`,g=typeof this.params[f]!="number"?le.Z_DEFAULT_WINDOWBITS:this.params[f];this._deflate=le.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:g}),this._deflate[G]=0,this._deflate[q]=[],this._deflate.on("data",sn)}this._deflate[fe]=h,this._deflate.write(t),this._deflate.flush(le.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let f=si.concat(this._deflate[q],this._deflate[G]);s&&(f=new rn(f.buffer,f.byteOffset,f.length-4)),this._deflate[fe]=null,this._deflate[G]=0,this._deflate[q]=[],s&&this.params[`${u}_no_context_takeover`]&&this._deflate.reset(),h(null,f)})}};ui.exports=et;function sn(n){this[q].push(n),this[G]+=n.length}function ai(n){if(this[G]+=n.length,this[Ae]._maxPayload<1||this[G]<=this[Ae]._maxPayload){this[q].push(n);return}this[ke]=new RangeError("Max payload size exceeded"),this[ke].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[ke][oi]=1009,this.removeListener("data",ai),this.reset()}function on(n){this[Ae]._inflate=null,n[oi]=1007,this[fe](n)}});var de=C((Ps,Le)=>{"use strict";var{isUtf8:hi}=require("buffer"),an=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function un(n){return n>=1e3&&n<=1014&&n!==1004&&n!==1005&&n!==1006||n>=3e3&&n<=4999}function tt(n){let t=n.length,s=0;for(;s<t;)if(!(n[s]&128))s++;else if((n[s]&224)===192){if(s+1===t||(n[s+1]&192)!==128||(n[s]&254)===192)return!1;s+=2}else if((n[s]&240)===224){if(s+2>=t||(n[s+1]&192)!==128||(n[s+2]&192)!==128||n[s]===224&&(n[s+1]&224)===128||n[s]===237&&(n[s+1]&224)===160)return!1;s+=3}else if((n[s]&248)===240){if(s+3>=t||(n[s+1]&192)!==128||(n[s+2]&192)!==128||(n[s+3]&192)!==128||n[s]===240&&(n[s+1]&240)===128||n[s]===244&&n[s+1]>143||n[s]>244)return!1;s+=4}else return!1;return!0}Le.exports={isValidStatusCode:un,isValidUTF8:tt,tokenChars:an};if(hi)Le.exports.isValidUTF8=function(n){return n.length<24?tt(n):hi(n)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let n=require("utf-8-validate");Le.exports.isValidUTF8=function(t){return t.length<32?tt(t):n(t)}}catch{}});var ot=C((Ds,gi)=>{"use strict";var{Writable:hn}=require("stream"),li=ce(),{BINARY_TYPES:ln,EMPTY_BUFFER:fi,kStatusCode:fn,kWebSocket:cn}=z(),{concat:it,toArrayBuffer:dn,unmask:pn}=he(),{isValidStatusCode:_n,isValidUTF8:ci}=de(),Pe=Buffer[Symbol.species],D=0,di=1,pi=2,_i=3,rt=4,nt=5,De=6,st=class extends hn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||ln[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[cn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=D}_write(t,s,h){if(this._opcode===8&&this._state==D)return h();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(h)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t<this._buffers[0].length){let h=this._buffers[0];return this._buffers[0]=new Pe(h.buffer,h.byteOffset+t,h.length-t),new Pe(h.buffer,h.byteOffset,t)}let s=Buffer.allocUnsafe(t);do{let h=this._buffers[0],u=s.length-t;t>=h.length?s.set(this._buffers.shift(),u):(s.set(new Uint8Array(h.buffer,h.byteOffset,t),u),this._buffers[0]=new Pe(h.buffer,h.byteOffset+t,h.length-t)),t-=h.length}while(t>0);return s}startLoop(t){this._loop=!0;do switch(this._state){case D:this.getInfo(t);break;case di:this.getPayloadLength16(t);break;case pi:this.getPayloadLength64(t);break;case _i:this.getMask();break;case rt:this.getData(t);break;case nt:case De:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if(s[0]&48){let u=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(u);return}let h=(s[0]&64)===64;if(h&&!this._extensions[li.extensionName]){let u=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(u);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(h){let u=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(u);return}if(!this._fragmented){let u=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(u);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let u=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(u);return}this._compressed=h}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let u=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(u);return}if(h){let u=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(u);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let u=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(u);return}}else{let u=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(u);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let u=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(u);return}}else if(this._masked){let u=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(u);return}this._payloadLength===126?this._state=di:this._payloadLength===127?this._state=pi:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),h=s.readUInt32BE(0);if(h>Math.pow(2,21)-1){let u=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(u);return}this._payloadLength=h*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let s=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(s);return}this._masked?this._state=_i:this._state=rt}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=rt}getData(t){let s=fi;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}s=this.consume(this._payloadLength),this._masked&&this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3]&&pn(s,this._mask)}if(this._opcode>7){this.controlMessage(s,t);return}if(this._compressed){this._state=nt,this.decompress(s,t);return}s.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(s)),this.dataMessage(t)}decompress(t,s){this._extensions[li.extensionName].decompress(t,this._fin,(u,f)=>{if(u)return s(u);if(f.length){if(this._messageLength+=f.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let g=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(g);return}this._fragments.push(f)}this.dataMessage(s),this._state===D&&this.startLoop(s)})}dataMessage(t){if(!this._fin){this._state=D;return}let s=this._messageLength,h=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let u;this._binaryType==="nodebuffer"?u=it(h,s):this._binaryType==="arraybuffer"?u=dn(it(h,s)):u=h,this._allowSynchronousEvents?(this.emit("message",u,!0),this._state=D):(this._state=De,setImmediate(()=>{this.emit("message",u,!0),this._state=D,this.startLoop(t)}))}else{let u=it(h,s);if(!this._skipUTF8Validation&&!ci(u)){let f=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(f);return}this._state===nt||this._allowSynchronousEvents?(this.emit("message",u,!1),this._state=D):(this._state=De,setImmediate(()=>{this.emit("message",u,!1),this._state=D,this.startLoop(t)}))}}controlMessage(t,s){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,fi),this.end();else{let h=t.readUInt16BE(0);if(!_n(h)){let f=this.createError(RangeError,`invalid status code ${h}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(f);return}let u=new Pe(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!ci(u)){let f=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(f);return}this._loop=!1,this.emit("conclude",h,u),this.end()}this._state=D;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=D):(this._state=De,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=D,this.startLoop(s)}))}createError(t,s,h,u,f){this._loop=!1,this._errored=!0;let g=new t(h?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(g,this.createError),g.code=f,g[fn]=u,g}};gi.exports=st});var ut=C((Bs,mi)=>{"use strict";var{Duplex:Us}=require("stream"),{randomFillSync:gn}=require("crypto"),vi=ce(),{EMPTY_BUFFER:vn}=z(),{isValidStatusCode:yn}=de(),{mask:yi,toBuffer:te}=he(),R=Symbol("kByteLength"),mn=Buffer.alloc(4),Ue=8*1024,K,ie=Ue,at=class n{constructor(t,s,h){this._extensions=s||{},h&&(this._generateMask=h,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(t,s){let h,u=!1,f=2,g=!1;s.mask&&(h=s.maskBuffer||mn,s.generateMask?s.generateMask(h):(ie===Ue&&(K===void 0&&(K=Buffer.alloc(Ue)),gn(K,0,Ue),ie=0),h[0]=K[ie++],h[1]=K[ie++],h[2]=K[ie++],h[3]=K[ie++]),g=(h[0]|h[1]|h[2]|h[3])===0,f=6);let e;typeof t=="string"?(!s.mask||g)&&s[R]!==void 0?e=s[R]:(t=Buffer.from(t),e=t.length):(e=t.length,u=s.mask&&s.readOnly&&!g);let i=e;e>=65536?(f+=8,i=127):e>125&&(f+=2,i=126);let r=Buffer.allocUnsafe(u?e+f:f);return r[0]=s.fin?s.opcode|128:s.opcode,s.rsv1&&(r[0]|=64),r[1]=i,i===126?r.writeUInt16BE(e,2):i===127&&(r[2]=r[3]=0,r.writeUIntBE(e,4,6)),s.mask?(r[1]|=128,r[f-4]=h[0],r[f-3]=h[1],r[f-2]=h[2],r[f-1]=h[3],g?[r,t]:u?(yi(t,h,r,f,e),[r]):(yi(t,h,t,0,e),[r,t])):[r,t]}close(t,s,h,u){let f;if(t===void 0)f=vn;else{if(typeof t!="number"||!yn(t))throw new TypeError("First argument must be a valid error code number");if(s===void 0||!s.length)f=Buffer.allocUnsafe(2),f.writeUInt16BE(t,0);else{let e=Buffer.byteLength(s);if(e>123)throw new RangeError("The message must not be greater than 123 bytes");f=Buffer.allocUnsafe(2+e),f.writeUInt16BE(t,0),typeof s=="string"?f.write(s,2):f.set(s,2)}}let g={[R]:f.length,fin:!0,generateMask:this._generateMask,mask:h,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._deflating?this.enqueue([this.dispatch,f,!1,g,u]):this.sendFrame(n.frame(f,g),u)}ping(t,s,h){let u,f;if(typeof t=="string"?(u=Buffer.byteLength(t),f=!1):(t=te(t),u=t.length,f=te.readOnly),u>125)throw new RangeError("The data size must not be greater than 125 bytes");let g={[R]:u,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:9,readOnly:f,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,g,h]):this.sendFrame(n.frame(t,g),h)}pong(t,s,h){let u,f;if(typeof t=="string"?(u=Buffer.byteLength(t),f=!1):(t=te(t),u=t.length,f=te.readOnly),u>125)throw new RangeError("The data size must not be greater than 125 bytes");let g={[R]:u,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:10,readOnly:f,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,g,h]):this.sendFrame(n.frame(t,g),h)}send(t,s,h){let u=this._extensions[vi.extensionName],f=s.binary?2:1,g=s.compress,e,i;if(typeof t=="string"?(e=Buffer.byteLength(t),i=!1):(t=te(t),e=t.length,i=te.readOnly),this._firstFragment?(this._firstFragment=!1,g&&u&&u.params[u._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(g=e>=u._threshold),this._compress=g):(g=!1,f=0),s