lensmcp 1.18.4 → 1.18.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin.js +1 -10
- package/bundled/bridge.js +8 -9
- package/bundled/capture-runner.js +43 -45
- package/bundled/cluster-app.js +9 -10
- package/bundled/dashboard.js +52 -52
- package/bundled/flow-app.js +10 -11
- package/bundled/main.js +38 -38
- package/bundled/shim.js +44 -44
- package/index.js +1 -1
- package/lib/cli.js +43 -2010
- package/lib/hook-memory.js +1 -68
- package/lib/mcp-mode.js +2 -119
- package/lib/mcp-wiring.js +2 -186
- package/lib/plugin-version.js +3 -290
- package/lib/status-client.js +2 -241
- package/lib/status-policy.js +2 -326
- package/lib/sweep.js +1 -60
- package/lib/workspace-scope.js +2 -108
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
package/bin.js
CHANGED
|
@@ -1,11 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
runCli({
|
|
4
|
-
cwd: process.cwd(),
|
|
5
|
-
argv: process.argv.slice(2),
|
|
6
|
-
}).then((result) => {
|
|
7
|
-
process.exit(result.exitCode);
|
|
8
|
-
}, (err) => {
|
|
9
|
-
console.error(err instanceof Error ? err.stack ?? err.message : String(err));
|
|
10
|
-
process.exit(1);
|
|
11
|
-
});
|
|
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)});
|
package/bundled/bridge.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { createRequire as __lensmcpCreateRequire } from 'module'; const require = __lensmcpCreateRequire(import.meta.url);
|
|
2
|
-
var wr=Object.create;var Pe=Object.defineProperty;var kr=Object.getOwnPropertyDescriptor;var Tr=Object.getOwnPropertyNames;var Nr=Object.getPrototypeOf,Or=Object.prototype.hasOwnProperty;var o=(e,t)=>Pe(e,"name",{value:t,configurable:!0}),g=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Cr=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tr(t))!Or.call(e,n)&&n!==r&&Pe(e,n,{get:()=>t[n],enumerable:!(s=kr(t,n))||s.enumerable});return e};var R=(e,t,r)=>(r=e!=null?wr(Nr(e)):{},Cr(t||!e||!e.__esModule?Pe(r,"default",{value:e,enumerable:!0}):r,e));var O=E((Mn,dt)=>{"use strict";var ft=["nodebuffer","arraybuffer","fragments"],ut=typeof Blob<"u";ut&&ft.push("blob");dt.exports={BINARY_TYPES:ft,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:ut,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:o(()=>{},"NOOP")}});var ae=E((Un,me)=>{"use strict";var{EMPTY_BUFFER:vr}=O(),Re=Buffer[Symbol.species];function Lr(e,t){if(e.length===0)return vr;if(e.length===1)return e[0];let r=Buffer.allocUnsafe(t),s=0;for(let n=0;n<e.length;n++){let i=e[n];r.set(i,s),s+=i.length}return s<t?new Re(r.buffer,r.byteOffset,s):r}o(Lr,"concat");function ht(e,t,r,s,n){for(let i=0;i<n;i++)r[s+i]=e[i]^t[i&3]}o(ht,"_mask");function pt(e,t){for(let r=0;r<e.length;r++)e[r]^=t[r&3]}o(pt,"_unmask");function Ir(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}o(Ir,"toArrayBuffer");function Ae(e){if(Ae.readOnly=!0,Buffer.isBuffer(e))return e;let t;return e instanceof ArrayBuffer?t=new Re(e):ArrayBuffer.isView(e)?t=new Re(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),Ae.readOnly=!1),t}o(Ae,"toBuffer");me.exports={concat:Lr,mask:ht,toArrayBuffer:Ir,toBuffer:Ae,unmask:pt};if(!process.env.WS_NO_BUFFER_UTIL)try{let e=g("bufferutil");me.exports.mask=function(t,r,s,n,i){i<48?ht(t,r,s,n,i):e.mask(t,r,s,n,i)},me.exports.unmask=function(t,r){t.length<32?pt(t,r):e.unmask(t,r)}}catch{}});var gt=E((Fn,_t)=>{"use strict";var mt=Symbol("kDone"),Me=Symbol("kRun"),De=class{static{o(this,"Limiter")}constructor(t){this[mt]=()=>{this.pending--,this[Me]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[Me]()}[Me](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[mt])}}};_t.exports=De});var X=E((qn,Et)=>{"use strict";var ce=g("zlib"),yt=ae(),Pr=gt(),{kStatusCode:St}=O(),Br=Buffer[Symbol.species],Rr=Buffer.from([0,0,255,255]),ge=Symbol("permessage-deflate"),C=Symbol("total-length"),H=Symbol("callback"),A=Symbol("buffers"),z=Symbol("error"),_e,Ue=class{static{o(this,"PerMessageDeflate")}constructor(t){if(this._options=t||{},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,!_e){let r=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;_e=new Pr(r)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[H];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let r=this._options,s=t.find(n=>!(r.serverNoContextTakeover===!1&&n.server_no_context_takeover||n.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>n.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!n.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}acceptAsClient(t){let r=t[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(t){return t.forEach(r=>{Object.keys(r).forEach(s=>{let n=r[s];if(n.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(n=n[0],s==="client_max_window_bits"){if(n!==!0){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${s}": ${n}`);n=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${n}`)}else if(s==="server_max_window_bits"){let i=+n;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${s}": ${n}`);n=i}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(n!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${n}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=n})}),t}decompress(t,r,s){_e.add(n=>{this._decompress(t,r,(i,a)=>{n(),s(i,a)})})}compress(t,r,s){_e.add(n=>{this._compress(t,r,(i,a)=>{n(),s(i,a)})})}_decompress(t,r,s){let n=this._isServer?"client":"server";if(!this._inflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=ce.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[ge]=this,this._inflate[C]=0,this._inflate[A]=[],this._inflate.on("error",Mr),this._inflate.on("data",xt)}this._inflate[H]=s,this._inflate.write(t),r&&this._inflate.write(Rr),this._inflate.flush(()=>{let i=this._inflate[z];if(i){this._inflate.close(),this._inflate=null,s(i);return}let a=yt.concat(this._inflate[A],this._inflate[C]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[C]=0,this._inflate[A]=[],r&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),s(null,a)})}_compress(t,r,s){let n=this._isServer?"server":"client";if(!this._deflate){let i=`${n}_max_window_bits`,a=typeof this.params[i]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=ce.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[C]=0,this._deflate[A]=[],this._deflate.on("data",Ar)}this._deflate[H]=s,this._deflate.write(t),this._deflate.flush(ce.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=yt.concat(this._deflate[A],this._deflate[C]);r&&(i=new Br(i.buffer,i.byteOffset,i.length-4)),this._deflate[H]=null,this._deflate[C]=0,this._deflate[A]=[],r&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),s(null,i)})}};Et.exports=Ue;function Ar(e){this[A].push(e),this[C]+=e.length}o(Ar,"deflateOnData");function xt(e){if(this[C]+=e.length,this[ge]._maxPayload<1||this[C]<=this[ge]._maxPayload){this[A].push(e);return}this[z]=new RangeError("Max payload size exceeded"),this[z].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[z][St]=1009,this.removeListener("data",xt),this.reset()}o(xt,"inflateOnData");function Mr(e){if(this[ge]._inflate=null,this[z]){this[H](this[z]);return}e[St]=1007,this[H](e)}o(Mr,"inflateOnError")});var Y=E((jn,ye)=>{"use strict";var{isUtf8:bt}=g("buffer"),{hasBlob:Dr}=O(),Ur=[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 $r(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}o($r,"isValidStatusCode");function $e(e){let t=e.length,r=0;for(;r<t;)if((e[r]&128)===0)r++;else if((e[r]&224)===192){if(r+1===t||(e[r+1]&192)!==128||(e[r]&254)===192)return!1;r+=2}else if((e[r]&240)===224){if(r+2>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||e[r]===224&&(e[r+1]&224)===128||e[r]===237&&(e[r+1]&224)===160)return!1;r+=3}else if((e[r]&248)===240){if(r+3>=t||(e[r+1]&192)!==128||(e[r+2]&192)!==128||(e[r+3]&192)!==128||e[r]===240&&(e[r+1]&240)===128||e[r]===244&&e[r+1]>143||e[r]>244)return!1;r+=4}else return!1;return!0}o($e,"_isValidUTF8");function Fr(e){return Dr&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}o(Fr,"isBlob");ye.exports={isBlob:Fr,isValidStatusCode:$r,isValidUTF8:$e,tokenChars:Ur};if(bt)ye.exports.isValidUTF8=function(e){return e.length<24?$e(e):bt(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=g("utf-8-validate");ye.exports.isValidUTF8=function(t){return t.length<32?$e(t):e(t)}}catch{}});var je=E((Hn,vt)=>{"use strict";var{Writable:Wr}=g("stream"),wt=X(),{BINARY_TYPES:qr,EMPTY_BUFFER:kt,kStatusCode:Vr,kWebSocket:jr}=O(),{concat:Fe,toArrayBuffer:Gr,unmask:Hr}=ae(),{isValidStatusCode:zr,isValidUTF8:Tt}=Y(),Se=Buffer[Symbol.species],w=0,Nt=1,Ot=2,Ct=3,We=4,qe=5,xe=6,Ve=class extends Wr{static{o(this,"Receiver")}constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||qr[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxBufferedChunks=t.maxBufferedChunks|0,this._maxFragments=t.maxFragments|0,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[jr]=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=w}_write(t,r,s){if(this._opcode===8&&this._state==w)return s();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){s(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(s)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new Se(s.buffer,s.byteOffset+t,s.length-t),new Se(s.buffer,s.byteOffset,t)}let r=Buffer.allocUnsafe(t);do{let s=this._buffers[0],n=r.length-t;t>=s.length?r.set(this._buffers.shift(),n):(r.set(new Uint8Array(s.buffer,s.byteOffset,t),n),this._buffers[0]=new Se(s.buffer,s.byteOffset+t,s.length-t)),t-=s.length}while(t>0);return r}startLoop(t){this._loop=!0;do switch(this._state){case w:this.getInfo(t);break;case Nt:this.getPayloadLength16(t);break;case Ot:this.getPayloadLength64(t);break;case Ct:this.getMask();break;case We:this.getData(t);break;case qe:case xe:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let n=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(n);return}let s=(r[0]&64)===64;if(s&&!this._extensions[wt.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(n);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(n);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(n);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let n=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(n);return}if(s){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(n);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let n=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(n);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let n=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(n);return}this._payloadLength===126?this._state=Nt:this._payloadLength===127?this._state=Ot:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let n=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(n);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(r);return}this._masked?this._state=Ct:this._state=We}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=We}getData(t){let r=kt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&Hr(r,this._mask)}if(this._opcode>7){this.controlMessage(r,t);return}if(this._compressed){this._state=qe,this.decompress(r,t);return}if(r.length){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");t(s);return}this._messageLength=this._totalPayloadLength,this._fragments.push(r)}this.dataMessage(t)}decompress(t,r){this._extensions[wt.extensionName].decompress(t,this._fin,(n,i)=>{if(n)return r(n);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let a=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(a);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let a=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");r(a);return}this._fragments.push(i)}this.dataMessage(r),this._state===w&&this.startLoop(r)})}dataMessage(t){if(!this._fin){this._state=w;return}let r=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let n;this._binaryType==="nodebuffer"?n=Fe(s,r):this._binaryType==="arraybuffer"?n=Gr(Fe(s,r)):this._binaryType==="blob"?n=new Blob(s):n=s,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=w):(this._state=xe,setImmediate(()=>{this.emit("message",n,!0),this._state=w,this.startLoop(t)}))}else{let n=Fe(s,r);if(!this._skipUTF8Validation&&!Tt(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._state===qe||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=w):(this._state=xe,setImmediate(()=>{this.emit("message",n,!1),this._state=w,this.startLoop(t)}))}}controlMessage(t,r){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,kt),this.end();else{let s=t.readUInt16BE(0);if(!zr(s)){let i=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(i);return}let n=new Se(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!Tt(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(i);return}this._loop=!1,this.emit("conclude",s,n),this.end()}this._state=w;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=w):(this._state=xe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=w,this.startLoop(r)}))}createError(t,r,s,n,i){this._loop=!1,this._errored=!0;let a=new t(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(a,this.createError),a.code=i,a[Vr]=n,a}};vt.exports=Ve});var ze=E((Yn,Pt)=>{"use strict";var{Duplex:Xn}=g("stream"),{randomFillSync:Xr}=g("crypto"),{types:{isUint8Array:Yr}}=g("util"),Lt=X(),{EMPTY_BUFFER:Jr,kWebSocket:Zr,NOOP:Kr}=O(),{isBlob:J,isValidStatusCode:Qr}=Y(),{mask:It,toBuffer:U}=ae(),k=Symbol("kByteLength"),es=Buffer.alloc(4),Ee=8*1024,$,Z=Ee,T=0,ts=1,rs=2,Ge=class e{static{o(this,"Sender")}constructor(t,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=T,this.onerror=Kr,this[Zr]=void 0}static frame(t,r){let s,n=!1,i=2,a=!1;r.mask&&(s=r.maskBuffer||es,r.generateMask?r.generateMask(s):(Z===Ee&&($===void 0&&($=Buffer.alloc(Ee)),Xr($,0,Ee),Z=0),s[0]=$[Z++],s[1]=$[Z++],s[2]=$[Z++],s[3]=$[Z++]),a=(s[0]|s[1]|s[2]|s[3])===0,i=6);let c;typeof t=="string"?(!r.mask||a)&&r[k]!==void 0?c=r[k]:(t=Buffer.from(t),c=t.length):(c=t.length,n=r.mask&&r.readOnly&&!a);let f=c;c>=65536?(i+=8,f=127):c>125&&(i+=2,f=126);let l=Buffer.allocUnsafe(n?c+i:i);return l[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(l[0]|=64),l[1]=f,f===126?l.writeUInt16BE(c,2):f===127&&(l[2]=l[3]=0,l.writeUIntBE(c,4,6)),r.mask?(l[1]|=128,l[i-4]=s[0],l[i-3]=s[1],l[i-2]=s[2],l[i-1]=s[3],a?[l,t]:n?(It(t,s,l,i,c),[l]):(It(t,s,t,0,c),[l,t])):[l,t]}close(t,r,s,n){let i;if(t===void 0)i=Jr;else{if(typeof t!="number"||!Qr(t))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(t,0);else{let c=Buffer.byteLength(r);if(c>123)throw new RangeError("The message must not be greater than 123 bytes");if(i=Buffer.allocUnsafe(2+c),i.writeUInt16BE(t,0),typeof r=="string")i.write(r,2);else if(Yr(r))i.set(r,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let a={[k]:i.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==T?this.enqueue([this.dispatch,i,!1,a,n]):this.sendFrame(e.frame(i,a),n)}ping(t,r,s){let n,i;if(typeof t=="string"?(n=Buffer.byteLength(t),i=!1):J(t)?(n=t.size,i=!1):(t=U(t),n=t.length,i=U.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[k]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};J(t)?this._state!==T?this.enqueue([this.getBlobData,t,!1,a,s]):this.getBlobData(t,!1,a,s):this._state!==T?this.enqueue([this.dispatch,t,!1,a,s]):this.sendFrame(e.frame(t,a),s)}pong(t,r,s){let n,i;if(typeof t=="string"?(n=Buffer.byteLength(t),i=!1):J(t)?(n=t.size,i=!1):(t=U(t),n=t.length,i=U.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[k]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};J(t)?this._state!==T?this.enqueue([this.getBlobData,t,!1,a,s]):this.getBlobData(t,!1,a,s):this._state!==T?this.enqueue([this.dispatch,t,!1,a,s]):this.sendFrame(e.frame(t,a),s)}send(t,r,s){let n=this._extensions[Lt.extensionName],i=r.binary?2:1,a=r.compress,c,f;typeof t=="string"?(c=Buffer.byteLength(t),f=!1):J(t)?(c=t.size,f=!1):(t=U(t),c=t.length,f=U.readOnly),this._firstFragment?(this._firstFragment=!1,a&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(a=c>=n._threshold),this._compress=a):(a=!1,i=0),r.fin&&(this._firstFragment=!0);let l={[k]:c,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:f,rsv1:a};J(t)?this._state!==T?this.enqueue([this.getBlobData,t,this._compress,l,s]):this.getBlobData(t,this._compress,l,s):this._state!==T?this.enqueue([this.dispatch,t,this._compress,l,s]):this.dispatch(t,this._compress,l,s)}getBlobData(t,r,s,n){this._bufferedBytes+=s[k],this._state=rs,t.arrayBuffer().then(i=>{if(this._socket.destroyed){let c=new Error("The socket was closed while the blob was being read");process.nextTick(He,this,c,n);return}this._bufferedBytes-=s[k];let a=U(i);r?this.dispatch(a,r,s,n):(this._state=T,this.sendFrame(e.frame(a,s),n),this.dequeue())}).catch(i=>{process.nextTick(ss,this,i,n)})}dispatch(t,r,s,n){if(!r){this.sendFrame(e.frame(t,s),n);return}let i=this._extensions[Lt.extensionName];this._bufferedBytes+=s[k],this._state=ts,i.compress(t,s.fin,(a,c)=>{if(this._socket.destroyed){let f=new Error("The socket was closed while data was being compressed");He(this,f,n);return}this._bufferedBytes-=s[k],this._state=T,s.readOnly=!1,this.sendFrame(e.frame(c,s),n),this.dequeue()})}dequeue(){for(;this._state===T&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][k],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][k],this._queue.push(t)}sendFrame(t,r){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],r),this._socket.uncork()):this._socket.write(t[0],r)}};Pt.exports=Ge;function He(e,t,r){typeof r=="function"&&r(t);for(let s=0;s<e._queue.length;s++){let n=e._queue[s],i=n[n.length-1];typeof i=="function"&&i(t)}}o(He,"callCallbacks");function ss(e,t,r){He(e,t,r),e.onerror(t)}o(ss,"onError")});var Wt=E((Zn,Ft)=>{"use strict";var{kForOnEventAttribute:le,kListener:Xe}=O(),Bt=Symbol("kCode"),Rt=Symbol("kData"),At=Symbol("kError"),Mt=Symbol("kMessage"),Dt=Symbol("kReason"),K=Symbol("kTarget"),Ut=Symbol("kType"),$t=Symbol("kWasClean"),v=class{static{o(this,"Event")}constructor(t){this[K]=null,this[Ut]=t}get target(){return this[K]}get type(){return this[Ut]}};Object.defineProperty(v.prototype,"target",{enumerable:!0});Object.defineProperty(v.prototype,"type",{enumerable:!0});var F=class extends v{static{o(this,"CloseEvent")}constructor(t,r={}){super(t),this[Bt]=r.code===void 0?0:r.code,this[Dt]=r.reason===void 0?"":r.reason,this[$t]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[Bt]}get reason(){return this[Dt]}get wasClean(){return this[$t]}};Object.defineProperty(F.prototype,"code",{enumerable:!0});Object.defineProperty(F.prototype,"reason",{enumerable:!0});Object.defineProperty(F.prototype,"wasClean",{enumerable:!0});var Q=class extends v{static{o(this,"ErrorEvent")}constructor(t,r={}){super(t),this[At]=r.error===void 0?null:r.error,this[Mt]=r.message===void 0?"":r.message}get error(){return this[At]}get message(){return this[Mt]}};Object.defineProperty(Q.prototype,"error",{enumerable:!0});Object.defineProperty(Q.prototype,"message",{enumerable:!0});var fe=class extends v{static{o(this,"MessageEvent")}constructor(t,r={}){super(t),this[Rt]=r.data===void 0?null:r.data}get data(){return this[Rt]}};Object.defineProperty(fe.prototype,"data",{enumerable:!0});var ns={addEventListener(e,t,r={}){for(let n of this.listeners(e))if(!r[le]&&n[Xe]===t&&!n[le])return;let s;if(e==="message")s=o(function(i,a){let c=new fe("message",{data:a?i:i.toString()});c[K]=this,be(t,this,c)},"onMessage");else if(e==="close")s=o(function(i,a){let c=new F("close",{code:i,reason:a.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});c[K]=this,be(t,this,c)},"onClose");else if(e==="error")s=o(function(i){let a=new Q("error",{error:i,message:i.message});a[K]=this,be(t,this,a)},"onError");else if(e==="open")s=o(function(){let i=new v("open");i[K]=this,be(t,this,i)},"onOpen");else return;s[le]=!!r[le],s[Xe]=t,r.once?this.once(e,s):this.on(e,s)},removeEventListener(e,t){for(let r of this.listeners(e))if(r[Xe]===t&&!r[le]){this.removeListener(e,r);break}}};Ft.exports={CloseEvent:F,ErrorEvent:Q,Event:v,EventTarget:ns,MessageEvent:fe};function be(e,t,r){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,r):e.call(t,r)}o(be,"callListener")});var we=E((Qn,qt)=>{"use strict";var{tokenChars:ue}=Y();function N(e,t,r){e[t]===void 0?e[t]=[r]:e[t].push(r)}o(N,"push");function is(e){let t=Object.create(null),r=Object.create(null),s=!1,n=!1,i=!1,a,c,f=-1,l=-1,u=-1,d=0;for(;d<e.length;d++)if(l=e.charCodeAt(d),a===void 0)if(u===-1&&ue[l]===1)f===-1&&(f=d);else if(d!==0&&(l===32||l===9))u===-1&&f!==-1&&(u=d);else if(l===59||l===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let y=e.slice(f,u);l===44?(N(t,y,r),r=Object.create(null)):a=y,f=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(c===void 0)if(u===-1&&ue[l]===1)f===-1&&(f=d);else if(l===32||l===9)u===-1&&f!==-1&&(u=d);else if(l===59||l===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d),N(r,e.slice(f,u),!0),l===44&&(N(t,a,r),r=Object.create(null),a=void 0),f=u=-1}else if(l===61&&f!==-1&&u===-1)c=e.slice(f,d),f=u=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(n){if(ue[l]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1?f=d:s||(s=!0),n=!1}else if(i)if(ue[l]===1)f===-1&&(f=d);else if(l===34&&f!==-1)i=!1,u=d;else if(l===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===34&&e.charCodeAt(d-1)===61)i=!0;else if(u===-1&&ue[l]===1)f===-1&&(f=d);else if(f!==-1&&(l===32||l===9))u===-1&&(u=d);else if(l===59||l===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${d}`);u===-1&&(u=d);let y=e.slice(f,u);s&&(y=y.replace(/\\/g,""),s=!1),N(r,c,y),l===44&&(N(t,a,r),r=Object.create(null),a=void 0),c=void 0,f=u=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(f===-1||i||l===32||l===9)throw new SyntaxError("Unexpected end of input");u===-1&&(u=d);let m=e.slice(f,u);return a===void 0?N(t,m,r):(c===void 0?N(r,m,!0):s?N(r,c,m.replace(/\\/g,"")):N(r,c,m),N(t,a,r)),t}o(is,"parse");function os(e){return Object.keys(e).map(t=>{let r=e[t];return Array.isArray(r)||(r=[r]),r.map(s=>[t].concat(Object.keys(s).map(n=>{let i=s[n];return Array.isArray(i)||(i=[i]),i.map(a=>a===!0?n:`${n}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")}o(os,"format");qt.exports={format:os,parse:is}});var Oe=E((si,er)=>{"use strict";var as=g("events"),cs=g("https"),ls=g("http"),Gt=g("net"),fs=g("tls"),{randomBytes:us,createHash:ds}=g("crypto"),{Duplex:ti,Readable:ri}=g("stream"),{URL:Ye}=g("url"),M=X(),hs=je(),ps=ze(),{isBlob:ms}=Y(),{BINARY_TYPES:Vt,CLOSE_TIMEOUT:_s,EMPTY_BUFFER:ke,GUID:gs,kForOnEventAttribute:Je,kListener:ys,kStatusCode:Ss,kWebSocket:S,NOOP:Ht}=O(),{EventTarget:{addEventListener:xs,removeEventListener:Es}}=Wt(),{format:bs,parse:ws}=we(),{toBuffer:ks}=ae(),zt=Symbol("kAborted"),Ze=[8,13],L=["CONNECTING","OPEN","CLOSING","CLOSED"],Ts=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class e extends as{static{o(this,"WebSocket")}constructor(t,r,s){super(),this._binaryType=Vt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ke,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(s=r,r=[]):r=[r]),Xt(this,t,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){Vt.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}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(t,r,s){let n=new hs({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:s.maxBufferedChunks,maxFragments:s.maxFragments,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),i=new ps(t,this._extensions,s.generateMask);this._receiver=n,this._sender=i,this._socket=t,n[S]=this,i[S]=this,t[S]=this,n.on("conclude",Cs),n.on("drain",vs),n.on("error",Ls),n.on("message",Is),n.on("ping",Ps),n.on("pong",Bs),i.onerror=Rs,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),r.length>0&&t.unshift(r),t.on("close",Zt),t.on("data",Ne),t.on("end",Kt),t.on("error",Qt),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[M.extensionName]&&this._extensions[M.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,r){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){b(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Jt(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,r,s){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(s=t,t=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Ke(this,t,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(t||ke,r,s)}pong(t,r,s){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(s=t,t=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Ke(this,t,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(t||ke,r,s)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,r,s){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Ke(this,t,s);return}let n={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[M.extensionName]||(n.compress=!1),this._sender.send(t||ke,n,s)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){b(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(p,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(p.prototype,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(p,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(p.prototype,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(p,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(p.prototype,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(p,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});Object.defineProperty(p.prototype,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(p.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(p.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[Je])return t[ys];return null},set(t){for(let r of this.listeners(e))if(r[Je]){this.removeListener(e,r);break}typeof t=="function"&&this.addEventListener(e,t,{[Je]:!0})}})});p.prototype.addEventListener=xs;p.prototype.removeEventListener=Es;er.exports=p;function Xt(e,t,r,s){let n={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:_s,protocolVersion:Ze[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=n.autoPong,e._closeTimeout=n.closeTimeout,!Ze.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${Ze.join(", ")})`);let i;if(t instanceof Ye)i=t;else try{i=new Ye(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),e._url=i.href;let a=i.protocol==="wss:",c=i.protocol==="ws+unix:",f;if(i.protocol!=="ws:"&&!a&&!c?f=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:c&&!i.pathname?f="The URL's pathname is empty":i.hash&&(f="The URL contains a fragment identifier"),f){let h=new SyntaxError(f);if(e._redirects===0)throw h;Te(e,h);return}let l=a?443:80,u=us(16).toString("base64"),d=a?cs.request:ls.request,m=new Set,y;if(n.createConnection=n.createConnection||(a?Os:Ns),n.defaultPort=n.defaultPort||l,n.port=i.port||l,n.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,n.headers={...n.headers,"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},n.path=i.pathname+i.search,n.timeout=n.handshakeTimeout,n.perMessageDeflate&&(y=new M({...n.perMessageDeflate,isServer:!1,maxPayload:n.maxPayload}),n.headers["Sec-WebSocket-Extensions"]=bs({[M.extensionName]:y.offer()})),r.length){for(let h of r){if(typeof h!="string"||!Ts.test(h)||m.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(h)}n.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(n.origin&&(n.protocolVersion<13?n.headers["Sec-WebSocket-Origin"]=n.origin:n.headers.Origin=n.origin),(i.username||i.password)&&(n.auth=`${i.username}:${i.password}`),c){let h=n.path.split(":");n.socketPath=h[0],n.path=h[1]}let _;if(n.followRedirects){if(e._redirects===0){e._originalIpc=c,e._originalSecure=a,e._originalHostOrSocketPath=c?n.socketPath:i.host;let h=s&&s.headers;if(s={...s,headers:{}},h)for(let[x,j]of Object.entries(h))s.headers[x.toLowerCase()]=j}else if(e.listenerCount("redirect")===0){let h=c?e._originalIpc?n.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:i.host===e._originalHostOrSocketPath;(!h||e._originalSecure&&!a)&&(delete n.headers.authorization,delete n.headers.cookie,h||delete n.headers.host,n.auth=void 0)}n.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),_=e._req=d(n),e._redirects&&e.emit("redirect",e.url,_)}else _=e._req=d(n);n.timeout&&_.on("timeout",()=>{b(e,_,"Opening handshake has timed out")}),_.on("error",h=>{_===null||_[zt]||(_=e._req=null,Te(e,h))}),_.on("response",h=>{let x=h.headers.location,j=h.statusCode;if(x&&n.followRedirects&&j>=300&&j<400){if(++e._redirects>n.maxRedirects){b(e,_,"Maximum redirects exceeded");return}_.abort();let ie;try{ie=new Ye(x,t)}catch{let G=new SyntaxError(`Invalid URL: ${x}`);Te(e,G);return}Xt(e,ie,r,s)}else e.emit("unexpected-response",_,h)||b(e,_,`Unexpected server response: ${h.statusCode}`)}),_.on("upgrade",(h,x,j)=>{if(e.emit("upgrade",h),e.readyState!==p.CONNECTING)return;_=e._req=null;let ie=h.headers.upgrade;if(ie===void 0||ie.toLowerCase()!=="websocket"){b(e,x,"Invalid Upgrade header");return}let it=ds("sha1").update(u+gs).digest("base64");if(h.headers["sec-websocket-accept"]!==it){b(e,x,"Invalid Sec-WebSocket-Accept header");return}let G=h.headers["sec-websocket-protocol"],oe;if(G!==void 0?m.size?m.has(G)||(oe="Server sent an invalid subprotocol"):oe="Server sent a subprotocol but none was requested":m.size&&(oe="Server sent no subprotocol"),oe){b(e,x,oe);return}G&&(e._protocol=G);let ot=h.headers["sec-websocket-extensions"];if(ot!==void 0){if(!y){b(e,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let Le;try{Le=ws(ot)}catch{b(e,x,"Invalid Sec-WebSocket-Extensions header");return}let at=Object.keys(Le);if(at.length!==1||at[0]!==M.extensionName){b(e,x,"Server indicated an extension that was not requested");return}try{y.accept(Le[M.extensionName])}catch{b(e,x,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[M.extensionName]=y}e.setSocket(x,j,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxBufferedChunks:n.maxBufferedChunks,maxFragments:n.maxFragments,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(_,e):_.end()}o(Xt,"initAsClient");function Te(e,t){e._readyState=p.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}o(Te,"emitErrorAndClose");function Ns(e){return e.path=e.socketPath,Gt.connect(e)}o(Ns,"netConnect");function Os(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=Gt.isIP(e.host)?"":e.host),fs.connect(e)}o(Os,"tlsConnect");function b(e,t,r){e._readyState=p.CLOSING;let s=new Error(r);Error.captureStackTrace(s,b),t.setHeader?(t[zt]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(Te,e,s)):(t.destroy(s),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}o(b,"abortHandshake");function Ke(e,t,r){if(t){let s=ms(t)?t.size:ks(t).length;e._socket?e._sender._bufferedBytes+=s:e._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${e.readyState} (${L[e.readyState]})`);process.nextTick(r,s)}}o(Ke,"sendAfterClose");function Cs(e,t){let r=this[S];r._closeFrameReceived=!0,r._closeMessage=t,r._closeCode=e,r._socket[S]!==void 0&&(r._socket.removeListener("data",Ne),process.nextTick(Yt,r._socket),e===1005?r.close():r.close(e,t))}o(Cs,"receiverOnConclude");function vs(){let e=this[S];e.isPaused||e._socket.resume()}o(vs,"receiverOnDrain");function Ls(e){let t=this[S];t._socket[S]!==void 0&&(t._socket.removeListener("data",Ne),process.nextTick(Yt,t._socket),t.close(e[Ss])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}o(Ls,"receiverOnError");function jt(){this[S].emitClose()}o(jt,"receiverOnFinish");function Is(e,t){this[S].emit("message",e,t)}o(Is,"receiverOnMessage");function Ps(e){let t=this[S];t._autoPong&&t.pong(e,!this._isServer,Ht),t.emit("ping",e)}o(Ps,"receiverOnPing");function Bs(e){this[S].emit("pong",e)}o(Bs,"receiverOnPong");function Yt(e){e.resume()}o(Yt,"resume");function Rs(e){let t=this[S];t.readyState!==p.CLOSED&&(t.readyState===p.OPEN&&(t._readyState=p.CLOSING,Jt(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}o(Rs,"senderOnError");function Jt(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}o(Jt,"setCloseTimer");function Zt(){let e=this[S];if(this.removeListener("close",Zt),this.removeListener("data",Ne),this.removeListener("end",Kt),e._readyState=p.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[S]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",jt),e._receiver.on("finish",jt))}o(Zt,"socketOnClose");function Ne(e){this[S]._receiver.write(e)||this.pause()}o(Ne,"socketOnData");function Kt(){let e=this[S];e._readyState=p.CLOSING,e._receiver.end(),this.end()}o(Kt,"socketOnEnd");function Qt(){let e=this[S];this.removeListener("error",Qt),this.on("error",Ht),e&&(e._readyState=p.CLOSING,this.destroy())}o(Qt,"socketOnError")});var nr=E((oi,sr)=>{"use strict";var ii=Oe(),{Duplex:As}=g("stream");function tr(e){e.emit("close")}o(tr,"emitClose");function Ms(){!this.destroyed&&this._writableState.finished&&this.destroy()}o(Ms,"duplexOnEnd");function rr(e){this.removeListener("error",rr),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}o(rr,"duplexOnError");function Ds(e,t){let r=!0,s=new As({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",o(function(i,a){let c=!a&&s._readableState.objectMode?i.toString():i;s.push(c)||e.pause()},"message")),e.once("error",o(function(i){s.destroyed||(r=!1,s.destroy(i))},"error")),e.once("close",o(function(){s.destroyed||s.push(null)},"close")),s._destroy=function(n,i){if(e.readyState===e.CLOSED){i(n),process.nextTick(tr,s);return}let a=!1;e.once("error",o(function(f){a=!0,i(f)},"error")),e.once("close",o(function(){a||i(n),process.nextTick(tr,s)},"close")),r&&e.terminate()},s._final=function(n){if(e.readyState===e.CONNECTING){e.once("open",o(function(){s._final(n)},"open"));return}e._socket!==null&&(e._socket._writableState.finished?(n(),s._readableState.endEmitted&&s.destroy()):(e._socket.once("finish",o(function(){n()},"finish")),e.close()))},s._read=function(){e.isPaused&&e.resume()},s._write=function(n,i,a){if(e.readyState===e.CONNECTING){e.once("open",o(function(){s._write(n,i,a)},"open"));return}e.send(n,a)},s.on("end",Ms),s.on("error",rr),s}o(Ds,"createWebSocketStream");sr.exports=Ds});var Qe=E((ci,ir)=>{"use strict";var{tokenChars:Us}=Y();function $s(e){let t=new Set,r=-1,s=-1,n=0;for(n;n<e.length;n++){let a=e.charCodeAt(n);if(s===-1&&Us[a]===1)r===-1&&(r=n);else if(n!==0&&(a===32||a===9))s===-1&&r!==-1&&(s=n);else if(a===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${n}`);s===-1&&(s=n);let c=e.slice(r,s);if(t.has(c))throw new SyntaxError(`The "${c}" subprotocol is duplicated`);t.add(c),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${n}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let i=e.slice(r,n);if(t.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return t.add(i),t}o($s,"parse");ir.exports={parse:$s}});var dr=E((ui,ur)=>{"use strict";var Fs=g("events"),Ce=g("http"),{Duplex:fi}=g("stream"),{createHash:Ws}=g("crypto"),or=we(),W=X(),qs=Qe(),Vs=Oe(),{CLOSE_TIMEOUT:js,GUID:Gs,kWebSocket:Hs}=O(),zs=/^[+/0-9A-Za-z]{22}==$/,ar=0,cr=1,fr=2,et=class extends Fs{static{o(this,"WebSocketServer")}constructor(t,r){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:js,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Vs,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=Ce.createServer((s,n)=>{let i=Ce.STATUS_CODES[426];n.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),n.end(i)}),this._server.listen(t.port,t.host,t.backlog,r)):t.server&&(this._server=t.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=Xs(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:o((n,i,a)=>{this.handleUpgrade(n,i,a,s)},"upgrade")})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=ar}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===fr){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(de,this);return}if(t&&this.once("close",t),this._state!==cr)if(this._state=cr,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(de,this):process.nextTick(de,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{de(this)})}}shouldHandle(t){if(this.options.path){let r=t.url.indexOf("?");if((r!==-1?t.url.slice(0,r):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,r,s,n){r.on("error",lr);let i=t.headers["sec-websocket-key"],a=t.headers.upgrade,c=+t.headers["sec-websocket-version"];if(t.method!=="GET"){q(this,t,r,405,"Invalid HTTP method");return}if(a===void 0||a.toLowerCase()!=="websocket"){q(this,t,r,400,"Invalid Upgrade header");return}if(i===void 0||!zs.test(i)){q(this,t,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(c!==13&&c!==8){q(this,t,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){he(r,400);return}let f=t.headers["sec-websocket-protocol"],l=new Set;if(f!==void 0)try{l=qs.parse(f)}catch{q(this,t,r,400,"Invalid Sec-WebSocket-Protocol header");return}let u=t.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&u!==void 0){let m=new W({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let y=or.parse(u);y[W.extensionName]&&(m.accept(y[W.extensionName]),d[W.extensionName]=m)}catch{q(this,t,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:t.headers[`${c===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(y,_,h,x)=>{if(!y)return he(r,_||401,h,x);this.completeUpgrade(d,i,l,t,r,s,n)});return}if(!this.options.verifyClient(m))return he(r,401)}this.completeUpgrade(d,i,l,t,r,s,n)}completeUpgrade(t,r,s,n,i,a,c){if(!i.readable||!i.writable)return i.destroy();if(i[Hs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>ar)return he(i,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Ws("sha1").update(r+Gs).digest("base64")}`],u=new this.options.WebSocket(null,void 0,this.options);if(s.size){let d=this.options.handleProtocols?this.options.handleProtocols(s,n):s.values().next().value;d&&(l.push(`Sec-WebSocket-Protocol: ${d}`),u._protocol=d)}if(t[W.extensionName]){let d=t[W.extensionName].params,m=or.format({[W.extensionName]:[d]});l.push(`Sec-WebSocket-Extensions: ${m}`),u._extensions=t}this.emit("headers",l,n),i.write(l.concat(`\r
|
|
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
|
|
3
2
|
`).join(`\r
|
|
4
|
-
`)),
|
|
5
|
-
`+Object.keys(
|
|
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
|
|
4
|
+
`+Object.keys(S).map(p=>`${p}: ${S[p]}`).join(`\r
|
|
6
5
|
`)+`\r
|
|
7
6
|
\r
|
|
8
|
-
`+
|
|
9
|
-
`;
|
|
10
|
-
`);
|
|
11
|
-
`)[0]??e.reason;return{id:
|
|
12
|
-
`).slice(0,2);for(let r of
|
|
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();
|