fixparser-plugin-messagestore-kdb 9.3.0-bb19a1db → 9.3.1-e2dab1be

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.
@@ -1,8 +1,8 @@
1
- var br=Object.create;var ot=Object.defineProperty;var Er=Object.getOwnPropertyDescriptor;var wr=Object.getOwnPropertyNames;var kr=Object.getPrototypeOf,Or=Object.prototype.hasOwnProperty;var w=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var C=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Tr=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of wr(e))!Or.call(t,n)&&n!==r&&ot(t,n,{get:()=>e[n],enumerable:!(s=Er(e,n))||s.enumerable});return t};var fe=(t,e,r)=>(r=t!=null?br(kr(t)):{},Tr(e||!t||!t.__esModule?ot(r,"default",{value:t,enumerable:!0}):r,t));var R=C((en,ft)=>{"use strict";var at=["nodebuffer","arraybuffer","fragments"],lt=typeof Blob<"u";lt&&at.push("blob");ft.exports={BINARY_TYPES:at,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:lt,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var he=C((tn,xe)=>{"use strict";var{EMPTY_BUFFER:Nr}=R(),Ae=Buffer[Symbol.species];function Cr(t,e){if(t.length===0)return Nr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let n=0;n<t.length;n++){let i=t[n];r.set(i,s),s+=i.length}return s<e?new Ae(r.buffer,r.byteOffset,s):r}function ht(t,e,r,s,n){for(let i=0;i<n;i++)r[s+i]=t[i]^e[i&3]}function ct(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Ir(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Re(t){if(Re.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Ae(t):ArrayBuffer.isView(t)?e=new Ae(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Re.readOnly=!1),e}xe.exports={concat:Cr,mask:ht,toArrayBuffer:Ir,toBuffer:Re,unmask:ct};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=w("bufferutil");xe.exports.mask=function(e,r,s,n,i){i<48?ht(e,r,s,n,i):t.mask(e,r,s,n,i)},xe.exports.unmask=function(e,r){e.length<32?ct(e,r):t.unmask(e,r)}}catch{}});var _t=C((rn,dt)=>{"use strict";var ut=Symbol("kDone"),Fe=Symbol("kRun"),We=class{constructor(e){this[ut]=()=>{this.pending--,this[Fe]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Fe]()}[Fe](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[ut])}}};dt.exports=We});var ue=C((sn,yt)=>{"use strict";var ce=w("zlib"),mt=he(),Lr=_t(),{kStatusCode:pt}=R(),Mr=Buffer[Symbol.species],Pr=Buffer.from([0,0,255,255]),Ee=Symbol("permessage-deflate"),F=Symbol("total-length"),J=Symbol("callback"),q=Symbol("buffers"),ee=Symbol("error"),be,$e=class{constructor(e,r,s){if(this._maxPayload=s|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!be){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;be=new Lr(n)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[J];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,s=e.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(e){let r=e[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(e){return e.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})}),e}decompress(e,r,s){be.add(n=>{this._decompress(e,r,(i,o)=>{n(),s(i,o)})})}compress(e,r,s){be.add(n=>{this._compress(e,r,(i,o)=>{n(),s(i,o)})})}_decompress(e,r,s){let n=this._isServer?"client":"server";if(!this._inflate){let i=`${n}_max_window_bits`,o=typeof this.params[i]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=ce.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[Ee]=this,this._inflate[F]=0,this._inflate[q]=[],this._inflate.on("error",Dr),this._inflate.on("data",gt)}this._inflate[J]=s,this._inflate.write(e),r&&this._inflate.write(Pr),this._inflate.flush(()=>{let i=this._inflate[ee];if(i){this._inflate.close(),this._inflate=null,s(i);return}let o=mt.concat(this._inflate[q],this._inflate[F]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[F]=0,this._inflate[q]=[],r&&this.params[`${n}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let n=this._isServer?"server":"client";if(!this._deflate){let i=`${n}_max_window_bits`,o=typeof this.params[i]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=ce.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[F]=0,this._deflate[q]=[],this._deflate.on("data",Br)}this._deflate[J]=s,this._deflate.write(e),this._deflate.flush(ce.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=mt.concat(this._deflate[q],this._deflate[F]);r&&(i=new Mr(i.buffer,i.byteOffset,i.length-4)),this._deflate[J]=null,this._deflate[F]=0,this._deflate[q]=[],r&&this.params[`${n}_no_context_takeover`]&&this._deflate.reset(),s(null,i)})}};yt.exports=$e;function Br(t){this[q].push(t),this[F]+=t.length}function gt(t){if(this[F]+=t.length,this[Ee]._maxPayload<1||this[F]<=this[Ee]._maxPayload){this[q].push(t);return}this[ee]=new RangeError("Max payload size exceeded"),this[ee].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[ee][pt]=1009,this.removeListener("data",gt),this.reset()}function Dr(t){if(this[Ee]._inflate=null,this[ee]){this[J](this[ee]);return}t[pt]=1007,this[J](t)}});var te=C((nn,we)=>{"use strict";var{isUtf8:St}=w("buffer"),{hasBlob:Ur}=R(),Ar=[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 Rr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function qe(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Fr(t){return Ur&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}we.exports={isBlob:Fr,isValidStatusCode:Rr,isValidUTF8:qe,tokenChars:Ar};if(St)we.exports.isValidUTF8=function(t){return t.length<24?qe(t):St(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=w("utf-8-validate");we.exports.isValidUTF8=function(e){return e.length<32?qe(e):t(e)}}catch{}});var He=C((on,Ot)=>{"use strict";var{Writable:Wr}=w("stream"),vt=ue(),{BINARY_TYPES:$r,EMPTY_BUFFER:xt,kStatusCode:qr,kWebSocket:Gr}=R(),{concat:Ge,toArrayBuffer:jr,unmask:Vr}=he(),{isValidStatusCode:zr,isValidUTF8:bt}=te(),ke=Buffer[Symbol.species],L=0,Et=1,wt=2,kt=3,je=4,Ve=5,Oe=6,ze=class extends Wr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||$r[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Gr]=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=L}_write(e,r,s){if(this._opcode===8&&this._state==L)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new ke(s.buffer,s.byteOffset+e,s.length-e),new ke(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],n=r.length-e;e>=s.length?r.set(this._buffers.shift(),n):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),n),this._buffers[0]=new ke(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case L:this.getInfo(e);break;case Et:this.getPayloadLength16(e);break;case wt:this.getPayloadLength64(e);break;case kt:this.getMask();break;case je:this.getData(e);break;case Ve:case Oe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){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");e(n);return}let s=(r[0]&64)===64;if(s&&!this._extensions[vt.extensionName]){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(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");e(n);return}if(!this._fragmented){let n=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(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");e(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");e(n);return}if(s){let n=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(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");e(n);return}}else{let n=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(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");e(n);return}}else if(this._masked){let n=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(n);return}this._payloadLength===126?this._state=Et:this._payloadLength===127?this._state=wt:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){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");e(n);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){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");e(r);return}this._masked?this._state=kt:this._state=je}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=je}getData(e){let r=xt;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&&Vr(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Ve,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[vt.extensionName].decompress(e,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 o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(i)}this.dataMessage(r),this._state===L&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=L;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=Ge(s,r):this._binaryType==="arraybuffer"?n=jr(Ge(s,r)):this._binaryType==="blob"?n=new Blob(s):n=s,this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=L):(this._state=Oe,setImmediate(()=>{this.emit("message",n,!0),this._state=L,this.startLoop(e)}))}else{let n=Ge(s,r);if(!this._skipUTF8Validation&&!bt(n)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(i);return}this._state===Ve||this._allowSynchronousEvents?(this.emit("message",n,!1),this._state=L):(this._state=Oe,setImmediate(()=>{this.emit("message",n,!1),this._state=L,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,xt),this.end();else{let s=e.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 ke(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!bt(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=L;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=L):(this._state=Oe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=L,this.startLoop(r)}))}createError(e,r,s,n,i){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=i,o[qr]=n,o}};Ot.exports=ze});var Ye=C((ln,Ct)=>{"use strict";var{Duplex:an}=w("stream"),{randomFillSync:Hr}=w("crypto"),Tt=ue(),{EMPTY_BUFFER:Kr,kWebSocket:Xr,NOOP:Yr}=R(),{isBlob:re,isValidStatusCode:Zr}=te(),{mask:Nt,toBuffer:V}=he(),M=Symbol("kByteLength"),Qr=Buffer.alloc(4),Te=8*1024,z,se=Te,P=0,Jr=1,es=2,Ke=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=P,this.onerror=Yr,this[Xr]=void 0}static frame(e,r){let s,n=!1,i=2,o=!1;r.mask&&(s=r.maskBuffer||Qr,r.generateMask?r.generateMask(s):(se===Te&&(z===void 0&&(z=Buffer.alloc(Te)),Hr(z,0,Te),se=0),s[0]=z[se++],s[1]=z[se++],s[2]=z[se++],s[3]=z[se++]),o=(s[0]|s[1]|s[2]|s[3])===0,i=6);let a;typeof e=="string"?(!r.mask||o)&&r[M]!==void 0?a=r[M]:(e=Buffer.from(e),a=e.length):(a=e.length,n=r.mask&&r.readOnly&&!o);let h=a;a>=65536?(i+=8,h=127):a>125&&(i+=2,h=126);let l=Buffer.allocUnsafe(n?a+i:i);return l[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(l[0]|=64),l[1]=h,h===126?l.writeUInt16BE(a,2):h===127&&(l[2]=l[3]=0,l.writeUIntBE(a,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],o?[l,e]:n?(Nt(e,s,l,i,a),[l]):(Nt(e,s,e,0,a),[l,e])):[l,e]}close(e,r,s,n){let i;if(e===void 0)i=Kr;else{if(typeof e!="number"||!Zr(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0);else{let a=Buffer.byteLength(r);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");i=Buffer.allocUnsafe(2+a),i.writeUInt16BE(e,0),typeof r=="string"?i.write(r,2):i.set(r,2)}}let o={[M]:i.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==P?this.enqueue([this.dispatch,i,!1,o,n]):this.sendFrame(t.frame(i,o),n)}ping(e,r,s){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):re(e)?(n=e.size,i=!1):(e=V(e),n=e.length,i=V.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[M]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};re(e)?this._state!==P?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==P?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let n,i;if(typeof e=="string"?(n=Buffer.byteLength(e),i=!1):re(e)?(n=e.size,i=!1):(e=V(e),n=e.length,i=V.readOnly),n>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[M]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};re(e)?this._state!==P?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==P?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let n=this._extensions[Tt.extensionName],i=r.binary?2:1,o=r.compress,a,h;typeof e=="string"?(a=Buffer.byteLength(e),h=!1):re(e)?(a=e.size,h=!1):(e=V(e),a=e.length,h=V.readOnly),this._firstFragment?(this._firstFragment=!1,o&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=n._threshold),this._compress=o):(o=!1,i=0),r.fin&&(this._firstFragment=!0);let l={[M]:a,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:h,rsv1:o};re(e)?this._state!==P?this.enqueue([this.getBlobData,e,this._compress,l,s]):this.getBlobData(e,this._compress,l,s):this._state!==P?this.enqueue([this.dispatch,e,this._compress,l,s]):this.dispatch(e,this._compress,l,s)}getBlobData(e,r,s,n){this._bufferedBytes+=s[M],this._state=es,e.arrayBuffer().then(i=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(Xe,this,a,n);return}this._bufferedBytes-=s[M];let o=V(i);r?this.dispatch(o,r,s,n):(this._state=P,this.sendFrame(t.frame(o,s),n),this.dequeue())}).catch(i=>{process.nextTick(ts,this,i,n)})}dispatch(e,r,s,n){if(!r){this.sendFrame(t.frame(e,s),n);return}let i=this._extensions[Tt.extensionName];this._bufferedBytes+=s[M],this._state=Jr,i.compress(e,s.fin,(o,a)=>{if(this._socket.destroyed){let h=new Error("The socket was closed while data was being compressed");Xe(this,h,n);return}this._bufferedBytes-=s[M],this._state=P,s.readOnly=!1,this.sendFrame(t.frame(a,s),n),this.dequeue()})}dequeue(){for(;this._state===P&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][M],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][M],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};Ct.exports=Ke;function Xe(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let n=t._queue[s],i=n[n.length-1];typeof i=="function"&&i(e)}}function ts(t,e,r){Xe(t,e,r),t.onerror(e)}});var Rt=C((fn,At)=>{"use strict";var{kForOnEventAttribute:de,kListener:Ze}=R(),It=Symbol("kCode"),Lt=Symbol("kData"),Mt=Symbol("kError"),Pt=Symbol("kMessage"),Bt=Symbol("kReason"),ne=Symbol("kTarget"),Dt=Symbol("kType"),Ut=Symbol("kWasClean"),W=class{constructor(e){this[ne]=null,this[Dt]=e}get target(){return this[ne]}get type(){return this[Dt]}};Object.defineProperty(W.prototype,"target",{enumerable:!0});Object.defineProperty(W.prototype,"type",{enumerable:!0});var H=class extends W{constructor(e,r={}){super(e),this[It]=r.code===void 0?0:r.code,this[Bt]=r.reason===void 0?"":r.reason,this[Ut]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[It]}get reason(){return this[Bt]}get wasClean(){return this[Ut]}};Object.defineProperty(H.prototype,"code",{enumerable:!0});Object.defineProperty(H.prototype,"reason",{enumerable:!0});Object.defineProperty(H.prototype,"wasClean",{enumerable:!0});var ie=class extends W{constructor(e,r={}){super(e),this[Mt]=r.error===void 0?null:r.error,this[Pt]=r.message===void 0?"":r.message}get error(){return this[Mt]}get message(){return this[Pt]}};Object.defineProperty(ie.prototype,"error",{enumerable:!0});Object.defineProperty(ie.prototype,"message",{enumerable:!0});var _e=class extends W{constructor(e,r={}){super(e),this[Lt]=r.data===void 0?null:r.data}get data(){return this[Lt]}};Object.defineProperty(_e.prototype,"data",{enumerable:!0});var rs={addEventListener(t,e,r={}){for(let n of this.listeners(t))if(!r[de]&&n[Ze]===e&&!n[de])return;let s;if(t==="message")s=function(i,o){let a=new _e("message",{data:o?i:i.toString()});a[ne]=this,Ne(e,this,a)};else if(t==="close")s=function(i,o){let a=new H("close",{code:i,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[ne]=this,Ne(e,this,a)};else if(t==="error")s=function(i){let o=new ie("error",{error:i,message:i.message});o[ne]=this,Ne(e,this,o)};else if(t==="open")s=function(){let i=new W("open");i[ne]=this,Ne(e,this,i)};else return;s[de]=!!r[de],s[Ze]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ze]===e&&!r[de]){this.removeListener(t,r);break}}};At.exports={CloseEvent:H,ErrorEvent:ie,Event:W,EventTarget:rs,MessageEvent:_e};function Ne(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Qe=C((hn,Ft)=>{"use strict";var{tokenChars:me}=te();function B(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function ss(t){let e=Object.create(null),r=Object.create(null),s=!1,n=!1,i=!1,o,a,h=-1,l=-1,u=-1,c=0;for(;c<t.length;c++)if(l=t.charCodeAt(c),o===void 0)if(u===-1&&me[l]===1)h===-1&&(h=c);else if(c!==0&&(l===32||l===9))u===-1&&h!==-1&&(u=c);else if(l===59||l===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c);let g=t.slice(h,u);l===44?(B(e,g,r),r=Object.create(null)):o=g,h=u=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);else if(a===void 0)if(u===-1&&me[l]===1)h===-1&&(h=c);else if(l===32||l===9)u===-1&&h!==-1&&(u=c);else if(l===59||l===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c),B(r,t.slice(h,u),!0),l===44&&(B(e,o,r),r=Object.create(null),o=void 0),h=u=-1}else if(l===61&&h!==-1&&u===-1)a=t.slice(h,c),h=u=-1;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(n){if(me[l]!==1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1?h=c:s||(s=!0),n=!1}else if(i)if(me[l]===1)h===-1&&(h=c);else if(l===34&&h!==-1)i=!1,u=c;else if(l===92)n=!0;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(l===34&&t.charCodeAt(c-1)===61)i=!0;else if(u===-1&&me[l]===1)h===-1&&(h=c);else if(h!==-1&&(l===32||l===9))u===-1&&(u=c);else if(l===59||l===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c);let g=t.slice(h,u);s&&(g=g.replace(/\\/g,""),s=!1),B(r,a,g),l===44&&(B(e,o,r),r=Object.create(null),o=void 0),a=void 0,h=u=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);if(h===-1||i||l===32||l===9)throw new SyntaxError("Unexpected end of input");u===-1&&(u=c);let _=t.slice(h,u);return o===void 0?B(e,_,r):(a===void 0?B(r,_,!0):s?B(r,a,_.replace(/\\/g,"")):B(r,a,_),B(e,o,r)),e}function ns(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(n=>{let i=s[n];return Array.isArray(i)||(i=[i]),i.map(o=>o===!0?n:`${n}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ft.exports={format:ns,parse:ss}});var Me=C((dn,Zt)=>{"use strict";var is=w("events"),os=w("https"),as=w("http"),qt=w("net"),ls=w("tls"),{randomBytes:fs,createHash:hs}=w("crypto"),{Duplex:cn,Readable:un}=w("stream"),{URL:Je}=w("url"),G=ue(),cs=He(),us=Ye(),{isBlob:ds}=te(),{BINARY_TYPES:Wt,EMPTY_BUFFER:Ce,GUID:_s,kForOnEventAttribute:et,kListener:ms,kStatusCode:ps,kWebSocket:k,NOOP:Gt}=R(),{EventTarget:{addEventListener:gs,removeEventListener:ys}}=Rt(),{format:Ss,parse:vs}=Qe(),{toBuffer:xs}=he(),bs=30*1e3,jt=Symbol("kAborted"),tt=[8,13],$=["CONNECTING","OPEN","CLOSING","CLOSED"],Es=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,x=class t extends is{constructor(e,r,s){super(),this._binaryType=Wt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Ce,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==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]),Vt(this,e,r,s)):(this._autoPong=s.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Wt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}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(e,r,s){let n=new cs({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),i=new us(e,this._extensions,s.generateMask);this._receiver=n,this._sender=i,this._socket=e,n[k]=this,i[k]=this,e[k]=this,n.on("conclude",Os),n.on("drain",Ts),n.on("error",Ns),n.on("message",Cs),n.on("ping",Is),n.on("pong",Ls),i.onerror=Ms,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Kt),e.on("data",Le),e.on("end",Xt),e.on("error",Yt),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[G.extensionName]&&this._extensions[G.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){I(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Ht(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){rt(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||Ce,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){rt(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||Ce,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){rt(this,e,s);return}let n={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[G.extensionName]||(n.compress=!1),this._sender.send(e||Ce,n,s)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){I(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(x,"CONNECTING",{enumerable:!0,value:$.indexOf("CONNECTING")});Object.defineProperty(x.prototype,"CONNECTING",{enumerable:!0,value:$.indexOf("CONNECTING")});Object.defineProperty(x,"OPEN",{enumerable:!0,value:$.indexOf("OPEN")});Object.defineProperty(x.prototype,"OPEN",{enumerable:!0,value:$.indexOf("OPEN")});Object.defineProperty(x,"CLOSING",{enumerable:!0,value:$.indexOf("CLOSING")});Object.defineProperty(x.prototype,"CLOSING",{enumerable:!0,value:$.indexOf("CLOSING")});Object.defineProperty(x,"CLOSED",{enumerable:!0,value:$.indexOf("CLOSED")});Object.defineProperty(x.prototype,"CLOSED",{enumerable:!0,value:$.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(x.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(x.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[et])return e[ms];return null},set(e){for(let r of this.listeners(t))if(r[et]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[et]:!0})}})});x.prototype.addEventListener=gs;x.prototype.removeEventListener=ys;Zt.exports=x;function Vt(t,e,r,s){let n={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:tt[1],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(t._autoPong=n.autoPong,!tt.includes(n.protocolVersion))throw new RangeError(`Unsupported protocol version: ${n.protocolVersion} (supported versions: ${tt.join(", ")})`);let i;if(e instanceof Je)i=e;else try{i=new Je(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),t._url=i.href;let o=i.protocol==="wss:",a=i.protocol==="ws+unix:",h;if(i.protocol!=="ws:"&&!o&&!a?h=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!i.pathname?h="The URL's pathname is empty":i.hash&&(h="The URL contains a fragment identifier"),h){let d=new SyntaxError(h);if(t._redirects===0)throw d;Ie(t,d);return}let l=o?443:80,u=fs(16).toString("base64"),c=o?os.request:as.request,_=new Set,g;if(n.createConnection=n.createConnection||(o?ks:ws),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&&(g=new G(n.perMessageDeflate!==!0?n.perMessageDeflate:{},!1,n.maxPayload),n.headers["Sec-WebSocket-Extensions"]=Ss({[G.extensionName]:g.offer()})),r.length){for(let d of r){if(typeof d!="string"||!Es.test(d)||_.has(d))throw new SyntaxError("An invalid or duplicated subprotocol was specified");_.add(d)}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}`),a){let d=n.path.split(":");n.socketPath=d[0],n.path=d[1]}let v;if(n.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=o,t._originalHostOrSocketPath=a?n.socketPath:i.host;let d=s&&s.headers;if(s={...s,headers:{}},d)for(let[f,y]of Object.entries(d))s.headers[f.toLowerCase()]=y}else if(t.listenerCount("redirect")===0){let d=a?t._originalIpc?n.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:i.host===t._originalHostOrSocketPath;(!d||t._originalSecure&&!o)&&(delete n.headers.authorization,delete n.headers.cookie,d||delete n.headers.host,n.auth=void 0)}n.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(n.auth).toString("base64")),v=t._req=c(n),t._redirects&&t.emit("redirect",t.url,v)}else v=t._req=c(n);n.timeout&&v.on("timeout",()=>{I(t,v,"Opening handshake has timed out")}),v.on("error",d=>{v===null||v[jt]||(v=t._req=null,Ie(t,d))}),v.on("response",d=>{let f=d.headers.location,y=d.statusCode;if(f&&n.followRedirects&&y>=300&&y<400){if(++t._redirects>n.maxRedirects){I(t,v,"Maximum redirects exceeded");return}v.abort();let N;try{N=new Je(f,e)}catch{let b=new SyntaxError(`Invalid URL: ${f}`);Ie(t,b);return}Vt(t,N,r,s)}else t.emit("unexpected-response",v,d)||I(t,v,`Unexpected server response: ${d.statusCode}`)}),v.on("upgrade",(d,f,y)=>{if(t.emit("upgrade",d),t.readyState!==x.CONNECTING)return;v=t._req=null;let N=d.headers.upgrade;if(N===void 0||N.toLowerCase()!=="websocket"){I(t,f,"Invalid Upgrade header");return}let S=hs("sha1").update(u+_s).digest("base64");if(d.headers["sec-websocket-accept"]!==S){I(t,f,"Invalid Sec-WebSocket-Accept header");return}let b=d.headers["sec-websocket-protocol"],D;if(b!==void 0?_.size?_.has(b)||(D="Server sent an invalid subprotocol"):D="Server sent a subprotocol but none was requested":_.size&&(D="Server sent no subprotocol"),D){I(t,f,D);return}b&&(t._protocol=b);let Se=d.headers["sec-websocket-extensions"];if(Se!==void 0){if(!g){I(t,f,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let Y;try{Y=vs(Se)}catch{I(t,f,"Invalid Sec-WebSocket-Extensions header");return}let oe=Object.keys(Y);if(oe.length!==1||oe[0]!==G.extensionName){I(t,f,"Server indicated an extension that was not requested");return}try{g.accept(Y[G.extensionName])}catch{I(t,f,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[G.extensionName]=g}t.setSocket(f,y,{allowSynchronousEvents:n.allowSynchronousEvents,generateMask:n.generateMask,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation})}),n.finishRequest?n.finishRequest(v,t):v.end()}function Ie(t,e){t._readyState=x.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function ws(t){return t.path=t.socketPath,qt.connect(t)}function ks(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=qt.isIP(t.host)?"":t.host),ls.connect(t)}function I(t,e,r){t._readyState=x.CLOSING;let s=new Error(r);Error.captureStackTrace(s,I),e.setHeader?(e[jt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Ie,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function rt(t,e,r){if(e){let s=ds(e)?e.size:xs(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${$[t.readyState]})`);process.nextTick(r,s)}}function Os(t,e){let r=this[k];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[k]!==void 0&&(r._socket.removeListener("data",Le),process.nextTick(zt,r._socket),t===1005?r.close():r.close(t,e))}function Ts(){let t=this[k];t.isPaused||t._socket.resume()}function Ns(t){let e=this[k];e._socket[k]!==void 0&&(e._socket.removeListener("data",Le),process.nextTick(zt,e._socket),e.close(t[ps])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function $t(){this[k].emitClose()}function Cs(t,e){this[k].emit("message",t,e)}function Is(t){let e=this[k];e._autoPong&&e.pong(t,!this._isServer,Gt),e.emit("ping",t)}function Ls(t){this[k].emit("pong",t)}function zt(t){t.resume()}function Ms(t){let e=this[k];e.readyState!==x.CLOSED&&(e.readyState===x.OPEN&&(e._readyState=x.CLOSING,Ht(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Ht(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),bs)}function Kt(){let t=this[k];this.removeListener("close",Kt),this.removeListener("data",Le),this.removeListener("end",Xt),t._readyState=x.CLOSING;let e;!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&(e=t._socket.read())!==null&&t._receiver.write(e),t._receiver.end(),this[k]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",$t),t._receiver.on("finish",$t))}function Le(t){this[k]._receiver.write(t)||this.pause()}function Xt(){let t=this[k];t._readyState=x.CLOSING,t._receiver.end(),this.end()}function Yt(){let t=this[k];this.removeListener("error",Yt),this.on("error",Gt),t&&(t._readyState=x.CLOSING,this.destroy())}});var tr=C((mn,er)=>{"use strict";var _n=Me(),{Duplex:Ps}=w("stream");function Qt(t){t.emit("close")}function Bs(){!this.destroyed&&this._writableState.finished&&this.destroy()}function Jt(t){this.removeListener("error",Jt),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Ds(t,e){let r=!0,s=new Ps({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(i,o){let a=!o&&s._readableState.objectMode?i.toString():i;s.push(a)||t.pause()}),t.once("error",function(i){s.destroyed||(r=!1,s.destroy(i))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(n,i){if(t.readyState===t.CLOSED){i(n),process.nextTick(Qt,s);return}let o=!1;t.once("error",function(h){o=!0,i(h)}),t.once("close",function(){o||i(n),process.nextTick(Qt,s)}),r&&t.terminate()},s._final=function(n){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(n)});return}t._socket!==null&&(t._socket._writableState.finished?(n(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){n()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(n,i,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(n,i,o)});return}t.send(n,o)},s.on("end",Bs),s.on("error",Jt),s}er.exports=Ds});var sr=C((pn,rr)=>{"use strict";var{tokenChars:Us}=te();function As(t){let e=new Set,r=-1,s=-1,n=0;for(n;n<t.length;n++){let o=t.charCodeAt(n);if(s===-1&&Us[o]===1)r===-1&&(r=n);else if(n!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=n);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${n}`);s===-1&&(s=n);let a=t.slice(r,s);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),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=t.slice(r,n);if(e.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return e.add(i),e}rr.exports={parse:As}});var hr=C((yn,fr)=>{"use strict";var Rs=w("events"),Pe=w("http"),{Duplex:gn}=w("stream"),{createHash:Fs}=w("crypto"),nr=Qe(),K=ue(),Ws=sr(),$s=Me(),{GUID:qs,kWebSocket:Gs}=R(),js=/^[+/0-9A-Za-z]{22}==$/,ir=0,or=1,lr=2,st=class extends Rs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:$s,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Pe.createServer((s,n)=>{let i=Pe.STATUS_CODES[426];n.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),n.end(i)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=Vs(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(n,i,o)=>{this.handleUpgrade(n,i,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=ir}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===lr){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(pe,this);return}if(e&&this.once("close",e),this._state!==or)if(this._state=or,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(pe,this):process.nextTick(pe,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{pe(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,s,n){r.on("error",ar);let i=e.headers["sec-websocket-key"],o=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){X(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){X(this,e,r,400,"Invalid Upgrade header");return}if(i===void 0||!js.test(i)){X(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){X(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){ge(r,400);return}let h=e.headers["sec-websocket-protocol"],l=new Set;if(h!==void 0)try{l=Ws.parse(h)}catch{X(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let u=e.headers["sec-websocket-extensions"],c={};if(this.options.perMessageDeflate&&u!==void 0){let _=new K(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let g=nr.parse(u);g[K.extensionName]&&(_.accept(g[K.extensionName]),c[K.extensionName]=_)}catch{X(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let _={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(_,(g,v,d,f)=>{if(!g)return ge(r,v||401,d,f);this.completeUpgrade(c,i,l,e,r,s,n)});return}if(!this.options.verifyClient(_))return ge(r,401)}this.completeUpgrade(c,i,l,e,r,s,n)}completeUpgrade(e,r,s,n,i,o,a){if(!i.readable||!i.writable)return i.destroy();if(i[Gs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>ir)return ge(i,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Fs("sha1").update(r+qs).digest("base64")}`],u=new this.options.WebSocket(null,void 0,this.options);if(s.size){let c=this.options.handleProtocols?this.options.handleProtocols(s,n):s.values().next().value;c&&(l.push(`Sec-WebSocket-Protocol: ${c}`),u._protocol=c)}if(e[K.extensionName]){let c=e[K.extensionName].params,_=nr.format({[K.extensionName]:[c]});l.push(`Sec-WebSocket-Extensions: ${_}`),u._extensions=e}this.emit("headers",l,n),i.write(l.concat(`\r
1
+ var wr=Object.create;var at=Object.defineProperty;var kr=Object.getOwnPropertyDescriptor;var Nr=Object.getOwnPropertyNames;var Or=Object.getPrototypeOf,Tr=Object.prototype.hasOwnProperty;var w=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var C=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Cr=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Nr(e))!Tr.call(t,i)&&i!==r&&at(t,i,{get:()=>e[i],enumerable:!(s=kr(e,i))||s.enumerable});return t};var le=(t,e,r)=>(r=t!=null?wr(Or(t)):{},Cr(e||!t||!t.__esModule?at(r,"default",{value:t,enumerable:!0}):r,t));var R=C((ii,ut)=>{"use strict";var ht=["nodebuffer","arraybuffer","fragments"],ct=typeof Blob<"u";ct&&ht.push("blob");ut.exports={BINARY_TYPES:ht,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:ct,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var he=C((ni,be)=>{"use strict";var{EMPTY_BUFFER:Mr}=R(),Re=Buffer[Symbol.species];function Br(t,e){if(t.length===0)return Mr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new Re(r.buffer,r.byteOffset,s):r}function dt(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function _t(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Lr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Fe(t){if(Fe.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Re(t):ArrayBuffer.isView(t)?e=new Re(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Fe.readOnly=!1),e}be.exports={concat:Br,mask:dt,toArrayBuffer:Lr,toBuffer:Fe,unmask:_t};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=w("bufferutil");be.exports.mask=function(e,r,s,i,n){n<48?dt(e,r,s,i,n):t.mask(e,r,s,i,n)},be.exports.unmask=function(e,r){e.length<32?_t(e,r):t.unmask(e,r)}}catch{}});var gt=C((oi,pt)=>{"use strict";var mt=Symbol("kDone"),We=Symbol("kRun"),qe=class{constructor(e){this[mt]=()=>{this.pending--,this[We]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[We]()}[We](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[mt])}}};pt.exports=qe});var ue=C((ai,bt)=>{"use strict";var ce=w("zlib"),yt=he(),Pr=gt(),{kStatusCode:St}=R(),Dr=Buffer[Symbol.species],Ar=Buffer.from([0,0,255,255]),Ee=Symbol("permessage-deflate"),F=Symbol("total-length"),J=Symbol("callback"),$=Symbol("buffers"),ee=Symbol("error"),ve,$e=class{constructor(e,r,s){if(this._maxPayload=s|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!ve){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ve=new Pr(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[J];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.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(e){let r=e[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(e){return e.forEach(r=>{Object.keys(r).forEach(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){ve.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){ve.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=ce.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[Ee]=this,this._inflate[F]=0,this._inflate[$]=[],this._inflate.on("error",Rr),this._inflate.on("data",xt)}this._inflate[J]=s,this._inflate.write(e),r&&this._inflate.write(Ar),this._inflate.flush(()=>{let n=this._inflate[ee];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=yt.concat(this._inflate[$],this._inflate[F]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[F]=0,this._inflate[$]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?ce.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=ce.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[F]=0,this._deflate[$]=[],this._deflate.on("data",Ur)}this._deflate[J]=s,this._deflate.write(e),this._deflate.flush(ce.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=yt.concat(this._deflate[$],this._deflate[F]);r&&(n=new Dr(n.buffer,n.byteOffset,n.length-4)),this._deflate[J]=null,this._deflate[F]=0,this._deflate[$]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};bt.exports=$e;function Ur(t){this[$].push(t),this[F]+=t.length}function xt(t){if(this[F]+=t.length,this[Ee]._maxPayload<1||this[F]<=this[Ee]._maxPayload){this[$].push(t);return}this[ee]=new RangeError("Max payload size exceeded"),this[ee].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[ee][St]=1009,this.removeListener("data",xt),this.reset()}function Rr(t){if(this[Ee]._inflate=null,this[ee]){this[J](this[ee]);return}t[St]=1007,this[J](t)}});var te=C((fi,we)=>{"use strict";var{isUtf8:vt}=w("buffer"),{hasBlob:Fr}=R(),Wr=[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 qr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Ge(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function $r(t){return Fr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}we.exports={isBlob:$r,isValidStatusCode:qr,isValidUTF8:Ge,tokenChars:Wr};if(vt)we.exports.isValidUTF8=function(t){return t.length<24?Ge(t):vt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=w("utf-8-validate");we.exports.isValidUTF8=function(e){return e.length<32?Ge(e):t(e)}}catch{}});var Ke=C((li,Ct)=>{"use strict";var{Writable:Gr}=w("stream"),Et=ue(),{BINARY_TYPES:jr,EMPTY_BUFFER:wt,kStatusCode:zr,kWebSocket:Vr}=R(),{concat:je,toArrayBuffer:Hr,unmask:Kr}=he(),{isValidStatusCode:Xr,isValidUTF8:kt}=te(),ke=Buffer[Symbol.species],M=0,Nt=1,Ot=2,Tt=3,ze=4,Ve=5,Ne=6,He=class extends Gr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||jr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Vr]=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=M}_write(e,r,s){if(this._opcode===8&&this._state==M)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new ke(s.buffer,s.byteOffset+e,s.length-e),new ke(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new ke(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case M:this.getInfo(e);break;case Nt:this.getPayloadLength16(e);break;case Ot:this.getPayloadLength64(e);break;case Tt:this.getMask();break;case ze:this.getData(e);break;case Ve:case Ne:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[Et.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=Nt:this._payloadLength===127?this._state=Ot:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){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 i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){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");e(r);return}this._masked?this._state=Tt:this._state=ze}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=ze}getData(e){let r=wt;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&&Kr(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Ve,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[Et.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===M&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=M;return}let r=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=je(s,r):this._binaryType==="arraybuffer"?i=Hr(je(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=M):(this._state=Ne,setImmediate(()=>{this.emit("message",i,!0),this._state=M,this.startLoop(e)}))}else{let i=je(s,r);if(!this._skipUTF8Validation&&!kt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Ve||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=M):(this._state=Ne,setImmediate(()=>{this.emit("message",i,!1),this._state=M,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,wt),this.end();else{let s=e.readUInt16BE(0);if(!Xr(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new ke(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!kt(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),this.end()}this._state=M;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=M):(this._state=Ne,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=M,this.startLoop(r)}))}createError(e,r,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[zr]=i,o}};Ct.exports=He});var Ze=C((ci,Bt)=>{"use strict";var{Duplex:hi}=w("stream"),{randomFillSync:Yr}=w("crypto"),It=ue(),{EMPTY_BUFFER:Zr,kWebSocket:Qr,NOOP:Jr}=R(),{isBlob:re,isValidStatusCode:es}=te(),{mask:Mt,toBuffer:z}=he(),B=Symbol("kByteLength"),ts=Buffer.alloc(4),Oe=8*1024,V,se=Oe,L=0,rs=1,ss=2,Xe=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=L,this.onerror=Jr,this[Qr]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||ts,r.generateMask?r.generateMask(s):(se===Oe&&(V===void 0&&(V=Buffer.alloc(Oe)),Yr(V,0,Oe),se=0),s[0]=V[se++],s[1]=V[se++],s[2]=V[se++],s[3]=V[se++]),o=(s[0]|s[1]|s[2]|s[3])===0,n=6);let a;typeof e=="string"?(!r.mask||o)&&r[B]!==void 0?a=r[B]:(e=Buffer.from(e),a=e.length):(a=e.length,i=r.mask&&r.readOnly&&!o);let h=a;a>=65536?(n+=8,h=127):a>125&&(n+=2,h=126);let f=Buffer.allocUnsafe(i?a+n:n);return f[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(f[0]|=64),f[1]=h,h===126?f.writeUInt16BE(a,2):h===127&&(f[2]=f[3]=0,f.writeUIntBE(a,4,6)),r.mask?(f[1]|=128,f[n-4]=s[0],f[n-3]=s[1],f[n-2]=s[2],f[n-1]=s[3],o?[f,e]:i?(Mt(e,s,f,n,a),[f]):(Mt(e,s,e,0,a),[f,e])):[f,e]}close(e,r,s,i){let n;if(e===void 0)n=Zr;else{if(typeof e!="number"||!es(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let a=Buffer.byteLength(r);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+a),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[B]:n.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==L?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):re(e)?(i=e.size,n=!1):(e=z(e),i=e.length,n=z.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[B]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};re(e)?this._state!==L?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==L?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):re(e)?(i=e.size,n=!1):(e=z(e),i=e.length,n=z.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[B]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};re(e)?this._state!==L?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==L?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[It.extensionName],n=r.binary?2:1,o=r.compress,a,h;typeof e=="string"?(a=Buffer.byteLength(e),h=!1):re(e)?(a=e.size,h=!1):(e=z(e),a=e.length,h=z.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let f={[B]:a,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:h,rsv1:o};re(e)?this._state!==L?this.enqueue([this.getBlobData,e,this._compress,f,s]):this.getBlobData(e,this._compress,f,s):this._state!==L?this.enqueue([this.dispatch,e,this._compress,f,s]):this.dispatch(e,this._compress,f,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[B],this._state=ss,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(Ye,this,a,i);return}this._bufferedBytes-=s[B];let o=z(n);r?this.dispatch(o,r,s,i):(this._state=L,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(is,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[It.extensionName];this._bufferedBytes+=s[B],this._state=rs,n.compress(e,s.fin,(o,a)=>{if(this._socket.destroyed){let h=new Error("The socket was closed while data was being compressed");Ye(this,h,i);return}this._bufferedBytes-=s[B],this._state=L,s.readOnly=!1,this.sendFrame(t.frame(a,s),i),this.dequeue()})}dequeue(){for(;this._state===L&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][B],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][B],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};Bt.exports=Xe;function Ye(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function is(t,e,r){Ye(t,e,r),t.onerror(e)}});var qt=C((ui,Wt)=>{"use strict";var{kForOnEventAttribute:de,kListener:Qe}=R(),Lt=Symbol("kCode"),Pt=Symbol("kData"),Dt=Symbol("kError"),At=Symbol("kMessage"),Ut=Symbol("kReason"),ie=Symbol("kTarget"),Rt=Symbol("kType"),Ft=Symbol("kWasClean"),W=class{constructor(e){this[ie]=null,this[Rt]=e}get target(){return this[ie]}get type(){return this[Rt]}};Object.defineProperty(W.prototype,"target",{enumerable:!0});Object.defineProperty(W.prototype,"type",{enumerable:!0});var H=class extends W{constructor(e,r={}){super(e),this[Lt]=r.code===void 0?0:r.code,this[Ut]=r.reason===void 0?"":r.reason,this[Ft]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[Lt]}get reason(){return this[Ut]}get wasClean(){return this[Ft]}};Object.defineProperty(H.prototype,"code",{enumerable:!0});Object.defineProperty(H.prototype,"reason",{enumerable:!0});Object.defineProperty(H.prototype,"wasClean",{enumerable:!0});var ne=class extends W{constructor(e,r={}){super(e),this[Dt]=r.error===void 0?null:r.error,this[At]=r.message===void 0?"":r.message}get error(){return this[Dt]}get message(){return this[At]}};Object.defineProperty(ne.prototype,"error",{enumerable:!0});Object.defineProperty(ne.prototype,"message",{enumerable:!0});var _e=class extends W{constructor(e,r={}){super(e),this[Pt]=r.data===void 0?null:r.data}get data(){return this[Pt]}};Object.defineProperty(_e.prototype,"data",{enumerable:!0});var ns={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[de]&&i[Qe]===e&&!i[de])return;let s;if(t==="message")s=function(n,o){let a=new _e("message",{data:o?n:n.toString()});a[ie]=this,Te(e,this,a)};else if(t==="close")s=function(n,o){let a=new H("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[ie]=this,Te(e,this,a)};else if(t==="error")s=function(n){let o=new ne("error",{error:n,message:n.message});o[ie]=this,Te(e,this,o)};else if(t==="open")s=function(){let n=new W("open");n[ie]=this,Te(e,this,n)};else return;s[de]=!!r[de],s[Qe]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Qe]===e&&!r[de]){this.removeListener(t,r);break}}};Wt.exports={CloseEvent:H,ErrorEvent:ne,Event:W,EventTarget:ns,MessageEvent:_e};function Te(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Je=C((di,$t)=>{"use strict";var{tokenChars:me}=te();function P(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function os(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,a,h=-1,f=-1,u=-1,c=0;for(;c<t.length;c++)if(f=t.charCodeAt(c),o===void 0)if(u===-1&&me[f]===1)h===-1&&(h=c);else if(c!==0&&(f===32||f===9))u===-1&&h!==-1&&(u=c);else if(f===59||f===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c);let g=t.slice(h,u);f===44?(P(e,g,r),r=Object.create(null)):o=g,h=u=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);else if(a===void 0)if(u===-1&&me[f]===1)h===-1&&(h=c);else if(f===32||f===9)u===-1&&h!==-1&&(u=c);else if(f===59||f===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c),P(r,t.slice(h,u),!0),f===44&&(P(e,o,r),r=Object.create(null),o=void 0),h=u=-1}else if(f===61&&h!==-1&&u===-1)a=t.slice(h,c),h=u=-1;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(i){if(me[f]!==1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1?h=c:s||(s=!0),i=!1}else if(n)if(me[f]===1)h===-1&&(h=c);else if(f===34&&h!==-1)n=!1,u=c;else if(f===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(f===34&&t.charCodeAt(c-1)===61)n=!0;else if(u===-1&&me[f]===1)h===-1&&(h=c);else if(h!==-1&&(f===32||f===9))u===-1&&(u=c);else if(f===59||f===44){if(h===-1)throw new SyntaxError(`Unexpected character at index ${c}`);u===-1&&(u=c);let g=t.slice(h,u);s&&(g=g.replace(/\\/g,""),s=!1),P(r,a,g),f===44&&(P(e,o,r),r=Object.create(null),o=void 0),a=void 0,h=u=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);if(h===-1||n||f===32||f===9)throw new SyntaxError("Unexpected end of input");u===-1&&(u=c);let _=t.slice(h,u);return o===void 0?P(e,_,r):(a===void 0?P(r,_,!0):s?P(r,a,_.replace(/\\/g,"")):P(r,a,_),P(e,o,r)),e}function as(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}$t.exports={format:as,parse:os}});var Be=C((pi,er)=>{"use strict";var fs=w("events"),ls=w("https"),hs=w("http"),zt=w("net"),cs=w("tls"),{randomBytes:us,createHash:ds}=w("crypto"),{Duplex:_i,Readable:mi}=w("stream"),{URL:et}=w("url"),G=ue(),_s=Ke(),ms=Ze(),{isBlob:ps}=te(),{BINARY_TYPES:Gt,EMPTY_BUFFER:Ce,GUID:gs,kForOnEventAttribute:tt,kListener:ys,kStatusCode:Ss,kWebSocket:k,NOOP:Vt}=R(),{EventTarget:{addEventListener:xs,removeEventListener:bs}}=qt(),{format:vs,parse:Es}=Je(),{toBuffer:ws}=he(),ks=30*1e3,Ht=Symbol("kAborted"),rt=[8,13],q=["CONNECTING","OPEN","CLOSING","CLOSED"],Ns=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,b=class t extends fs{constructor(e,r,s){super(),this._binaryType=Gt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Ce,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==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]),Kt(this,e,r,s)):(this._autoPong=s.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Gt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}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(e,r,s){let i=new _s({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new ms(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[k]=this,n[k]=this,e[k]=this,i.on("conclude",Cs),i.on("drain",Is),i.on("error",Ms),i.on("message",Bs),i.on("ping",Ls),i.on("pong",Ps),n.onerror=Ds,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Zt),e.on("data",Me),e.on("end",Qt),e.on("error",Jt),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[G.extensionName]&&this._extensions[G.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){I(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,s=>{s||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Yt(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){st(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||Ce,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){st(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||Ce,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){st(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[G.extensionName]||(i.compress=!1),this._sender.send(e||Ce,i,s)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){I(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(b,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(b.prototype,"CONNECTING",{enumerable:!0,value:q.indexOf("CONNECTING")});Object.defineProperty(b,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(b.prototype,"OPEN",{enumerable:!0,value:q.indexOf("OPEN")});Object.defineProperty(b,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(b.prototype,"CLOSING",{enumerable:!0,value:q.indexOf("CLOSING")});Object.defineProperty(b,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});Object.defineProperty(b.prototype,"CLOSED",{enumerable:!0,value:q.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(b.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(b.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[tt])return e[ys];return null},set(e){for(let r of this.listeners(t))if(r[tt]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[tt]:!0})}})});b.prototype.addEventListener=xs;b.prototype.removeEventListener=bs;er.exports=b;function Kt(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:rt[1],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(t._autoPong=i.autoPong,!rt.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${rt.join(", ")})`);let n;if(e instanceof et)n=e;else try{n=new et(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",a=n.protocol==="ws+unix:",h;if(n.protocol!=="ws:"&&!o&&!a?h=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!n.pathname?h="The URL's pathname is empty":n.hash&&(h="The URL contains a fragment identifier"),h){let d=new SyntaxError(h);if(t._redirects===0)throw d;Ie(t,d);return}let f=o?443:80,u=us(16).toString("base64"),c=o?ls.request:hs.request,_=new Set,g;if(i.createConnection=i.createConnection||(o?Ts:Os),i.defaultPort=i.defaultPort||f,i.port=n.port||f,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(g=new G(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=vs({[G.extensionName]:g.offer()})),r.length){for(let d of r){if(typeof d!="string"||!Ns.test(d)||_.has(d))throw new SyntaxError("An invalid or duplicated subprotocol was specified");_.add(d)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),a){let d=i.path.split(":");i.socketPath=d[0],i.path=d[1]}let x;if(i.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=o,t._originalHostOrSocketPath=a?i.socketPath:n.host;let d=s&&s.headers;if(s={...s,headers:{}},d)for(let[l,y]of Object.entries(d))s.headers[l.toLowerCase()]=y}else if(t.listenerCount("redirect")===0){let d=a?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!d||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,d||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),x=t._req=c(i),t._redirects&&t.emit("redirect",t.url,x)}else x=t._req=c(i);i.timeout&&x.on("timeout",()=>{I(t,x,"Opening handshake has timed out")}),x.on("error",d=>{x===null||x[Ht]||(x=t._req=null,Ie(t,d))}),x.on("response",d=>{let l=d.headers.location,y=d.statusCode;if(l&&i.followRedirects&&y>=300&&y<400){if(++t._redirects>i.maxRedirects){I(t,x,"Maximum redirects exceeded");return}x.abort();let T;try{T=new et(l,e)}catch{let v=new SyntaxError(`Invalid URL: ${l}`);Ie(t,v);return}Kt(t,T,r,s)}else t.emit("unexpected-response",x,d)||I(t,x,`Unexpected server response: ${d.statusCode}`)}),x.on("upgrade",(d,l,y)=>{if(t.emit("upgrade",d),t.readyState!==b.CONNECTING)return;x=t._req=null;let T=d.headers.upgrade;if(T===void 0||T.toLowerCase()!=="websocket"){I(t,l,"Invalid Upgrade header");return}let S=ds("sha1").update(u+gs).digest("base64");if(d.headers["sec-websocket-accept"]!==S){I(t,l,"Invalid Sec-WebSocket-Accept header");return}let v=d.headers["sec-websocket-protocol"],D;if(v!==void 0?_.size?_.has(v)||(D="Server sent an invalid subprotocol"):D="Server sent a subprotocol but none was requested":_.size&&(D="Server sent no subprotocol"),D){I(t,l,D);return}v&&(t._protocol=v);let Se=d.headers["sec-websocket-extensions"];if(Se!==void 0){if(!g){I(t,l,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let Y;try{Y=Es(Se)}catch{I(t,l,"Invalid Sec-WebSocket-Extensions header");return}let oe=Object.keys(Y);if(oe.length!==1||oe[0]!==G.extensionName){I(t,l,"Server indicated an extension that was not requested");return}try{g.accept(Y[G.extensionName])}catch{I(t,l,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[G.extensionName]=g}t.setSocket(l,y,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(x,t):x.end()}function Ie(t,e){t._readyState=b.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function Os(t){return t.path=t.socketPath,zt.connect(t)}function Ts(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=zt.isIP(t.host)?"":t.host),cs.connect(t)}function I(t,e,r){t._readyState=b.CLOSING;let s=new Error(r);Error.captureStackTrace(s,I),e.setHeader?(e[Ht]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Ie,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function st(t,e,r){if(e){let s=ps(e)?e.size:ws(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${q[t.readyState]})`);process.nextTick(r,s)}}function Cs(t,e){let r=this[k];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[k]!==void 0&&(r._socket.removeListener("data",Me),process.nextTick(Xt,r._socket),t===1005?r.close():r.close(t,e))}function Is(){let t=this[k];t.isPaused||t._socket.resume()}function Ms(t){let e=this[k];e._socket[k]!==void 0&&(e._socket.removeListener("data",Me),process.nextTick(Xt,e._socket),e.close(t[Ss])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function jt(){this[k].emitClose()}function Bs(t,e){this[k].emit("message",t,e)}function Ls(t){let e=this[k];e._autoPong&&e.pong(t,!this._isServer,Vt),e.emit("ping",t)}function Ps(t){this[k].emit("pong",t)}function Xt(t){t.resume()}function Ds(t){let e=this[k];e.readyState!==b.CLOSED&&(e.readyState===b.OPEN&&(e._readyState=b.CLOSING,Yt(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Yt(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),ks)}function Zt(){let t=this[k];this.removeListener("close",Zt),this.removeListener("data",Me),this.removeListener("end",Qt),t._readyState=b.CLOSING;let e;!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&(e=t._socket.read())!==null&&t._receiver.write(e),t._receiver.end(),this[k]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",jt),t._receiver.on("finish",jt))}function Me(t){this[k]._receiver.write(t)||this.pause()}function Qt(){let t=this[k];t._readyState=b.CLOSING,t._receiver.end(),this.end()}function Jt(){let t=this[k];this.removeListener("error",Jt),this.on("error",Vt),t&&(t._readyState=b.CLOSING,this.destroy())}});var ir=C((yi,sr)=>{"use strict";var gi=Be(),{Duplex:As}=w("stream");function tr(t){t.emit("close")}function Us(){!this.destroyed&&this._writableState.finished&&this.destroy()}function rr(t){this.removeListener("error",rr),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Rs(t,e){let r=!0,s=new As({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let a=!o&&s._readableState.objectMode?n.toString():n;s.push(a)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(tr,s);return}let o=!1;t.once("error",function(h){o=!0,n(h)}),t.once("close",function(){o||n(i),process.nextTick(tr,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",Us),s.on("error",rr),s}sr.exports=Rs});var or=C((Si,nr)=>{"use strict";var{tokenChars:Fs}=te();function Ws(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&Fs[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let a=t.slice(r,s);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}nr.exports={parse:Ws}});var dr=C((bi,ur)=>{"use strict";var qs=w("events"),Le=w("http"),{Duplex:xi}=w("stream"),{createHash:$s}=w("crypto"),ar=Je(),K=ue(),Gs=or(),js=Be(),{GUID:zs,kWebSocket:Vs}=R(),Hs=/^[+/0-9A-Za-z]{22}==$/,fr=0,lr=1,cr=2,it=class extends qs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:js,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Le.createServer((s,i)=>{let n=Le.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=Ks(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=fr}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===cr){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(pe,this);return}if(e&&this.once("close",e),this._state!==lr)if(this._state=lr,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(pe,this):process.nextTick(pe,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{pe(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,s,i){r.on("error",hr);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){X(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){X(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!Hs.test(n)){X(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){X(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){ge(r,400);return}let h=e.headers["sec-websocket-protocol"],f=new Set;if(h!==void 0)try{f=Gs.parse(h)}catch{X(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let u=e.headers["sec-websocket-extensions"],c={};if(this.options.perMessageDeflate&&u!==void 0){let _=new K(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let g=ar.parse(u);g[K.extensionName]&&(_.accept(g[K.extensionName]),c[K.extensionName]=_)}catch{X(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let _={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(_,(g,x,d,l)=>{if(!g)return ge(r,x||401,d,l);this.completeUpgrade(c,n,f,e,r,s,i)});return}if(!this.options.verifyClient(_))return ge(r,401)}this.completeUpgrade(c,n,f,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,a){if(!n.readable||!n.writable)return n.destroy();if(n[Vs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>fr)return ge(n,503);let f=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${$s("sha1").update(r+zs).digest("base64")}`],u=new this.options.WebSocket(null,void 0,this.options);if(s.size){let c=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;c&&(f.push(`Sec-WebSocket-Protocol: ${c}`),u._protocol=c)}if(e[K.extensionName]){let c=e[K.extensionName].params,_=ar.format({[K.extensionName]:[c]});f.push(`Sec-WebSocket-Extensions: ${_}`),u._extensions=e}this.emit("headers",f,i),n.write(f.concat(`\r
2
2
  `).join(`\r
3
- `)),i.removeListener("error",ar),u.setSocket(i,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(u),u.on("close",()=>{this.clients.delete(u),this._shouldEmitClose&&!this.clients.size&&process.nextTick(pe,this)})),a(u,n)}};fr.exports=st;function Vs(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function pe(t){t._state=lr,t.emit("close")}function ar(){this.destroy()}function ge(t,e,r,s){r=r||Pe.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${Pe.STATUS_CODES[e]}\r
4
- `+Object.keys(s).map(n=>`${n}: ${s[n]}`).join(`\r
3
+ `)),n.removeListener("error",hr),u.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(u),u.on("close",()=>{this.clients.delete(u),this._shouldEmitClose&&!this.clients.size&&process.nextTick(pe,this)})),a(u,i)}};ur.exports=it;function Ks(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function pe(t){t._state=cr,t.emit("close")}function hr(){this.destroy()}function ge(t,e,r,s){r=r||Le.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${Le.STATUS_CODES[e]}\r
4
+ `+Object.keys(s).map(i=>`${i}: ${s[i]}`).join(`\r
5
5
  `)+`\r
6
6
  \r
7
- `+r)}function X(t,e,r,s,n,i){if(t.listenerCount("wsClientError")){let o=new Error(n);Error.captureStackTrace(o,X),t.emit("wsClientError",o,r,e)}else ge(r,s,n,i)}});import{MessageBuffer as Qs,uuidv4 as ur}from"fixparser-common";var zs=fe(tr(),1),Hs=fe(He(),1),Ks=fe(Ye(),1),ye=fe(Me(),1),Xs=fe(hr(),1);function Be(t){for(var e=[],r=0;r<t.length;r++){var s=t.charCodeAt(r);s<128?e.push(s):s<2048?e.push(192|s>>6,128|s&63):s<55296||s>=57344?e.push(224|s>>12,128|s>>6&63,128|s&63):(s=65536+((s&1023)<<10|t.charCodeAt(++r)&1023),e.push(240|s>>18,128|s>>12&63,128|s>>6&63,128|s&63))}return e}function cr(t){for(var e="",r,s,n,i=0;i<t.length;i++)switch((r=t[i])>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=String.fromCharCode(r);break;case 12:case 13:s=t[++i],e+=String.fromCharCode((r&31)<<6|s&63);break;case 14:s=t[++i],n=t[++i],e+=String.fromCharCode((r&15)<<12|(s&63)<<6|(n&63)<<0);break}return e}function Ys(t){if(t=new Uint8Array(t),t.length<13)return t;function e(_){return new Uint32Array(_)[0]}for(var r=0,s=0,n=0,i=8,o=i,a=0,h=12,l=e(t.buffer.slice(8,12)),u=new Uint8Array(l),c=new Int32Array(256);i<u.length;){if(a==0&&(n=255&t[h++],a=1),(n&a)!=0)for(s=c[255&t[h++]],u[i++]=u[s++],u[i++]=u[s++],r=255&t[h++],m=0;m<r;m++)u[i+m]=u[s+m];else u[i++]=t[h++];for(;o<i-1;)c[255&u[o]^255&u[o+1]]=o++;(n&a)!=0&&(i+=r,o=i),a*=2,a==256&&(a=0)}return u}function Zs(t){return new Uint8Array(t)[2]==1}function De(t){var e=t[0],r=8,s=Math.pow(2,32),n=new Uint8Array(t),i=new Int8Array(t),o=new Uint8Array(8),a=new Int16Array(o.buffer),h=new Int32Array(o.buffer),l=new Float32Array(o.buffer),u=new Float64Array(o.buffer);let c=864e5,_=c*10957;function g(){return d()==1}function v(){return String.fromCharCode(d())}function d(){return i[r++]}function f(E){for(var p=0;p<E;p++)o[p]=n[r++]}function y(){return n[r++]}function N(){for(var E="0123456789abcdef",p="",O=0;O<16;O++){var T=y();p+=O==4||O==6||O==8||O==10?"-":"",p+=E[T>>4],p+=E[T&15]}return p}function S(){f(2);var E=a[0];return E==-32768?NaN:E==-32767?-1/0:E==32767?1/0:E}function b(){f(4);var E=h[0];return E==-2147483648?NaN:E==-2147483647?-1/0:E==2147483647?1/0:E}function D(){f(8);var E=h[1],p=h[0];return E*s+(p>=0?p:s+p)}function Se(){return f(4),l[0]}function Y(){return f(8),u[0]}function oe(){for(var E=r,p,O=[];(p=y())!==0;)O.push(p);return cr(O)}function ae(){return j(D()/1e6)}function Ue(){return new Date(Date.UTC(2e3,b(),1))}function j(E){return new Date(_+E)}function _r(){return j(b()*c)}function mr(){return j(Y()*c)}function pr(){return j(D()/1e6)}function gr(){return j(b()*1e3)}function yr(){return j(b()*6e4)}function Sr(){return j(b())}function U(){var E=[U,g,N,null,y,S,b,D,Se,Y,v,oe,ae,Ue,_r,mr,pr,yr,gr,Sr],p=0,O,T=d();if(T<0&&T>-20)return E[-T]();if(T>99){if(T==100)return oe(),U();if(T<104)return d()===0&&T==101?null:"func";if(T>105)U();else for(O=b();p<O;p++)U();return"func"}if(T==99){var vr=n[r]==98,Z=U(),Q=U(),A;if(vr)A=new Array(2),A[0]=Z,A[1]=Q;else{A={};for(var p=0;p<Z.length;p++)A[Z[p]]=Q[p]}return A}if(r++,T==98){d();for(var Z=U(),Q=U(),le=new Array(Q[0].length),ve=0;ve<Q[0].length;ve++){for(var A={},p=0;p<Z.length;p++)A[Z[p]]=Q[p][ve];le[ve]=A}return le}if(O=b(),T==10){var it=[];for(O+=r;r<O;it.push(y()));return cr(it)}var le=new Array(O),xr=E[T];for(p=0;p<O;p++)le[p]=xr();return le}return Zs(t)?De(Ys(n)):U()}function nt(t){var e=1,r=0,s,n=new Uint8Array(8),i=new Int32Array(n.buffer),o=new Float64Array(n.buffer);function a(f){var y=typeof f;return y!=="object"&&y!=="function"?y:f?f instanceof Array?"array":f instanceof Date?"date":"object":"null"}function h(f){return Object.keys(f)}function l(f){var y=[];for(var N in f)y.push(f[N]);return y}function u(f,y){var N=y||a(f);switch(N){case"null":return 2;case"object":return 1+u(h(f),"symbols")+u(l(f),null);case"boolean":return 2;case"number":return 9;case"array":{for(var S=6,b=0;b<f.length;b++)S+=u(f[b],null);return S}case"symbols":{for(var S=6,b=0;b<f.length;b++)S+=u(f[b],"symbol");return S}case"string":return Be(f).length+(f[0]=="`"?1:6);case"date":return 9;case"symbol":return 2+Be(f).length}throw"bad type "+N}function c(f){s[r++]=f}function _(f){for(var y=0;y<f;y++)s[r++]=n[y]}function g(f,y){var N=y||a(f);switch(N){case"null":c(101),c(0);break;case"boolean":c(-1),c(f?1:0);break;case"number":c(-9),o[0]=f,_(8);break;case"date":c(-15),o[0]=(f.getTime()-new Date(f).getTimezoneOffset()*6e4)/864e5-10957,_(8);break;case"symbol":{c(-11),f=Be(f);for(var S=0;S<f.length;S++)c(f[S]);c(0)}break;case"string":if(f[0]=="`")g(f.substr(1),"symbol");else{c(10),c(0),f=Be(f),i[0]=f.length,_(4);for(var S=0;S<f.length;S++)c(f[S])}break;case"object":c(99),g(h(f),"symbols"),g(l(f),null);break;case"array":{c(0),c(0),i[0]=f.length,_(4);for(var S=0;S<f.length;S++)g(f[S],null)}break;case"symbols":{c(0),c(0),i[0]=f.length,_(4);for(var S=0;S<f.length;S++)g(f[S],"symbol")}break}}var v=u(t,null),d=new ArrayBuffer(8+v);return s=new Uint8Array(d),c(1),c(0),c(0),c(0),i[0]=s.length,_(4),g(t,null),d}var dr=class{nextMsgSeqNum=1;inMemoryMessageStore=new Qs(1048576);host;port;tableName="FIXParser";ws;parser;logger;writeInterval=5e3;writeIntervalId;maxBufferSize;constructor({host:e,port:r,tableName:s,parser:n,logger:i,onReady:o,maxBufferSize:a=2500,writeInterval:h=5e3}){this.host=e,this.port=r,this.maxBufferSize=a,this.writeInterval=h,this.parser=n,s&&(this.tableName=s),i&&(this.logger=i),this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- Connecting to ws://${this.host}:${this.port}...`}),this.ws=new ye.default(`ws://${this.host}:${this.port}`),this.ws.binaryType="arraybuffer",this.ws.onopen=async()=>{this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- Successfully opened connection to ws://${this.host}:${this.port}...`}),(await this.sendAsync("tables[]"))?.includes(this.tableName)?(this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- ${this.tableName} table found.`}),o()):(this.logger?.log({level:"info",message:"FIXParser (MessageStoreKDB): -- Setting up FIXParser table..."}),this.send(`meta ${this.tableName}:([] msgSequence:\`int$(); message:())`),this.send(`\`msgSequence xkey \`${this.tableName}`),o())},this.ws.onclose=()=>{this.logger?.log({level:"info",message:"FIXParser (MessageStoreKDB): -- Closed"}),this.stopWriteInterval()},this.ws.onerror=l=>{this.logger?.log({level:"error",message:"FIXParser (MessageStoreKDB): -- Error:",error:l}),this.stopWriteInterval()},this.writeIntervalId=setInterval(()=>this.writeToKDB(),this.writeInterval)}send(e){let r=ur().replace(/-/g,""),s=`enlist \`${r}, ${e}`;this.ws.readyState!==ye.default.OPEN&&this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- WebSocket not ready! Ignoring command ${e}...`}),this.ws.onmessage=n=>{try{let i=De(n.data)}catch(i){this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- Error parsing response to message id ${r}: ${i}`})}},this.ws.send(nt(s))}sendAsync(e){let r=ur().replace(/-/g,""),s=`enlist \`${r}, ${e}`;return this.ws.readyState!==ye.default.OPEN?(this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- WebSocket not ready! Ignoring command ${e}...`}),Promise.resolve(void 0)):new Promise((n,i)=>{this.ws.onmessage=o=>{try{let a=De(o.data),h=a[0][0],l=a[0].slice(1);h===r&&n(l)}catch(a){this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- Error parsing response to message id ${r}: ${a}`}),i(new Error(`Error parsing response to message id ${r}`))}},this.ws.send(nt(s))})}async writeToKDB(){let e=this.inMemoryMessageStore.getAll(),r=[];if(e.length>0){for(let s of e){r.push(s.messageSequence);let n=s.encode("|"),i=await this.sendAsync(`\`${this.tableName} upsert (${s.messageSequence}i;"${n}")`)}for(let s of r)this.inMemoryMessageStore.remove(s)}}add(e){this.inMemoryMessageStore.add(e),this.size()>=this.maxBufferSize&&this.writeToKDB()}getByMsgSequence(){throw new Error("Not implemented, please use getByMsgSequenceAsync()")}async getByMsgSequenceAsync(e){let r=`select message from ${this.tableName} where msgSequence=${e}i`,s=await this.sendAsync(r);if(s?.length>0)return this.parser.parse(s[0].message)[0]}update(e,r){let s=`${this.tableName}:${this.tableName} upsert (${e}i; "${r.encode("|")}")`;return this.send(s),!0}remove(e){this.inMemoryMessageStore.remove(e);let r=`delete from ${this.tableName} where msgSequence=${e}`;this.send(r)}exists(e){return!!this.inMemoryMessageStore.exists(e)}getAll(){return this.inMemoryMessageStore.getAll()}async getAllAsync(){let e=this.inMemoryMessageStore.getAll();if(e.length>0)return e;let r=`select from ${this.tableName}`,s=await this.sendAsync(r),n=[];for(let i of s){let o=this.parser.parse(i.message)[0];n.push(o)}return Promise.resolve(n)}size(){return this.inMemoryMessageStore.size()}resize(e){this.maxBufferSize=e}clear(){this.inMemoryMessageStore.clear(),this.send(`delete from ${this.tableName}`)}getCapacity(){return this.maxBufferSize}stopWriteInterval(){clearInterval(this.writeIntervalId)}setNextMsgSeqNum(e){if(e<=0)throw new Error("Message sequence number must be positive.");return this.nextMsgSeqNum=e,this.nextMsgSeqNum}getNextMsgSeqNum(){return this.nextMsgSeqNum}};export{dr as MessageStoreKDB};
7
+ `+r)}function X(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,X),t.emit("wsClientError",o,r,e)}else ge(r,s,i,n)}});var lt=class{nextMsgSeqNum=1;buffer=[];maxBufferSize;constructor(t=2500){this.maxBufferSize=t}add(t){this.buffer.length===this.maxBufferSize&&this.buffer.pop(),this.buffer.unshift(t)}getByMsgSequence(t){let e=this.buffer.findIndex(r=>r.messageSequence===t);if(e>-1)return this.buffer[e]}remove(t){let e=this.buffer.findIndex(r=>r.messageSequence===t);e>-1&&this.buffer.splice(e,1)}update(t,e){let r=this.buffer.findIndex(s=>s.messageSequence===t);return r>-1?(this.buffer[r]=e,!0):!1}getAll(){return this.buffer}exists(t){return this.buffer.some(e=>e.messageSequence===t)}size(){return this.buffer.length}resize(t){this.maxBufferSize=t,this.buffer.length>this.maxBufferSize&&(this.buffer=this.buffer.slice(0,this.maxBufferSize))}clear(){this.buffer=[]}getCapacity(){return this.maxBufferSize}setNextMsgSeqNum(t){if(t<=0)throw new Error("Message sequence number must be positive.");return this.nextMsgSeqNum=t,this.nextMsgSeqNum}getNextMsgSeqNum(){return this.nextMsgSeqNum}},ft=0,Ir=(t,e)=>{let r=Date.now()%1e3;ft++;let s=r^ft;s^=s<<21,s^=s>>>35,s^=s<<4;let i=Math.abs(s%(e-t+1));return t+i},Ue=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Ir(0,15);return(t==="x"?e:e&3|8).toString(16)});var Xs=le(ir(),1),Ys=le(Ke(),1),Zs=le(Ze(),1),ye=le(Be(),1),Qs=le(dr(),1);function Pe(t){for(var e=[],r=0;r<t.length;r++){var s=t.charCodeAt(r);s<128?e.push(s):s<2048?e.push(192|s>>6,128|s&63):s<55296||s>=57344?e.push(224|s>>12,128|s>>6&63,128|s&63):(s=65536+((s&1023)<<10|t.charCodeAt(++r)&1023),e.push(240|s>>18,128|s>>12&63,128|s>>6&63,128|s&63))}return e}function _r(t){for(var e="",r,s,i,n=0;n<t.length;n++)switch((r=t[n])>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=String.fromCharCode(r);break;case 12:case 13:s=t[++n],e+=String.fromCharCode((r&31)<<6|s&63);break;case 14:s=t[++n],i=t[++n],e+=String.fromCharCode((r&15)<<12|(s&63)<<6|(i&63)<<0);break}return e}function Js(t){if(t=new Uint8Array(t),t.length<13)return t;function e(_){return new Uint32Array(_)[0]}for(var r=0,s=0,i=0,n=8,o=n,a=0,h=12,f=e(t.buffer.slice(8,12)),u=new Uint8Array(f),c=new Int32Array(256);n<u.length;){if(a==0&&(i=255&t[h++],a=1),(i&a)!=0)for(s=c[255&t[h++]],u[n++]=u[s++],u[n++]=u[s++],r=255&t[h++],m=0;m<r;m++)u[n+m]=u[s+m];else u[n++]=t[h++];for(;o<n-1;)c[255&u[o]^255&u[o+1]]=o++;(i&a)!=0&&(n+=r,o=n),a*=2,a==256&&(a=0)}return u}function ei(t){return new Uint8Array(t)[2]==1}function De(t){var e=t[0],r=8,s=Math.pow(2,32),i=new Uint8Array(t),n=new Int8Array(t),o=new Uint8Array(8),a=new Int16Array(o.buffer),h=new Int32Array(o.buffer),f=new Float32Array(o.buffer),u=new Float64Array(o.buffer);let c=864e5,_=c*10957;function g(){return d()==1}function x(){return String.fromCharCode(d())}function d(){return n[r++]}function l(E){for(var p=0;p<E;p++)o[p]=i[r++]}function y(){return i[r++]}function T(){for(var E="0123456789abcdef",p="",N=0;N<16;N++){var O=y();p+=N==4||N==6||N==8||N==10?"-":"",p+=E[O>>4],p+=E[O&15]}return p}function S(){l(2);var E=a[0];return E==-32768?NaN:E==-32767?-1/0:E==32767?1/0:E}function v(){l(4);var E=h[0];return E==-2147483648?NaN:E==-2147483647?-1/0:E==2147483647?1/0:E}function D(){l(8);var E=h[1],p=h[0];return E*s+(p>=0?p:s+p)}function Se(){return l(4),f[0]}function Y(){return l(8),u[0]}function oe(){for(var E=r,p,N=[];(p=y())!==0;)N.push(p);return _r(N)}function ae(){return j(D()/1e6)}function Ae(){return new Date(Date.UTC(2e3,v(),1))}function j(E){return new Date(_+E)}function pr(){return j(v()*c)}function gr(){return j(Y()*c)}function yr(){return j(D()/1e6)}function Sr(){return j(v()*1e3)}function xr(){return j(v()*6e4)}function br(){return j(v())}function A(){var E=[A,g,T,null,y,S,v,D,Se,Y,x,oe,ae,Ae,pr,gr,yr,xr,Sr,br],p=0,N,O=d();if(O<0&&O>-20)return E[-O]();if(O>99){if(O==100)return oe(),A();if(O<104)return d()===0&&O==101?null:"func";if(O>105)A();else for(N=v();p<N;p++)A();return"func"}if(O==99){var vr=i[r]==98,Z=A(),Q=A(),U;if(vr)U=new Array(2),U[0]=Z,U[1]=Q;else{U={};for(var p=0;p<Z.length;p++)U[Z[p]]=Q[p]}return U}if(r++,O==98){d();for(var Z=A(),Q=A(),fe=new Array(Q[0].length),xe=0;xe<Q[0].length;xe++){for(var U={},p=0;p<Z.length;p++)U[Z[p]]=Q[p][xe];fe[xe]=U}return fe}if(N=v(),O==10){var ot=[];for(N+=r;r<N;ot.push(y()));return _r(ot)}var fe=new Array(N),Er=E[O];for(p=0;p<N;p++)fe[p]=Er();return fe}return ei(t)?De(Js(i)):A()}function nt(t){var e=1,r=0,s,i=new Uint8Array(8),n=new Int32Array(i.buffer),o=new Float64Array(i.buffer);function a(l){var y=typeof l;return y!=="object"&&y!=="function"?y:l?l instanceof Array?"array":l instanceof Date?"date":"object":"null"}function h(l){return Object.keys(l)}function f(l){var y=[];for(var T in l)y.push(l[T]);return y}function u(l,y){var T=y||a(l);switch(T){case"null":return 2;case"object":return 1+u(h(l),"symbols")+u(f(l),null);case"boolean":return 2;case"number":return 9;case"array":{for(var S=6,v=0;v<l.length;v++)S+=u(l[v],null);return S}case"symbols":{for(var S=6,v=0;v<l.length;v++)S+=u(l[v],"symbol");return S}case"string":return Pe(l).length+(l[0]=="`"?1:6);case"date":return 9;case"symbol":return 2+Pe(l).length}throw"bad type "+T}function c(l){s[r++]=l}function _(l){for(var y=0;y<l;y++)s[r++]=i[y]}function g(l,y){var T=y||a(l);switch(T){case"null":c(101),c(0);break;case"boolean":c(-1),c(l?1:0);break;case"number":c(-9),o[0]=l,_(8);break;case"date":c(-15),o[0]=(l.getTime()-new Date(l).getTimezoneOffset()*6e4)/864e5-10957,_(8);break;case"symbol":{c(-11),l=Pe(l);for(var S=0;S<l.length;S++)c(l[S]);c(0)}break;case"string":if(l[0]=="`")g(l.substr(1),"symbol");else{c(10),c(0),l=Pe(l),n[0]=l.length,_(4);for(var S=0;S<l.length;S++)c(l[S])}break;case"object":c(99),g(h(l),"symbols"),g(f(l),null);break;case"array":{c(0),c(0),n[0]=l.length,_(4);for(var S=0;S<l.length;S++)g(l[S],null)}break;case"symbols":{c(0),c(0),n[0]=l.length,_(4);for(var S=0;S<l.length;S++)g(l[S],"symbol")}break}}var x=u(t,null),d=new ArrayBuffer(8+x);return s=new Uint8Array(d),c(1),c(0),c(0),c(0),n[0]=s.length,_(4),g(t,null),d}var mr=class{nextMsgSeqNum=1;inMemoryMessageStore=new lt(1048576);host;port;tableName="FIXParser";ws;parser;logger;writeInterval=5e3;writeIntervalId;maxBufferSize;constructor({host:e,port:r,tableName:s,parser:i,logger:n,onReady:o,maxBufferSize:a=2500,writeInterval:h=5e3}){this.host=e,this.port=r,this.maxBufferSize=a,this.writeInterval=h,this.parser=i,s&&(this.tableName=s),n&&(this.logger=n),this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- Connecting to ws://${this.host}:${this.port}...`}),this.ws=new ye.default(`ws://${this.host}:${this.port}`),this.ws.binaryType="arraybuffer",this.ws.onopen=async()=>{this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- Successfully opened connection to ws://${this.host}:${this.port}...`}),(await this.sendAsync("tables[]"))?.includes(this.tableName)?(this.logger?.log({level:"info",message:`FIXParser (MessageStoreKDB): -- ${this.tableName} table found.`}),o()):(this.logger?.log({level:"info",message:"FIXParser (MessageStoreKDB): -- Setting up FIXParser table..."}),this.send(`meta ${this.tableName}:([] msgSequence:\`int$(); message:())`),this.send(`\`msgSequence xkey \`${this.tableName}`),o())},this.ws.onclose=()=>{this.logger?.log({level:"info",message:"FIXParser (MessageStoreKDB): -- Closed"}),this.stopWriteInterval()},this.ws.onerror=f=>{this.logger?.log({level:"error",message:"FIXParser (MessageStoreKDB): -- Error:",error:f}),this.stopWriteInterval()},this.writeIntervalId=setInterval(()=>this.writeToKDB(),this.writeInterval)}send(e){let r=Ue().replace(/-/g,""),s=`enlist \`${r}, ${e}`;this.ws.readyState!==ye.default.OPEN&&this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- WebSocket not ready! Ignoring command ${e}...`}),this.ws.onmessage=i=>{try{let n=De(i.data)}catch(n){this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- Error parsing response to message id ${r}: ${n}`})}},this.ws.send(nt(s))}sendAsync(e){let r=Ue().replace(/-/g,""),s=`enlist \`${r}, ${e}`;return this.ws.readyState!==ye.default.OPEN?(this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- WebSocket not ready! Ignoring command ${e}...`}),Promise.resolve(void 0)):new Promise((i,n)=>{this.ws.onmessage=o=>{try{let a=De(o.data),h=a[0][0],f=a[0].slice(1);h===r&&i(f)}catch(a){this.logger?.log({level:"warn",message:`FIXParser (MessageStoreKDB): -- Error parsing response to message id ${r}: ${a}`}),n(new Error(`Error parsing response to message id ${r}`))}},this.ws.send(nt(s))})}async writeToKDB(){let e=this.inMemoryMessageStore.getAll(),r=[];if(e.length>0){for(let s of e){r.push(s.messageSequence);let i=s.encode("|"),n=await this.sendAsync(`\`${this.tableName} upsert (${s.messageSequence}i;"${i}")`)}for(let s of r)this.inMemoryMessageStore.remove(s)}}add(e){this.inMemoryMessageStore.add(e),this.size()>=this.maxBufferSize&&this.writeToKDB()}getByMsgSequence(){throw new Error("Not implemented, please use getByMsgSequenceAsync()")}async getByMsgSequenceAsync(e){let r=`select message from ${this.tableName} where msgSequence=${e}i`,s=await this.sendAsync(r);if(s?.length>0)return this.parser.parse(s[0].message)[0]}update(e,r){let s=`${this.tableName}:${this.tableName} upsert (${e}i; "${r.encode("|")}")`;return this.send(s),!0}remove(e){this.inMemoryMessageStore.remove(e);let r=`delete from ${this.tableName} where msgSequence=${e}`;this.send(r)}exists(e){return!!this.inMemoryMessageStore.exists(e)}getAll(){return this.inMemoryMessageStore.getAll()}async getAllAsync(){let e=this.inMemoryMessageStore.getAll();if(e.length>0)return e;let r=`select from ${this.tableName}`,s=await this.sendAsync(r),i=[];for(let n of s){let o=this.parser.parse(n.message)[0];i.push(o)}return Promise.resolve(i)}size(){return this.inMemoryMessageStore.size()}resize(e){this.maxBufferSize=e}clear(){this.inMemoryMessageStore.clear(),this.send(`delete from ${this.tableName}`)}getCapacity(){return this.maxBufferSize}stopWriteInterval(){clearInterval(this.writeIntervalId)}setNextMsgSeqNum(e){if(e<=0)throw new Error("Message sequence number must be positive.");return this.nextMsgSeqNum=e,this.nextMsgSeqNum}getNextMsgSeqNum(){return this.nextMsgSeqNum}};export{mr as MessageStoreKDB};
8
8
  //# sourceMappingURL=MessageStoreKDB.mjs.map