lensmcp 1.18.6 → 1.18.7

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.
package/bin.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";import{runCli as r}from"./lib/cli.js";r({cwd:process.cwd(),argv:process.argv.slice(2)}).then(e=>{process.exit(e.exitCode)},e=>{console.error(e instanceof Error?e.stack??e.message:String(e)),process.exit(1)});
2
+ "use strict";import{runCli as s}from"./lib/cli.js";s({cwd:process.cwd(),argv:process.argv.slice(2)}).then(r=>{process.exit(r.exitCode)},r=>{console.error(r instanceof Error?r.stack??r.message:String(r)),process.exit(1)});
package/bundled/bridge.js CHANGED
@@ -1,11 +1,11 @@
1
- "use strict";var Ct=Object.defineProperty;var d=(e,i)=>Ct(e,"name",{value:i,configurable:!0});import{createRequire as Nt}from"module";const ce=Nt(import.meta.url);var Lt=Object.create,Ae=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,Bt=Object.getOwnPropertyNames,Rt=Object.getPrototypeOf,It=Object.prototype.hasOwnProperty,c=d((e,i)=>Ae(e,"name",{value:i,configurable:!0}),"o"),z=(e=>typeof ce<"u"?ce:typeof Proxy<"u"?new Proxy(e,{get:d((i,r)=>(typeof ce<"u"?ce:i)[r],"get")}):e)(function(e){if(typeof ce<"u")return ce.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),X=d((e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports),"E"),Ut=d((e,i,r,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let m of Bt(i))!It.call(e,m)&&m!==r&&Ae(e,m,{get:d(()=>i[m],"get"),enumerable:!(a=Pt(i,m))||a.enumerable});return e},"vr"),ee=d((e,i,r)=>(r=e!=null?Lt(Rt(e)):{},Ut(i||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e)),"B"),te=X((e,i)=>{"use strict";var r=["nodebuffer","arraybuffer","fragments"],a=typeof Blob<"u";a&&r.push("blob"),i.exports={BINARY_TYPES:r,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:a,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:c(()=>{},"NOOP")}}),Te=X((e,i)=>{"use strict";var{EMPTY_BUFFER:r}=te(),a=Buffer[Symbol.species];function m(_,g){if(_.length===0)return r;if(_.length===1)return _[0];let k=Buffer.allocUnsafe(g),w=0;for(let N=0;N<_.length;N++){let E=_[N];k.set(E,w),w+=E.length}return w<g?new a(k.buffer,k.byteOffset,w):k}d(m,"Ir"),c(m,"concat");function b(_,g,k,w,N){for(let E=0;E<N;E++)k[w+E]=_[E]^g[E&3]}d(b,"mt"),c(b,"_mask");function y(_,g){for(let k=0;k<_.length;k++)_[k]^=g[k&3]}d(y,"_t"),c(y,"_unmask");function O(_){return _.length===_.buffer.byteLength?_.buffer:_.buffer.slice(_.byteOffset,_.byteOffset+_.length)}d(O,"Ar"),c(O,"toArrayBuffer");function n(_){if(n.readOnly=!0,Buffer.isBuffer(_))return _;let g;return _ instanceof ArrayBuffer?g=new a(_):ArrayBuffer.isView(_)?g=new a(_.buffer,_.byteOffset,_.byteLength):(g=Buffer.from(_),n.readOnly=!1),g}if(d(n,"Me"),c(n,"toBuffer"),i.exports={concat:m,mask:b,toArrayBuffer:O,toBuffer:n,unmask:y},!process.env.WS_NO_BUFFER_UTIL)try{let _=z("bufferutil");i.exports.mask=function(g,k,w,N,E){E<48?b(g,k,w,N,E):_.mask(g,k,w,N,E)},i.exports.unmask=function(g,k){g.length<32?y(g,k):_.unmask(g,k)}}catch{}}),$t=X((e,i)=>{"use strict";var r=Symbol("kDone"),a=Symbol("kRun"),m=class{static{d(this,"Ue")}static{c(this,"Limiter")}constructor(b){this[r]=()=>{this.pending--,this[a]()},this.concurrency=b||1/0,this.jobs=[],this.pending=0}add(b){this.jobs.push(b),this[a]()}[a](){if(this.pending!==this.concurrency&&this.jobs.length){let b=this.jobs.shift();this.pending++,b(this[r])}}};i.exports=m}),Se=X((e,i)=>{"use strict";var r=z("zlib"),a=Te(),m=$t(),{kStatusCode:b}=te(),y=Buffer[Symbol.species],O=Buffer.from([0,0,255,255]),n=Symbol("permessage-deflate"),_=Symbol("total-length"),g=Symbol("callback"),k=Symbol("buffers"),w=Symbol("error"),N,E=class{static{d(this,"$e")}static{c(this,"PerMessageDeflate")}constructor(u){if(this._options=u||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!N){let v=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;N=new m(v)}}static get extensionName(){return"permessage-deflate"}offer(){let u={};return this._options.serverNoContextTakeover&&(u.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(u.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(u.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?u.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(u.client_max_window_bits=!0),u}accept(u){return u=this.normalizeParams(u),this.params=this._isServer?this.acceptAsServer(u):this.acceptAsClient(u),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let u=this._deflate[g];this._deflate.close(),this._deflate=null,u&&u(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(u){let v=this._options,T=u.find(P=>!(v.serverNoContextTakeover===!1&&P.server_no_context_takeover||P.server_max_window_bits&&(v.serverMaxWindowBits===!1||typeof v.serverMaxWindowBits=="number"&&v.serverMaxWindowBits>P.server_max_window_bits)||typeof v.clientMaxWindowBits=="number"&&!P.client_max_window_bits));if(!T)throw new Error("None of the extension offers can be accepted");return v.serverNoContextTakeover&&(T.server_no_context_takeover=!0),v.clientNoContextTakeover&&(T.client_no_context_takeover=!0),typeof v.serverMaxWindowBits=="number"&&(T.server_max_window_bits=v.serverMaxWindowBits),typeof v.clientMaxWindowBits=="number"?T.client_max_window_bits=v.clientMaxWindowBits:(T.client_max_window_bits===!0||v.clientMaxWindowBits===!1)&&delete T.client_max_window_bits,T}acceptAsClient(u){let v=u[0];if(this._options.clientNoContextTakeover===!1&&v.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!v.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(v.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&v.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return v}normalizeParams(u){return u.forEach(v=>{Object.keys(v).forEach(T=>{let P=v[T];if(P.length>1)throw new Error(`Parameter "${T}" must have only a single value`);if(P=P[0],T==="client_max_window_bits"){if(P!==!0){let o=+P;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${T}": ${P}`);P=o}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${T}": ${P}`)}else if(T==="server_max_window_bits"){let o=+P;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${T}": ${P}`);P=o}else if(T==="client_no_context_takeover"||T==="server_no_context_takeover"){if(P!==!0)throw new TypeError(`Invalid value for parameter "${T}": ${P}`)}else throw new Error(`Unknown parameter "${T}"`);v[T]=P})}),u}decompress(u,v,T){N.add(P=>{this._decompress(u,v,(o,s)=>{P(),T(o,s)})})}compress(u,v,T){N.add(P=>{this._compress(u,v,(o,s)=>{P(),T(o,s)})})}_decompress(u,v,T){let P=this._isServer?"client":"server";if(!this._inflate){let o=`${P}_max_window_bits`,s=typeof this.params[o]!="number"?r.Z_DEFAULT_WINDOWBITS:this.params[o];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:s}),this._inflate[n]=this,this._inflate[_]=0,this._inflate[k]=[],this._inflate.on("error",R),this._inflate.on("data",B)}this._inflate[g]=T,this._inflate.write(u),v&&this._inflate.write(O),this._inflate.flush(()=>{let o=this._inflate[w];if(o){this._inflate.close(),this._inflate=null,T(o);return}let s=a.concat(this._inflate[k],this._inflate[_]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[_]=0,this._inflate[k]=[],v&&this.params[`${P}_no_context_takeover`]&&this._inflate.reset()),T(null,s)})}_compress(u,v,T){let P=this._isServer?"server":"client";if(!this._deflate){let o=`${P}_max_window_bits`,s=typeof this.params[o]!="number"?r.Z_DEFAULT_WINDOWBITS:this.params[o];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:s}),this._deflate[_]=0,this._deflate[k]=[],this._deflate.on("data",I)}this._deflate[g]=T,this._deflate.write(u),this._deflate.flush(r.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let o=a.concat(this._deflate[k],this._deflate[_]);v&&(o=new y(o.buffer,o.byteOffset,o.length-4)),this._deflate[g]=null,this._deflate[_]=0,this._deflate[k]=[],v&&this.params[`${P}_no_context_takeover`]&&this._deflate.reset(),T(null,o)})}};i.exports=E;function I(u){this[k].push(u),this[_]+=u.length}d(I,"Mr"),c(I,"deflateOnData");function B(u){if(this[_]+=u.length,this[n]._maxPayload<1||this[_]<=this[n]._maxPayload){this[k].push(u);return}this[w]=new RangeError("Max payload size exceeded"),this[w].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[w][b]=1009,this.removeListener("data",B),this.reset()}d(B,"bt"),c(B,"inflateOnData");function R(u){if(this[n]._inflate=null,this[w]){this[g](this[w]);return}u[b]=1007,this[g](u)}d(R,"Dr"),c(R,"inflateOnError")}),Ee=X((e,i)=>{"use strict";var{isUtf8:r}=z("buffer"),{hasBlob:a}=te(),m=[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 b(n){return n>=1e3&&n<=1014&&n!==1004&&n!==1005&&n!==1006||n>=3e3&&n<=4999}d(b,"Fr"),c(b,"isValidStatusCode");function y(n){let _=n.length,g=0;for(;g<_;)if((n[g]&128)===0)g++;else if((n[g]&224)===192){if(g+1===_||(n[g+1]&192)!==128||(n[g]&254)===192)return!1;g+=2}else if((n[g]&240)===224){if(g+2>=_||(n[g+1]&192)!==128||(n[g+2]&192)!==128||n[g]===224&&(n[g+1]&224)===128||n[g]===237&&(n[g+1]&224)===160)return!1;g+=3}else if((n[g]&248)===240){if(g+3>=_||(n[g+1]&192)!==128||(n[g+2]&192)!==128||(n[g+3]&192)!==128||n[g]===240&&(n[g+1]&240)===128||n[g]===244&&n[g+1]>143||n[g]>244)return!1;g+=4}else return!1;return!0}d(y,"Fe"),c(y,"_isValidUTF8");function O(n){return a&&typeof n=="object"&&typeof n.arrayBuffer=="function"&&typeof n.type=="string"&&typeof n.stream=="function"&&(n[Symbol.toStringTag]==="Blob"||n[Symbol.toStringTag]==="File")}if(d(O,"Wr"),c(O,"isBlob"),i.exports={isBlob:O,isValidStatusCode:b,isValidUTF8:y,tokenChars:m},r)i.exports.isValidUTF8=function(n){return n.length<24?y(n):r(n)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let n=z("utf-8-validate");i.exports.isValidUTF8=function(_){return _.length<32?y(_):n(_)}}catch{}}),st=X((e,i)=>{"use strict";var{Writable:r}=z("stream"),a=Se(),{BINARY_TYPES:m,EMPTY_BUFFER:b,kStatusCode:y,kWebSocket:O}=te(),{concat:n,toArrayBuffer:_,unmask:g}=Te(),{isValidStatusCode:k,isValidUTF8:w}=Ee(),N=Buffer[Symbol.species],E=0,I=1,B=2,R=3,u=4,v=5,T=6,P=class extends r{static{d(this,"je")}static{c(this,"Receiver")}constructor(o={}){super(),this._allowSynchronousEvents=o.allowSynchronousEvents!==void 0?o.allowSynchronousEvents:!0,this._binaryType=o.binaryType||m[0],this._extensions=o.extensions||{},this._isServer=!!o.isServer,this._maxBufferedChunks=o.maxBufferedChunks|0,this._maxFragments=o.maxFragments|0,this._maxPayload=o.maxPayload|0,this._skipUTF8Validation=!!o.skipUTF8Validation,this[O]=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=E}_write(o,s,f){if(this._opcode===8&&this._state==E)return f();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){f(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=o.length,this._buffers.push(o),this.startLoop(f)}consume(o){if(this._bufferedBytes-=o,o===this._buffers[0].length)return this._buffers.shift();if(o<this._buffers[0].length){let f=this._buffers[0];return this._buffers[0]=new N(f.buffer,f.byteOffset+o,f.length-o),new N(f.buffer,f.byteOffset,o)}let s=Buffer.allocUnsafe(o);do{let f=this._buffers[0],t=s.length-o;o>=f.length?s.set(this._buffers.shift(),t):(s.set(new Uint8Array(f.buffer,f.byteOffset,o),t),this._buffers[0]=new N(f.buffer,f.byteOffset+o,f.length-o)),o-=f.length}while(o>0);return s}startLoop(o){this._loop=!0;do switch(this._state){case E:this.getInfo(o);break;case I:this.getPayloadLength16(o);break;case B:this.getPayloadLength64(o);break;case R:this.getMask();break;case u:this.getData(o);break;case v:case T:this._loop=!1;return}while(this._loop);this._errored||o()}getInfo(o){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if((s[0]&48)!==0){let t=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");o(t);return}let f=(s[0]&64)===64;if(f&&!this._extensions[a.extensionName]){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(f){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(!this._fragmented){let t=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}this._compressed=f}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let t=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");o(t);return}if(f){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");o(t);return}}else{let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let t=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");o(t);return}}else if(this._masked){let t=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");o(t);return}this._payloadLength===126?this._state=I:this._payloadLength===127?this._state=B:this.haveLength(o)}getPayloadLength16(o){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(o)}getPayloadLength64(o){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),f=s.readUInt32BE(0);if(f>Math.pow(2,21)-1){let t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");o(t);return}this._payloadLength=f*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(o)}haveLength(o){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");o(s);return}this._masked?this._state=R:this._state=u}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=u}getData(o){let s=b;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])!==0&&g(s,this._mask)}if(this._opcode>7){this.controlMessage(s,o);return}if(this._compressed){this._state=v,this.decompress(s,o);return}if(s.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let f=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");o(f);return}this._messageLength=this._totalPayloadLength,this._fragments.push(s)}this.dataMessage(o)}decompress(o,s){this._extensions[a.extensionName].decompress(o,this._fin,(f,t)=>{if(f)return s(f);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let S=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(S);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let S=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");s(S);return}this._fragments.push(t)}this.dataMessage(s),this._state===E&&this.startLoop(s)})}dataMessage(o){if(!this._fin){this._state=E;return}let s=this._messageLength,f=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let t;this._binaryType==="nodebuffer"?t=n(f,s):this._binaryType==="arraybuffer"?t=_(n(f,s)):this._binaryType==="blob"?t=new Blob(f):t=f,this._allowSynchronousEvents?(this.emit("message",t,!0),this._state=E):(this._state=T,setImmediate(()=>{this.emit("message",t,!0),this._state=E,this.startLoop(o)}))}else{let t=n(f,s);if(!this._skipUTF8Validation&&!w(t)){let S=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");o(S);return}this._state===v||this._allowSynchronousEvents?(this.emit("message",t,!1),this._state=E):(this._state=T,setImmediate(()=>{this.emit("message",t,!1),this._state=E,this.startLoop(o)}))}}controlMessage(o,s){if(this._opcode===8){if(o.length===0)this._loop=!1,this.emit("conclude",1005,b),this.end();else{let f=o.readUInt16BE(0);if(!k(f)){let S=this.createError(RangeError,`invalid status code ${f}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(S);return}let t=new N(o.buffer,o.byteOffset+2,o.length-2);if(!this._skipUTF8Validation&&!w(t)){let S=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(S);return}this._loop=!1,this.emit("conclude",f,t),this.end()}this._state=E;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",o),this._state=E):(this._state=T,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",o),this._state=E,this.startLoop(s)}))}createError(o,s,f,t,S){this._loop=!1,this._errored=!0;let p=new o(f?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(p,this.createError),p.code=S,p[y]=t,p}};i.exports=P}),it=X((e,i)=>{"use strict";var{Duplex:r}=z("stream"),{randomFillSync:a}=z("crypto"),{types:{isUint8Array:m}}=z("util"),b=Se(),{EMPTY_BUFFER:y,kWebSocket:O,NOOP:n}=te(),{isBlob:_,isValidStatusCode:g}=Ee(),{mask:k,toBuffer:w}=Te(),N=Symbol("kByteLength"),E=Buffer.alloc(4),I=8*1024,B,R=I,u=0,v=1,T=2,P=class ne{static{d(this,"e")}static{c(this,"Sender")}constructor(t,S,p){this._extensions=S||{},p&&(this._generateMask=p,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=u,this.onerror=n,this[O]=void 0}static frame(t,S){let p,U=!1,L=2,A=!1;S.mask&&(p=S.maskBuffer||E,S.generateMask?S.generateMask(p):(R===I&&(B===void 0&&(B=Buffer.alloc(I)),a(B,0,I),R=0),p[0]=B[R++],p[1]=B[R++],p[2]=B[R++],p[3]=B[R++]),A=(p[0]|p[1]|p[2]|p[3])===0,L=6);let M;typeof t=="string"?(!S.mask||A)&&S[N]!==void 0?M=S[N]:(t=Buffer.from(t),M=t.length):(M=t.length,U=S.mask&&S.readOnly&&!A);let F=M;M>=65536?(L+=8,F=127):M>125&&(L+=2,F=126);let D=Buffer.allocUnsafe(U?M+L:L);return D[0]=S.fin?S.opcode|128:S.opcode,S.rsv1&&(D[0]|=64),D[1]=F,F===126?D.writeUInt16BE(M,2):F===127&&(D[2]=D[3]=0,D.writeUIntBE(M,4,6)),S.mask?(D[1]|=128,D[L-4]=p[0],D[L-3]=p[1],D[L-2]=p[2],D[L-1]=p[3],A?[D,t]:U?(k(t,p,D,L,M),[D]):(k(t,p,t,0,M),[D,t])):[D,t]}close(t,S,p,U){let L;if(t===void 0)L=y;else{if(typeof t!="number"||!g(t))throw new TypeError("First argument must be a valid error code number");if(S===void 0||!S.length)L=Buffer.allocUnsafe(2),L.writeUInt16BE(t,0);else{let M=Buffer.byteLength(S);if(M>123)throw new RangeError("The message must not be greater than 123 bytes");if(L=Buffer.allocUnsafe(2+M),L.writeUInt16BE(t,0),typeof S=="string")L.write(S,2);else if(m(S))L.set(S,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let A={[N]:L.length,fin:!0,generateMask:this._generateMask,mask:p,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==u?this.enqueue([this.dispatch,L,!1,A,U]):this.sendFrame(ne.frame(L,A),U)}ping(t,S,p){let U,L;if(typeof t=="string"?(U=Buffer.byteLength(t),L=!1):_(t)?(U=t.size,L=!1):(t=w(t),U=t.length,L=w.readOnly),U>125)throw new RangeError("The data size must not be greater than 125 bytes");let A={[N]:U,fin:!0,generateMask:this._generateMask,mask:S,maskBuffer:this._maskBuffer,opcode:9,readOnly:L,rsv1:!1};_(t)?this._state!==u?this.enqueue([this.getBlobData,t,!1,A,p]):this.getBlobData(t,!1,A,p):this._state!==u?this.enqueue([this.dispatch,t,!1,A,p]):this.sendFrame(ne.frame(t,A),p)}pong(t,S,p){let U,L;if(typeof t=="string"?(U=Buffer.byteLength(t),L=!1):_(t)?(U=t.size,L=!1):(t=w(t),U=t.length,L=w.readOnly),U>125)throw new RangeError("The data size must not be greater than 125 bytes");let A={[N]:U,fin:!0,generateMask:this._generateMask,mask:S,maskBuffer:this._maskBuffer,opcode:10,readOnly:L,rsv1:!1};_(t)?this._state!==u?this.enqueue([this.getBlobData,t,!1,A,p]):this.getBlobData(t,!1,A,p):this._state!==u?this.enqueue([this.dispatch,t,!1,A,p]):this.sendFrame(ne.frame(t,A),p)}send(t,S,p){let U=this._extensions[b.extensionName],L=S.binary?2:1,A=S.compress,M,F;typeof t=="string"?(M=Buffer.byteLength(t),F=!1):_(t)?(M=t.size,F=!1):(t=w(t),M=t.length,F=w.readOnly),this._firstFragment?(this._firstFragment=!1,A&&U&&U.params[U._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(A=M>=U._threshold),this._compress=A):(A=!1,L=0),S.fin&&(this._firstFragment=!0);let D={[N]:M,fin:S.fin,generateMask:this._generateMask,mask:S.mask,maskBuffer:this._maskBuffer,opcode:L,readOnly:F,rsv1:A};_(t)?this._state!==u?this.enqueue([this.getBlobData,t,this._compress,D,p]):this.getBlobData(t,this._compress,D,p):this._state!==u?this.enqueue([this.dispatch,t,this._compress,D,p]):this.dispatch(t,this._compress,D,p)}getBlobData(t,S,p,U){this._bufferedBytes+=p[N],this._state=T,t.arrayBuffer().then(L=>{if(this._socket.destroyed){let M=new Error("The socket was closed while the blob was being read");process.nextTick(o,this,M,U);return}this._bufferedBytes-=p[N];let A=w(L);S?this.dispatch(A,S,p,U):(this._state=u,this.sendFrame(ne.frame(A,p),U),this.dequeue())}).catch(L=>{process.nextTick(s,this,L,U)})}dispatch(t,S,p,U){if(!S){this.sendFrame(ne.frame(t,p),U);return}let L=this._extensions[b.extensionName];this._bufferedBytes+=p[N],this._state=v,L.compress(t,p.fin,(A,M)=>{if(this._socket.destroyed){let F=new Error("The socket was closed while data was being compressed");o(this,F,U);return}this._bufferedBytes-=p[N],this._state=u,p.readOnly=!1,this.sendFrame(ne.frame(M,p),U),this.dequeue()})}dequeue(){for(;this._state===u&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][N],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][N],this._queue.push(t)}sendFrame(t,S){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],S),this._socket.uncork()):this._socket.write(t[0],S)}};i.exports=P;function o(f,t,S){typeof S=="function"&&S(t);for(let p=0;p<f._queue.length;p++){let U=f._queue[p],L=U[U.length-1];typeof L=="function"&&L(t)}}d(o,"ze"),c(o,"callCallbacks");function s(f,t,S){o(f,t,S),f.onerror(t)}d(s,"ns"),c(s,"onError")}),Mt=X((e,i)=>{"use strict";var{kForOnEventAttribute:r,kListener:a}=te(),m=Symbol("kCode"),b=Symbol("kData"),y=Symbol("kError"),O=Symbol("kMessage"),n=Symbol("kReason"),_=Symbol("kTarget"),g=Symbol("kType"),k=Symbol("kWasClean"),w=class{static{d(this,"v")}static{c(this,"Event")}constructor(u){this[_]=null,this[g]=u}get target(){return this[_]}get type(){return this[g]}};Object.defineProperty(w.prototype,"target",{enumerable:!0}),Object.defineProperty(w.prototype,"type",{enumerable:!0});var N=class extends w{static{d(this,"F")}static{c(this,"CloseEvent")}constructor(u,v={}){super(u),this[m]=v.code===void 0?0:v.code,this[n]=v.reason===void 0?"":v.reason,this[k]=v.wasClean===void 0?!1:v.wasClean}get code(){return this[m]}get reason(){return this[n]}get wasClean(){return this[k]}};Object.defineProperty(N.prototype,"code",{enumerable:!0}),Object.defineProperty(N.prototype,"reason",{enumerable:!0}),Object.defineProperty(N.prototype,"wasClean",{enumerable:!0});var E=class extends w{static{d(this,"ne")}static{c(this,"ErrorEvent")}constructor(u,v={}){super(u),this[y]=v.error===void 0?null:v.error,this[O]=v.message===void 0?"":v.message}get error(){return this[y]}get message(){return this[O]}};Object.defineProperty(E.prototype,"error",{enumerable:!0}),Object.defineProperty(E.prototype,"message",{enumerable:!0});var I=class extends w{static{d(this,"fe")}static{c(this,"MessageEvent")}constructor(u,v={}){super(u),this[b]=v.data===void 0?null:v.data}get data(){return this[b]}};Object.defineProperty(I.prototype,"data",{enumerable:!0});var B={addEventListener(u,v,T={}){for(let o of this.listeners(u))if(!T[r]&&o[a]===v&&!o[r])return;let P;if(u==="message")P=c(function(o,s){let f=new I("message",{data:s?o:o.toString()});f[_]=this,R(v,this,f)},"onMessage");else if(u==="close")P=c(function(o,s){let f=new N("close",{code:o,reason:s.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});f[_]=this,R(v,this,f)},"onClose");else if(u==="error")P=c(function(o){let s=new E("error",{error:o,message:o.message});s[_]=this,R(v,this,s)},"onError");else if(u==="open")P=c(function(){let o=new w("open");o[_]=this,R(v,this,o)},"onOpen");else return;P[r]=!!T[r],P[a]=v,T.once?this.once(u,P):this.on(u,P)},removeEventListener(u,v){for(let T of this.listeners(u))if(T[a]===v&&!T[r]){this.removeListener(u,T);break}}};i.exports={CloseEvent:N,ErrorEvent:E,Event:w,EventTarget:B,MessageEvent:I};function R(u,v,T){typeof u=="object"&&u.handleEvent?u.handleEvent.call(u,T):u.call(v,T)}d(R,"be"),c(R,"callListener")}),Fe=X((e,i)=>{"use strict";var{tokenChars:r}=Ee();function a(y,O,n){y[O]===void 0?y[O]=[n]:y[O].push(n)}d(a,"N"),c(a,"push");function m(y){let O=Object.create(null),n=Object.create(null),_=!1,g=!1,k=!1,w,N,E=-1,I=-1,B=-1,R=0;for(;R<y.length;R++)if(I=y.charCodeAt(R),w===void 0)if(B===-1&&r[I]===1)E===-1&&(E=R);else if(R!==0&&(I===32||I===9))B===-1&&E!==-1&&(B=R);else if(I===59||I===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${R}`);B===-1&&(B=R);let v=y.slice(E,B);I===44?(a(O,v,n),n=Object.create(null)):w=v,E=B=-1}else throw new SyntaxError(`Unexpected character at index ${R}`);else if(N===void 0)if(B===-1&&r[I]===1)E===-1&&(E=R);else if(I===32||I===9)B===-1&&E!==-1&&(B=R);else if(I===59||I===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${R}`);B===-1&&(B=R),a(n,y.slice(E,B),!0),I===44&&(a(O,w,n),n=Object.create(null),w=void 0),E=B=-1}else if(I===61&&E!==-1&&B===-1)N=y.slice(E,R),E=B=-1;else throw new SyntaxError(`Unexpected character at index ${R}`);else if(g){if(r[I]!==1)throw new SyntaxError(`Unexpected character at index ${R}`);E===-1?E=R:_||(_=!0),g=!1}else if(k)if(r[I]===1)E===-1&&(E=R);else if(I===34&&E!==-1)k=!1,B=R;else if(I===92)g=!0;else throw new SyntaxError(`Unexpected character at index ${R}`);else if(I===34&&y.charCodeAt(R-1)===61)k=!0;else if(B===-1&&r[I]===1)E===-1&&(E=R);else if(E!==-1&&(I===32||I===9))B===-1&&(B=R);else if(I===59||I===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${R}`);B===-1&&(B=R);let v=y.slice(E,B);_&&(v=v.replace(/\\/g,""),_=!1),a(n,N,v),I===44&&(a(O,w,n),n=Object.create(null),w=void 0),N=void 0,E=B=-1}else throw new SyntaxError(`Unexpected character at index ${R}`);if(E===-1||k||I===32||I===9)throw new SyntaxError("Unexpected end of input");B===-1&&(B=R);let u=y.slice(E,B);return w===void 0?a(O,u,n):(N===void 0?a(n,u,!0):_?a(n,N,u.replace(/\\/g,"")):a(n,N,u),a(O,w,n)),O}d(m,"os"),c(m,"parse");function b(y){return Object.keys(y).map(O=>{let n=y[O];return Array.isArray(n)||(n=[n]),n.map(_=>[O].concat(Object.keys(_).map(g=>{let k=_[g];return Array.isArray(k)||(k=[k]),k.map(w=>w===!0?g:`${g}=${w}`).join("; ")})).join("; ")).join(", ")}).join(", ")}d(b,"as"),c(b,"format"),i.exports={format:b,parse:m}}),De=X((e,i)=>{"use strict";var r=z("events"),a=z("https"),m=z("http"),b=z("net"),y=z("tls"),{randomBytes:O,createHash:n}=z("crypto"),{Duplex:_,Readable:g}=z("stream"),{URL:k}=z("url"),w=Se(),N=st(),E=it(),{isBlob:I}=Ee(),{BINARY_TYPES:B,CLOSE_TIMEOUT:R,EMPTY_BUFFER:u,GUID:v,kForOnEventAttribute:T,kListener:P,kStatusCode:o,kWebSocket:s,NOOP:f}=te(),{EventTarget:{addEventListener:t,removeEventListener:S}}=Mt(),{format:p,parse:U}=Fe(),{toBuffer:L}=Te(),A=Symbol("kAborted"),M=[8,13],F=["CONNECTING","OPEN","CLOSING","CLOSED"],D=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,j=class G extends r{static{d(this,"e")}static{c(this,"WebSocket")}constructor(h,C,$){super(),this._binaryType=B[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=u,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=G.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,h!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,C===void 0?C=[]:Array.isArray(C)||(typeof C=="object"&&C!==null?($=C,C=[]):C=[C]),Q(this,h,C,$)):(this._autoPong=$.autoPong,this._closeTimeout=$.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(h){B.includes(h)&&(this._binaryType=h,this._receiver&&(this._receiver._binaryType=h))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(h,C,$){let x=new N({allowSynchronousEvents:$.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:$.maxBufferedChunks,maxFragments:$.maxFragments,maxPayload:$.maxPayload,skipUTF8Validation:$.skipUTF8Validation}),V=new E(h,this._extensions,$.generateMask);this._receiver=x,this._sender=V,this._socket=h,x[s]=this,V[s]=this,h[s]=this,x.on("conclude",ze),x.on("drain",qe),x.on("error",He),x.on("message",Ye),x.on("ping",Xe),x.on("pong",Ze),V.onerror=Je,h.setTimeout&&h.setTimeout(0),h.setNoDelay&&h.setNoDelay(),C.length>0&&h.unshift(C),h.on("close",Re),h.on("data",pe),h.on("end",Ie),h.on("error",Ue),this._readyState=G.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=G.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[w.extensionName]&&this._extensions[w.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=G.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(h,C){if(this.readyState!==G.CLOSED){if(this.readyState===G.CONNECTING){H(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===G.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=G.CLOSING,this._sender.close(h,C,!this._isServer,$=>{$||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Be(this)}}pause(){this.readyState===G.CONNECTING||this.readyState===G.CLOSED||(this._paused=!0,this._socket.pause())}ping(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof h=="function"?($=h,h=C=void 0):typeof C=="function"&&($=C,C=void 0),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}C===void 0&&(C=!this._isServer),this._sender.ping(h||u,C,$)}pong(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof h=="function"?($=h,h=C=void 0):typeof C=="function"&&($=C,C=void 0),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}C===void 0&&(C=!this._isServer),this._sender.pong(h||u,C,$)}resume(){this.readyState===G.CONNECTING||this.readyState===G.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof C=="function"&&($=C,C={}),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}let x={binary:typeof h!="string",mask:!this._isServer,compress:!0,fin:!0,...C};this._extensions[w.extensionName]||(x.compress=!1),this._sender.send(h||u,x,$)}terminate(){if(this.readyState!==G.CLOSED){if(this.readyState===G.CONNECTING){H(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=G.CLOSING,this._socket.destroy())}}};Object.defineProperty(j,"CONNECTING",{enumerable:!0,value:F.indexOf("CONNECTING")}),Object.defineProperty(j.prototype,"CONNECTING",{enumerable:!0,value:F.indexOf("CONNECTING")}),Object.defineProperty(j,"OPEN",{enumerable:!0,value:F.indexOf("OPEN")}),Object.defineProperty(j.prototype,"OPEN",{enumerable:!0,value:F.indexOf("OPEN")}),Object.defineProperty(j,"CLOSING",{enumerable:!0,value:F.indexOf("CLOSING")}),Object.defineProperty(j.prototype,"CLOSING",{enumerable:!0,value:F.indexOf("CLOSING")}),Object.defineProperty(j,"CLOSED",{enumerable:!0,value:F.indexOf("CLOSED")}),Object.defineProperty(j.prototype,"CLOSED",{enumerable:!0,value:F.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(l=>{Object.defineProperty(j.prototype,l,{enumerable:!0})}),["open","error","close","message"].forEach(l=>{Object.defineProperty(j.prototype,`on${l}`,{enumerable:!0,get(){for(let h of this.listeners(l))if(h[T])return h[P];return null},set(h){for(let C of this.listeners(l))if(C[T]){this.removeListener(l,C);break}typeof h=="function"&&this.addEventListener(l,h,{[T]:!0})}})}),j.prototype.addEventListener=t,j.prototype.removeEventListener=S,i.exports=j;function Q(l,h,C,$){let x={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:R,protocolVersion:M[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...$,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(l._autoPong=x.autoPong,l._closeTimeout=x.closeTimeout,!M.includes(x.protocolVersion))throw new RangeError(`Unsupported protocol version: ${x.protocolVersion} (supported versions: ${M.join(", ")})`);let V;if(h instanceof k)V=h;else try{V=new k(h)}catch{throw new SyntaxError(`Invalid URL: ${h}`)}V.protocol==="http:"?V.protocol="ws:":V.protocol==="https:"&&(V.protocol="wss:"),l._url=V.href;let oe=V.protocol==="wss:",ae=V.protocol==="ws+unix:",me;if(V.protocol!=="ws:"&&!oe&&!ae?me=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:ae&&!V.pathname?me="The URL's pathname is empty":V.hash&&(me="The URL contains a fragment identifier"),me){let W=new SyntaxError(me);if(l._redirects===0)throw W;se(l,W);return}let Ke=oe?443:80,Qe=O(16).toString("base64"),et=oe?a.request:m.request,ye=new Set,ge;if(x.createConnection=x.createConnection||(oe?we:ke),x.defaultPort=x.defaultPort||Ke,x.port=V.port||Ke,x.host=V.hostname.startsWith("[")?V.hostname.slice(1,-1):V.hostname,x.headers={...x.headers,"Sec-WebSocket-Version":x.protocolVersion,"Sec-WebSocket-Key":Qe,Connection:"Upgrade",Upgrade:"websocket"},x.path=V.pathname+V.search,x.timeout=x.handshakeTimeout,x.perMessageDeflate&&(ge=new w({...x.perMessageDeflate,isServer:!1,maxPayload:x.maxPayload}),x.headers["Sec-WebSocket-Extensions"]=p({[w.extensionName]:ge.offer()})),C.length){for(let W of C){if(typeof W!="string"||!D.test(W)||ye.has(W))throw new SyntaxError("An invalid or duplicated subprotocol was specified");ye.add(W)}x.headers["Sec-WebSocket-Protocol"]=C.join(",")}if(x.origin&&(x.protocolVersion<13?x.headers["Sec-WebSocket-Origin"]=x.origin:x.headers.Origin=x.origin),(V.username||V.password)&&(x.auth=`${V.username}:${V.password}`),ae){let W=x.path.split(":");x.socketPath=W[0],x.path=W[1]}let q;if(x.followRedirects){if(l._redirects===0){l._originalIpc=ae,l._originalSecure=oe,l._originalHostOrSocketPath=ae?x.socketPath:V.host;let W=$&&$.headers;if($={...$,headers:{}},W)for(let[Y,le]of Object.entries(W))$.headers[Y.toLowerCase()]=le}else if(l.listenerCount("redirect")===0){let W=ae?l._originalIpc?x.socketPath===l._originalHostOrSocketPath:!1:l._originalIpc?!1:V.host===l._originalHostOrSocketPath;(!W||l._originalSecure&&!oe)&&(delete x.headers.authorization,delete x.headers.cookie,W||delete x.headers.host,x.auth=void 0)}x.auth&&!$.headers.authorization&&($.headers.authorization="Basic "+Buffer.from(x.auth).toString("base64")),q=l._req=et(x),l._redirects&&l.emit("redirect",l.url,q)}else q=l._req=et(x);x.timeout&&q.on("timeout",()=>{H(l,q,"Opening handshake has timed out")}),q.on("error",W=>{q===null||q[A]||(q=l._req=null,se(l,W))}),q.on("response",W=>{let Y=W.headers.location,le=W.statusCode;if(Y&&x.followRedirects&&le>=300&&le<400){if(++l._redirects>x.maxRedirects){H(l,q,"Maximum redirects exceeded");return}q.abort();let ve;try{ve=new k(Y,h)}catch{let $e=new SyntaxError(`Invalid URL: ${Y}`);se(l,$e);return}Q(l,ve,C,$)}else l.emit("unexpected-response",q,W)||H(l,q,`Unexpected server response: ${W.statusCode}`)}),q.on("upgrade",(W,Y,le)=>{if(l.emit("upgrade",W),l.readyState!==j.CONNECTING)return;q=l._req=null;let ve=W.headers.upgrade;if(ve===void 0||ve.toLowerCase()!=="websocket"){H(l,Y,"Invalid Upgrade header");return}let $e=n("sha1").update(Qe+v).digest("base64");if(W.headers["sec-websocket-accept"]!==$e){H(l,Y,"Invalid Sec-WebSocket-Accept header");return}let Oe=W.headers["sec-websocket-protocol"],be;if(Oe!==void 0?ye.size?ye.has(Oe)||(be="Server sent an invalid subprotocol"):be="Server sent a subprotocol but none was requested":ye.size&&(be="Server sent no subprotocol"),be){H(l,Y,be);return}Oe&&(l._protocol=Oe);let tt=W.headers["sec-websocket-extensions"];if(tt!==void 0){if(!ge){H(l,Y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let Me;try{Me=U(tt)}catch{H(l,Y,"Invalid Sec-WebSocket-Extensions header");return}let rt=Object.keys(Me);if(rt.length!==1||rt[0]!==w.extensionName){H(l,Y,"Server indicated an extension that was not requested");return}try{ge.accept(Me[w.extensionName])}catch{H(l,Y,"Invalid Sec-WebSocket-Extensions header");return}l._extensions[w.extensionName]=ge}l.setSocket(Y,le,{allowSynchronousEvents:x.allowSynchronousEvents,generateMask:x.generateMask,maxBufferedChunks:x.maxBufferedChunks,maxFragments:x.maxFragments,maxPayload:x.maxPayload,skipUTF8Validation:x.skipUTF8Validation})}),x.finishRequest?x.finishRequest(q,l):q.end()}d(Q,"Jt"),c(Q,"initAsClient");function se(l,h){l._readyState=j.CLOSING,l._errorEmitted=!0,l.emit("error",h),l.emitClose()}d(se,"Te"),c(se,"emitErrorAndClose");function ke(l){return l.path=l.socketPath,b.connect(l)}d(ke,"Os"),c(ke,"netConnect");function we(l){return l.path=void 0,!l.servername&&l.servername!==""&&(l.servername=b.isIP(l.host)?"":l.host),y.connect(l)}d(we,"Cs"),c(we,"tlsConnect");function H(l,h,C){l._readyState=j.CLOSING;let $=new Error(C);Error.captureStackTrace($,H),h.setHeader?(h[A]=!0,h.abort(),h.socket&&!h.socket.destroyed&&h.socket.destroy(),process.nextTick(se,l,$)):(h.destroy($),h.once("error",l.emit.bind(l,"error")),h.once("close",l.emitClose.bind(l)))}d(H,"b"),c(H,"abortHandshake");function xe(l,h,C){if(h){let $=I(h)?h.size:L(h).length;l._socket?l._sender._bufferedBytes+=$:l._bufferedAmount+=$}if(C){let $=new Error(`WebSocket is not open: readyState ${l.readyState} (${F[l.readyState]})`);process.nextTick(C,$)}}d(xe,"Qe"),c(xe,"sendAfterClose");function ze(l,h){let C=this[s];C._closeFrameReceived=!0,C._closeMessage=h,C._closeCode=l,C._socket[s]!==void 0&&(C._socket.removeListener("data",pe),process.nextTick(Pe,C._socket),l===1005?C.close():C.close(l,h))}d(ze,"vs"),c(ze,"receiverOnConclude");function qe(){let l=this[s];l.isPaused||l._socket.resume()}d(qe,"Ls"),c(qe,"receiverOnDrain");function He(l){let h=this[s];h._socket[s]!==void 0&&(h._socket.removeListener("data",pe),process.nextTick(Pe,h._socket),h.close(l[o])),h._errorEmitted||(h._errorEmitted=!0,h.emit("error",l))}d(He,"Is"),c(He,"receiverOnError");function Le(){this[s].emitClose()}d(Le,"Ht"),c(Le,"receiverOnFinish");function Ye(l,h){this[s].emit("message",l,h)}d(Ye,"As"),c(Ye,"receiverOnMessage");function Xe(l){let h=this[s];h._autoPong&&h.pong(l,!this._isServer,f),h.emit("ping",l)}d(Xe,"Ps"),c(Xe,"receiverOnPing");function Ze(l){this[s].emit("pong",l)}d(Ze,"Rs"),c(Ze,"receiverOnPong");function Pe(l){l.resume()}d(Pe,"Zt"),c(Pe,"resume");function Je(l){let h=this[s];h.readyState!==j.CLOSED&&(h.readyState===j.OPEN&&(h._readyState=j.CLOSING,Be(h)),this._socket.end(),h._errorEmitted||(h._errorEmitted=!0,h.emit("error",l)))}d(Je,"Bs"),c(Je,"senderOnError");function Be(l){l._closeTimer=setTimeout(l._socket.destroy.bind(l._socket),l._closeTimeout)}d(Be,"Kt"),c(Be,"setCloseTimer");function Re(){let l=this[s];if(this.removeListener("close",Re),this.removeListener("data",pe),this.removeListener("end",Ie),l._readyState=j.CLOSING,!this._readableState.endEmitted&&!l._closeFrameReceived&&!l._receiver._writableState.errorEmitted&&this._readableState.length!==0){let h=this.read(this._readableState.length);l._receiver.write(h)}l._receiver.end(),this[s]=void 0,clearTimeout(l._closeTimer),l._receiver._writableState.finished||l._receiver._writableState.errorEmitted?l.emitClose():(l._receiver.on("error",Le),l._receiver.on("finish",Le))}d(Re,"Qt"),c(Re,"socketOnClose");function pe(l){this[s]._receiver.write(l)||this.pause()}d(pe,"Ne"),c(pe,"socketOnData");function Ie(){let l=this[s];l._readyState=j.CLOSING,l._receiver.end(),this.end()}d(Ie,"er"),c(Ie,"socketOnEnd");function Ue(){let l=this[s];this.removeListener("error",Ue),this.on("error",f),l&&(l._readyState=j.CLOSING,this.destroy())}d(Ue,"tr"),c(Ue,"socketOnError")}),At=X((e,i)=>{"use strict";var r=De(),{Duplex:a}=z("stream");function m(n){n.emit("close")}d(m,"sr"),c(m,"emitClose");function b(){!this.destroyed&&this._writableState.finished&&this.destroy()}d(b,"Ds"),c(b,"duplexOnEnd");function y(n){this.removeListener("error",y),this.destroy(),this.listenerCount("error")===0&&this.emit("error",n)}d(y,"nr"),c(y,"duplexOnError");function O(n,_){let g=!0,k=new a({..._,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return n.on("message",c(function(w,N){let E=!N&&k._readableState.objectMode?w.toString():w;k.push(E)||n.pause()},"message")),n.once("error",c(function(w){k.destroyed||(g=!1,k.destroy(w))},"error")),n.once("close",c(function(){k.destroyed||k.push(null)},"close")),k._destroy=function(w,N){if(n.readyState===n.CLOSED){N(w),process.nextTick(m,k);return}let E=!1;n.once("error",c(function(I){E=!0,N(I)},"error")),n.once("close",c(function(){E||N(w),process.nextTick(m,k)},"close")),g&&n.terminate()},k._final=function(w){if(n.readyState===n.CONNECTING){n.once("open",c(function(){k._final(w)},"open"));return}n._socket!==null&&(n._socket._writableState.finished?(w(),k._readableState.endEmitted&&k.destroy()):(n._socket.once("finish",c(function(){w()},"finish")),n.close()))},k._read=function(){n.isPaused&&n.resume()},k._write=function(w,N,E){if(n.readyState===n.CONNECTING){n.once("open",c(function(){k._write(w,N,E)},"open"));return}n.send(w,E)},k.on("end",b),k.on("error",y),k}d(O,"Us"),c(O,"createWebSocketStream"),i.exports=O}),nt=X((e,i)=>{"use strict";var{tokenChars:r}=Ee();function a(m){let b=new Set,y=-1,O=-1,n=0;for(n;n<m.length;n++){let g=m.charCodeAt(n);if(O===-1&&r[g]===1)y===-1&&(y=n);else if(n!==0&&(g===32||g===9))O===-1&&y!==-1&&(O=n);else if(g===44){if(y===-1)throw new SyntaxError(`Unexpected character at index ${n}`);O===-1&&(O=n);let k=m.slice(y,O);if(b.has(k))throw new SyntaxError(`The "${k}" subprotocol is duplicated`);b.add(k),y=O=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(y===-1||O!==-1)throw new SyntaxError("Unexpected end of input");let _=m.slice(y,n);if(b.has(_))throw new SyntaxError(`The "${_}" subprotocol is duplicated`);return b.add(_),b}d(a,"Fs"),c(a,"parse"),i.exports={parse:a}}),Ft=X((e,i)=>{"use strict";var r=z("events"),a=z("http"),{Duplex:m}=z("stream"),{createHash:b}=z("crypto"),y=Fe(),O=Se(),n=nt(),_=De(),{CLOSE_TIMEOUT:g,GUID:k,kWebSocket:w}=te(),N=/^[+/0-9A-Za-z]{22}==$/,E=0,I=1,B=2,R=class extends r{static{d(this,"tt")}static{c(this,"WebSocketServer")}constructor(s,f){if(super(),s={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:g,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:_,...s},s.port==null&&!s.server&&!s.noServer||s.port!=null&&(s.server||s.noServer)||s.server&&s.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(s.port!=null?(this._server=a.createServer((t,S)=>{let p=a.STATUS_CODES[426];S.writeHead(426,{"Content-Length":p.length,"Content-Type":"text/plain"}),S.end(p)}),this._server.listen(s.port,s.host,s.backlog,f)):s.server&&(this._server=s.server),this._server){let t=this.emit.bind(this,"connection");this._removeListeners=u(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:c((S,p,U)=>{this.handleUpgrade(S,p,U,t)},"upgrade")})}s.perMessageDeflate===!0&&(s.perMessageDeflate={}),s.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=s,this._state=E}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(s){if(this._state===B){s&&this.once("close",()=>{s(new Error("The server is not running"))}),process.nextTick(v,this);return}if(s&&this.once("close",s),this._state!==I)if(this._state=I,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(v,this):process.nextTick(v,this);else{let f=this._server;this._removeListeners(),this._removeListeners=this._server=null,f.close(()=>{v(this)})}}shouldHandle(s){if(this.options.path){let f=s.url.indexOf("?");if((f!==-1?s.url.slice(0,f):s.url)!==this.options.path)return!1}return!0}handleUpgrade(s,f,t,S){f.on("error",T);let p=s.headers["sec-websocket-key"],U=s.headers.upgrade,L=+s.headers["sec-websocket-version"];if(s.method!=="GET"){o(this,s,f,405,"Invalid HTTP method");return}if(U===void 0||U.toLowerCase()!=="websocket"){o(this,s,f,400,"Invalid Upgrade header");return}if(p===void 0||!N.test(p)){o(this,s,f,400,"Missing or invalid Sec-WebSocket-Key header");return}if(L!==13&&L!==8){o(this,s,f,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(s)){P(f,400);return}let A=s.headers["sec-websocket-protocol"],M=new Set;if(A!==void 0)try{M=n.parse(A)}catch{o(this,s,f,400,"Invalid Sec-WebSocket-Protocol header");return}let F=s.headers["sec-websocket-extensions"],D={};if(this.options.perMessageDeflate&&F!==void 0){let j=new O({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let Q=y.parse(F);Q[O.extensionName]&&(j.accept(Q[O.extensionName]),D[O.extensionName]=j)}catch{o(this,s,f,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let j={origin:s.headers[`${L===8?"sec-websocket-origin":"origin"}`],secure:!!(s.socket.authorized||s.socket.encrypted),req:s};if(this.options.verifyClient.length===2){this.options.verifyClient(j,(Q,se,ke,we)=>{if(!Q)return P(f,se||401,ke,we);this.completeUpgrade(D,p,M,s,f,t,S)});return}if(!this.options.verifyClient(j))return P(f,401)}this.completeUpgrade(D,p,M,s,f,t,S)}completeUpgrade(s,f,t,S,p,U,L){if(!p.readable||!p.writable)return p.destroy();if(p[w])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>E)return P(p,503);let A=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${b("sha1").update(f+k).digest("base64")}`],M=new this.options.WebSocket(null,void 0,this.options);if(t.size){let F=this.options.handleProtocols?this.options.handleProtocols(t,S):t.values().next().value;F&&(A.push(`Sec-WebSocket-Protocol: ${F}`),M._protocol=F)}if(s[O.extensionName]){let F=s[O.extensionName].params,D=y.format({[O.extensionName]:[F]});A.push(`Sec-WebSocket-Extensions: ${D}`),M._extensions=s}this.emit("headers",A,S),p.write(A.concat(`\r
1
+ "use strict";var Nt=Object.defineProperty;var d=(e,s)=>Nt(e,"name",{value:s,configurable:!0});import{createRequire as Lt}from"module";const ce=Lt(import.meta.url);var Pt=Object.create,Ae=Object.defineProperty,Bt=Object.getOwnPropertyDescriptor,It=Object.getOwnPropertyNames,Rt=Object.getPrototypeOf,Ut=Object.prototype.hasOwnProperty,c=d((e,s)=>Ae(e,"name",{value:s,configurable:!0}),"o"),q=(e=>typeof ce<"u"?ce:typeof Proxy<"u"?new Proxy(e,{get:d((s,r)=>(typeof ce<"u"?ce:s)[r],"get")}):e)(function(e){if(typeof ce<"u")return ce.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),X=d((e,s)=>()=>(s||e((s={exports:{}}).exports,s),s.exports),"E"),$t=d((e,s,r,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let m of It(s))!Ut.call(e,m)&&m!==r&&Ae(e,m,{get:d(()=>s[m],"get"),enumerable:!(a=Bt(s,m))||a.enumerable});return e},"Lr"),ee=d((e,s,r)=>(r=e!=null?Pt(Rt(e)):{},$t(s||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e)),"B"),te=X((e,s)=>{"use strict";var r=["nodebuffer","arraybuffer","fragments"],a=typeof Blob<"u";a&&r.push("blob"),s.exports={BINARY_TYPES:r,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:a,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:c(()=>{},"NOOP")}}),Te=X((e,s)=>{"use strict";var{EMPTY_BUFFER:r}=te(),a=Buffer[Symbol.species];function m(f,g){if(f.length===0)return r;if(f.length===1)return f[0];let k=Buffer.allocUnsafe(g),w=0;for(let N=0;N<f.length;N++){let E=f[N];k.set(E,w),w+=E.length}return w<g?new a(k.buffer,k.byteOffset,w):k}d(m,"Ar"),c(m,"concat");function v(f,g,k,w,N){for(let E=0;E<N;E++)k[w+E]=f[E]^g[E&3]}d(v,"mt"),c(v,"_mask");function y(f,g){for(let k=0;k<f.length;k++)f[k]^=g[k&3]}d(y,"_t"),c(y,"_unmask");function x(f){return f.length===f.buffer.byteLength?f.buffer:f.buffer.slice(f.byteOffset,f.byteOffset+f.length)}d(x,"Pr"),c(x,"toArrayBuffer");function n(f){if(n.readOnly=!0,Buffer.isBuffer(f))return f;let g;return f instanceof ArrayBuffer?g=new a(f):ArrayBuffer.isView(f)?g=new a(f.buffer,f.byteOffset,f.byteLength):(g=Buffer.from(f),n.readOnly=!1),g}if(d(n,"Me"),c(n,"toBuffer"),s.exports={concat:m,mask:v,toArrayBuffer:x,toBuffer:n,unmask:y},!process.env.WS_NO_BUFFER_UTIL)try{let f=q("bufferutil");s.exports.mask=function(g,k,w,N,E){E<48?v(g,k,w,N,E):f.mask(g,k,w,N,E)},s.exports.unmask=function(g,k){g.length<32?y(g,k):f.unmask(g,k)}}catch{}}),Mt=X((e,s)=>{"use strict";var r=Symbol("kDone"),a=Symbol("kRun"),m=class{static{d(this,"Ue")}static{c(this,"Limiter")}constructor(v){this[r]=()=>{this.pending--,this[a]()},this.concurrency=v||1/0,this.jobs=[],this.pending=0}add(v){this.jobs.push(v),this[a]()}[a](){if(this.pending!==this.concurrency&&this.jobs.length){let v=this.jobs.shift();this.pending++,v(this[r])}}};s.exports=m}),Se=X((e,s)=>{"use strict";var r=q("zlib"),a=Te(),m=Mt(),{kStatusCode:v}=te(),y=Buffer[Symbol.species],x=Buffer.from([0,0,255,255]),n=Symbol("permessage-deflate"),f=Symbol("total-length"),g=Symbol("callback"),k=Symbol("buffers"),w=Symbol("error"),N,E=class{static{d(this,"$e")}static{c(this,"PerMessageDeflate")}constructor(u){if(this._options=u||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!N){let b=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;N=new m(b)}}static get extensionName(){return"permessage-deflate"}offer(){let u={};return this._options.serverNoContextTakeover&&(u.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(u.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(u.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?u.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(u.client_max_window_bits=!0),u}accept(u){return u=this.normalizeParams(u),this.params=this._isServer?this.acceptAsServer(u):this.acceptAsClient(u),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let u=this._deflate[g];this._deflate.close(),this._deflate=null,u&&u(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(u){let b=this._options,T=u.find(P=>!(b.serverNoContextTakeover===!1&&P.server_no_context_takeover||P.server_max_window_bits&&(b.serverMaxWindowBits===!1||typeof b.serverMaxWindowBits=="number"&&b.serverMaxWindowBits>P.server_max_window_bits)||typeof b.clientMaxWindowBits=="number"&&!P.client_max_window_bits));if(!T)throw new Error("None of the extension offers can be accepted");return b.serverNoContextTakeover&&(T.server_no_context_takeover=!0),b.clientNoContextTakeover&&(T.client_no_context_takeover=!0),typeof b.serverMaxWindowBits=="number"&&(T.server_max_window_bits=b.serverMaxWindowBits),typeof b.clientMaxWindowBits=="number"?T.client_max_window_bits=b.clientMaxWindowBits:(T.client_max_window_bits===!0||b.clientMaxWindowBits===!1)&&delete T.client_max_window_bits,T}acceptAsClient(u){let b=u[0];if(this._options.clientNoContextTakeover===!1&&b.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!b.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(b.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&b.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return b}normalizeParams(u){return u.forEach(b=>{Object.keys(b).forEach(T=>{let P=b[T];if(P.length>1)throw new Error(`Parameter "${T}" must have only a single value`);if(P=P[0],T==="client_max_window_bits"){if(P!==!0){let o=+P;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${T}": ${P}`);P=o}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${T}": ${P}`)}else if(T==="server_max_window_bits"){let o=+P;if(!Number.isInteger(o)||o<8||o>15)throw new TypeError(`Invalid value for parameter "${T}": ${P}`);P=o}else if(T==="client_no_context_takeover"||T==="server_no_context_takeover"){if(P!==!0)throw new TypeError(`Invalid value for parameter "${T}": ${P}`)}else throw new Error(`Unknown parameter "${T}"`);b[T]=P})}),u}decompress(u,b,T){N.add(P=>{this._decompress(u,b,(o,i)=>{P(),T(o,i)})})}compress(u,b,T){N.add(P=>{this._compress(u,b,(o,i)=>{P(),T(o,i)})})}_decompress(u,b,T){let P=this._isServer?"client":"server";if(!this._inflate){let o=`${P}_max_window_bits`,i=typeof this.params[o]!="number"?r.Z_DEFAULT_WINDOWBITS:this.params[o];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:i}),this._inflate[n]=this,this._inflate[f]=0,this._inflate[k]=[],this._inflate.on("error",I),this._inflate.on("data",B)}this._inflate[g]=T,this._inflate.write(u),b&&this._inflate.write(x),this._inflate.flush(()=>{let o=this._inflate[w];if(o){this._inflate.close(),this._inflate=null,T(o);return}let i=a.concat(this._inflate[k],this._inflate[f]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[f]=0,this._inflate[k]=[],b&&this.params[`${P}_no_context_takeover`]&&this._inflate.reset()),T(null,i)})}_compress(u,b,T){let P=this._isServer?"server":"client";if(!this._deflate){let o=`${P}_max_window_bits`,i=typeof this.params[o]!="number"?r.Z_DEFAULT_WINDOWBITS:this.params[o];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:i}),this._deflate[f]=0,this._deflate[k]=[],this._deflate.on("data",R)}this._deflate[g]=T,this._deflate.write(u),this._deflate.flush(r.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let o=a.concat(this._deflate[k],this._deflate[f]);b&&(o=new y(o.buffer,o.byteOffset,o.length-4)),this._deflate[g]=null,this._deflate[f]=0,this._deflate[k]=[],b&&this.params[`${P}_no_context_takeover`]&&this._deflate.reset(),T(null,o)})}};s.exports=E;function R(u){this[k].push(u),this[f]+=u.length}d(R,"Dr"),c(R,"deflateOnData");function B(u){if(this[f]+=u.length,this[n]._maxPayload<1||this[f]<=this[n]._maxPayload){this[k].push(u);return}this[w]=new RangeError("Max payload size exceeded"),this[w].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[w][v]=1009,this.removeListener("data",B),this.reset()}d(B,"bt"),c(B,"inflateOnData");function I(u){if(this[n]._inflate=null,this[w]){this[g](this[w]);return}u[v]=1007,this[g](u)}d(I,"Ur"),c(I,"inflateOnError")}),Ee=X((e,s)=>{"use strict";var{isUtf8:r}=q("buffer"),{hasBlob:a}=te(),m=[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 v(n){return n>=1e3&&n<=1014&&n!==1004&&n!==1005&&n!==1006||n>=3e3&&n<=4999}d(v,"Wr"),c(v,"isValidStatusCode");function y(n){let f=n.length,g=0;for(;g<f;)if((n[g]&128)===0)g++;else if((n[g]&224)===192){if(g+1===f||(n[g+1]&192)!==128||(n[g]&254)===192)return!1;g+=2}else if((n[g]&240)===224){if(g+2>=f||(n[g+1]&192)!==128||(n[g+2]&192)!==128||n[g]===224&&(n[g+1]&224)===128||n[g]===237&&(n[g+1]&224)===160)return!1;g+=3}else if((n[g]&248)===240){if(g+3>=f||(n[g+1]&192)!==128||(n[g+2]&192)!==128||(n[g+3]&192)!==128||n[g]===240&&(n[g+1]&240)===128||n[g]===244&&n[g+1]>143||n[g]>244)return!1;g+=4}else return!1;return!0}d(y,"Fe"),c(y,"_isValidUTF8");function x(n){return a&&typeof n=="object"&&typeof n.arrayBuffer=="function"&&typeof n.type=="string"&&typeof n.stream=="function"&&(n[Symbol.toStringTag]==="Blob"||n[Symbol.toStringTag]==="File")}if(d(x,"qr"),c(x,"isBlob"),s.exports={isBlob:x,isValidStatusCode:v,isValidUTF8:y,tokenChars:m},r)s.exports.isValidUTF8=function(n){return n.length<24?y(n):r(n)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let n=q("utf-8-validate");s.exports.isValidUTF8=function(f){return f.length<32?y(f):n(f)}}catch{}}),it=X((e,s)=>{"use strict";var{Writable:r}=q("stream"),a=Se(),{BINARY_TYPES:m,EMPTY_BUFFER:v,kStatusCode:y,kWebSocket:x}=te(),{concat:n,toArrayBuffer:f,unmask:g}=Te(),{isValidStatusCode:k,isValidUTF8:w}=Ee(),N=Buffer[Symbol.species],E=0,R=1,B=2,I=3,u=4,b=5,T=6,P=class extends r{static{d(this,"je")}static{c(this,"Receiver")}constructor(o={}){super(),this._allowSynchronousEvents=o.allowSynchronousEvents!==void 0?o.allowSynchronousEvents:!0,this._binaryType=o.binaryType||m[0],this._extensions=o.extensions||{},this._isServer=!!o.isServer,this._maxBufferedChunks=o.maxBufferedChunks|0,this._maxFragments=o.maxFragments|0,this._maxPayload=o.maxPayload|0,this._skipUTF8Validation=!!o.skipUTF8Validation,this[x]=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=E}_write(o,i,_){if(this._opcode===8&&this._state==E)return _();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){_(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=o.length,this._buffers.push(o),this.startLoop(_)}consume(o){if(this._bufferedBytes-=o,o===this._buffers[0].length)return this._buffers.shift();if(o<this._buffers[0].length){let _=this._buffers[0];return this._buffers[0]=new N(_.buffer,_.byteOffset+o,_.length-o),new N(_.buffer,_.byteOffset,o)}let i=Buffer.allocUnsafe(o);do{let _=this._buffers[0],t=i.length-o;o>=_.length?i.set(this._buffers.shift(),t):(i.set(new Uint8Array(_.buffer,_.byteOffset,o),t),this._buffers[0]=new N(_.buffer,_.byteOffset+o,_.length-o)),o-=_.length}while(o>0);return i}startLoop(o){this._loop=!0;do switch(this._state){case E:this.getInfo(o);break;case R:this.getPayloadLength16(o);break;case B:this.getPayloadLength64(o);break;case I:this.getMask();break;case u:this.getData(o);break;case b:case T:this._loop=!1;return}while(this._loop);this._errored||o()}getInfo(o){if(this._bufferedBytes<2){this._loop=!1;return}let i=this.consume(2);if((i[0]&48)!==0){let t=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");o(t);return}let _=(i[0]&64)===64;if(_&&!this._extensions[a.extensionName]){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(this._fin=(i[0]&128)===128,this._opcode=i[0]&15,this._payloadLength=i[1]&127,this._opcode===0){if(_){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(!this._fragmented){let t=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}this._compressed=_}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let t=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");o(t);return}if(_){let t=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");o(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");o(t);return}}else{let t=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");o(t);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(i[1]&128)===128,this._isServer){if(!this._masked){let t=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");o(t);return}}else if(this._masked){let t=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");o(t);return}this._payloadLength===126?this._state=R:this._payloadLength===127?this._state=B:this.haveLength(o)}getPayloadLength16(o){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(o)}getPayloadLength64(o){if(this._bufferedBytes<8){this._loop=!1;return}let i=this.consume(8),_=i.readUInt32BE(0);if(_>Math.pow(2,21)-1){let t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");o(t);return}this._payloadLength=_*Math.pow(2,32)+i.readUInt32BE(4),this.haveLength(o)}haveLength(o){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let i=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");o(i);return}this._masked?this._state=I:this._state=u}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=u}getData(o){let i=v;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}i=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&g(i,this._mask)}if(this._opcode>7){this.controlMessage(i,o);return}if(this._compressed){this._state=b,this.decompress(i,o);return}if(i.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let _=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");o(_);return}this._messageLength=this._totalPayloadLength,this._fragments.push(i)}this.dataMessage(o)}decompress(o,i){this._extensions[a.extensionName].decompress(o,this._fin,(_,t)=>{if(_)return i(_);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let S=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");i(S);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let S=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");i(S);return}this._fragments.push(t)}this.dataMessage(i),this._state===E&&this.startLoop(i)})}dataMessage(o){if(!this._fin){this._state=E;return}let i=this._messageLength,_=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let t;this._binaryType==="nodebuffer"?t=n(_,i):this._binaryType==="arraybuffer"?t=f(n(_,i)):this._binaryType==="blob"?t=new Blob(_):t=_,this._allowSynchronousEvents?(this.emit("message",t,!0),this._state=E):(this._state=T,setImmediate(()=>{this.emit("message",t,!0),this._state=E,this.startLoop(o)}))}else{let t=n(_,i);if(!this._skipUTF8Validation&&!w(t)){let S=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");o(S);return}this._state===b||this._allowSynchronousEvents?(this.emit("message",t,!1),this._state=E):(this._state=T,setImmediate(()=>{this.emit("message",t,!1),this._state=E,this.startLoop(o)}))}}controlMessage(o,i){if(this._opcode===8){if(o.length===0)this._loop=!1,this.emit("conclude",1005,v),this.end();else{let _=o.readUInt16BE(0);if(!k(_)){let S=this.createError(RangeError,`invalid status code ${_}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");i(S);return}let t=new N(o.buffer,o.byteOffset+2,o.length-2);if(!this._skipUTF8Validation&&!w(t)){let S=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");i(S);return}this._loop=!1,this.emit("conclude",_,t),this.end()}this._state=E;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",o),this._state=E):(this._state=T,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",o),this._state=E,this.startLoop(i)}))}createError(o,i,_,t,S){this._loop=!1,this._errored=!0;let p=new o(_?`Invalid WebSocket frame: ${i}`:i);return Error.captureStackTrace(p,this.createError),p.code=S,p[y]=t,p}};s.exports=P}),nt=X((e,s)=>{"use strict";var{Duplex:r}=q("stream"),{randomFillSync:a}=q("crypto"),{types:{isUint8Array:m}}=q("util"),v=Se(),{EMPTY_BUFFER:y,kWebSocket:x,NOOP:n}=te(),{isBlob:f,isValidStatusCode:g}=Ee(),{mask:k,toBuffer:w}=Te(),N=Symbol("kByteLength"),E=Buffer.alloc(4),R=8*1024,B,I=R,u=0,b=1,T=2,P=class ne{static{d(this,"e")}static{c(this,"Sender")}constructor(t,S,p){this._extensions=S||{},p&&(this._generateMask=p,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=u,this.onerror=n,this[x]=void 0}static frame(t,S){let p,U=!1,L=2,A=!1;S.mask&&(p=S.maskBuffer||E,S.generateMask?S.generateMask(p):(I===R&&(B===void 0&&(B=Buffer.alloc(R)),a(B,0,R),I=0),p[0]=B[I++],p[1]=B[I++],p[2]=B[I++],p[3]=B[I++]),A=(p[0]|p[1]|p[2]|p[3])===0,L=6);let M;typeof t=="string"?(!S.mask||A)&&S[N]!==void 0?M=S[N]:(t=Buffer.from(t),M=t.length):(M=t.length,U=S.mask&&S.readOnly&&!A);let F=M;M>=65536?(L+=8,F=127):M>125&&(L+=2,F=126);let D=Buffer.allocUnsafe(U?M+L:L);return D[0]=S.fin?S.opcode|128:S.opcode,S.rsv1&&(D[0]|=64),D[1]=F,F===126?D.writeUInt16BE(M,2):F===127&&(D[2]=D[3]=0,D.writeUIntBE(M,4,6)),S.mask?(D[1]|=128,D[L-4]=p[0],D[L-3]=p[1],D[L-2]=p[2],D[L-1]=p[3],A?[D,t]:U?(k(t,p,D,L,M),[D]):(k(t,p,t,0,M),[D,t])):[D,t]}close(t,S,p,U){let L;if(t===void 0)L=y;else{if(typeof t!="number"||!g(t))throw new TypeError("First argument must be a valid error code number");if(S===void 0||!S.length)L=Buffer.allocUnsafe(2),L.writeUInt16BE(t,0);else{let M=Buffer.byteLength(S);if(M>123)throw new RangeError("The message must not be greater than 123 bytes");if(L=Buffer.allocUnsafe(2+M),L.writeUInt16BE(t,0),typeof S=="string")L.write(S,2);else if(m(S))L.set(S,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let A={[N]:L.length,fin:!0,generateMask:this._generateMask,mask:p,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==u?this.enqueue([this.dispatch,L,!1,A,U]):this.sendFrame(ne.frame(L,A),U)}ping(t,S,p){let U,L;if(typeof t=="string"?(U=Buffer.byteLength(t),L=!1):f(t)?(U=t.size,L=!1):(t=w(t),U=t.length,L=w.readOnly),U>125)throw new RangeError("The data size must not be greater than 125 bytes");let A={[N]:U,fin:!0,generateMask:this._generateMask,mask:S,maskBuffer:this._maskBuffer,opcode:9,readOnly:L,rsv1:!1};f(t)?this._state!==u?this.enqueue([this.getBlobData,t,!1,A,p]):this.getBlobData(t,!1,A,p):this._state!==u?this.enqueue([this.dispatch,t,!1,A,p]):this.sendFrame(ne.frame(t,A),p)}pong(t,S,p){let U,L;if(typeof t=="string"?(U=Buffer.byteLength(t),L=!1):f(t)?(U=t.size,L=!1):(t=w(t),U=t.length,L=w.readOnly),U>125)throw new RangeError("The data size must not be greater than 125 bytes");let A={[N]:U,fin:!0,generateMask:this._generateMask,mask:S,maskBuffer:this._maskBuffer,opcode:10,readOnly:L,rsv1:!1};f(t)?this._state!==u?this.enqueue([this.getBlobData,t,!1,A,p]):this.getBlobData(t,!1,A,p):this._state!==u?this.enqueue([this.dispatch,t,!1,A,p]):this.sendFrame(ne.frame(t,A),p)}send(t,S,p){let U=this._extensions[v.extensionName],L=S.binary?2:1,A=S.compress,M,F;typeof t=="string"?(M=Buffer.byteLength(t),F=!1):f(t)?(M=t.size,F=!1):(t=w(t),M=t.length,F=w.readOnly),this._firstFragment?(this._firstFragment=!1,A&&U&&U.params[U._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(A=M>=U._threshold),this._compress=A):(A=!1,L=0),S.fin&&(this._firstFragment=!0);let D={[N]:M,fin:S.fin,generateMask:this._generateMask,mask:S.mask,maskBuffer:this._maskBuffer,opcode:L,readOnly:F,rsv1:A};f(t)?this._state!==u?this.enqueue([this.getBlobData,t,this._compress,D,p]):this.getBlobData(t,this._compress,D,p):this._state!==u?this.enqueue([this.dispatch,t,this._compress,D,p]):this.dispatch(t,this._compress,D,p)}getBlobData(t,S,p,U){this._bufferedBytes+=p[N],this._state=T,t.arrayBuffer().then(L=>{if(this._socket.destroyed){let M=new Error("The socket was closed while the blob was being read");process.nextTick(o,this,M,U);return}this._bufferedBytes-=p[N];let A=w(L);S?this.dispatch(A,S,p,U):(this._state=u,this.sendFrame(ne.frame(A,p),U),this.dequeue())}).catch(L=>{process.nextTick(i,this,L,U)})}dispatch(t,S,p,U){if(!S){this.sendFrame(ne.frame(t,p),U);return}let L=this._extensions[v.extensionName];this._bufferedBytes+=p[N],this._state=b,L.compress(t,p.fin,(A,M)=>{if(this._socket.destroyed){let F=new Error("The socket was closed while data was being compressed");o(this,F,U);return}this._bufferedBytes-=p[N],this._state=u,p.readOnly=!1,this.sendFrame(ne.frame(M,p),U),this.dequeue()})}dequeue(){for(;this._state===u&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][N],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][N],this._queue.push(t)}sendFrame(t,S){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],S),this._socket.uncork()):this._socket.write(t[0],S)}};s.exports=P;function o(_,t,S){typeof S=="function"&&S(t);for(let p=0;p<_._queue.length;p++){let U=_._queue[p],L=U[U.length-1];typeof L=="function"&&L(t)}}d(o,"ze"),c(o,"callCallbacks");function i(_,t,S){o(_,t,S),_.onerror(t)}d(i,"is"),c(i,"onError")}),At=X((e,s)=>{"use strict";var{kForOnEventAttribute:r,kListener:a}=te(),m=Symbol("kCode"),v=Symbol("kData"),y=Symbol("kError"),x=Symbol("kMessage"),n=Symbol("kReason"),f=Symbol("kTarget"),g=Symbol("kType"),k=Symbol("kWasClean"),w=class{static{d(this,"I")}static{c(this,"Event")}constructor(u){this[f]=null,this[g]=u}get target(){return this[f]}get type(){return this[g]}};Object.defineProperty(w.prototype,"target",{enumerable:!0}),Object.defineProperty(w.prototype,"type",{enumerable:!0});var N=class extends w{static{d(this,"F")}static{c(this,"CloseEvent")}constructor(u,b={}){super(u),this[m]=b.code===void 0?0:b.code,this[n]=b.reason===void 0?"":b.reason,this[k]=b.wasClean===void 0?!1:b.wasClean}get code(){return this[m]}get reason(){return this[n]}get wasClean(){return this[k]}};Object.defineProperty(N.prototype,"code",{enumerable:!0}),Object.defineProperty(N.prototype,"reason",{enumerable:!0}),Object.defineProperty(N.prototype,"wasClean",{enumerable:!0});var E=class extends w{static{d(this,"ne")}static{c(this,"ErrorEvent")}constructor(u,b={}){super(u),this[y]=b.error===void 0?null:b.error,this[x]=b.message===void 0?"":b.message}get error(){return this[y]}get message(){return this[x]}};Object.defineProperty(E.prototype,"error",{enumerable:!0}),Object.defineProperty(E.prototype,"message",{enumerable:!0});var R=class extends w{static{d(this,"fe")}static{c(this,"MessageEvent")}constructor(u,b={}){super(u),this[v]=b.data===void 0?null:b.data}get data(){return this[v]}};Object.defineProperty(R.prototype,"data",{enumerable:!0});var B={addEventListener(u,b,T={}){for(let o of this.listeners(u))if(!T[r]&&o[a]===b&&!o[r])return;let P;if(u==="message")P=c(function(o,i){let _=new R("message",{data:i?o:o.toString()});_[f]=this,I(b,this,_)},"onMessage");else if(u==="close")P=c(function(o,i){let _=new N("close",{code:o,reason:i.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});_[f]=this,I(b,this,_)},"onClose");else if(u==="error")P=c(function(o){let i=new E("error",{error:o,message:o.message});i[f]=this,I(b,this,i)},"onError");else if(u==="open")P=c(function(){let o=new w("open");o[f]=this,I(b,this,o)},"onOpen");else return;P[r]=!!T[r],P[a]=b,T.once?this.once(u,P):this.on(u,P)},removeEventListener(u,b){for(let T of this.listeners(u))if(T[a]===b&&!T[r]){this.removeListener(u,T);break}}};s.exports={CloseEvent:N,ErrorEvent:E,Event:w,EventTarget:B,MessageEvent:R};function I(u,b,T){typeof u=="object"&&u.handleEvent?u.handleEvent.call(u,T):u.call(b,T)}d(I,"be"),c(I,"callListener")}),Fe=X((e,s)=>{"use strict";var{tokenChars:r}=Ee();function a(y,x,n){y[x]===void 0?y[x]=[n]:y[x].push(n)}d(a,"N"),c(a,"push");function m(y){let x=Object.create(null),n=Object.create(null),f=!1,g=!1,k=!1,w,N,E=-1,R=-1,B=-1,I=0;for(;I<y.length;I++)if(R=y.charCodeAt(I),w===void 0)if(B===-1&&r[R]===1)E===-1&&(E=I);else if(I!==0&&(R===32||R===9))B===-1&&E!==-1&&(B=I);else if(R===59||R===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${I}`);B===-1&&(B=I);let b=y.slice(E,B);R===44?(a(x,b,n),n=Object.create(null)):w=b,E=B=-1}else throw new SyntaxError(`Unexpected character at index ${I}`);else if(N===void 0)if(B===-1&&r[R]===1)E===-1&&(E=I);else if(R===32||R===9)B===-1&&E!==-1&&(B=I);else if(R===59||R===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${I}`);B===-1&&(B=I),a(n,y.slice(E,B),!0),R===44&&(a(x,w,n),n=Object.create(null),w=void 0),E=B=-1}else if(R===61&&E!==-1&&B===-1)N=y.slice(E,I),E=B=-1;else throw new SyntaxError(`Unexpected character at index ${I}`);else if(g){if(r[R]!==1)throw new SyntaxError(`Unexpected character at index ${I}`);E===-1?E=I:f||(f=!0),g=!1}else if(k)if(r[R]===1)E===-1&&(E=I);else if(R===34&&E!==-1)k=!1,B=I;else if(R===92)g=!0;else throw new SyntaxError(`Unexpected character at index ${I}`);else if(R===34&&y.charCodeAt(I-1)===61)k=!0;else if(B===-1&&r[R]===1)E===-1&&(E=I);else if(E!==-1&&(R===32||R===9))B===-1&&(B=I);else if(R===59||R===44){if(E===-1)throw new SyntaxError(`Unexpected character at index ${I}`);B===-1&&(B=I);let b=y.slice(E,B);f&&(b=b.replace(/\\/g,""),f=!1),a(n,N,b),R===44&&(a(x,w,n),n=Object.create(null),w=void 0),N=void 0,E=B=-1}else throw new SyntaxError(`Unexpected character at index ${I}`);if(E===-1||k||R===32||R===9)throw new SyntaxError("Unexpected end of input");B===-1&&(B=I);let u=y.slice(E,B);return w===void 0?a(x,u,n):(N===void 0?a(n,u,!0):f?a(n,N,u.replace(/\\/g,"")):a(n,N,u),a(x,w,n)),x}d(m,"as"),c(m,"parse");function v(y){return Object.keys(y).map(x=>{let n=y[x];return Array.isArray(n)||(n=[n]),n.map(f=>[x].concat(Object.keys(f).map(g=>{let k=f[g];return Array.isArray(k)||(k=[k]),k.map(w=>w===!0?g:`${g}=${w}`).join("; ")})).join("; ")).join(", ")}).join(", ")}d(v,"cs"),c(v,"format"),s.exports={format:v,parse:m}}),De=X((e,s)=>{"use strict";var r=q("events"),a=q("https"),m=q("http"),v=q("net"),y=q("tls"),{randomBytes:x,createHash:n}=q("crypto"),{Duplex:f,Readable:g}=q("stream"),{URL:k}=q("url"),w=Se(),N=it(),E=nt(),{isBlob:R}=Ee(),{BINARY_TYPES:B,CLOSE_TIMEOUT:I,EMPTY_BUFFER:u,GUID:b,kForOnEventAttribute:T,kListener:P,kStatusCode:o,kWebSocket:i,NOOP:_}=te(),{EventTarget:{addEventListener:t,removeEventListener:S}}=At(),{format:p,parse:U}=Fe(),{toBuffer:L}=Te(),A=Symbol("kAborted"),M=[8,13],F=["CONNECTING","OPEN","CLOSING","CLOSED"],D=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,j=class G extends r{static{d(this,"e")}static{c(this,"WebSocket")}constructor(h,C,$){super(),this._binaryType=B[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=u,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=G.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,h!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,C===void 0?C=[]:Array.isArray(C)||(typeof C=="object"&&C!==null?($=C,C=[]):C=[C]),Q(this,h,C,$)):(this._autoPong=$.autoPong,this._closeTimeout=$.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(h){B.includes(h)&&(this._binaryType=h,this._receiver&&(this._receiver._binaryType=h))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(h,C,$){let O=new N({allowSynchronousEvents:$.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:$.maxBufferedChunks,maxFragments:$.maxFragments,maxPayload:$.maxPayload,skipUTF8Validation:$.skipUTF8Validation}),V=new E(h,this._extensions,$.generateMask);this._receiver=O,this._sender=V,this._socket=h,O[i]=this,V[i]=this,h[i]=this,O.on("conclude",ze),O.on("drain",He),O.on("error",Ye),O.on("message",Xe),O.on("ping",Je),O.on("pong",Ze),V.onerror=Ke,h.setTimeout&&h.setTimeout(0),h.setNoDelay&&h.setNoDelay(),C.length>0&&h.unshift(C),h.on("close",Ie),h.on("data",pe),h.on("end",Re),h.on("error",Ue),this._readyState=G.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=G.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[w.extensionName]&&this._extensions[w.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=G.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(h,C){if(this.readyState!==G.CLOSED){if(this.readyState===G.CONNECTING){H(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===G.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=G.CLOSING,this._sender.close(h,C,!this._isServer,$=>{$||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Be(this)}}pause(){this.readyState===G.CONNECTING||this.readyState===G.CLOSED||(this._paused=!0,this._socket.pause())}ping(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof h=="function"?($=h,h=C=void 0):typeof C=="function"&&($=C,C=void 0),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}C===void 0&&(C=!this._isServer),this._sender.ping(h||u,C,$)}pong(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof h=="function"?($=h,h=C=void 0):typeof C=="function"&&($=C,C=void 0),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}C===void 0&&(C=!this._isServer),this._sender.pong(h||u,C,$)}resume(){this.readyState===G.CONNECTING||this.readyState===G.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(h,C,$){if(this.readyState===G.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof C=="function"&&($=C,C={}),typeof h=="number"&&(h=h.toString()),this.readyState!==G.OPEN){xe(this,h,$);return}let O={binary:typeof h!="string",mask:!this._isServer,compress:!0,fin:!0,...C};this._extensions[w.extensionName]||(O.compress=!1),this._sender.send(h||u,O,$)}terminate(){if(this.readyState!==G.CLOSED){if(this.readyState===G.CONNECTING){H(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=G.CLOSING,this._socket.destroy())}}};Object.defineProperty(j,"CONNECTING",{enumerable:!0,value:F.indexOf("CONNECTING")}),Object.defineProperty(j.prototype,"CONNECTING",{enumerable:!0,value:F.indexOf("CONNECTING")}),Object.defineProperty(j,"OPEN",{enumerable:!0,value:F.indexOf("OPEN")}),Object.defineProperty(j.prototype,"OPEN",{enumerable:!0,value:F.indexOf("OPEN")}),Object.defineProperty(j,"CLOSING",{enumerable:!0,value:F.indexOf("CLOSING")}),Object.defineProperty(j.prototype,"CLOSING",{enumerable:!0,value:F.indexOf("CLOSING")}),Object.defineProperty(j,"CLOSED",{enumerable:!0,value:F.indexOf("CLOSED")}),Object.defineProperty(j.prototype,"CLOSED",{enumerable:!0,value:F.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(l=>{Object.defineProperty(j.prototype,l,{enumerable:!0})}),["open","error","close","message"].forEach(l=>{Object.defineProperty(j.prototype,`on${l}`,{enumerable:!0,get(){for(let h of this.listeners(l))if(h[T])return h[P];return null},set(h){for(let C of this.listeners(l))if(C[T]){this.removeListener(l,C);break}typeof h=="function"&&this.addEventListener(l,h,{[T]:!0})}})}),j.prototype.addEventListener=t,j.prototype.removeEventListener=S,s.exports=j;function Q(l,h,C,$){let O={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:I,protocolVersion:M[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...$,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(l._autoPong=O.autoPong,l._closeTimeout=O.closeTimeout,!M.includes(O.protocolVersion))throw new RangeError(`Unsupported protocol version: ${O.protocolVersion} (supported versions: ${M.join(", ")})`);let V;if(h instanceof k)V=h;else try{V=new k(h)}catch{throw new SyntaxError(`Invalid URL: ${h}`)}V.protocol==="http:"?V.protocol="ws:":V.protocol==="https:"&&(V.protocol="wss:"),l._url=V.href;let oe=V.protocol==="wss:",ae=V.protocol==="ws+unix:",me;if(V.protocol!=="ws:"&&!oe&&!ae?me=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:ae&&!V.pathname?me="The URL's pathname is empty":V.hash&&(me="The URL contains a fragment identifier"),me){let W=new SyntaxError(me);if(l._redirects===0)throw W;se(l,W);return}let Qe=oe?443:80,et=x(16).toString("base64"),tt=oe?a.request:m.request,ye=new Set,ge;if(O.createConnection=O.createConnection||(oe?we:ke),O.defaultPort=O.defaultPort||Qe,O.port=V.port||Qe,O.host=V.hostname.startsWith("[")?V.hostname.slice(1,-1):V.hostname,O.headers={...O.headers,"Sec-WebSocket-Version":O.protocolVersion,"Sec-WebSocket-Key":et,Connection:"Upgrade",Upgrade:"websocket"},O.path=V.pathname+V.search,O.timeout=O.handshakeTimeout,O.perMessageDeflate&&(ge=new w({...O.perMessageDeflate,isServer:!1,maxPayload:O.maxPayload}),O.headers["Sec-WebSocket-Extensions"]=p({[w.extensionName]:ge.offer()})),C.length){for(let W of C){if(typeof W!="string"||!D.test(W)||ye.has(W))throw new SyntaxError("An invalid or duplicated subprotocol was specified");ye.add(W)}O.headers["Sec-WebSocket-Protocol"]=C.join(",")}if(O.origin&&(O.protocolVersion<13?O.headers["Sec-WebSocket-Origin"]=O.origin:O.headers.Origin=O.origin),(V.username||V.password)&&(O.auth=`${V.username}:${V.password}`),ae){let W=O.path.split(":");O.socketPath=W[0],O.path=W[1]}let z;if(O.followRedirects){if(l._redirects===0){l._originalIpc=ae,l._originalSecure=oe,l._originalHostOrSocketPath=ae?O.socketPath:V.host;let W=$&&$.headers;if($={...$,headers:{}},W)for(let[Y,le]of Object.entries(W))$.headers[Y.toLowerCase()]=le}else if(l.listenerCount("redirect")===0){let W=ae?l._originalIpc?O.socketPath===l._originalHostOrSocketPath:!1:l._originalIpc?!1:V.host===l._originalHostOrSocketPath;(!W||l._originalSecure&&!oe)&&(delete O.headers.authorization,delete O.headers.cookie,W||delete O.headers.host,O.auth=void 0)}O.auth&&!$.headers.authorization&&($.headers.authorization="Basic "+Buffer.from(O.auth).toString("base64")),z=l._req=tt(O),l._redirects&&l.emit("redirect",l.url,z)}else z=l._req=tt(O);O.timeout&&z.on("timeout",()=>{H(l,z,"Opening handshake has timed out")}),z.on("error",W=>{z===null||z[A]||(z=l._req=null,se(l,W))}),z.on("response",W=>{let Y=W.headers.location,le=W.statusCode;if(Y&&O.followRedirects&&le>=300&&le<400){if(++l._redirects>O.maxRedirects){H(l,z,"Maximum redirects exceeded");return}z.abort();let be;try{be=new k(Y,h)}catch{let $e=new SyntaxError(`Invalid URL: ${Y}`);se(l,$e);return}Q(l,be,C,$)}else l.emit("unexpected-response",z,W)||H(l,z,`Unexpected server response: ${W.statusCode}`)}),z.on("upgrade",(W,Y,le)=>{if(l.emit("upgrade",W),l.readyState!==j.CONNECTING)return;z=l._req=null;let be=W.headers.upgrade;if(be===void 0||be.toLowerCase()!=="websocket"){H(l,Y,"Invalid Upgrade header");return}let $e=n("sha1").update(et+b).digest("base64");if(W.headers["sec-websocket-accept"]!==$e){H(l,Y,"Invalid Sec-WebSocket-Accept header");return}let Oe=W.headers["sec-websocket-protocol"],ve;if(Oe!==void 0?ye.size?ye.has(Oe)||(ve="Server sent an invalid subprotocol"):ve="Server sent a subprotocol but none was requested":ye.size&&(ve="Server sent no subprotocol"),ve){H(l,Y,ve);return}Oe&&(l._protocol=Oe);let rt=W.headers["sec-websocket-extensions"];if(rt!==void 0){if(!ge){H(l,Y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let Me;try{Me=U(rt)}catch{H(l,Y,"Invalid Sec-WebSocket-Extensions header");return}let st=Object.keys(Me);if(st.length!==1||st[0]!==w.extensionName){H(l,Y,"Server indicated an extension that was not requested");return}try{ge.accept(Me[w.extensionName])}catch{H(l,Y,"Invalid Sec-WebSocket-Extensions header");return}l._extensions[w.extensionName]=ge}l.setSocket(Y,le,{allowSynchronousEvents:O.allowSynchronousEvents,generateMask:O.generateMask,maxBufferedChunks:O.maxBufferedChunks,maxFragments:O.maxFragments,maxPayload:O.maxPayload,skipUTF8Validation:O.skipUTF8Validation})}),O.finishRequest?O.finishRequest(z,l):z.end()}d(Q,"Jt"),c(Q,"initAsClient");function se(l,h){l._readyState=j.CLOSING,l._errorEmitted=!0,l.emit("error",h),l.emitClose()}d(se,"Te"),c(se,"emitErrorAndClose");function ke(l){return l.path=l.socketPath,v.connect(l)}d(ke,"Cs"),c(ke,"netConnect");function we(l){return l.path=void 0,!l.servername&&l.servername!==""&&(l.servername=v.isIP(l.host)?"":l.host),y.connect(l)}d(we,"vs"),c(we,"tlsConnect");function H(l,h,C){l._readyState=j.CLOSING;let $=new Error(C);Error.captureStackTrace($,H),h.setHeader?(h[A]=!0,h.abort(),h.socket&&!h.socket.destroyed&&h.socket.destroy(),process.nextTick(se,l,$)):(h.destroy($),h.once("error",l.emit.bind(l,"error")),h.once("close",l.emitClose.bind(l)))}d(H,"b"),c(H,"abortHandshake");function xe(l,h,C){if(h){let $=R(h)?h.size:L(h).length;l._socket?l._sender._bufferedBytes+=$:l._bufferedAmount+=$}if(C){let $=new Error(`WebSocket is not open: readyState ${l.readyState} (${F[l.readyState]})`);process.nextTick(C,$)}}d(xe,"Qe"),c(xe,"sendAfterClose");function ze(l,h){let C=this[i];C._closeFrameReceived=!0,C._closeMessage=h,C._closeCode=l,C._socket[i]!==void 0&&(C._socket.removeListener("data",pe),process.nextTick(Pe,C._socket),l===1005?C.close():C.close(l,h))}d(ze,"Ls"),c(ze,"receiverOnConclude");function He(){let l=this[i];l.isPaused||l._socket.resume()}d(He,"Is"),c(He,"receiverOnDrain");function Ye(l){let h=this[i];h._socket[i]!==void 0&&(h._socket.removeListener("data",pe),process.nextTick(Pe,h._socket),h.close(l[o])),h._errorEmitted||(h._errorEmitted=!0,h.emit("error",l))}d(Ye,"As"),c(Ye,"receiverOnError");function Le(){this[i].emitClose()}d(Le,"Ht"),c(Le,"receiverOnFinish");function Xe(l,h){this[i].emit("message",l,h)}d(Xe,"Ps"),c(Xe,"receiverOnMessage");function Je(l){let h=this[i];h._autoPong&&h.pong(l,!this._isServer,_),h.emit("ping",l)}d(Je,"Rs"),c(Je,"receiverOnPing");function Ze(l){this[i].emit("pong",l)}d(Ze,"Bs"),c(Ze,"receiverOnPong");function Pe(l){l.resume()}d(Pe,"Zt"),c(Pe,"resume");function Ke(l){let h=this[i];h.readyState!==j.CLOSED&&(h.readyState===j.OPEN&&(h._readyState=j.CLOSING,Be(h)),this._socket.end(),h._errorEmitted||(h._errorEmitted=!0,h.emit("error",l)))}d(Ke,"Ms"),c(Ke,"senderOnError");function Be(l){l._closeTimer=setTimeout(l._socket.destroy.bind(l._socket),l._closeTimeout)}d(Be,"Kt"),c(Be,"setCloseTimer");function Ie(){let l=this[i];if(this.removeListener("close",Ie),this.removeListener("data",pe),this.removeListener("end",Re),l._readyState=j.CLOSING,!this._readableState.endEmitted&&!l._closeFrameReceived&&!l._receiver._writableState.errorEmitted&&this._readableState.length!==0){let h=this.read(this._readableState.length);l._receiver.write(h)}l._receiver.end(),this[i]=void 0,clearTimeout(l._closeTimer),l._receiver._writableState.finished||l._receiver._writableState.errorEmitted?l.emitClose():(l._receiver.on("error",Le),l._receiver.on("finish",Le))}d(Ie,"Qt"),c(Ie,"socketOnClose");function pe(l){this[i]._receiver.write(l)||this.pause()}d(pe,"Ne"),c(pe,"socketOnData");function Re(){let l=this[i];l._readyState=j.CLOSING,l._receiver.end(),this.end()}d(Re,"er"),c(Re,"socketOnEnd");function Ue(){let l=this[i];this.removeListener("error",Ue),this.on("error",_),l&&(l._readyState=j.CLOSING,this.destroy())}d(Ue,"tr"),c(Ue,"socketOnError")}),Ft=X((e,s)=>{"use strict";var r=De(),{Duplex:a}=q("stream");function m(n){n.emit("close")}d(m,"sr"),c(m,"emitClose");function v(){!this.destroyed&&this._writableState.finished&&this.destroy()}d(v,"Us"),c(v,"duplexOnEnd");function y(n){this.removeListener("error",y),this.destroy(),this.listenerCount("error")===0&&this.emit("error",n)}d(y,"nr"),c(y,"duplexOnError");function x(n,f){let g=!0,k=new a({...f,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return n.on("message",c(function(w,N){let E=!N&&k._readableState.objectMode?w.toString():w;k.push(E)||n.pause()},"message")),n.once("error",c(function(w){k.destroyed||(g=!1,k.destroy(w))},"error")),n.once("close",c(function(){k.destroyed||k.push(null)},"close")),k._destroy=function(w,N){if(n.readyState===n.CLOSED){N(w),process.nextTick(m,k);return}let E=!1;n.once("error",c(function(R){E=!0,N(R)},"error")),n.once("close",c(function(){E||N(w),process.nextTick(m,k)},"close")),g&&n.terminate()},k._final=function(w){if(n.readyState===n.CONNECTING){n.once("open",c(function(){k._final(w)},"open"));return}n._socket!==null&&(n._socket._writableState.finished?(w(),k._readableState.endEmitted&&k.destroy()):(n._socket.once("finish",c(function(){w()},"finish")),n.close()))},k._read=function(){n.isPaused&&n.resume()},k._write=function(w,N,E){if(n.readyState===n.CONNECTING){n.once("open",c(function(){k._write(w,N,E)},"open"));return}n.send(w,E)},k.on("end",v),k.on("error",y),k}d(x,"$s"),c(x,"createWebSocketStream"),s.exports=x}),ot=X((e,s)=>{"use strict";var{tokenChars:r}=Ee();function a(m){let v=new Set,y=-1,x=-1,n=0;for(n;n<m.length;n++){let g=m.charCodeAt(n);if(x===-1&&r[g]===1)y===-1&&(y=n);else if(n!==0&&(g===32||g===9))x===-1&&y!==-1&&(x=n);else if(g===44){if(y===-1)throw new SyntaxError(`Unexpected character at index ${n}`);x===-1&&(x=n);let k=m.slice(y,x);if(v.has(k))throw new SyntaxError(`The "${k}" subprotocol is duplicated`);v.add(k),y=x=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(y===-1||x!==-1)throw new SyntaxError("Unexpected end of input");let f=m.slice(y,n);if(v.has(f))throw new SyntaxError(`The "${f}" subprotocol is duplicated`);return v.add(f),v}d(a,"Ws"),c(a,"parse"),s.exports={parse:a}}),Dt=X((e,s)=>{"use strict";var r=q("events"),a=q("http"),{Duplex:m}=q("stream"),{createHash:v}=q("crypto"),y=Fe(),x=Se(),n=ot(),f=De(),{CLOSE_TIMEOUT:g,GUID:k,kWebSocket:w}=te(),N=/^[+/0-9A-Za-z]{22}==$/,E=0,R=1,B=2,I=class extends r{static{d(this,"tt")}static{c(this,"WebSocketServer")}constructor(i,_){if(super(),i={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:g,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:f,...i},i.port==null&&!i.server&&!i.noServer||i.port!=null&&(i.server||i.noServer)||i.server&&i.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(i.port!=null?(this._server=a.createServer((t,S)=>{let p=a.STATUS_CODES[426];S.writeHead(426,{"Content-Length":p.length,"Content-Type":"text/plain"}),S.end(p)}),this._server.listen(i.port,i.host,i.backlog,_)):i.server&&(this._server=i.server),this._server){let t=this.emit.bind(this,"connection");this._removeListeners=u(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:c((S,p,U)=>{this.handleUpgrade(S,p,U,t)},"upgrade")})}i.perMessageDeflate===!0&&(i.perMessageDeflate={}),i.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=i,this._state=E}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(i){if(this._state===B){i&&this.once("close",()=>{i(new Error("The server is not running"))}),process.nextTick(b,this);return}if(i&&this.once("close",i),this._state!==R)if(this._state=R,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(b,this):process.nextTick(b,this);else{let _=this._server;this._removeListeners(),this._removeListeners=this._server=null,_.close(()=>{b(this)})}}shouldHandle(i){if(this.options.path){let _=i.url.indexOf("?");if((_!==-1?i.url.slice(0,_):i.url)!==this.options.path)return!1}return!0}handleUpgrade(i,_,t,S){_.on("error",T);let p=i.headers["sec-websocket-key"],U=i.headers.upgrade,L=+i.headers["sec-websocket-version"];if(i.method!=="GET"){o(this,i,_,405,"Invalid HTTP method");return}if(U===void 0||U.toLowerCase()!=="websocket"){o(this,i,_,400,"Invalid Upgrade header");return}if(p===void 0||!N.test(p)){o(this,i,_,400,"Missing or invalid Sec-WebSocket-Key header");return}if(L!==13&&L!==8){o(this,i,_,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(i)){P(_,400);return}let A=i.headers["sec-websocket-protocol"],M=new Set;if(A!==void 0)try{M=n.parse(A)}catch{o(this,i,_,400,"Invalid Sec-WebSocket-Protocol header");return}let F=i.headers["sec-websocket-extensions"],D={};if(this.options.perMessageDeflate&&F!==void 0){let j=new x({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let Q=y.parse(F);Q[x.extensionName]&&(j.accept(Q[x.extensionName]),D[x.extensionName]=j)}catch{o(this,i,_,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let j={origin:i.headers[`${L===8?"sec-websocket-origin":"origin"}`],secure:!!(i.socket.authorized||i.socket.encrypted),req:i};if(this.options.verifyClient.length===2){this.options.verifyClient(j,(Q,se,ke,we)=>{if(!Q)return P(_,se||401,ke,we);this.completeUpgrade(D,p,M,i,_,t,S)});return}if(!this.options.verifyClient(j))return P(_,401)}this.completeUpgrade(D,p,M,i,_,t,S)}completeUpgrade(i,_,t,S,p,U,L){if(!p.readable||!p.writable)return p.destroy();if(p[w])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>E)return P(p,503);let A=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${v("sha1").update(_+k).digest("base64")}`],M=new this.options.WebSocket(null,void 0,this.options);if(t.size){let F=this.options.handleProtocols?this.options.handleProtocols(t,S):t.values().next().value;F&&(A.push(`Sec-WebSocket-Protocol: ${F}`),M._protocol=F)}if(i[x.extensionName]){let F=i[x.extensionName].params,D=y.format({[x.extensionName]:[F]});A.push(`Sec-WebSocket-Extensions: ${D}`),M._extensions=i}this.emit("headers",A,S),p.write(A.concat(`\r
2
2
  `).join(`\r
3
- `)),p.removeListener("error",T),M.setSocket(p,U,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(M),M.on("close",()=>{this.clients.delete(M),this._shouldEmitClose&&!this.clients.size&&process.nextTick(v,this)})),L(M,S)}};i.exports=R;function u(s,f){for(let t of Object.keys(f))s.on(t,f[t]);return c(function(){for(let t of Object.keys(f))s.removeListener(t,f[t])},"removeListeners")}d(u,"Ys"),c(u,"addListeners");function v(s){s._state=B,s.emit("close")}d(v,"de"),c(v,"emitClose");function T(){this.destroy()}d(T,"ur"),c(T,"socketOnError");function P(s,f,t,S){t=t||a.STATUS_CODES[f],S={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(t),...S},s.once("finish",s.destroy),s.end(`HTTP/1.1 ${f} ${a.STATUS_CODES[f]}\r
3
+ `)),p.removeListener("error",T),M.setSocket(p,U,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(M),M.on("close",()=>{this.clients.delete(M),this._shouldEmitClose&&!this.clients.size&&process.nextTick(b,this)})),L(M,S)}};s.exports=I;function u(i,_){for(let t of Object.keys(_))i.on(t,_[t]);return c(function(){for(let t of Object.keys(_))i.removeListener(t,_[t])},"removeListeners")}d(u,"Js"),c(u,"addListeners");function b(i){i._state=B,i.emit("close")}d(b,"de"),c(b,"emitClose");function T(){this.destroy()}d(T,"ur"),c(T,"socketOnError");function P(i,_,t,S){t=t||a.STATUS_CODES[_],S={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(t),...S},i.once("finish",i.destroy),i.end(`HTTP/1.1 ${_} ${a.STATUS_CODES[_]}\r
4
4
  `+Object.keys(S).map(p=>`${p}: ${S[p]}`).join(`\r
5
5
  `)+`\r
6
6
  \r
7
- `+t)}d(P,"he"),c(P,"abortHandshake");function o(s,f,t,S,p,U){if(s.listenerCount("wsClientError")){let L=new Error(p);Error.captureStackTrace(L,o),s.emit("wsClientError",L,t,f)}else P(t,S,p,U)}d(o,"q"),c(o,"abortHandshakeOrEmitwsClientError")}),ot="127.0.0.1",Dt="LENSMCP_WS_HOST",at="LENSMCP_WS_PORT",Wt="LENSMCP_SESSION_ID";import{createServer as jt}from"node:net";var hr=ee(At(),1),ur=ee(Fe(),1),dr=ee(Se(),1),fr=ee(st(),1),_r=ee(it(),1),pr=ee(nt(),1),mr=ee(De(),1),Vt=ee(Ft(),1);import{connect as Gt}from"node:net";import{createSocket as zt}from"node:dgram";import{appendFileSync as qt,renameSync as lt,statSync as Ht,unlinkSync as Yt}from"node:fs";var Xt=(()=>{let e=Number(process.env.LENSMCP_EVENT_MAX_BYTES);return Number.isFinite(e)&&e>0?e:50*1024*1024})(),ct=(()=>{let e=Number(process.env.LENSMCP_EVENT_MAX_FILES);return Number.isFinite(e)&&e>=1&&e<=20?Math.floor(e):5})(),Zt=1024*1024,We=0;function ht(e,i){if(We+=i,!(We<Zt)){We=0;try{if(Ht(e).size<=Xt)return}catch{return}try{Yt(`${e}.${ct}`)}catch{}for(let r=ct-1;r>=1;r--)try{lt(`${e}.${r}`,`${e}.${r+1}`)}catch{}try{lt(e,`${e}.1`)}catch{}}}d(ht,"un"),c(ht,"rotateIfLarge");var Ce=(()=>{let e=process.env.LENSMCP_EVENT_MAX_EPS;if(e==="off")return 1/0;let i=Number(e);return e!==void 0&&e!==""&&Number.isFinite(i)?i<=0?1/0:i:5})(),ut=Math.max(30,Ce===1/0?0:Ce*4),ie=new Map;function dt(e){if(Ce===1/0)return 0;let i=Date.now(),r=ie.get(e);if(!r){if(ie.size>=2048){for(let[a,m]of ie)i-m.lastSeenAt>6e4&&ie.delete(a);ie.size>=2048&&ie.clear()}r={tokens:ut,lastRefillAt:i,suppressed:0,lastSeenAt:i},ie.set(e,r)}if(r.lastSeenAt=i,r.tokens=Math.min(ut,r.tokens+(i-r.lastRefillAt)/1e3*Ce),r.lastRefillAt=i,r.tokens>=1){r.tokens-=1;let a=r.suppressed;return r.suppressed=0,a}return r.suppressed+=1,-1}d(dt,"dn"),c(dt,"floodAdmit");var Z;function ft(){if(Z!==void 0)return Z;let e=process.env.LENSMCP_EVENT_FILE;if(e)return Z=c(a=>{try{let m=dt(a.fingerprint);if(m<0)return;let b=JSON.stringify(m>0?{...a,raw:{...a.raw??{},floodSuppressed:m}}:a)+`
8
- `;ht(e,b.length),qt(e,b)}catch{}},"cachedEnvSink"),Z;let i=process.env.LENSMCP_UDS;if(i)return Z=_t(i),Z;let r=process.env.LENSMCP_IPC_SOCKET;if(r){let[a,m]=r.split(":"),b=Number(m);if(a&&Number.isFinite(b)){let y=zt("udp4");return y.unref(),Z=c(O=>{try{let n=Buffer.from(JSON.stringify(O));y.send(n,b,a,()=>{})}catch{}},"cachedEnvSink"),Z}}return Z=null,null}d(ft,"yr"),c(ft,"resolveEnvSink");function _t(e){let i=[],r=null,a=!1,m=c(()=>{if(!(!r||!r.writable))for(;i.length>0;)r.write(i.shift())},"flush"),b=c(()=>{if(a||r)return;a=!0;let y=Gt(e);y.on("connect",()=>{a=!1,r=y,m()}),y.on("drain",m),y.on("error",()=>{a=!1,r=null}),y.on("close",()=>{r=null}),y.unref()},"open");return b(),y=>{for(i.push(JSON.stringify(y)+`
9
- `);i.length>1e4;)i.shift();if(r&&r.writable){m();return}if(r){try{r.destroy()}catch{}r=null}b()}}d(_t,"hn"),c(_t,"udsEnvSink");var pt="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function mt(e,i){let r="",a=e;for(let m=i-1;m>=0;m--){let b=a%32;r=pt[b]+r,a=(a-b)/32}return r}d(mt,"pn"),c(mt,"encodeTime");function yt(e){let i=new Uint8Array(e);globalThis.crypto.getRandomValues(i);let r="";for(let a=0;a<e;a++)r+=pt[(i[a]??0)&31];return r}d(yt,"mn"),c(yt,"encodeRandom");function J(e=Date.now()){return mt(e,10)+yt(16)}d(J,"A"),c(J,"ulid");function gt(e){let i=2166136261;for(let r=0;r<e.length;r++)i^=e.charCodeAt(r),i=Math.imul(i,16777619);return(i>>>0).toString(16).padStart(8,"0")}d(gt,"_n"),c(gt,"fnv1a32");function K(e){let i=[e.kind,e.identity,e.file??"",e.detail??""];return`${e.kind}:${gt(i.join("|"))}`}d(K,"P"),c(K,"fingerprint");var he="REDACTED",Jt=["token","secret","password","passwd","apikey","credential","assertion","signature"],Kt=new Set(["key","auth","authorization","jwt","code","sig","pwd","pass","session","sid","bearer","otp","cookie","set-cookie"]);function je(e){let i=e.toLowerCase();if(Jt.some(r=>i.includes(r)))return!0;for(let r of i.split(/[-_.]+/))if(r&&Kt.has(r))return!0;return!1}d(je,"nt"),c(je,"isSecretParam");var Qt=/^([a-z][a-z0-9+.-]*:\/\/)[^/?#@\s]*@/i,er=/([?&#])([^=&#\s]+)=([^&#\s]*)/g;function Ve(e){return e&&e.replace(Qt,`$1${he}@`).replace(er,(i,r,a)=>je(a)?`${r}${a}=${he}`:i)}d(Ve,"it"),c(Ve,"redactUrlParams");function ue(e){return e&&Ne(Ve(e),1024)}d(ue,"H"),c(ue,"redactUrl");var tr=/\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]*/g,rr=/\b(bearer|basic)\s+[A-Za-z0-9._~+/=-]{8,}/gi,sr=/\b(authorization|x-api-key|api-key|cookie|set-cookie|proxy-authorization)\b(\s*[:=]\s*)(["']?)([^\s"',;]{4,})\3/gi;function de(e){return Ve(e).replace(sr,(i,r,a,m)=>`${r}${a}${m}${he}${m}`).replace(tr,he).replace(rr,(i,r)=>`${r} ${he}`)}d(de,"z"),c(de,"redactText");function Ne(e,i){return e.length<=i?e:`${e.slice(0,i)}\u2026[lensmcp truncated: ${e.length-i} more chars]`}d(Ne,"Le"),c(Ne,"clip");function re(e,i=4096){if(e!==void 0)return Ne(de(e),i)}d(re,"R"),c(re,"safeText");function fe(e){return Ne(de(e),300)}d(fe,"X"),c(fe,"safeTitle");var ir=6,nr=64;function _e(e,i=0){if(typeof e=="string")return de(e);if(e===null||typeof e!="object"||i>=ir)return e;if(Array.isArray(e)){let m=!1,b=e.map((y,O)=>{if(O>=nr)return y;let n=_e(y,i+1);return n!==y&&(m=!0),n});return m?b:e}let r=!1,a={};for(let[m,b]of Object.entries(e)){let y=je(m)&&b!==void 0&&b!==null?he:_e(b,i+1);y!==b&&(r=!0),a[m]=y}return r?a:e}d(_e,"G"),c(_e,"redactDeep");var or="pending";function vt(e,i=or){let r=e.tabId?{tabId:e.tabId}:{};switch(e.kind){case"error":{let a=!e.stack&&!e.source&&(!e.message||e.message==="Script error."),m=e.name&&e.name!=="Error"?`${e.name}: `:"",b=a?"Uncaught cross-origin script error (no detail available \u2014 add crossorigin to the script tag)":e.message?`${m}${e.message}`:`Uncaught ${e.name??"error"}`;return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:i,...r},fingerprint:K({kind:"runtime",identity:`error:${St(e.stack)}`,file:e.source,detail:e.message??e.name}),title:fe(b),message:re(e.stack??e.message),location:e.source?{file:ue(e.source),line:e.lineno,column:e.colno}:void 0,raw:{...e,...e.message?{message:de(e.message)}:{},...e.stack?{stack:re(e.stack)}:{},...e.source?{source:ue(e.source)}:{}}}}case"resource-error":{let a=e.url?ue(e.url):void 0;return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:i,...r},fingerprint:K({kind:"runtime",identity:`resource-error:${e.tagName}:${Ge(e.url??"")}`}),title:fe(`Failed to load <${e.tagName}>${a?` ${a}`:""}`),...a?{relatedUrls:[a]}:{},raw:{...e,...a?{url:a}:{}}}}case"unhandledrejection":{let a=e.name&&e.name!=="Error"?`${e.name}: `:"",m=e.reason.split(`
10
- `)[0]??e.reason;return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:i,...r},fingerprint:K({kind:"runtime",identity:`unhandledrejection:${e.reason.slice(0,80)}`}),title:fe(`Unhandled promise rejection: ${a}${m}`),message:re(e.stack??e.reason),raw:{...e,reason:de(e.reason),...e.stack?{stack:re(e.stack)}:{}}}}case"console":{let a=e.level==="error"?"error":e.level==="warn"?"warning":"info",m=_e(e.args),b=m.map(Et).join(" ");return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:a,context:{sessionId:i,...r},fingerprint:K({kind:"runtime",identity:`console:${e.level}:${b.slice(0,80)}`}),title:`console.${e.level}`,message:re(b),raw:{...e,args:m}}}case"fetch":{let a=e.error!==void 0||e.status!==void 0&&e.status>=400,m=ue(e.url),b=e.status!==void 0?` \u2192 ${e.status}${e.statusText?` ${e.statusText}`:""}`:"";return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"network",severity:a?"error":"info",context:{sessionId:i,...r},fingerprint:K({kind:"network",identity:`${e.method}:${Ge(e.url)}:${e.status??"err"}`}),title:fe(`${e.method} ${m}${b}`),message:re(e.error),relatedUrls:[m],raw:{...e,url:m}}}case"route":return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"info",context:{sessionId:i,url:e.url,...r},fingerprint:K({kind:"runtime",identity:`route:${e.url}`}),title:`Route \u2192 ${e.url}`,raw:e};case"ready":return{id:J(),sessionId:i,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"info",context:{sessionId:i,url:e.url,...r},fingerprint:K({kind:"runtime",identity:"client-ready"}),title:"Client runtime ready",message:e.userAgent,raw:e};case"publish":{let a=bt(e.category,e.raw),m=a&&a.status!==void 0&&a.status>=400?"error":e.severity??"info",b=c(O=>a&&a.url!==a.redactedUrl?O.split(a.url).join(a.redactedUrl):O,"scrub"),y=b(e.title);return{id:J(),sessionId:i,timestamp:e.at,source:e.source,category:e.category,severity:m,context:{sessionId:i,...r,...e.context??{}},fingerprint:e.fingerprint?b(e.fingerprint):K({kind:"publish",identity:y}),title:fe(y),message:re(e.message),...a?{relatedUrls:[a.redactedUrl]}:{},raw:a?{..._e(e.raw),url:a.redactedUrl}:_e(e.raw)}}}}d(vt,"Er"),c(vt,"envelopeToEvent");function bt(e,i){if(e!=="network"||!i||typeof i!="object")return;let r=i;if(!(typeof r.url!="string"||r.url.length===0))return{url:r.url,redactedUrl:ue(r.url),...typeof r.status=="number"?{status:r.status}:{}}}d(bt,"On"),c(bt,"networkDetails");function St(e){if(!e)return"unknown";let i=e.split(`
11
- `).slice(0,2);for(let r of i){let a=r.match(/at\s+(\S+)/);if(a&&a[1])return a[1]}return"unknown"}d(St,"Cn"),c(St,"normaliseStackTopFrame");function Ge(e){try{return`${new URL(e,"http://x").pathname}`}catch{return e}}d(Ge,"xr"),c(Ge,"normaliseUrl");function Et(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}d(Et,"vn"),c(Et,"stringify");function kt(e){let i;return r=>{if(e.bus){e.bus.publish(r);return}if(e.sink){e.sink(r);return}if(i===void 0&&(i=ft()),i){i(r);return}(r.severity==="error"||r.severity==="fatal")&&console.debug(`[lensmcp-bridge] ${r.severity}: ${r.title}`)}}d(kt,"In"),c(kt,"makePublisher");function wt(e,i,r){let a;try{a=JSON.parse(e)}catch{return}!a||typeof a!="object"||!("kind"in a)||i(vt(a,r))}d(wt,"An"),c(wt,"handleClientEnvelope");async function xt(e={}){let i=e.host??ot,r=e.port??5747,a=r===0?await Ot():r,m=kt(e),b=new Vt.default({host:i,port:a});return b.on("connection",y=>{y.on("message",O=>{wt(O.toString(),m,e.sessionId)})}),await new Promise((y,O)=>{let n=c(g=>{b.off("listening",_),O(g)},"onError"),_=c(()=>{b.off("error",n),y()},"onListening");b.once("error",n),b.once("listening",_)}),{port:a,host:i,close:c(()=>new Promise(y=>{b.close(()=>y())}),"close")}}d(xt,"br"),c(xt,"createBridgeServer");function Ot(){return new Promise((e,i)=>{let r=jt();r.unref(),r.on("error",i),r.listen(0,()=>{let a=r.address();if(!a){r.close(),i(new Error("Could not allocate free port"));return}let m=a.port;r.close(()=>e(m))})})}d(Ot,"Pn"),c(Ot,"findFreePort");async function Tt(){let e=process.env[Dt]??ot,i=process.env[at],r=i!==void 0&&i!==""?Number(i):5747;(!Number.isFinite(r)||r<0)&&(console.error(`[lensmcp-bridge] invalid ${at}=${i}`),process.exit(2));let a=process.env[Wt],m;try{m=await xt({host:e,port:r,sessionId:a})}catch(O){console.error(`[lensmcp-bridge] failed to listen on ws://${e}:${r} \u2014 ${O.message}`),process.exit(1)}console.log(`[lensmcp-bridge] listening on ws://${m.host}:${m.port}`);let b=!1,y=c(()=>{b||(b=!0,m.close().then(()=>process.exit(0)))},"shutdown");process.on("SIGINT",y),process.on("SIGTERM",y)}d(Tt,"Rn"),c(Tt,"main"),Tt();
7
+ `+t)}d(P,"he"),c(P,"abortHandshake");function o(i,_,t,S,p,U){if(i.listenerCount("wsClientError")){let L=new Error(p);Error.captureStackTrace(L,o),i.emit("wsClientError",L,t,_)}else P(t,S,p,U)}d(o,"q"),c(o,"abortHandshakeOrEmitwsClientError")}),at="127.0.0.1",Wt="LENSMCP_WS_HOST",lt="LENSMCP_WS_PORT",jt="LENSMCP_SESSION_ID";import{createServer as Vt}from"node:net";var ur=ee(Ft(),1),dr=ee(Fe(),1),fr=ee(Se(),1),_r=ee(it(),1),pr=ee(nt(),1),mr=ee(ot(),1),yr=ee(De(),1),Gt=ee(Dt(),1);import{connect as qt}from"node:net";import{createSocket as zt}from"node:dgram";import{appendFileSync as Ht,renameSync as ct,statSync as Yt,unlinkSync as Xt}from"node:fs";var Jt=(()=>{let e=Number(process.env.LENSMCP_EVENT_MAX_BYTES);return Number.isFinite(e)&&e>0?e:50*1024*1024})(),ht=(()=>{let e=Number(process.env.LENSMCP_EVENT_MAX_FILES);return Number.isFinite(e)&&e>=1&&e<=20?Math.floor(e):5})(),Zt=1024*1024,We=0;function ut(e,s){if(We+=s,!(We<Zt)){We=0;try{if(Yt(e).size<=Jt)return}catch{return}try{Xt(`${e}.${ht}`)}catch{}for(let r=ht-1;r>=1;r--)try{ct(`${e}.${r}`,`${e}.${r+1}`)}catch{}try{ct(e,`${e}.1`)}catch{}}}d(ut,"dn"),c(ut,"rotateIfLarge");var Ce=(()=>{let e=process.env.LENSMCP_EVENT_MAX_EPS;if(e==="off")return 1/0;let s=Number(e);return e!==void 0&&e!==""&&Number.isFinite(s)?s<=0?1/0:s:5})(),dt=Math.max(30,Ce===1/0?0:Ce*4),ie=new Map;function ft(e){if(Ce===1/0)return 0;let s=Date.now(),r=ie.get(e);if(!r){if(ie.size>=2048){for(let[a,m]of ie)s-m.lastSeenAt>6e4&&ie.delete(a);ie.size>=2048&&ie.clear()}r={tokens:dt,lastRefillAt:s,suppressed:0,lastSeenAt:s},ie.set(e,r)}if(r.lastSeenAt=s,r.tokens=Math.min(dt,r.tokens+(s-r.lastRefillAt)/1e3*Ce),r.lastRefillAt=s,r.tokens>=1){r.tokens-=1;let a=r.suppressed;return r.suppressed=0,a}return r.suppressed+=1,-1}d(ft,"hn"),c(ft,"floodAdmit");var K;function _t(){if(K!==void 0)return K;let e=process.env.LENSMCP_EVENT_FILE;if(e)return K=c(a=>{try{let m=ft(a.fingerprint);if(m<0)return;let v=JSON.stringify(m>0?{...a,raw:{...a.raw??{},floodSuppressed:m}}:a)+`
8
+ `;ut(e,v.length),Ht(e,v)}catch{}},"cachedEnvSink"),K;let s=process.env.LENSMCP_UDS;if(s)return K=pt(s),K;let r=process.env.LENSMCP_IPC_SOCKET;if(r){let[a,m]=r.split(":"),v=Number(m);if(a&&Number.isFinite(v)){let y=zt("udp4");return y.unref(),K=c(x=>{try{let n=Buffer.from(JSON.stringify(x));y.send(n,v,a,()=>{})}catch{}},"cachedEnvSink"),K}}return K=null,null}d(_t,"yr"),c(_t,"resolveEnvSink");function pt(e){let s=[],r=null,a=!1,m=c(()=>{if(!(!r||!r.writable))for(;s.length>0;)r.write(s.shift())},"flush"),v=c(()=>{if(a||r)return;a=!0;let y=qt(e);y.on("connect",()=>{a=!1,r=y,m()}),y.on("drain",m),y.on("error",()=>{a=!1,r=null}),y.on("close",()=>{r=null}),y.unref()},"open");return v(),y=>{for(s.push(JSON.stringify(y)+`
9
+ `);s.length>1e4;)s.shift();if(r&&r.writable){m();return}if(r){try{r.destroy()}catch{}r=null}v()}}d(pt,"pn"),c(pt,"udsEnvSink");var mt="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function yt(e,s){let r="",a=e;for(let m=s-1;m>=0;m--){let v=a%32;r=mt[v]+r,a=(a-v)/32}return r}d(yt,"mn"),c(yt,"encodeTime");function gt(e){let s=new Uint8Array(e);globalThis.crypto.getRandomValues(s);let r="";for(let a=0;a<e;a++)r+=mt[(s[a]??0)&31];return r}d(gt,"_n"),c(gt,"encodeRandom");function J(e=Date.now()){return yt(e,10)+gt(16)}d(J,"O"),c(J,"ulid");function bt(e){let s=2166136261;for(let r=0;r<e.length;r++)s^=e.charCodeAt(r),s=Math.imul(s,16777619);return(s>>>0).toString(16).padStart(8,"0")}d(bt,"gn"),c(bt,"fnv1a32");function Z(e){let s=[e.kind,e.identity,e.file??"",e.detail??""];return`${e.kind}:${bt(s.join("|"))}`}d(Z,"C"),c(Z,"fingerprint");var he="REDACTED",Kt=["token","secret","password","passwd","apikey","credential","assertion","signature"],Qt=new Set(["key","auth","authorization","jwt","code","sig","pwd","pass","session","sid","bearer","otp","cookie","set-cookie"]);function je(e){let s=e.toLowerCase();if(Kt.some(r=>s.includes(r)))return!0;for(let r of s.split(/[-_.]+/))if(r&&Qt.has(r))return!0;return!1}d(je,"nt"),c(je,"isSecretParam");var er=/^([a-z][a-z0-9+.-]*:\/\/)[^/?#@\s]*@/i,tr=/([?&#])([^=&#\s]+)=([^&#\s]*)/g;function Ve(e){return e&&e.replace(er,`$1${he}@`).replace(tr,(s,r,a)=>je(a)?`${r}${a}=${he}`:s)}d(Ve,"it"),c(Ve,"redactUrlParams");function ue(e){return e&&Ne(Ve(e),1024)}d(ue,"H"),c(ue,"redactUrl");var rr=/\beyJ[A-Za-z0-9_-]{6,}\.[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]*/g,sr=/\b(bearer|basic)\s+[A-Za-z0-9._~+/=-]{8,}/gi,ir=/\b(authorization|x-api-key|api-key|cookie|set-cookie|proxy-authorization)\b(\s*[:=]\s*)(["']?)([^\s"',;]{4,})\3/gi;function de(e){return Ve(e).replace(ir,(s,r,a,m)=>`${r}${a}${m}${he}${m}`).replace(rr,he).replace(sr,(s,r)=>`${r} ${he}`)}d(de,"z"),c(de,"redactText");function Ne(e,s){return e.length<=s?e:`${e.slice(0,s)}\u2026[lensmcp truncated: ${e.length-s} more chars]`}d(Ne,"Le"),c(Ne,"clip");function re(e,s=4096){if(e!==void 0)return Ne(de(e),s)}d(re,"R"),c(re,"safeText");function fe(e){return Ne(de(e),300)}d(fe,"X"),c(fe,"safeTitle");var nr=6,or=64;function _e(e,s=0){if(typeof e=="string")return de(e);if(e===null||typeof e!="object"||s>=nr)return e;if(Array.isArray(e)){let m=!1,v=e.map((y,x)=>{if(x>=or)return y;let n=_e(y,s+1);return n!==y&&(m=!0),n});return m?v:e}let r=!1,a={};for(let[m,v]of Object.entries(e)){let y=je(m)&&v!==void 0&&v!==null?he:_e(v,s+1);y!==v&&(r=!0),a[m]=y}return r?a:e}d(_e,"G"),c(_e,"redactDeep");var ar="pending";function vt(e,s=ar){let r=e.tabId?{tabId:e.tabId}:{};switch(e.kind){case"error":{let a=!e.stack&&!e.source&&(!e.message||e.message==="Script error."),m=e.name&&e.name!=="Error"?`${e.name}: `:"",v=a?"Uncaught cross-origin script error (no detail available \u2014 add crossorigin to the script tag)":e.message?`${m}${e.message}`:`Uncaught ${e.name??"error"}`;return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:s,...r},fingerprint:Z({kind:"runtime",identity:`error:${Et(e.stack)}`,file:e.source,detail:e.message??e.name}),title:fe(v),message:re(e.stack??e.message),location:e.source?{file:ue(e.source),line:e.lineno,column:e.colno}:void 0,raw:{...e,...e.message?{message:de(e.message)}:{},...e.stack?{stack:re(e.stack)}:{},...e.source?{source:ue(e.source)}:{}}}}case"resource-error":{let a=e.url?ue(e.url):void 0;return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:s,...r},fingerprint:Z({kind:"runtime",identity:`resource-error:${e.tagName}:${Ge(e.url??"")}`}),title:fe(`Failed to load <${e.tagName}>${a?` ${a}`:""}`),...a?{relatedUrls:[a]}:{},raw:{...e,...a?{url:a}:{}}}}case"unhandledrejection":{let a=e.name&&e.name!=="Error"?`${e.name}: `:"",m=e.reason.split(`
10
+ `)[0]??e.reason;return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"error",context:{sessionId:s,...r},fingerprint:Z({kind:"runtime",identity:`unhandledrejection:${e.reason.slice(0,80)}`}),title:fe(`Unhandled promise rejection: ${a}${m}`),message:re(e.stack??e.reason),raw:{...e,reason:de(e.reason),...e.stack?{stack:re(e.stack)}:{}}}}case"console":{let a=e.level==="error"?"error":e.level==="warn"?"warning":"info",m=_e(e.args),v=m.map(kt).join(" ");return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:a,context:{sessionId:s,...r},fingerprint:Z({kind:"runtime",identity:`console:${e.level}:${v.slice(0,80)}`}),title:`console.${e.level}`,message:re(v),raw:{...e,args:m}}}case"fetch":{let a=e.error!==void 0||e.status!==void 0&&e.status>=400,m=ue(e.url),v=e.status!==void 0?` \u2192 ${e.status}${e.statusText?` ${e.statusText}`:""}`:"";return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"network",severity:a?"error":"info",context:{sessionId:s,...r},fingerprint:Z({kind:"network",identity:`${e.method}:${Ge(e.url)}:${e.status??"err"}`}),title:fe(`${e.method} ${m}${v}`),message:re(e.error),relatedUrls:[m],raw:{...e,url:m}}}case"route":return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"info",context:{sessionId:s,url:e.url,...r},fingerprint:Z({kind:"runtime",identity:`route:${e.url}`}),title:`Route \u2192 ${e.url}`,raw:e};case"ready":return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"info",context:{sessionId:s,url:e.url,...r},fingerprint:Z({kind:"runtime",identity:"client-ready"}),title:"Client runtime ready",message:e.userAgent,raw:e};case"gone":return{id:J(),sessionId:s,timestamp:e.at,source:"client-runtime",category:"runtime",severity:"info",context:{sessionId:s,...r},fingerprint:Z({kind:"runtime",identity:"client-gone"}),title:"Client runtime gone",raw:e};case"publish":{let a=St(e.category,e.raw),m=a&&a.status!==void 0&&a.status>=400?"error":e.severity??"info",v=c(x=>a&&a.url!==a.redactedUrl?x.split(a.url).join(a.redactedUrl):x,"scrub"),y=v(e.title);return{id:J(),sessionId:s,timestamp:e.at,source:e.source,category:e.category,severity:m,context:{sessionId:s,...r,...e.context??{}},fingerprint:e.fingerprint?v(e.fingerprint):Z({kind:"publish",identity:y}),title:fe(y),message:re(e.message),...a?{relatedUrls:[a.redactedUrl]}:{},raw:a?{..._e(e.raw),url:a.redactedUrl}:_e(e.raw)}}}}d(vt,"Er"),c(vt,"envelopeToEvent");function St(e,s){if(e!=="network"||!s||typeof s!="object")return;let r=s;if(!(typeof r.url!="string"||r.url.length===0))return{url:r.url,redactedUrl:ue(r.url),...typeof r.status=="number"?{status:r.status}:{}}}d(St,"Cn"),c(St,"networkDetails");function Et(e){if(!e)return"unknown";let s=e.split(`
11
+ `).slice(0,2);for(let r of s){let a=r.match(/at\s+(\S+)/);if(a&&a[1])return a[1]}return"unknown"}d(Et,"vn"),c(Et,"normaliseStackTopFrame");function Ge(e){try{return`${new URL(e,"http://x").pathname}`}catch{return e}}d(Ge,"xr"),c(Ge,"normaliseUrl");function kt(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}d(kt,"Ln"),c(kt,"stringify");function wt(e){let s;return r=>{if(e.bus){e.bus.publish(r);return}if(e.sink){e.sink(r);return}if(s===void 0&&(s=_t()),s){s(r);return}(r.severity==="error"||r.severity==="fatal")&&console.debug(`[lensmcp-bridge] ${r.severity}: ${r.title}`)}}d(wt,"An"),c(wt,"makePublisher");function qe(e,s,r){let a;try{a=JSON.parse(e)}catch{return}!a||typeof a!="object"||!("kind"in a)||s(vt(a,r))}d(qe,"br"),c(qe,"handleClientEnvelope");function xt(e){try{let s=JSON.parse(e);return typeof s?.tabId=="string"&&s.tabId?s.tabId:void 0}catch{return}}d(xt,"Pn"),c(xt,"readTabId");async function Ot(e={}){let s=e.host??at,r=e.port??5747,a=r===0?await Tt():r,m=wt(e),v=new Gt.default({host:s,port:a});return v.on("connection",y=>{let x;y.on("message",n=>{let f=n.toString();x??=xt(f),qe(f,m,e.sessionId)}),y.on("close",()=>{x&&qe(JSON.stringify({kind:"gone",at:Date.now(),tabId:x}),m,e.sessionId)})}),await new Promise((y,x)=>{let n=c(g=>{v.off("listening",f),x(g)},"onError"),f=c(()=>{v.off("error",n),y()},"onListening");v.once("error",n),v.once("listening",f)}),{port:a,host:s,close:c(()=>new Promise(y=>{v.close(()=>y())}),"close")}}d(Ot,"wr"),c(Ot,"createBridgeServer");function Tt(){return new Promise((e,s)=>{let r=Vt();r.unref(),r.on("error",s),r.listen(0,()=>{let a=r.address();if(!a){r.close(),s(new Error("Could not allocate free port"));return}let m=a.port;r.close(()=>e(m))})})}d(Tt,"Rn"),c(Tt,"findFreePort");async function Ct(){let e=process.env[Wt]??at,s=process.env[lt],r=s!==void 0&&s!==""?Number(s):5747;(!Number.isFinite(r)||r<0)&&(console.error(`[lensmcp-bridge] invalid ${lt}=${s}`),process.exit(2));let a=process.env[jt],m;try{m=await Ot({host:e,port:r,sessionId:a})}catch(x){console.error(`[lensmcp-bridge] failed to listen on ws://${e}:${r} \u2014 ${x.message}`),process.exit(1)}console.log(`[lensmcp-bridge] listening on ws://${m.host}:${m.port}`);let v=!1,y=c(()=>{v||(v=!0,m.close().then(()=>process.exit(0)))},"shutdown");process.on("SIGINT",y),process.on("SIGTERM",y)}d(Ct,"Bn"),c(Ct,"main"),Ct();