qumra-cli 1.1.34 → 1.1.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cli.cjs CHANGED
@@ -374,7 +374,7 @@ const t$=y,n$=$H,r$=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),i$=e=>"nu
374
374
  * Copyright(c) 2015 Douglas Christopher Wilson
375
375
  * MIT Licensed
376
376
  */
377
- parse:function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},r=t||{},i=e.split(OV),s=r.decode||CV,o=0;o<i.length;o++){var a=i[o],c=a.indexOf("=");if(!(c<0)){var l=a.substr(0,c).trim(),u=a.substr(++c,a.length).trim();'"'==u[0]&&(u=u.slice(1,-1)),null==n[l]&&(n[l]=IV(u,s))}}return n},serialize:function(e,t,n){var r=n||{},i=r.encode||RV;if("function"!=typeof i)throw new TypeError("option encode is invalid");if(!LV.test(e))throw new TypeError("argument name is invalid");var s=i(t);if(s&&!LV.test(s))throw new TypeError("argument val is invalid");var o=e+"="+s;if(null!=r.maxAge){var a=r.maxAge-0;if(isNaN(a)||!isFinite(a))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(a)}if(r.domain){if(!LV.test(r.domain))throw new TypeError("option domain is invalid");o+="; Domain="+r.domain}if(r.path){if(!LV.test(r.path))throw new TypeError("option path is invalid");o+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");o+="; Expires="+r.expires.toUTCString()}r.httpOnly&&(o+="; HttpOnly");r.secure&&(o+="; Secure");if(r.sameSite){switch("string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o}},CV=decodeURIComponent,RV=encodeURIComponent,OV=/; */,LV=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function IV(e,t){try{return t(e)}catch(t){return e}}var PV,NV,jV,FV,BV,MV,UV={exports:{}},qV={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}},HV={exports:{}},$V={exports:{}};function zV(){if(jV)return $V.exports;jV=1;const e="function"==typeof __webpack_require__?__non_webpack_require__:rF;return"function"==typeof e.addon?$V.exports=e.addon.bind(e):$V.exports=function(){if(NV)return PV;NV=1;var e=s,t=o,n=a,r="function"==typeof __webpack_require__?__non_webpack_require__:rF,i=process.config&&process.config.variables||{},c=!!process.env.PREBUILDS_ONLY,l=process.versions.modules,u=process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type?"electron":process.versions&&process.versions.nw?"node-webkit":"node",p=process.env.npm_config_arch||n.arch(),h=process.env.npm_config_platform||n.platform(),d=process.env.LIBC||(function(t){return"linux"===t&&e.existsSync("/etc/alpine-release")}(h)?"musl":"glibc"),f=process.env.ARM_VERSION||("arm64"===p?"8":i.arm_version)||"",m=(process.versions.uv||"").split(".")[0];function g(e){return r(g.resolve(e))}function y(t){try{return e.readdirSync(t)}catch(e){return[]}}function v(e,n){var r=y(e).filter(n);return r[0]&&t.join(e,r[0])}function b(e){return/\.node$/.test(e)}function _(e){var t=e.split("-");if(2===t.length){var n=t[0],r=t[1].split("+");if(n&&r.length&&r.every(Boolean))return{name:e,platform:n,architectures:r}}}function w(e,t){return function(n){return null!=n&&n.platform===e&&n.architectures.includes(t)}}function x(e,t){return e.architectures.length-t.architectures.length}function E(e){var t=e.split("."),n={file:e,specificity:0};if("node"===t.pop()){for(var r=0;r<t.length;r++){var i=t[r];if("node"===i||"electron"===i||"node-webkit"===i)n.runtime=i;else if("napi"===i)n.napi=!0;else if("abi"===i.slice(0,3))n.abi=i.slice(3);else if("uv"===i.slice(0,2))n.uv=i.slice(2);else if("armv"===i.slice(0,4))n.armv=i.slice(4);else{if("glibc"!==i&&"musl"!==i)continue;n.libc=i}n.specificity++}return n}}function S(e,t){return function(n){return!(null==n||n.runtime&&n.runtime!==e&&!function(e){return"node"===e.runtime&&e.napi}(n)||n.abi&&n.abi!==t&&!n.napi||n.uv&&n.uv!==m||n.armv&&n.armv!==f||n.libc&&n.libc!==d)}}function T(e){return function(t,n){return t.runtime!==n.runtime?t.runtime===e?-1:1:t.abi!==n.abi?t.abi?-1:1:t.specificity!==n.specificity?t.specificity>n.specificity?-1:1:0}}return PV=g,g.resolve=g.path=function(e){e=t.resolve(e||".");try{var n=r(t.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[n+"_PREBUILD"]&&(e=process.env[n+"_PREBUILD"])}catch(e){}if(!c){var i=v(t.join(e,"build/Release"),b);if(i)return i;var s=v(t.join(e,"build/Debug"),b);if(s)return s}var o=D(e);if(o)return o;var a=D(t.dirname(process.execPath));if(a)return a;var g=["platform="+h,"arch="+p,"runtime="+u,"abi="+l,"uv="+m,f?"armv="+f:"","libc="+d,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"","function"==typeof __webpack_require__?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+g+"\n loaded from: "+e+"\n");function D(e){var n=y(t.join(e,"prebuilds")).map(_).filter(w(h,p)).sort(x)[0];if(n){var r=t.join(e,"prebuilds",n.name),i=y(r).map(E).filter(S(u,l)).sort(T(u))[0];return i?t.join(r,i.file):void 0}}},g.parseTags=E,g.matchTags=S,g.compareTags=T,g.parseTuple=_,g.matchTuple=w,g.compareTuples=x,PV}(),$V.exports}const{EMPTY_BUFFER:WV}=qV,GV=Buffer[Symbol.species];function VV(e,t,n,r,i){for(let s=0;s<i;s++)n[r+s]=e[s]^t[3&s]}function KV(e,t){for(let n=0;n<e.length;n++)e[n]^=t[3&n]}if(UV.exports={concat:function(e,t){if(0===e.length)return WV;if(1===e.length)return e[0];const n=Buffer.allocUnsafe(t);let r=0;for(let t=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return r<t?new GV(n.buffer,n.byteOffset,r):n},mask:VV,toArrayBuffer:function(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)},toBuffer:function e(t){if(e.readOnly=!0,Buffer.isBuffer(t))return t;let n;return t instanceof ArrayBuffer?n=new GV(t):ArrayBuffer.isView(t)?n=new GV(t.buffer,t.byteOffset,t.byteLength):(n=Buffer.from(t),e.readOnly=!1),n},unmask:KV},!process.env.WS_NO_BUFFER_UTIL)try{const e=function(){if(MV)return HV.exports;MV=1;try{HV.exports=zV()(__dirname)}catch(e){HV.exports=(BV||(BV=1,FV={mask:(e,t,n,r,i)=>{for(var s=0;s<i;s++)n[r+s]=e[s]^t[3&s]},unmask:(e,t)=>{const n=e.length;for(var r=0;r<n;r++)e[r]^=t[3&r]}}),FV)}return HV.exports}();UV.exports.mask=function(t,n,r,i,s){s<48?VV(t,n,r,i,s):e.mask(t,n,r,i,s)},UV.exports.unmask=function(t,n){t.length<32?KV(t,n):e.unmask(t,n)}}catch(e){}var YV=UV.exports;const ZV=Symbol("kDone"),QV=Symbol("kRun");const XV=T,JV=YV,eK=class{constructor(e){this[ZV]=()=>{this.pending--,this[QV]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[QV]()}[QV](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[ZV])}}},{kStatusCode:tK}=qV,nK=Buffer[Symbol.species],rK=Buffer.from([0,0,255,255]),iK=Symbol("permessage-deflate"),sK=Symbol("total-length"),oK=Symbol("callback"),aK=Symbol("buffers"),cK=Symbol("error");let lK;var uK=class{constructor(e,t,n){if(this._maxPayload=0|n,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!lK){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;lK=new eK(e)}}static get extensionName(){return"permessage-deflate"}offer(){const 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:null==this._options.clientMaxWindowBits&&(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){const e=this._deflate[oK];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,n=e.find((e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits)));if(!n)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(n.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?n.client_max_window_bits=t.clientMaxWindowBits:!0!==n.client_max_window_bits&&!1!==t.clientMaxWindowBits||delete n.client_max_window_bits,n}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((t=>{let n=e[t];if(n.length>1)throw new Error(`Parameter "${t}" must have only a single value`);if(n=n[0],"client_max_window_bits"===t){if(!0!==n){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}else if("server_max_window_bits"===t){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else{if("client_no_context_takeover"!==t&&"server_no_context_takeover"!==t)throw new Error(`Unknown parameter "${t}"`);if(!0!==n)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}e[t]=n}))})),e}decompress(e,t,n){lK.add((r=>{this._decompress(e,t,((e,t)=>{r(),n(e,t)}))}))}compress(e,t,n){lK.add((r=>{this._compress(e,t,((e,t)=>{r(),n(e,t)}))}))}_decompress(e,t,n){const r=this._isServer?"client":"server";if(!this._inflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?XV.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=XV.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[iK]=this,this._inflate[sK]=0,this._inflate[aK]=[],this._inflate.on("error",dK),this._inflate.on("data",hK)}this._inflate[oK]=n,this._inflate.write(e),t&&this._inflate.write(rK),this._inflate.flush((()=>{const e=this._inflate[cK];if(e)return this._inflate.close(),this._inflate=null,void n(e);const i=JV.concat(this._inflate[aK],this._inflate[sK]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[sK]=0,this._inflate[aK]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),n(null,i)}))}_compress(e,t,n){const r=this._isServer?"server":"client";if(!this._deflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?XV.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=XV.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[sK]=0,this._deflate[aK]=[],this._deflate.on("data",pK)}this._deflate[oK]=n,this._deflate.write(e),this._deflate.flush(XV.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=JV.concat(this._deflate[aK],this._deflate[sK]);t&&(e=new nK(e.buffer,e.byteOffset,e.length-4)),this._deflate[oK]=null,this._deflate[sK]=0,this._deflate[aK]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),n(null,e)}))}};function pK(e){this[aK].push(e),this[sK]+=e.length}function hK(e){this[sK]+=e.length,this[iK]._maxPayload<1||this[sK]<=this[iK]._maxPayload?this[aK].push(e):(this[cK]=new RangeError("Max payload size exceeded"),this[cK].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[cK][tK]=1009,this.removeListener("data",hK),this.reset())}function dK(e){this[iK]._inflate=null,e[tK]=1007,this[oK](e)}var fK,mK,gK,yK={exports:{}},vK={exports:{}};const{isUtf8:bK}=v;function _K(e){const t=e.length;let n=0;for(;n<t;)if(128&e[n])if(192==(224&e[n])){if(n+1===t||128!=(192&e[n+1])||192==(254&e[n]))return!1;n+=2}else if(224==(240&e[n])){if(n+2>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}else n++;return!0}if(yK.exports={isValidStatusCode:function(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},isValidUTF8:_K,tokenChars:[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]},bK)yK.exports.isValidUTF8=function(e){return e.length<24?_K(e):bK(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{const e=function(){if(gK)return vK.exports;gK=1;try{vK.exports=zV()(__dirname)}catch(e){vK.exports=(mK||(mK=1,fK=function(e){const t=e.length;let n=0;for(;n<t;)if(128&e[n])if(192==(224&e[n])){if(n+1===t||128!=(192&e[n+1])||192==(254&e[n]))return!1;n+=2}else if(224==(240&e[n])){if(n+2>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}else n++;return!0}),fK)}return vK.exports}();yK.exports.isValidUTF8=function(t){return t.length<32?_K(t):e(t)}}catch(e){}var wK=yK.exports;const{Writable:xK}=h,EK=uK,{BINARY_TYPES:SK,EMPTY_BUFFER:TK,kStatusCode:DK,kWebSocket:kK}=qV,{concat:AK,toArrayBuffer:CK,unmask:RK}=YV,{isValidStatusCode:OK,isValidUTF8:LK}=wK,IK=Buffer[Symbol.species];var PK=class extends xK{constructor(e={}){super(),this._allowSynchronousEvents=void 0===e.allowSynchronousEvents||e.allowSynchronousEvents,this._binaryType=e.binaryType||SK[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=0|e.maxPayload,this._skipUTF8Validation=!!e.skipUTF8Validation,this[kK]=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=0}_write(e,t,n){if(8===this._opcode&&0==this._state)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){const t=this._buffers[0];return this._buffers[0]=new IK(t.buffer,t.byteOffset+e,t.length-e),new IK(t.buffer,t.byteOffset,e)}const t=Buffer.allocUnsafe(e);do{const n=this._buffers[0],r=t.length-e;e>=n.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),r),this._buffers[0]=new IK(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do{switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:return void(this._loop=!1)}}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2)return void(this._loop=!1);const t=this.consume(2);if(48&t[0]){return void e(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"))}const n=!(64&~t[0]);if(!n||this._extensions[EK.extensionName]){if(this._fin=!(128&~t[0]),this._opcode=15&t[0],this._payloadLength=127&t[1],0===this._opcode){if(n){return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}if(!this._fragmented){return void e(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"))}this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented){return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"))}this._compressed=n}else{if(!(this._opcode>7&&this._opcode<11)){return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"))}if(!this._fin){return void e(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"))}if(n){return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength){return void e(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=!(128&~t[1]),this._isServer){if(!this._masked){return void e(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}}else if(this._masked){return void e(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"))}126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(e)}else{e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}}getPayloadLength16(e){this._bufferedBytes<2?this._loop=!1:(this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e))}getPayloadLength64(e){if(this._bufferedBytes<8)return void(this._loop=!1);const t=this.consume(8),n=t.readUInt32BE(0);if(n>Math.pow(2,21)-1){e(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH"))}else this._payloadLength=n*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){e(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"))}else this._masked?this._state=3:this._state=4}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=4)}getData(e){let t=TK;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength)return void(this._loop=!1);t=this.consume(this._payloadLength),this._masked&&this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3]&&RK(t,this._mask)}if(this._opcode>7)this.controlMessage(t,e);else{if(this._compressed)return this._state=5,void this.decompress(t,e);t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}}decompress(e,t){this._extensions[EK.extensionName].decompress(e,this._fin,((e,n)=>{if(e)return t(e);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){const e=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");return void t(e)}this._fragments.push(n)}this.dataMessage(t),0===this._state&&this.startLoop(t)}))}dataMessage(e){if(!this._fin)return void(this._state=0);const t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let r;r="nodebuffer"===this._binaryType?AK(n,t):"arraybuffer"===this._binaryType?CK(AK(n,t)):n,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=0):(this._state=6,setImmediate((()=>{this.emit("message",r,!0),this._state=0,this.startLoop(e)})))}else{const r=AK(n,t);if(!this._skipUTF8Validation&&!LK(r)){const t=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void e(t)}5===this._state||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=0):(this._state=6,setImmediate((()=>{this.emit("message",r,!1),this._state=0,this.startLoop(e)})))}}controlMessage(e,t){if(8!==this._opcode)this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",e),this._state=0):(this._state=6,setImmediate((()=>{this.emit(9===this._opcode?"ping":"pong",e),this._state=0,this.startLoop(t)})));else{if(0===e.length)this._loop=!1,this.emit("conclude",1005,TK),this.end();else{const n=e.readUInt16BE(0);if(!OK(n)){const e=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");return void t(e)}const r=new IK(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!LK(r)){const e=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void t(e)}this._loop=!1,this.emit("conclude",n,r),this.end()}this._state=0}}createError(e,t,n,r,i){this._loop=!1,this._errored=!0;const s=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(s,this.createError),s.code=i,s[DK]=r,s}};const{randomFillSync:NK}=w,jK=uK,{EMPTY_BUFFER:FK}=qV,{isValidStatusCode:BK}=wK,{mask:MK,toBuffer:UK}=YV,qK=Symbol("kByteLength"),HK=Buffer.alloc(4),$K=8192;let zK,WK=$K;var GK=class e{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){let n,r,i=!1,s=2,o=!1;t.mask&&(n=t.maskBuffer||HK,t.generateMask?t.generateMask(n):(WK===$K&&(void 0===zK&&(zK=Buffer.alloc($K)),NK(zK,0,$K),WK=0),n[0]=zK[WK++],n[1]=zK[WK++],n[2]=zK[WK++],n[3]=zK[WK++]),o=!(n[0]|n[1]|n[2]|n[3]),s=6),"string"==typeof e?r=t.mask&&!o||void 0===t[qK]?(e=Buffer.from(e)).length:t[qK]:(r=e.length,i=t.mask&&t.readOnly&&!o);let a=r;r>=65536?(s+=8,a=127):r>125&&(s+=2,a=126);const c=Buffer.allocUnsafe(i?r+s:s);return c[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(c[0]|=64),c[1]=a,126===a?c.writeUInt16BE(r,2):127===a&&(c[2]=c[3]=0,c.writeUIntBE(r,4,6)),t.mask?(c[1]|=128,c[s-4]=n[0],c[s-3]=n[1],c[s-2]=n[2],c[s-1]=n[3],o?[c,e]:i?(MK(e,n,c,s,r),[c]):(MK(e,n,e,0,r),[c,e])):[c,e]}close(t,n,r,i){let s;if(void 0===t)s=FK;else{if("number"!=typeof t||!BK(t))throw new TypeError("First argument must be a valid error code number");if(void 0!==n&&n.length){const e=Buffer.byteLength(n);if(e>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+e),s.writeUInt16BE(t,0),"string"==typeof n?s.write(n,2):s.set(n,2)}else s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0)}const o={[qK]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._deflating?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if("string"==typeof t?(i=Buffer.byteLength(t),s=!1):(i=(t=UK(t)).length,s=UK.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");const o={[qK]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if("string"==typeof t?(i=Buffer.byteLength(t),s=!1):(i=(t=UK(t)).length,s=UK.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");const o={[qK]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){const i=this._extensions[jK.extensionName];let s,o,a=n.binary?2:1,c=n.compress;if("string"==typeof t?(s=Buffer.byteLength(t),o=!1):(s=(t=UK(t)).length,o=UK.readOnly),this._firstFragment?(this._firstFragment=!1,c&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(c=s>=i._threshold),this._compress=c):(c=!1,a=0),n.fin&&(this._firstFragment=!0),i){const e={[qK]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:o,rsv1:c};this._deflating?this.enqueue([this.dispatch,t,this._compress,e,r]):this.dispatch(t,this._compress,e,r)}else this.sendFrame(e.frame(t,{[qK]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:o,rsv1:!1}),r)}dispatch(t,n,r,i){if(!n)return void this.sendFrame(e.frame(t,r),i);const s=this._extensions[jK.extensionName];this._bufferedBytes+=r[qK],this._deflating=!0,s.compress(t,r.fin,((t,n)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof i&&i(e);for(let t=0;t<this._queue.length;t++){const n=this._queue[t],r=n[n.length-1];"function"==typeof r&&r(e)}}else this._bufferedBytes-=r[qK],this._deflating=!1,r.readOnly=!1,this.sendFrame(e.frame(n,r),i),this.dequeue()}))}dequeue(){for(;!this._deflating&&this._queue.length;){const e=this._queue.shift();this._bufferedBytes-=e[3][qK],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][qK],this._queue.push(e)}sendFrame(e,t){2===e.length?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};const{kForOnEventAttribute:VK,kListener:KK}=qV,YK=Symbol("kCode"),ZK=Symbol("kData"),QK=Symbol("kError"),XK=Symbol("kMessage"),JK=Symbol("kReason"),eY=Symbol("kTarget"),tY=Symbol("kType"),nY=Symbol("kWasClean");class rY{constructor(e){this[eY]=null,this[tY]=e}get target(){return this[eY]}get type(){return this[tY]}}Object.defineProperty(rY.prototype,"target",{enumerable:!0}),Object.defineProperty(rY.prototype,"type",{enumerable:!0});class iY extends rY{constructor(e,t={}){super(e),this[YK]=void 0===t.code?0:t.code,this[JK]=void 0===t.reason?"":t.reason,this[nY]=void 0!==t.wasClean&&t.wasClean}get code(){return this[YK]}get reason(){return this[JK]}get wasClean(){return this[nY]}}Object.defineProperty(iY.prototype,"code",{enumerable:!0}),Object.defineProperty(iY.prototype,"reason",{enumerable:!0}),Object.defineProperty(iY.prototype,"wasClean",{enumerable:!0});class sY extends rY{constructor(e,t={}){super(e),this[QK]=void 0===t.error?null:t.error,this[XK]=void 0===t.message?"":t.message}get error(){return this[QK]}get message(){return this[XK]}}Object.defineProperty(sY.prototype,"error",{enumerable:!0}),Object.defineProperty(sY.prototype,"message",{enumerable:!0});class oY extends rY{constructor(e,t={}){super(e),this[ZK]=void 0===t.data?null:t.data}get data(){return this[ZK]}}Object.defineProperty(oY.prototype,"data",{enumerable:!0});const aY={addEventListener(e,t,n={}){for(const r of this.listeners(e))if(!n[VK]&&r[KK]===t&&!r[VK])return;let r;if("message"===e)r=function(e,n){const r=new oY("message",{data:n?e:e.toString()});r[eY]=this,lY(t,this,r)};else if("close"===e)r=function(e,n){const r=new iY("close",{code:e,reason:n.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[eY]=this,lY(t,this,r)};else if("error"===e)r=function(e){const n=new sY("error",{error:e,message:e.message});n[eY]=this,lY(t,this,n)};else{if("open"!==e)return;r=function(){const e=new rY("open");e[eY]=this,lY(t,this,e)}}r[VK]=!!n[VK],r[KK]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(const n of this.listeners(e))if(n[KK]===t&&!n[VK]){this.removeListener(e,n);break}}};var cY={CloseEvent:iY,ErrorEvent:sY,Event:rY,EventTarget:aY,MessageEvent:oY};function lY(e,t,n){"object"==typeof e&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}const{tokenChars:uY}=wK;function pY(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}var hY={format:function(e){return Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>[t].concat(Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>!0===e?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")},parse:function(e){const t=Object.create(null);let n,r,i=Object.create(null),s=!1,o=!1,a=!1,c=-1,l=-1,u=-1,p=0;for(;p<e.length;p++)if(l=e.charCodeAt(p),void 0===n)if(-1===u&&1===uY[l])-1===c&&(c=p);else if(0===p||32!==l&&9!==l){if(59!==l&&44!==l)throw new SyntaxError(`Unexpected character at index ${p}`);{if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p);const r=e.slice(c,u);44===l?(pY(t,r,i),i=Object.create(null)):n=r,c=u=-1}}else-1===u&&-1!==c&&(u=p);else if(void 0===r)if(-1===u&&1===uY[l])-1===c&&(c=p);else if(32===l||9===l)-1===u&&-1!==c&&(u=p);else if(59===l||44===l){if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p),pY(i,e.slice(c,u),!0),44===l&&(pY(t,n,i),i=Object.create(null),n=void 0),c=u=-1}else{if(61!==l||-1===c||-1!==u)throw new SyntaxError(`Unexpected character at index ${p}`);r=e.slice(c,p),c=u=-1}else if(o){if(1!==uY[l])throw new SyntaxError(`Unexpected character at index ${p}`);-1===c?c=p:s||(s=!0),o=!1}else if(a)if(1===uY[l])-1===c&&(c=p);else if(34===l&&-1!==c)a=!1,u=p;else{if(92!==l)throw new SyntaxError(`Unexpected character at index ${p}`);o=!0}else if(34===l&&61===e.charCodeAt(p-1))a=!0;else if(-1===u&&1===uY[l])-1===c&&(c=p);else if(-1===c||32!==l&&9!==l){if(59!==l&&44!==l)throw new SyntaxError(`Unexpected character at index ${p}`);{if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p);let o=e.slice(c,u);s&&(o=o.replace(/\\/g,""),s=!1),pY(i,r,o),44===l&&(pY(t,n,i),i=Object.create(null),n=void 0),r=void 0,c=u=-1}}else-1===u&&(u=p);if(-1===c||a||32===l||9===l)throw new SyntaxError("Unexpected end of input");-1===u&&(u=p);const h=e.slice(c,u);return void 0===n?pY(t,h,i):(void 0===r?pY(i,h,!0):pY(i,r,s?h.replace(/\\/g,""):h),pY(t,n,i)),t}};const dY=p,fY=E,mY=x,gY=O,yY=N,{randomBytes:vY,createHash:bY}=w,{URL:_Y}=S,wY=uK,xY=PK,EY=GK,{BINARY_TYPES:SY,EMPTY_BUFFER:TY,GUID:DY,kForOnEventAttribute:kY,kListener:AY,kStatusCode:CY,kWebSocket:RY,NOOP:OY}=qV,{EventTarget:{addEventListener:LY,removeEventListener:IY}}=cY,{format:PY,parse:NY}=hY,{toBuffer:jY}=YV,FY=Symbol("kAborted"),BY=[8,13],MY=["CONNECTING","OPEN","CLOSING","CLOSED"],UY=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;let qY=class e extends dY{constructor(t,n,r){super(),this._binaryType=SY[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=TY,this._closeTimer=null,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==t?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===n?n=[]:Array.isArray(n)||("object"==typeof n&&null!==n?(r=n,n=[]):n=[n]),$Y(this,t,n,r)):(this._autoPong=r.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){SY.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(t,n,r){const i=new xY({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation});this._sender=new EY(t,this._extensions,r.generateMask),this._receiver=i,this._socket=t,i[RY]=this,t[RY]=this,i.on("conclude",YY),i.on("drain",ZY),i.on("error",QY),i.on("message",JY),i.on("ping",eZ),i.on("pong",tZ),t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",rZ),t.on("data",iZ),t.on("end",sZ),t.on("error",oZ),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=e.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[wY.extensionName]&&this._extensions[wY.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED)if(this.readyState!==e.CONNECTING)this.readyState!==e.CLOSING?(this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();else{const e="WebSocket was closed before the connection was established";VY(this,this._req,e)}}pause(){this.readyState!==e.CONNECTING&&this.readyState!==e.CLOSED&&(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(r=t,t=n=void 0):"function"==typeof n&&(r=n,n=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===e.OPEN?(void 0===n&&(n=!this._isServer),this._sender.ping(t||TY,n,r)):KY(this,t,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(r=t,t=n=void 0):"function"==typeof n&&(r=n,n=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===e.OPEN?(void 0===n&&(n=!this._isServer),this._sender.pong(t||TY,n,r)):KY(this,t,r)}resume(){this.readyState!==e.CONNECTING&&this.readyState!==e.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof n&&(r=n,n={}),"number"==typeof t&&(t=t.toString()),this.readyState!==e.OPEN)return void KY(this,t,r);const i={binary:"string"!=typeof t,mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[wY.extensionName]||(i.compress=!1),this._sender.send(t||TY,i,r)}terminate(){if(this.readyState!==e.CLOSED)if(this.readyState!==e.CONNECTING)this._socket&&(this._readyState=e.CLOSING,this._socket.destroy());else{const e="WebSocket was closed before the connection was established";VY(this,this._req,e)}}};Object.defineProperty(qY,"CONNECTING",{enumerable:!0,value:MY.indexOf("CONNECTING")}),Object.defineProperty(qY.prototype,"CONNECTING",{enumerable:!0,value:MY.indexOf("CONNECTING")}),Object.defineProperty(qY,"OPEN",{enumerable:!0,value:MY.indexOf("OPEN")}),Object.defineProperty(qY.prototype,"OPEN",{enumerable:!0,value:MY.indexOf("OPEN")}),Object.defineProperty(qY,"CLOSING",{enumerable:!0,value:MY.indexOf("CLOSING")}),Object.defineProperty(qY.prototype,"CLOSING",{enumerable:!0,value:MY.indexOf("CLOSING")}),Object.defineProperty(qY,"CLOSED",{enumerable:!0,value:MY.indexOf("CLOSED")}),Object.defineProperty(qY.prototype,"CLOSED",{enumerable:!0,value:MY.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((e=>{Object.defineProperty(qY.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(qY.prototype,`on${e}`,{enumerable:!0,get(){for(const t of this.listeners(e))if(t[kY])return t[AY];return null},set(t){for(const t of this.listeners(e))if(t[kY]){this.removeListener(e,t);break}"function"==typeof t&&this.addEventListener(e,t,{[kY]:!0})}})})),qY.prototype.addEventListener=LY,qY.prototype.removeEventListener=IY;var HY=qY;function $Y(e,t,n,r){const i={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:BY[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,!BY.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${BY.join(", ")})`);let s;if(t instanceof _Y)s=t;else try{s=new _Y(t)}catch(e){throw new SyntaxError(`Invalid URL: ${t}`)}"http:"===s.protocol?s.protocol="ws:":"https:"===s.protocol&&(s.protocol="wss:"),e._url=s.href;const o="wss:"===s.protocol,a="ws+unix:"===s.protocol;let c;if("ws:"===s.protocol||o||a?a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"):c='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"',c){const t=new SyntaxError(c);if(0===e._redirects)throw t;return void zY(e,t)}const l=o?443:80,u=vY(16).toString("base64"),p=o?fY.request:mY.request,h=new Set;let d,f;if(i.createConnection=i.createConnection||(o?GY:WY),i.defaultPort=i.defaultPort||l,i.port=s.port||l,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(d=new wY(!0!==i.perMessageDeflate?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=PY({[wY.extensionName]:d.offer()})),n.length){for(const e of n){if("string"!=typeof e||!UY.test(e)||h.has(e))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(e)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){const e=i.path.split(":");i.socketPath=e[0],i.path=e[1]}if(i.followRedirects){if(0===e._redirects){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;const t=r&&r.headers;if(r={...r,headers:{}},t)for(const[e,n]of Object.entries(t))r.headers[e.toLowerCase()]=n}else if(0===e.listenerCount("redirect")){const t=a?!!e._originalIpc&&i.socketPath===e._originalHostOrSocketPath:!e._originalIpc&&s.host===e._originalHostOrSocketPath;(!t||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,t||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),f=e._req=p(i),e._redirects&&e.emit("redirect",e.url,f)}else f=e._req=p(i);i.timeout&&f.on("timeout",(()=>{VY(e,f,"Opening handshake has timed out")})),f.on("error",(t=>{null===f||f[FY]||(f=e._req=null,zY(e,t))})),f.on("response",(s=>{const o=s.headers.location,a=s.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects)return void VY(e,f,"Maximum redirects exceeded");let s;f.abort();try{s=new _Y(o,t)}catch(t){const n=new SyntaxError(`Invalid URL: ${o}`);return void zY(e,n)}$Y(e,s,n,r)}else e.emit("unexpected-response",f,s)||VY(e,f,`Unexpected server response: ${s.statusCode}`)})),f.on("upgrade",((t,n,r)=>{if(e.emit("upgrade",t),e.readyState!==qY.CONNECTING)return;f=e._req=null;const s=t.headers.upgrade;if(void 0===s||"websocket"!==s.toLowerCase())return void VY(e,n,"Invalid Upgrade header");const o=bY("sha1").update(u+DY).digest("base64");if(t.headers["sec-websocket-accept"]!==o)return void VY(e,n,"Invalid Sec-WebSocket-Accept header");const a=t.headers["sec-websocket-protocol"];let c;if(void 0!==a?h.size?h.has(a)||(c="Server sent an invalid subprotocol"):c="Server sent a subprotocol but none was requested":h.size&&(c="Server sent no subprotocol"),c)return void VY(e,n,c);a&&(e._protocol=a);const l=t.headers["sec-websocket-extensions"];if(void 0!==l){if(!d){return void VY(e,n,"Server sent a Sec-WebSocket-Extensions header but no extension was requested")}let t;try{t=NY(l)}catch(t){return void VY(e,n,"Invalid Sec-WebSocket-Extensions header")}const r=Object.keys(t);if(1!==r.length||r[0]!==wY.extensionName){return void VY(e,n,"Server indicated an extension that was not requested")}try{d.accept(t[wY.extensionName])}catch(t){return void VY(e,n,"Invalid Sec-WebSocket-Extensions header")}e._extensions[wY.extensionName]=d}e.setSocket(n,r,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})})),i.finishRequest?i.finishRequest(f,e):f.end()}function zY(e,t){e._readyState=qY.CLOSING,e.emit("error",t),e.emitClose()}function WY(e){return e.path=e.socketPath,gY.connect(e)}function GY(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=gY.isIP(e.host)?"":e.host),yY.connect(e)}function VY(e,t,n){e._readyState=qY.CLOSING;const r=new Error(n);Error.captureStackTrace(r,VY),t.setHeader?(t[FY]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(zY,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function KY(e,t,n){if(t){const n=jY(t).length;e._socket?e._sender._bufferedBytes+=n:e._bufferedAmount+=n}if(n){const t=new Error(`WebSocket is not open: readyState ${e.readyState} (${MY[e.readyState]})`);process.nextTick(n,t)}}function YY(e,t){const n=this[RY];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,void 0!==n._socket[RY]&&(n._socket.removeListener("data",iZ),process.nextTick(nZ,n._socket),1005===e?n.close():n.close(e,t))}function ZY(){const e=this[RY];e.isPaused||e._socket.resume()}function QY(e){const t=this[RY];void 0!==t._socket[RY]&&(t._socket.removeListener("data",iZ),process.nextTick(nZ,t._socket),t.close(e[CY])),t.emit("error",e)}function XY(){this[RY].emitClose()}function JY(e,t){this[RY].emit("message",e,t)}function eZ(e){const t=this[RY];t._autoPong&&t.pong(e,!this._isServer,OY),t.emit("ping",e)}function tZ(e){this[RY].emit("pong",e)}function nZ(e){e.resume()}function rZ(){const e=this[RY];let t;this.removeListener("close",rZ),this.removeListener("data",iZ),this.removeListener("end",sZ),e._readyState=qY.CLOSING,this._readableState.endEmitted||e._closeFrameReceived||e._receiver._writableState.errorEmitted||null===(t=e._socket.read())||e._receiver.write(t),e._receiver.end(),this[RY]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",XY),e._receiver.on("finish",XY))}function iZ(e){this[RY]._receiver.write(e)||this.pause()}function sZ(){const e=this[RY];e._readyState=qY.CLOSING,e._receiver.end(),this.end()}function oZ(){const e=this[RY];this.removeListener("error",oZ),this.on("error",OY),e&&(e._readyState=qY.CLOSING,this.destroy())}var aZ=q(HY);const{Duplex:cZ}=h;function lZ(e){e.emit("close")}function uZ(){!this.destroyed&&this._writableState.finished&&this.destroy()}function pZ(e){this.removeListener("error",pZ),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}var hZ=function(e,t){let n=!0;const r=new cZ({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",(function(t,n){const i=!n&&r._readableState.objectMode?t.toString():t;r.push(i)||e.pause()})),e.once("error",(function(e){r.destroyed||(n=!1,r.destroy(e))})),e.once("close",(function(){r.destroyed||r.push(null)})),r._destroy=function(t,i){if(e.readyState===e.CLOSED)return i(t),void process.nextTick(lZ,r);let s=!1;e.once("error",(function(e){s=!0,i(e)})),e.once("close",(function(){s||i(t),process.nextTick(lZ,r)})),n&&e.terminate()},r._final=function(t){e.readyState!==e.CONNECTING?null!==e._socket&&(e._socket._writableState.finished?(t(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",(function(){t()})),e.close())):e.once("open",(function(){r._final(t)}))},r._read=function(){e.isPaused&&e.resume()},r._write=function(t,n,i){e.readyState!==e.CONNECTING?e.send(t,i):e.once("open",(function(){r._write(t,n,i)}))},r.on("end",uZ),r.on("error",pZ),r};const{tokenChars:dZ}=wK;var fZ={parse:function(e){const t=new Set;let n=-1,r=-1,i=0;for(;i<e.length;i++){const s=e.charCodeAt(i);if(-1===r&&1===dZ[s])-1===n&&(n=i);else if(0===i||32!==s&&9!==s){if(44!==s)throw new SyntaxError(`Unexpected character at index ${i}`);{if(-1===n)throw new SyntaxError(`Unexpected character at index ${i}`);-1===r&&(r=i);const s=e.slice(n,r);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);t.add(s),n=r=-1}}else-1===r&&-1!==n&&(r=i)}if(-1===n||-1!==r)throw new SyntaxError("Unexpected end of input");const s=e.slice(n,i);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);return t.add(s),t}};const mZ=p,gZ=x,{createHash:yZ}=w,vZ=hY,bZ=uK,_Z=fZ,wZ=HY,{GUID:xZ,kWebSocket:EZ}=qV,SZ=/^[+/0-9A-Za-z]{22}==$/;var TZ=class extends mZ{constructor(e,t){if(super(),null==(e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:wZ,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(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(null!=e.port?(this._server=gZ.createServer(((e,t)=>{const n=gZ.STATUS_CODES[426];t.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),t.end(n)})),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(const n of Object.keys(t))e.on(n,t[n]);return function(){for(const n of Object.keys(t))e.removeListener(n,t[n])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,n,r)=>{this.handleUpgrade(t,n,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}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(2===this._state)return e&&this.once("close",(()=>{e(new Error("The server is not running"))})),void process.nextTick(DZ,this);if(e&&this.once("close",e),1!==this._state)if(this._state=1,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(DZ,this);else{const e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close((()=>{DZ(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");if((-1!==t?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,r){t.on("error",kZ);const i=e.headers["sec-websocket-key"],s=e.headers.upgrade,o=+e.headers["sec-websocket-version"];if("GET"!==e.method){return void CZ(this,e,t,405,"Invalid HTTP method")}if(void 0===s||"websocket"!==s.toLowerCase()){return void CZ(this,e,t,400,"Invalid Upgrade header")}if(void 0===i||!SZ.test(i)){return void CZ(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header")}if(8!==o&&13!==o){return void CZ(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header")}if(!this.shouldHandle(e))return void AZ(t,400);const a=e.headers["sec-websocket-protocol"];let c=new Set;if(void 0!==a)try{c=_Z.parse(a)}catch(n){return void CZ(this,e,t,400,"Invalid Sec-WebSocket-Protocol header")}const l=e.headers["sec-websocket-extensions"],u={};if(this.options.perMessageDeflate&&void 0!==l){const n=new bZ(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const e=vZ.parse(l);e[bZ.extensionName]&&(n.accept(e[bZ.extensionName]),u[bZ.extensionName]=n)}catch(n){return void CZ(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header")}}if(this.options.verifyClient){const s={origin:e.headers[""+(8===o?"sec-websocket-origin":"origin")],secure:!(!e.socket.authorized&&!e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(s,((s,o,a,l)=>{if(!s)return AZ(t,o||401,a,l);this.completeUpgrade(u,i,c,e,t,n,r)}));if(!this.options.verifyClient(s))return AZ(t,401)}this.completeUpgrade(u,i,c,e,t,n,r)}completeUpgrade(e,t,n,r,i,s,o){if(!i.readable||!i.writable)return i.destroy();if(i[EZ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return AZ(i,503);const a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${yZ("sha1").update(t+xZ).digest("base64")}`],c=new this.options.WebSocket(null,void 0,this.options);if(n.size){const e=this.options.handleProtocols?this.options.handleProtocols(n,r):n.values().next().value;e&&(a.push(`Sec-WebSocket-Protocol: ${e}`),c._protocol=e)}if(e[bZ.extensionName]){const t=e[bZ.extensionName].params,n=vZ.format({[bZ.extensionName]:[t]});a.push(`Sec-WebSocket-Extensions: ${n}`),c._extensions=e}this.emit("headers",a,r),i.write(a.concat("\r\n").join("\r\n")),i.removeListener("error",kZ),c.setSocket(i,s,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(c),c.on("close",(()=>{this.clients.delete(c),this._shouldEmitClose&&!this.clients.size&&process.nextTick(DZ,this)}))),o(c,r)}};function DZ(e){e._state=2,e.emit("close")}function kZ(){this.destroy()}function AZ(e,t,n,r){n=n||gZ.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${gZ.STATUS_CODES[t]}\r\n`+Object.keys(r).map((e=>`${e}: ${r[e]}`)).join("\r\n")+"\r\n\r\n"+n)}function CZ(e,t,n,r,i){if(e.listenerCount("wsClientError")){const r=new Error(i);Error.captureStackTrace(r,CZ),e.emit("wsClientError",r,n,t)}else AZ(n,r,i)}const RZ=HY;RZ.createWebSocketStream=hZ,RZ.Server=TZ,RZ.Receiver=PK,RZ.Sender=GK,RZ.WebSocket=RZ,RZ.WebSocketServer=RZ.Server;var OZ=RZ,LZ={exports:{}},IZ=Object.getOwnPropertySymbols,PZ=Object.prototype.hasOwnProperty,NZ=Object.prototype.propertyIsEnumerable;var jZ=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,r,i=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var o in n=Object(arguments[s]))PZ.call(n,o)&&(i[o]=n[o]);if(IZ){r=IZ(n);for(var a=0;a<r.length;a++)NZ.call(n,r[a])&&(i[r[a]]=n[r[a]])}}return i};!function(){var e=jZ,t=wU,n={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function r(e){return"string"==typeof e||e instanceof String}function i(e,t){if(Array.isArray(t)){for(var n=0;n<t.length;++n)if(i(e,t[n]))return!0;return!1}return r(t)?e===t:t instanceof RegExp?t.test(e):!!t}function s(e,t){var n,s=t.headers.origin,o=[];return e.origin&&"*"!==e.origin?r(e.origin)?(o.push([{key:"Access-Control-Allow-Origin",value:e.origin}]),o.push([{key:"Vary",value:"Origin"}])):(n=i(s,e.origin),o.push([{key:"Access-Control-Allow-Origin",value:!!n&&s}]),o.push([{key:"Vary",value:"Origin"}])):o.push([{key:"Access-Control-Allow-Origin",value:"*"}]),o}function o(e){return!0===e.credentials?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function a(e){var t=e.exposedHeaders;return t?(t.join&&(t=t.join(",")),t&&t.length?{key:"Access-Control-Expose-Headers",value:t}:null):null}function c(e,n){for(var r=0,i=e.length;r<i;r++){var s=e[r];s&&(Array.isArray(s)?c(s,n):"Vary"===s.key&&s.value?t(n,s.value):s.value&&n.setHeader(s.key,s.value))}}LZ.exports=function(t){var r=null;return r="function"==typeof t?t:function(e,n){n(null,t)},function(t,i,l){r(t,(function(r,u){if(r)l(r);else{var p=e({},n,u),h=null;p.origin&&"function"==typeof p.origin?h=p.origin:p.origin&&(h=function(e,t){t(null,p.origin)}),h?h(t.headers.origin,(function(e,n){e||!n?l(e):(p.origin=n,function(e,t,n,r){var i=[];"OPTIONS"===(t.method&&t.method.toUpperCase&&t.method.toUpperCase())?(i.push(s(e,t)),i.push(o(e)),i.push(function(e){var t=e.methods;return t.join&&(t=e.methods.join(",")),{key:"Access-Control-Allow-Methods",value:t}}(e)),i.push(function(e,t){var n=e.allowedHeaders||e.headers,r=[];return n?n.join&&(n=n.join(",")):(n=t.headers["access-control-request-headers"],r.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),n&&n.length&&r.push([{key:"Access-Control-Allow-Headers",value:n}]),r}(e,t)),i.push(function(e){var t=("number"==typeof e.maxAge||e.maxAge)&&e.maxAge.toString();return t&&t.length?{key:"Access-Control-Max-Age",value:t}:null}(e)),i.push(a(e)),c(i,n),e.preflightContinue?r():(n.statusCode=e.optionsSuccessStatus,n.setHeader("Content-Length","0"),n.end())):(i.push(s(e,t)),i.push(o(e)),i.push(a(e)),c(i,n),r())}(p,t,i,l))})):l()}}))}}}();var FZ=LZ.exports;Object.defineProperty(bG,"__esModule",{value:!0}),bG.Server=bG.BaseServer=void 0;const BZ=L,MZ=S,UZ=wG,qZ=xG,HZ=p,$Z=EV,zZ=AV,WZ=OZ,GZ=dV,VZ=TG,KZ=(0,ah.default)("engine"),YZ=Symbol("responseHeaders");class ZZ extends HZ.EventEmitter{constructor(e={}){super(),this.middlewares=[],this.clients={},this.clientsCount=0,this.opts=Object.assign({wsEngine:WZ.Server,pingTimeout:2e4,pingInterval:25e3,upgradeTimeout:1e4,maxHttpBufferSize:1e6,transports:["polling","websocket"],allowUpgrades:!0,httpCompression:{threshold:1024},cors:!1,allowEIO3:!1},e),e.cookie&&(this.opts.cookie=Object.assign({name:"io",path:"/",httpOnly:!1!==e.cookie.path,sameSite:"lax"},e.cookie)),this.opts.cors&&this.use(FZ(this.opts.cors)),e.perMessageDeflate&&(this.opts.perMessageDeflate=Object.assign({threshold:1024},e.perMessageDeflate)),this.init()}_computePath(e){let t=(e.path||"/engine.io").replace(/\/$/,"");return!1!==e.addTrailingSlash&&(t+="/"),t}upgrades(e){return this.opts.allowUpgrades&&qZ.default[e].upgradesTo||[]}verify(e,t,n){const r=e._query.transport;if(!~this.opts.transports.indexOf(r)||"webtransport"===r)return KZ('unknown transport "%s"',r),n(XZ.errors.UNKNOWN_TRANSPORT,{transport:r});const i=function(e){if((e+="").length<1)return!1;if(!tQ[e.charCodeAt(0)])return KZ('invalid header, index 0, char "%s"',e.charCodeAt(0)),!0;if(e.length<2)return!1;if(!tQ[e.charCodeAt(1)])return KZ('invalid header, index 1, char "%s"',e.charCodeAt(1)),!0;if(e.length<3)return!1;if(!tQ[e.charCodeAt(2)])return KZ('invalid header, index 2, char "%s"',e.charCodeAt(2)),!0;if(e.length<4)return!1;if(!tQ[e.charCodeAt(3)])return KZ('invalid header, index 3, char "%s"',e.charCodeAt(3)),!0;for(let t=4;t<e.length;++t)if(!tQ[e.charCodeAt(t)])return KZ('invalid header, index "%i", char "%s"',t,e.charCodeAt(t)),!0;return!1}(e.headers.origin);if(i){const t=e.headers.origin;return e.headers.origin=null,KZ("origin header invalid"),n(XZ.errors.BAD_REQUEST,{name:"INVALID_ORIGIN",origin:t})}const s=e._query.sid;if(!s)return"GET"!==e.method?n(XZ.errors.BAD_HANDSHAKE_METHOD,{method:e.method}):"websocket"!==r||t?this.opts.allowRequest?this.opts.allowRequest(e,((e,t)=>{if(!t)return n(XZ.errors.FORBIDDEN,{message:e});n()})):n():(KZ("invalid transport upgrade"),n(XZ.errors.BAD_REQUEST,{name:"TRANSPORT_HANDSHAKE_ERROR"}));{if(!this.clients.hasOwnProperty(s))return KZ('unknown sid "%s"',s),n(XZ.errors.UNKNOWN_SID,{sid:s});const e=this.clients[s].transport.name;if(!t&&e!==r)return KZ("bad request: unexpected transport without upgrade"),n(XZ.errors.BAD_REQUEST,{name:"TRANSPORT_MISMATCH",transport:r,previousTransport:e})}n()}use(e){this.middlewares.push(e)}_applyMiddlewares(e,t,n){if(0===this.middlewares.length)return KZ("no middleware to apply, skipping"),n();const r=i=>{KZ("applying middleware n°%d",i+1),this.middlewares[i](e,t,(e=>{if(e)return n(e);i+1<this.middlewares.length?r(i+1):n()}))};r(0)}close(){KZ("closing all open clients");for(let e in this.clients)this.clients.hasOwnProperty(e)&&this.clients[e].close(!0);return this.cleanup(),this}generateId(e){return UZ.generateId()}async handshake(e,t,n){const r="4"===t._query.EIO?4:3;if(3===r&&!this.opts.allowEIO3)return KZ("unsupported protocol version"),this.emit("connection_error",{req:t,code:XZ.errors.UNSUPPORTED_PROTOCOL_VERSION,message:XZ.errorMessages[XZ.errors.UNSUPPORTED_PROTOCOL_VERSION],context:{protocol:r}}),void n(XZ.errors.UNSUPPORTED_PROTOCOL_VERSION);let i;try{i=await this.generateId(t)}catch(e){return KZ("error while generating an id"),this.emit("connection_error",{req:t,code:XZ.errors.BAD_REQUEST,message:XZ.errorMessages[XZ.errors.BAD_REQUEST],context:{name:"ID_GENERATION_ERROR",error:e}}),void n(XZ.errors.BAD_REQUEST)}KZ('handshaking client "%s"',i);try{var s=this.createTransport(e,t);"polling"===e?(s.maxHttpBufferSize=this.opts.maxHttpBufferSize,s.httpCompression=this.opts.httpCompression):"websocket"===e&&(s.perMessageDeflate=this.opts.perMessageDeflate)}catch(r){return KZ('error handshaking to transport "%s"',e),this.emit("connection_error",{req:t,code:XZ.errors.BAD_REQUEST,message:XZ.errorMessages[XZ.errors.BAD_REQUEST],context:{name:"TRANSPORT_HANDSHAKE_ERROR",error:r}}),void n(XZ.errors.BAD_REQUEST)}const o=new $Z.Socket(i,this,s,t,r);return s.on("headers",((e,t)=>{!t._query.sid&&(this.opts.cookie&&(e["Set-Cookie"]=[(0,zZ.serialize)(this.opts.cookie.name,i,this.opts.cookie)]),this.emit("initial_headers",e,t)),this.emit("headers",e,t)})),s.onRequest(t),this.clients[i]=o,this.clientsCount++,o.once("close",(()=>{delete this.clients[i],this.clientsCount--})),this.emit("connection",o),s}async onWebTransportSession(e){const t=setTimeout((()=>{KZ("the client failed to establish a bidirectional stream in the given period"),e.close()}),this.opts.upgradeTimeout),n=e.incomingBidirectionalStreams.getReader(),r=await n.read();if(r.done)return void KZ("session is closed");const i=r.value,s=(0,VZ.createPacketDecoderStream)(this.opts.maxHttpBufferSize,"nodebuffer"),o=i.readable.pipeThrough(s).getReader(),{value:a,done:c}=await o.read();if(c)return void KZ("stream is closed");if(clearTimeout(t),"open"!==a.type)return KZ("invalid WebTransport handshake"),e.close();if(void 0===a.data){const t=new GZ.WebTransport(e,i,o),n=UZ.generateId();KZ('handshaking client "%s" (WebTransport)',n);const r=new $Z.Socket(n,this,t,null,4);return this.clients[n]=r,this.clientsCount++,r.once("close",(()=>{delete this.clients[n],this.clientsCount--})),void this.emit("connection",r)}const l=function(e){try{const t=JSON.parse(e);if("string"==typeof t.sid)return t.sid}catch(e){}}(a.data);if(!l)return KZ("invalid WebTransport handshake"),e.close();const u=this.clients[l];if(u)if(u.upgrading)KZ("transport has already been trying to upgrade"),e.close();else if(u.upgraded)KZ("transport had already been upgraded"),e.close();else{KZ("upgrading existing transport");const t=new GZ.WebTransport(e,i,o);u.maybeUpgrade(t)}else KZ("upgrade attempt for closed client"),e.close()}}bG.BaseServer=ZZ,ZZ.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4,UNSUPPORTED_PROTOCOL_VERSION:5},ZZ.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden",5:"Unsupported protocol version"};class QZ{constructor(e,t){this.req=e,this.socket=t,e[YZ]={}}setHeader(e,t){this.req[YZ][e]=t}getHeader(e){return this.req[YZ][e]}removeHeader(e){delete this.req[YZ][e]}write(){}writeHead(){}end(){this.socket.destroy()}}let XZ=class e extends ZZ{init(){~this.opts.transports.indexOf("websocket")&&(this.ws&&this.ws.close(),this.ws=new this.opts.wsEngine({noServer:!0,clientTracking:!1,perMessageDeflate:this.opts.perMessageDeflate,maxPayload:this.opts.maxHttpBufferSize}),"function"==typeof this.ws.on&&this.ws.on("headers",((e,t)=>{const n=t[YZ]||{};delete t[YZ];!t._query.sid&&this.emit("initial_headers",n,t),this.emit("headers",n,t),KZ("writing headers: %j",n),Object.keys(n).forEach((t=>{e.push(`${t}: ${n[t]}`)}))})))}cleanup(){this.ws&&(KZ("closing webSocketServer"),this.ws.close())}prepare(e){e._query||(e._query=~e.url.indexOf("?")?BZ.parse((0,MZ.parse)(e.url).query):{})}createTransport(e,t){return new qZ.default[e](t)}handleRequest(t,n){KZ('handling "%s" http request "%s"',t.method,t.url),this.prepare(t),t.res=n;const r=(r,i)=>{if(void 0!==r)return this.emit("connection_error",{req:t,code:r,message:e.errorMessages[r],context:i}),void JZ(n,r,i);if(t._query.sid)KZ("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{const e=(e,t)=>JZ(n,e,t);this.handshake(t._query.transport,t,e)}};this._applyMiddlewares(t,n,(n=>{n?r(e.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,r)}))}handleUpgrade(t,n,r){this.prepare(t);const i=new QZ(t,n),s=(s,o)=>{if(void 0!==s)return this.emit("connection_error",{req:t,code:s,message:e.errorMessages[s],context:o}),void eQ(n,s,o);const a=Buffer.from(r);r=null,i.writeHead(),this.ws.handleUpgrade(t,n,a,(e=>{this.onWebSocket(t,n,e)}))};this._applyMiddlewares(t,i,(n=>{n?s(e.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,s)}))}onWebSocket(e,t,n){if(n.on("error",i),void 0!==qZ.default[e._query.transport]&&!qZ.default[e._query.transport].prototype.handlesUpgrades)return KZ("transport doesnt handle upgraded requests"),void n.close();const r=e._query.sid;if(e.websocket=n,r){const t=this.clients[r];if(t)if(t.upgrading)KZ("transport has already been trying to upgrade"),n.close();else if(t.upgraded)KZ("transport had already been upgraded"),n.close();else{KZ("upgrading existing transport"),n.removeListener("error",i);const r=this.createTransport(e._query.transport,e);r.perMessageDeflate=this.opts.perMessageDeflate,t.maybeUpgrade(r)}else KZ("upgrade attempt for closed client"),n.close()}else{const n=(e,n)=>eQ(t,e,n);this.handshake(e._query.transport,e,n)}function i(){KZ("websocket error before upgrade")}}attach(e,t={}){const n=this._computePath(t),r=t.destroyUpgradeTimeout||1e3;function i(e){return n===e.url.slice(0,n.length)}const s=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("close",this.close.bind(this)),e.on("listening",this.init.bind(this)),e.on("request",((t,r)=>{if(i(t))KZ('intercepting request for path "%s"',n),this.handleRequest(t,r);else{let n=0;const i=s.length;for(;n<i;n++)s[n].call(e,t,r)}})),~this.opts.transports.indexOf("websocket")&&e.on("upgrade",((e,n,s)=>{i(e)?this.handleUpgrade(e,n,s):!1!==t.destroyUpgrade&&setTimeout((function(){if(n.writable&&n.bytesWritten<=0)return n.on("error",(e=>{KZ("error while destroying upgrade: %s",e.message)})),n.end()}),r)}))}};function JZ(e,t,n){const r=t===XZ.errors.FORBIDDEN?403:400,i=n&&n.message?n.message:XZ.errorMessages[t];e.writeHead(r,{"Content-Type":"application/json"}),e.end(JSON.stringify({code:t,message:i}))}function eQ(e,t,n={}){if(e.on("error",(()=>{KZ("ignoring error from closed connection")})),e.writable){const r=n.message||XZ.errorMessages[t],i=Buffer.byteLength(r);e.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+i+"\r\n\r\n"+r)}e.destroy()}bG.Server=XZ;const tQ=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1];var nQ={},rQ={},iQ={};Object.defineProperty(iQ,"__esModule",{value:!0}),iQ.Polling=void 0;const sQ=SG,oQ=T,aQ=KM,cQ=(0,ah.default)("engine:polling"),lQ={gzip:oQ.createGzip,deflate:oQ.createDeflate};let uQ=class extends sQ.Transport{constructor(e){super(e),this.closeTimeout=3e4}get name(){return"polling"}get supportsFraming(){return!1}onRequest(e){const t=e.res;e.res=null,"get"===e.getMethod()?this.onPollRequest(e,t):"post"===e.getMethod()?this.onDataRequest(e,t):(t.writeStatus("500 Internal Server Error"),t.end())}onPollRequest(e,t){if(this.req)return cQ("request overlap"),this.onError("overlap from client"),t.writeStatus("500 Internal Server Error"),void t.end();cQ("setting request"),this.req=e,this.res=t;e.cleanup=()=>{this.req=this.res=null},t.onAborted((()=>{this.writable=!1,this.onError("poll connection closed prematurely")})),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose&&(cQ("triggering empty send to append close packet"),this.send([{type:"noop"}]))}onDataRequest(e,t){if(this.dataReq)return this.onError("data request overlap from client"),t.writeStatus("500 Internal Server Error"),void t.end();const n=Number(e.headers["content-length"]);if(!n)return this.onError("content-length header required"),void t.writeStatus("411 Length Required").end();if(n>this.maxHttpBufferSize)return this.onError("payload too large"),void t.writeStatus("413 Payload Too Large").end();if("application/octet-stream"===e.headers["content-type"]&&4===this.protocol)return this.onError("invalid content");let r;this.dataReq=e,this.dataRes=t;let i=0;const s={"Content-Type":"text/html"};this.headers(e,s);for(let e in s)t.writeHeader(e,String(s[e]));const o=e=>{this.onData(e.toString()),this.onDataRequestCleanup(),t.cork((()=>{t.end("ok")}))};t.onAborted((()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")})),t.onData(((e,s)=>{const a=i+e.byteLength;if(a>n)return this.onError("content-length mismatch"),void t.close();if(!r){if(s)return void o(Buffer.from(e));r=Buffer.allocUnsafe(n)}if(Buffer.from(e).copy(r,i),s)return a!=n?(this.onError("content-length mismatch"),t.writeStatus("400 Content-Length Mismatch").end(),void this.onDataRequestCleanup()):void o(r);i=a}))}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(e){cQ('received "%s"',e);const t=e=>{if("close"===e.type)return cQ("got xhr close packet"),this.onClose(),!1;this.onPacket(e)};3===this.protocol?this.parser.decodePayload(e,t):this.parser.decodePayload(e).forEach(t)}onClose(){this.writable&&this.send([{type:"noop"}]),super.onClose()}send(e){this.writable=!1,this.shouldClose&&(cQ("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null);const t=t=>{const n=e.some((e=>e.options&&e.options.compress));this.write(t,{compress:n})};3===this.protocol?this.parser.encodePayload(e,this.supportsBinary,t):this.parser.encodePayload(e,t)}write(e,t){cQ('writing "%s"',e),this.doWrite(e,t,(()=>{this.req.cleanup()}))}doWrite(e,t,n){const r="string"==typeof e,i={"Content-Type":r?"text/plain; charset=UTF-8":"application/octet-stream"},s=e=>{this.headers(this.req,i),this.res.cork((()=>{Object.keys(i).forEach((e=>{this.res.writeHeader(e,String(i[e]))})),this.res.end(e)})),n()};if(!this.httpCompression||!t.compress)return void s(e);if((r?Buffer.byteLength(e):e.length)<this.httpCompression.threshold)return void s(e);const o=aQ(this.req).encodings(["gzip","deflate"]);o?this.compress(e,o,((e,t)=>{if(e)return this.res.writeStatus("500 Internal Server Error"),this.res.end(),void n(e);i["Content-Encoding"]=o,s(t)})):s(e)}compress(e,t,n){cQ("compressing");const r=[];let i=0;lQ[t](this.httpCompression).on("error",n).on("data",(function(e){r.push(e),i+=e.length})).on("end",(function(){n(null,Buffer.concat(r,i))})).end(e)}doClose(e){let t;cQ("closing");const n=()=>{clearTimeout(t),e(),this.onClose()};this.writable?(cQ("transport writable - closing right away"),this.send([{type:"close"}]),n()):this.discarded?(cQ("transport discarded - closing right away"),n()):(cQ("transport not writable - buffering orderly close"),this.shouldClose=n,t=setTimeout(n,this.closeTimeout))}headers(e,t){t=t||{};const n=e.headers["user-agent"];return n&&(~n.indexOf(";MSIE")||~n.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0"),t["cache-control"]="no-store",this.emit("headers",t,e),t}};iQ.Polling=uQ;var pQ={};Object.defineProperty(pQ,"__esModule",{value:!0}),pQ.WebSocket=void 0;const hQ=SG,dQ=(0,ah.default)("engine:ws");let fQ=class extends hQ.Transport{constructor(e){super(e),this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){const n=e[t],r=t+1===e.length,i=e=>{const t="string"!=typeof e,n=this.perMessageDeflate&&Buffer.byteLength(e)>this.perMessageDeflate.threshold;dQ('writing "%s"',e),this.socket.send(e,t,n),r&&(this.writable=!0,this.emit("drain"))};n.options&&"string"==typeof n.options.wsPreEncoded?i(n.options.wsPreEncoded):this.parser.encodePacket(n,this.supportsBinary,i)}}doClose(e){dQ("closing"),e&&e(),this.socket.end()}};pQ.WebSocket=fQ,Object.defineProperty(rQ,"__esModule",{value:!0});const mQ=iQ,gQ=pQ;rQ.default={polling:mQ.Polling,websocket:gQ.WebSocket},Object.defineProperty(nQ,"__esModule",{value:!0}),nQ.uServer=void 0;const yQ=bG,vQ=rQ,bQ=(0,ah.default)("engine:uws");class _Q extends yQ.BaseServer{init(){}cleanup(){}prepare(e,t){e.method=e.getMethod().toUpperCase(),e.url=e.getUrl();const n=new URLSearchParams(e.getQuery());e._query=Object.fromEntries(n.entries()),e.headers={},e.forEach(((t,n)=>{e.headers[t]=n})),e.connection={remoteAddress:Buffer.from(t.getRemoteAddressAsText()).toString()},t.onAborted((()=>{bQ("response has been aborted")}))}createTransport(e,t){return new vQ.default[e](t)}attach(e,t={}){const n=this._computePath(t);e.any(n,this.handleRequest.bind(this)).ws(n,{compression:t.compression,idleTimeout:t.idleTimeout,maxBackpressure:t.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:e=>{const t=e.getUserData().transport;t.socket=e,t.writable=!0,t.emit("drain")},message:(e,t,n)=>{e.getUserData().transport.onData(n?t:Buffer.from(t).toString())},close:(e,t,n)=>{e.getUserData().transport.onClose(t,n)}})}_applyMiddlewares(e,t,n){if(0===this.middlewares.length)return n();e.res=new wQ(t),super._applyMiddlewares(e,e.res,(t=>{e.res.writeHead(),n(t)}))}handleRequest(e,t){bQ('handling "%s" http request "%s"',t.getMethod(),t.getUrl()),this.prepare(t,e),t.res=e;const n=(n,r)=>{if(void 0!==n)return this.emit("connection_error",{req:t,code:n,message:yQ.Server.errorMessages[n],context:r}),void this.abortRequest(t.res,n,r);if(t._query.sid)bQ("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{const n=(t,n)=>this.abortRequest(e,t,n);this.handshake(t._query.transport,t,n)}};this._applyMiddlewares(t,e,(e=>{e?n(yQ.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,n)}))}handleUpgrade(e,t,n){bQ("on upgrade"),this.prepare(t,e),t.res=e;const r=async(r,i)=>{if(void 0!==r)return this.emit("connection_error",{req:t,code:r,message:yQ.Server.errorMessages[r],context:i}),void this.abortRequest(e,r,i);const s=t._query.sid;let o;if(s){const n=this.clients[s];n?n.upgrading?(bQ("transport has already been trying to upgrade"),e.close()):n.upgraded?(bQ("transport had already been upgraded"),e.close()):(bQ("upgrading existing transport"),o=this.createTransport(t._query.transport,t),n.maybeUpgrade(o)):(bQ("upgrade attempt for closed client"),e.close())}else if(o=await this.handshake(t._query.transport,t,((t,n)=>this.abortRequest(e,t,n))),!o)return;t.res.writeStatus("101 Switching Protocols"),e.upgrade({transport:o},t.getHeader("sec-websocket-key"),t.getHeader("sec-websocket-protocol"),t.getHeader("sec-websocket-extensions"),n)};this._applyMiddlewares(t,e,(e=>{e?r(yQ.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,r)}))}abortRequest(e,t,n){const r=t===yQ.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",i=n&&n.message?n.message:yQ.Server.errorMessages[t];e.writeStatus(r),e.writeHeader("Content-Type","application/json"),e.end(JSON.stringify({code:t,message:i}))}}nQ.uServer=_Q;class wQ{constructor(e){this.res=e,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(e){e&&this.writeStatus(200===e?"200 OK":"204 No Content")}writeHead(e){this.statusCode=e}setHeader(e,t){Array.isArray(t)?t.forEach((t=>{this.writeHeader(e,t)})):this.writeHeader(e,t)}removeHeader(){}getHeader(){}writeStatus(e){if(!this.isAborted)return this.res.writeStatus(e),this.statusWritten=!0,this.writeBufferedHeaders(),this}writeHeader(e,t){this.isAborted||"Content-Length"!==e&&(this.statusWritten?this.res.writeHeader(e,t):this.headers.push([e,t]))}writeBufferedHeaders(){this.headers.forEach((([e,t])=>{this.res.writeHeader(e,t)}))}end(e){this.isAborted||this.res.cork((()=>{this.statusWritten||this.writeBufferedHeaders(),this.res.end(e)}))}onData(e){this.isAborted||this.res.onData(e)}onAborted(e){this.isAborted||this.res.onAborted((()=>{this.isAborted=!0,e()}))}cork(e){this.isAborted||this.res.cork(e)}}!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.protocol=e.Transport=e.Socket=e.uServer=e.parser=e.attach=e.listen=e.transports=e.Server=void 0;const t=x,n=bG;Object.defineProperty(e,"Server",{enumerable:!0,get:function(){return n.Server}});const r=xG;e.transports=r.default;const i=TG;e.parser=i;var s=nQ;Object.defineProperty(e,"uServer",{enumerable:!0,get:function(){return s.uServer}});var o=EV;Object.defineProperty(e,"Socket",{enumerable:!0,get:function(){return o.Socket}});var a=SG;function c(e,t){const r=new n.Server(t);return r.attach(e,t),r}Object.defineProperty(e,"Transport",{enumerable:!0,get:function(){return a.Transport}}),e.protocol=i.protocol,e.listen=function(e,n,r){"function"==typeof n&&(r=n,n={});const i=(0,t.createServer)((function(e,t){t.writeHead(501),t.end("Not Implemented")})),s=c(i,n);return s.httpServer=i,i.listen(e,r),s},e.attach=c}(vG);var xQ={},EQ={};function SQ(e){if(e)return function(e){for(var t in SQ.prototype)e[t]=SQ.prototype[t];return e}(e)}SQ.prototype.on=SQ.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},SQ.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},SQ.prototype.off=SQ.prototype.removeListener=SQ.prototype.removeAllListeners=SQ.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i=0;i<r.length;i++)if((n=r[i])===t||n.fn===t){r.splice(i,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},SQ.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var i=(n=n.slice(0)).length;r<i;++r)n[r].apply(this,t)}return this},SQ.prototype.emitReserved=SQ.prototype.emit,SQ.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},SQ.prototype.hasListeners=function(e){return!!this.listeners(e).length};var TQ=H(Object.freeze({__proto__:null,Emitter:SQ})),DQ={},kQ={};Object.defineProperty(kQ,"__esModule",{value:!0}),kQ.hasBinary=kQ.isBinary=void 0;const AQ="function"==typeof ArrayBuffer,CQ=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,RQ=Object.prototype.toString,OQ="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===RQ.call(Blob),LQ="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===RQ.call(File);function IQ(e){return AQ&&(e instanceof ArrayBuffer||CQ(e))||OQ&&e instanceof Blob||LQ&&e instanceof File}kQ.isBinary=IQ,kQ.hasBinary=function e(t,n){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(e(t[n]))return!0;return!1}if(IQ(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0);for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return!0;return!1},Object.defineProperty(DQ,"__esModule",{value:!0}),DQ.reconstructPacket=DQ.deconstructPacket=void 0;const PQ=kQ;function NQ(e,t){if(!e)return e;if((0,PQ.isBinary)(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=NQ(e[r],t);return n}if("object"==typeof e&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=NQ(e[r],t));return n}return e}function jQ(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=jQ(e[n],t);else if("object"==typeof e)for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=jQ(e[n],t));return e}DQ.deconstructPacket=function(e){const t=[],n=e.data,r=e;return r.data=NQ(n,t),r.attachments=t.length,{packet:r,buffers:t}},DQ.reconstructPacket=function(e,t){return e.data=jQ(e.data,t),delete e.attachments,e},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Decoder=e.Encoder=e.PacketType=e.protocol=void 0;const t=TQ,n=DQ,r=kQ,i=(0,ah.default)("socket.io-parser"),s=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var o;e.protocol=5,function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(o=e.PacketType||(e.PacketType={}));function a(e){return"[object Object]"===Object.prototype.toString.call(e)}e.Encoder=class{constructor(e){this.replacer=e}encode(e){return i("encoding packet %j",e),e.type!==o.EVENT&&e.type!==o.ACK||!(0,r.hasBinary)(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===o.EVENT?o.BINARY_EVENT:o.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}encodeAsString(e){let t=""+e.type;return e.type!==o.BINARY_EVENT&&e.type!==o.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),i("encoded %j as %s",e,t),t}encodeAsBinary(e){const t=(0,n.deconstructPacket)(e),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}};class c extends t.Emitter{constructor(e){super(),this.reviver=e}add(e){let t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const n=t.type===o.BINARY_EVENT;n||t.type===o.BINARY_ACK?(t.type=n?o.EVENT:o.ACK,this.reconstructor=new l(t),0===t.attachments&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else{if(!(0,r.isBinary)(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t))}}decodeString(e){let t=0;const n={type:Number(e.charAt(0))};if(void 0===o[n.type])throw new Error("unknown packet type "+n.type);if(n.type===o.BINARY_EVENT||n.type===o.BINARY_ACK){const r=t+1;for(;"-"!==e.charAt(++t)&&t!=e.length;);const i=e.substring(r,t);if(i!=Number(i)||"-"!==e.charAt(t))throw new Error("Illegal attachments");n.attachments=Number(i)}if("/"===e.charAt(t+1)){const r=t+1;for(;++t;){if(","===e.charAt(t))break;if(t===e.length)break}n.nsp=e.substring(r,t)}else n.nsp="/";const r=e.charAt(t+1);if(""!==r&&Number(r)==r){const r=t+1;for(;++t;){const n=e.charAt(t);if(null==n||Number(n)!=n){--t;break}if(t===e.length)break}n.id=Number(e.substring(r,t+1))}if(e.charAt(++t)){const r=this.tryParse(e.substr(t));if(!c.isPayloadValid(n.type,r))throw new Error("invalid payload");n.data=r}return i("decoded %s as %j",e,n),n}tryParse(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}static isPayloadValid(e,t){switch(e){case o.CONNECT:return a(t);case o.DISCONNECT:return void 0===t;case o.CONNECT_ERROR:return"string"==typeof t||a(t);case o.EVENT:case o.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===s.indexOf(t[0]));case o.ACK:case o.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}e.Decoder=c;class l{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=(0,n.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}}(EQ),Object.defineProperty(xQ,"__esModule",{value:!0}),xQ.Client=void 0;const FQ=EQ,BQ=S,MQ=ah("socket.io:client");xQ.Client=class{constructor(e,t){this.sockets=new Map,this.nsps=new Map,this.server=e,this.conn=t,this.encoder=e.encoder,this.decoder=new e._parser.Decoder,this.id=t.id,this.setup()}get request(){return this.conn.request}setup(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose),this.connectTimeout=setTimeout((()=>{0===this.nsps.size?(MQ("no namespace joined yet, close the client"),this.close()):MQ("the client has already joined a namespace, nothing to do")}),this.server._connectTimeout)}connect(e,t={}){if(this.server._nsps.has(e))return MQ("connecting to namespace %s",e),this.doConnect(e,t);this.server._checkNamespace(e,t,(n=>{n?this.doConnect(e,t):(MQ("creation of namespace %s was denied",e),this._packet({type:FQ.PacketType.CONNECT_ERROR,nsp:e,data:{message:"Invalid namespace"}}))}))}doConnect(e,t){const n=this.server.of(e);n._add(this,t,(e=>{this.sockets.set(e.id,e),this.nsps.set(n.name,e),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}))}_disconnect(){for(const e of this.sockets.values())e.disconnect();this.sockets.clear(),this.close()}_remove(e){if(this.sockets.has(e.id)){const t=this.sockets.get(e.id).nsp.name;this.sockets.delete(e.id),this.nsps.delete(t)}else MQ("ignoring remove for %s",e.id)}close(){"open"===this.conn.readyState&&(MQ("forcing transport close"),this.conn.close(),this.onclose("forced server close"))}_packet(e,t={}){if("open"!==this.conn.readyState)return void MQ("ignoring packet write %j",e);const n=t.preEncoded?e:this.encoder.encode(e);this.writeToEngine(n,t)}writeToEngine(e,t){if(t.volatile&&!this.conn.transport.writable)return void MQ("volatile packet is discarded since the transport is not currently writable");const n=Array.isArray(e)?e:[e];for(const e of n)this.conn.write(e,t)}ondata(e){try{this.decoder.add(e)}catch(e){MQ("invalid packet format"),this.onerror(e)}}ondecoded(e){let t,n;if(3===this.conn.protocol){const r=BQ.parse(e.nsp,!0);t=r.pathname,n=r.query}else t=e.nsp,n=e.data;const r=this.nsps.get(t);r||e.type!==FQ.PacketType.CONNECT?r&&e.type!==FQ.PacketType.CONNECT&&e.type!==FQ.PacketType.CONNECT_ERROR?process.nextTick((function(){r._onpacket(e)})):(MQ("invalid state (packet type: %s)",e.type),this.close()):this.connect(t,n)}onerror(e){for(const t of this.sockets.values())t._onerror(e);this.conn.close()}onclose(e,t){MQ("client close with reason %s",e),this.destroy();for(const n of this.sockets.values())n._onclose(e,t);this.sockets.clear(),this.decoder.destroy()}destroy(){this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}};var UQ={},qQ={},HQ={};Object.defineProperty(HQ,"__esModule",{value:!0}),HQ.StrictEventEmitter=void 0;const $Q=p;class zQ extends $Q.EventEmitter{on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}emit(e,...t){return super.emit(e,...t)}emitReserved(e,...t){return super.emit(e,...t)}emitUntyped(e,...t){return super.emit(e,...t)}listeners(e){return super.listeners(e)}}HQ.StrictEventEmitter=zQ;var WQ,GQ,VQ={};function KQ(){if(WQ)return VQ;WQ=1,Object.defineProperty(VQ,"__esModule",{value:!0}),VQ.RemoteSocket=VQ.BroadcastOperator=void 0;const e=YQ(),t=EQ;class n{constructor(e,t=new Set,n=new Set,r={}){this.adapter=e,this.rooms=t,this.exceptRooms=n,this.flags=r}to(e){const t=new Set(this.rooms);return Array.isArray(e)?e.forEach((e=>t.add(e))):t.add(e),new n(this.adapter,t,this.exceptRooms,this.flags)}in(e){return this.to(e)}except(e){const t=new Set(this.exceptRooms);return Array.isArray(e)?e.forEach((e=>t.add(e))):t.add(e),new n(this.adapter,this.rooms,t,this.flags)}compress(e){const t=Object.assign({},this.flags,{compress:e});return new n(this.adapter,this.rooms,this.exceptRooms,t)}get volatile(){const e=Object.assign({},this.flags,{volatile:!0});return new n(this.adapter,this.rooms,this.exceptRooms,e)}get local(){const e=Object.assign({},this.flags,{local:!0});return new n(this.adapter,this.rooms,this.exceptRooms,e)}timeout(e){const t=Object.assign({},this.flags,{timeout:e});return new n(this.adapter,this.rooms,this.exceptRooms,t)}emit(n,...r){if(e.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const i=[n,...r],s={type:t.PacketType.EVENT,data:i};if(!("function"==typeof i[i.length-1]))return this.adapter.broadcast(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;const o=i.pop();let a=!1,c=[];const l=setTimeout((()=>{a=!0,o.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])}),this.flags.timeout);let u=-1,p=0,h=0;const d=()=>{a||u!==p||c.length!==h||(clearTimeout(l),o.apply(this,[null,this.flags.expectSingleResponse?c[0]:c]))};return this.adapter.broadcastWithAck(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},(e=>{h+=e,p++,d()}),(e=>{c.push(e),d()})),this.adapter.serverCount().then((e=>{u=e,d()})),!0}emitWithAck(e,...t){return new Promise(((n,r)=>{t.push(((e,t)=>e?(e.responses=t,r(e)):n(t))),this.emit(e,...t)}))}allSockets(){if(!this.adapter)throw new Error("No adapter for this namespace, are you trying to get the list of clients of a dynamic namespace?");return this.adapter.sockets(this.rooms)}fetchSockets(){return this.adapter.fetchSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags}).then((t=>t.map((t=>t instanceof e.Socket?t:new r(this.adapter,t)))))}socketsJoin(e){this.adapter.addSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}socketsLeave(e){this.adapter.delSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}disconnectSockets(e=!1){this.adapter.disconnectSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},e)}}VQ.BroadcastOperator=n;class r{constructor(e,t){this.id=t.id,this.handshake=t.handshake,this.rooms=new Set(t.rooms),this.data=t.data,this.operator=new n(e,new Set([this.id]),new Set,{expectSingleResponse:!0})}timeout(e){return this.operator.timeout(e)}emit(e,...t){return this.operator.emit(e,...t)}join(e){return this.operator.socketsJoin(e)}leave(e){return this.operator.socketsLeave(e)}disconnect(e=!1){return this.operator.disconnectSockets(e),this}}return VQ.RemoteSocket=r,VQ}function YQ(){return GQ||(GQ=1,function(e){var t=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.Socket=e.RESERVED_EVENTS=void 0;const n=EQ,r=t(ah),i=HQ,s=t(wG),o=KQ(),a=(0,r.default)("socket.io:socket"),c=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);function l(){}e.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"]);class u extends i.StrictEventEmitter{constructor(e,t,r,i){super(),this.nsp=e,this.client=t,this.recovered=!1,this.data={},this.connected=!1,this.acks=new Map,this.fns=[],this.flags={},this.server=e.server,this.adapter=this.nsp.adapter,i?(this.id=i.sid,this.pid=i.pid,i.rooms.forEach((e=>this.join(e))),this.data=i.data,i.missedPackets.forEach((e=>{this.packet({type:n.PacketType.EVENT,data:e})})),this.recovered=!0):(3===t.conn.protocol?this.id="/"!==e.name?e.name+"#"+t.id:t.id:this.id=s.default.generateId(),this.server._opts.connectionStateRecovery&&(this.pid=s.default.generateId())),this.handshake=this.buildHandshake(r),this.on("error",l)}buildHandshake(e){var t,n,r,i;return{headers:(null===(t=this.request)||void 0===t?void 0:t.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!(null===(n=this.request)||void 0===n?void 0:n.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:null===(r=this.request)||void 0===r?void 0:r.url,query:(null===(i=this.request)||void 0===i?void 0:i._query)||{},auth:e}}emit(t,...r){if(e.RESERVED_EVENTS.has(t))throw new Error(`"${String(t)}" is a reserved event name`);const i=[t,...r],s={type:n.PacketType.EVENT,data:i};if("function"==typeof i[i.length-1]){const e=this.nsp._ids++;a("emitting packet with ack id %d",e),this.registerAckCallback(e,i.pop()),s.id=e}const o=Object.assign({},this.flags);return this.flags={},this.nsp.server.opts.connectionStateRecovery?this.adapter.broadcast(s,{rooms:new Set([this.id]),except:new Set,flags:o}):(this.notifyOutgoingListeners(s),this.packet(s,o)),!0}emitWithAck(e,...t){const n=void 0!==this.flags.timeout;return new Promise(((r,i)=>{t.push(((e,t)=>n?e?i(e):r(t):r(e))),this.emit(e,...t)}))}registerAckCallback(e,t){const n=this.flags.timeout;if(void 0===n)return void this.acks.set(e,t);const r=setTimeout((()=>{a("event with ack id %d has timed out after %d ms",e,n),this.acks.delete(e),t.call(this,new Error("operation has timed out"))}),n);this.acks.set(e,((...e)=>{clearTimeout(r),t.apply(this,[null,...e])}))}to(e){return this.newBroadcastOperator().to(e)}in(e){return this.newBroadcastOperator().in(e)}except(e){return this.newBroadcastOperator().except(e)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}packet(e,t={}){e.nsp=this.nsp.name,t.compress=!1!==t.compress,this.client._packet(e,t)}join(e){return a("join room %s",e),this.adapter.addAll(this.id,new Set(Array.isArray(e)?e:[e]))}leave(e){return a("leave room %s",e),this.adapter.del(this.id,e)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){a("socket connected - writing packet"),this.connected=!0,this.join(this.id),3===this.conn.protocol?this.packet({type:n.PacketType.CONNECT}):this.packet({type:n.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(e){switch(a("got packet %j",e),e.type){case n.PacketType.EVENT:case n.PacketType.BINARY_EVENT:this.onevent(e);break;case n.PacketType.ACK:case n.PacketType.BINARY_ACK:this.onack(e);break;case n.PacketType.DISCONNECT:this.ondisconnect()}}onevent(e){const t=e.data||[];if(a("emitting event %j",t),null!=e.id&&(a("attaching ack callback to event"),t.push(this.ack(e.id))),this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const n of e)n.apply(this,t)}this.dispatch(t)}ack(e){const t=this;let r=!1;return function(){if(r)return;const i=Array.prototype.slice.call(arguments);a("sending ack %j",i),t.packet({id:e,type:n.PacketType.ACK,data:i}),r=!0}}onack(e){const t=this.acks.get(e.id);"function"==typeof t?(a("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),this.acks.delete(e.id)):a("bad ack %s",e.id)}ondisconnect(){a("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(e){this.emitReserved("error",e)}_onclose(e,t){if(!this.connected)return this;a("closing socket - reason %s",e),this.emitReserved("disconnecting",e,t),this.server._opts.connectionStateRecovery&&c.has(e)&&(a("connection state recovery is enabled for sid %s",this.id),this.adapter.persistSession({sid:this.id,pid:this.pid,rooms:[...this.rooms],data:this.data})),this._cleanup(),this.client._remove(this),this.connected=!1,this.emitReserved("disconnect",e,t)}_cleanup(){this.leaveAll(),this.nsp._remove(this),this.join=l}_error(e){this.packet({type:n.PacketType.CONNECT_ERROR,data:e})}disconnect(e=!1){return this.connected?(e?this.client._disconnect():(this.packet({type:n.PacketType.DISCONNECT}),this._onclose("server namespace disconnect")),this):this}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}get broadcast(){return this.newBroadcastOperator()}get local(){return this.newBroadcastOperator().local}timeout(e){return this.flags.timeout=e,this}dispatch(e){a("dispatching an event %j",e),this.run(e,(t=>{process.nextTick((()=>{if(t)return this._onerror(t);this.connected?super.emitUntyped.apply(this,e):a("ignore packet received after disconnection")}))}))}use(e){return this.fns.push(e),this}run(e,t){const n=this.fns.slice(0);if(!n.length)return t(null);!function r(i){n[i](e,(function(e){return e?t(e):n[i+1]?void r(i+1):t(null)}))}(0)}get disconnected(){return!this.connected}get request(){return this.client.request}get conn(){return this.client.conn}get rooms(){return this.adapter.socketRooms(this.id)||new Set}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const n of t)n.apply(this,e.data)}}newBroadcastOperator(){const e=Object.assign({},this.flags);return this.flags={},new o.BroadcastOperator(this.adapter,new Set,new Set([this.id]),e)}}e.Socket=u}(qQ)),qQ}!function(e){var t=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.Namespace=e.RESERVED_EVENTS=void 0;const n=YQ(),r=HQ,i=t(ah),s=KQ(),o=(0,i.default)("socket.io:namespace");e.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);class a extends r.StrictEventEmitter{constructor(e,t){super(),this.sockets=new Map,this._fns=[],this._ids=0,this.server=e,this.name=t,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this)}use(e){return this._fns.push(e),this}run(e,t){const n=this._fns.slice(0);if(!n.length)return t(null);!function r(i){n[i](e,(function(e){return e?t(e):n[i+1]?void r(i+1):t(null)}))}(0)}to(e){return new s.BroadcastOperator(this.adapter).to(e)}in(e){return new s.BroadcastOperator(this.adapter).in(e)}except(e){return new s.BroadcastOperator(this.adapter).except(e)}async _add(e,t,n){var r;o("adding socket to nsp %s",this.name);const i=await this._createSocket(e,t);if((null===(r=this.server.opts.connectionStateRecovery)||void 0===r?void 0:r.skipMiddlewares)&&i.recovered&&"open"===e.conn.readyState)return this._doConnect(i,n);this.run(i,(t=>{process.nextTick((()=>"open"!==e.conn.readyState?(o("next called after client was closed - ignoring socket"),void i._cleanup()):t?(o("middleware error, sending CONNECT_ERROR packet to the client"),i._cleanup(),3===e.conn.protocol?i._error(t.data||t.message):i._error({message:t.message,data:t.data})):void this._doConnect(i,n)))}))}async _createSocket(e,t){const r=t.pid,i=t.offset;if(this.server.opts.connectionStateRecovery&&"string"==typeof r&&"string"==typeof i){let s;try{s=await this.adapter.restoreSession(r,i)}catch(e){o("error while restoring session: %s",e)}if(s)return o("connection state recovered for sid %s",s.sid),new n.Socket(this,e,t,s)}return new n.Socket(this,e,t)}_doConnect(e,t){this.sockets.set(e.id,e),e._onconnect(),t&&t(e),this.emitReserved("connect",e),this.emitReserved("connection",e)}_remove(e){this.sockets.has(e.id)?this.sockets.delete(e.id):o("ignoring remove for %s",e.id)}emit(e,...t){return new s.BroadcastOperator(this.adapter).emit(e,...t)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}serverSideEmit(t,...n){if(e.RESERVED_EVENTS.has(t))throw new Error(`"${String(t)}" is a reserved event name`);return n.unshift(t),this.adapter.serverSideEmit(n),!0}serverSideEmitWithAck(e,...t){return new Promise(((n,r)=>{t.push(((e,t)=>e?(e.responses=t,r(e)):n(t))),this.serverSideEmit(e,...t)}))}_onServerSideEmit(e){super.emitUntyped.apply(this,e)}allSockets(){return new s.BroadcastOperator(this.adapter).allSockets()}compress(e){return new s.BroadcastOperator(this.adapter).compress(e)}get volatile(){return new s.BroadcastOperator(this.adapter).volatile}get local(){return new s.BroadcastOperator(this.adapter).local}timeout(e){return new s.BroadcastOperator(this.adapter).timeout(e)}fetchSockets(){return new s.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(e){return new s.BroadcastOperator(this.adapter).socketsJoin(e)}socketsLeave(e){return new s.BroadcastOperator(this.adapter).socketsLeave(e)}disconnectSockets(e=!1){return new s.BroadcastOperator(this.adapter).disconnectSockets(e)}}e.Namespace=a}(UQ);var ZQ={},QQ={},XQ={},JQ={};Object.defineProperty(JQ,"__esModule",{value:!0}),JQ.yeast=JQ.decode=JQ.encode=void 0;const eX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),tX=64,nX={};let rX,iX=0,sX=0;function oX(e){let t="";do{t=eX[e%tX]+t,e=Math.floor(e/tX)}while(e>0);return t}for(JQ.encode=oX,JQ.decode=function(e){let t=0;for(sX=0;sX<e.length;sX++)t=t*tX+nX[e.charAt(sX)];return t},JQ.yeast=function(){const e=oX(+new Date);return e!==rX?(iX=0,rX=e):e+"."+oX(iX++)};sX<tX;sX++)nX[eX[sX]]=sX;var aX;Object.defineProperty(XQ,"__esModule",{value:!0}),XQ.SessionAwareAdapter=XQ.Adapter=void 0;const cX=p,lX=JQ,uX=OZ,pX="function"==typeof(null===(aX=null==uX?void 0:uX.Sender)||void 0===aX?void 0:aX.frame);class hX extends cX.EventEmitter{constructor(e){super(),this.nsp=e,this.rooms=new Map,this.sids=new Map,this.encoder=e.server.encoder}init(){}close(){}serverCount(){return Promise.resolve(1)}addAll(e,t){this.sids.has(e)||this.sids.set(e,new Set);for(const n of t)this.sids.get(e).add(n),this.rooms.has(n)||(this.rooms.set(n,new Set),this.emit("create-room",n)),this.rooms.get(n).has(e)||(this.rooms.get(n).add(e),this.emit("join-room",n,e))}del(e,t){this.sids.has(e)&&this.sids.get(e).delete(t),this._del(t,e)}_del(e,t){const n=this.rooms.get(e);if(null!=n){n.delete(t)&&this.emit("leave-room",e,t),0===n.size&&this.rooms.delete(e)&&this.emit("delete-room",e)}}delAll(e){if(this.sids.has(e)){for(const t of this.sids.get(e))this._del(t,e);this.sids.delete(e)}}broadcast(e,t){const n=t.flags||{},r={preEncoded:!0,volatile:n.volatile,compress:n.compress};e.nsp=this.nsp.name;const i=this._encode(e,r);this.apply(t,(t=>{"function"==typeof t.notifyOutgoingListeners&&t.notifyOutgoingListeners(e),t.client.writeToEngine(i,r)}))}broadcastWithAck(e,t,n,r){const i=t.flags||{},s={preEncoded:!0,volatile:i.volatile,compress:i.compress};e.nsp=this.nsp.name,e.id=this.nsp._ids++;const o=this._encode(e,s);let a=0;this.apply(t,(t=>{a++,t.acks.set(e.id,r),"function"==typeof t.notifyOutgoingListeners&&t.notifyOutgoingListeners(e),t.client.writeToEngine(o,s)})),n(a)}_encode(e,t){const n=this.encoder.encode(e);if(pX&&1===n.length&&"string"==typeof n[0]){const e=Buffer.from("4"+n[0]);t.wsPreEncodedFrame=uX.Sender.frame(e,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return n}sockets(e){const t=new Set;return this.apply({rooms:e},(e=>{t.add(e.id)})),Promise.resolve(t)}socketRooms(e){return this.sids.get(e)}fetchSockets(e){const t=[];return this.apply(e,(e=>{t.push(e)})),Promise.resolve(t)}addSockets(e,t){this.apply(e,(e=>{e.join(t)}))}delSockets(e,t){this.apply(e,(e=>{t.forEach((t=>e.leave(t)))}))}disconnectSockets(e,t){this.apply(e,(e=>{e.disconnect(t)}))}apply(e,t){const n=e.rooms,r=this.computeExceptSids(e.except);if(n.size){const e=new Set;for(const i of n)if(this.rooms.has(i))for(const n of this.rooms.get(i)){if(e.has(n)||r.has(n))continue;const i=this.nsp.sockets.get(n);i&&(t(i),e.add(n))}}else for(const[e]of this.sids){if(r.has(e))continue;const n=this.nsp.sockets.get(e);n&&t(n)}}computeExceptSids(e){const t=new Set;if(e&&e.size>0)for(const n of e)this.rooms.has(n)&&this.rooms.get(n).forEach((e=>t.add(e)));return t}serverSideEmit(e){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(e){}restoreSession(e,t){return null}}XQ.Adapter=hX;function dX(e,t){const n=0===t.rooms.size||e.some((e=>t.rooms.has(e))),r=e.every((e=>!t.except.has(e)));return n&&r}XQ.SessionAwareAdapter=class extends hX{constructor(e){super(e),this.nsp=e,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=e.server.opts.connectionStateRecovery.maxDisconnectionDuration;const t=setInterval((()=>{const e=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach(((t,n)=>{t.disconnectedAt<e&&this.sessions.delete(n)}));for(let t=this.packets.length-1;t>=0;t--){if(this.packets[t].emittedAt<e){this.packets.splice(0,t+1);break}}}),6e4);t.unref()}persistSession(e){e.disconnectedAt=Date.now(),this.sessions.set(e.pid,e)}restoreSession(e,t){const n=this.sessions.get(e);if(!n)return null;if(n.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(e),null;const r=this.packets.findIndex((e=>e.id===t));if(-1===r)return null;const i=[];for(let e=r+1;e<this.packets.length;e++){const t=this.packets[e];dX(n.rooms,t.opts)&&i.push(t.data)}return Promise.resolve(Object.assign(Object.assign({},n),{missedPackets:i}))}broadcast(e,t){var n;const r=2===e.type,i=void 0===e.id,s=void 0===(null===(n=t.flags)||void 0===n?void 0:n.volatile);if(r&&i&&s){const n=(0,lX.yeast)();e.data.push(n),this.packets.push({id:n,opts:t,data:e.data,emittedAt:Date.now()})}super.broadcast(e,t)}};var fX={};!function(e){var t=U&&U.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};Object.defineProperty(e,"__esModule",{value:!0}),e.ClusterAdapterWithHeartbeat=e.ClusterAdapter=e.MessageType=void 0;const n=XQ,r=w,i=(0,ah.debug)("socket.io-adapter"),s=5e3;function o(){return(0,r.randomBytes)(8).toString("hex")}var a;function c(e){return{rooms:[...e.rooms],except:[...e.except],flags:e.flags}}function l(e){return{rooms:new Set(e.rooms),except:new Set(e.except),flags:e.flags}}!function(e){e[e.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",e[e.HEARTBEAT=2]="HEARTBEAT",e[e.BROADCAST=3]="BROADCAST",e[e.SOCKETS_JOIN=4]="SOCKETS_JOIN",e[e.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",e[e.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",e[e.FETCH_SOCKETS=7]="FETCH_SOCKETS",e[e.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",e[e.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",e[e.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",e[e.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",e[e.BROADCAST_ACK=12]="BROADCAST_ACK",e[e.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"}(a=e.MessageType||(e.MessageType={}));class u extends n.Adapter{constructor(e){super(e),this.requests=new Map,this.ackRequests=new Map,this.uid=o()}onMessage(e,n){if(e.uid===this.uid)return i("[%s] ignore message from self",this.uid);switch(i("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case a.BROADCAST:if(void 0!==e.data.requestId)super.broadcastWithAck(e.data.packet,l(e.data.opts),(t=>{i("[%s] waiting for %d client acknowledgements",this.uid,t),this.publishResponse(e.uid,{type:a.BROADCAST_CLIENT_COUNT,data:{requestId:e.data.requestId,clientCount:t}})}),(t=>{i("[%s] received acknowledgement with value %j",this.uid,t),this.publishResponse(e.uid,{type:a.BROADCAST_ACK,data:{requestId:e.data.requestId,packet:t}})}));else{const t=e.data.packet,r=l(e.data.opts);this.addOffsetIfNecessary(t,r,n),super.broadcast(t,r)}break;case a.SOCKETS_JOIN:super.addSockets(l(e.data.opts),e.data.rooms);break;case a.SOCKETS_LEAVE:super.delSockets(l(e.data.opts),e.data.rooms);break;case a.DISCONNECT_SOCKETS:super.disconnectSockets(l(e.data.opts),e.data.close);break;case a.FETCH_SOCKETS:i("[%s] calling fetchSockets with opts %j",this.uid,e.data.opts),super.fetchSockets(l(e.data.opts)).then((n=>{this.publishResponse(e.uid,{type:a.FETCH_SOCKETS_RESPONSE,data:{requestId:e.data.requestId,sockets:n.map((e=>{const n=e.handshake,r=t(n,["sessionStore"]);return{id:e.id,handshake:r,rooms:[...e.rooms],data:e.data}}))}})}));break;case a.SERVER_SIDE_EMIT:{const t=e.data.packet;if(!(void 0!==e.data.requestId))return void this.nsp._onServerSideEmit(t);let n=!1;const r=t=>{n||(n=!0,i("[%s] calling acknowledgement with %j",this.uid,t),this.publishResponse(e.uid,{type:a.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:e.data.requestId,packet:t}}))};this.nsp._onServerSideEmit([...t,r]);break}case a.BROADCAST_CLIENT_COUNT:case a.BROADCAST_ACK:case a.FETCH_SOCKETS_RESPONSE:case a.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(e);break;default:i("[%s] unknown message type: %s",this.uid,e.type)}}onResponse(e){var t,n;const r=e.data.requestId;switch(i("[%s] received response %s to request %s",this.uid,e.type,r),e.type){case a.BROADCAST_CLIENT_COUNT:null===(t=this.ackRequests.get(r))||void 0===t||t.clientCountCallback(e.data.clientCount);break;case a.BROADCAST_ACK:null===(n=this.ackRequests.get(r))||void 0===n||n.ack(e.data.packet);break;case a.FETCH_SOCKETS_RESPONSE:{const t=this.requests.get(r);if(!t)return;t.current++,e.data.sockets.forEach((e=>t.responses.push(e))),t.current===t.expected&&(clearTimeout(t.timeout),t.resolve(t.responses),this.requests.delete(r));break}case a.SERVER_SIDE_EMIT_RESPONSE:{const t=this.requests.get(r);if(!t)return;t.current++,t.responses.push(e.data.packet),t.current===t.expected&&(clearTimeout(t.timeout),t.resolve(null,t.responses),this.requests.delete(r));break}default:i("[%s] unknown response type: %s",this.uid,e.type)}}async broadcast(e,t){var n;if(!(null===(n=t.flags)||void 0===n?void 0:n.local))try{const n=await this.publishAndReturnOffset({type:a.BROADCAST,data:{packet:e,opts:c(t)}});this.addOffsetIfNecessary(e,t,n)}catch(e){return i("[%s] error while broadcasting message: %s",this.uid,e.message)}super.broadcast(e,t)}addOffsetIfNecessary(e,t,n){var r;if(!this.nsp.server.opts.connectionStateRecovery)return;const i=2===e.type,s=void 0===e.id,o=void 0===(null===(r=t.flags)||void 0===r?void 0:r.volatile);i&&s&&o&&e.data.push(n)}broadcastWithAck(e,t,n,r){var i;if(!(null===(i=null==t?void 0:t.flags)||void 0===i?void 0:i.local)){const i=o();this.ackRequests.set(i,{clientCountCallback:n,ack:r}),this.publish({type:a.BROADCAST,data:{packet:e,requestId:i,opts:c(t)}}),setTimeout((()=>{this.ackRequests.delete(i)}),t.flags.timeout)}super.broadcastWithAck(e,t,n,r)}async addSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.SOCKETS_JOIN,data:{opts:c(e),rooms:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.addSockets(e,t)}async delSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.SOCKETS_LEAVE,data:{opts:c(e),rooms:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.delSockets(e,t)}async disconnectSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.DISCONNECT_SOCKETS,data:{opts:c(e),close:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.disconnectSockets(e,t)}async fetchSockets(e){var t;const[n,r]=await Promise.all([super.fetchSockets(e),this.serverCount()]),i=r-1;if((null===(t=e.flags)||void 0===t?void 0:t.local)||i<=0)return n;const l=o();return new Promise(((t,r)=>{const o=setTimeout((()=>{const e=this.requests.get(l);e&&(r(new Error(`timeout reached: only ${e.current} responses received out of ${e.expected}`)),this.requests.delete(l))}),e.flags.timeout||s),u={type:a.FETCH_SOCKETS,resolve:t,timeout:o,current:0,expected:i,responses:n};this.requests.set(l,u),this.publish({type:a.FETCH_SOCKETS,data:{opts:c(e),requestId:l}})}))}async serverSideEmit(e){if(!("function"==typeof e[e.length-1]))return this.publish({type:a.SERVER_SIDE_EMIT,data:{packet:e}});const t=e.pop(),n=await this.serverCount()-1;if(i('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return t(null,[]);const r=o(),c=setTimeout((()=>{const e=this.requests.get(r);e&&(t(new Error(`timeout reached: only ${e.current} responses received out of ${e.expected}`),e.responses),this.requests.delete(r))}),s),l={type:a.SERVER_SIDE_EMIT,resolve:t,timeout:c,current:0,expected:n,responses:[]};this.requests.set(r,l),this.publish({type:a.SERVER_SIDE_EMIT,data:{requestId:r,packet:e}})}publish(e){this.publishAndReturnOffset(e).catch((e=>{i("[%s] error while publishing message: %s",this.uid,e)}))}publishAndReturnOffset(e){return e.uid=this.uid,e.nsp=this.nsp.name,this.doPublish(e)}publishResponse(e,t){t.uid=this.uid,t.nsp=this.nsp.name,this.doPublishResponse(e,t).catch((e=>{i("[%s] error while publishing response: %s",this.uid,e)}))}}e.ClusterAdapter=u;e.ClusterAdapterWithHeartbeat=class extends u{constructor(e,t){super(e),this.nodesMap=new Map,this.customRequests=new Map,this._opts=Object.assign({heartbeatInterval:5e3,heartbeatTimeout:1e4},t),this.cleanupTimer=setInterval((()=>{const e=Date.now();this.nodesMap.forEach(((t,n)=>{e-t>this._opts.heartbeatTimeout&&(i("[%s] node %s seems down",this.uid,n),this.removeNode(n))}))}),1e3)}init(){this.publish({type:a.INITIAL_HEARTBEAT})}scheduleHeartbeat(){this.heartbeatTimer?this.heartbeatTimer.refresh():this.heartbeatTimer=setTimeout((()=>{this.publish({type:a.HEARTBEAT})}),this._opts.heartbeatInterval)}close(){this.publish({type:a.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer&&clearInterval(this.cleanupTimer)}onMessage(e,t){if(e.uid===this.uid)return i("[%s] ignore message from self",this.uid);switch(e.uid&&"emitter"!==e.uid&&this.nodesMap.set(e.uid,Date.now()),i("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case a.INITIAL_HEARTBEAT:this.publish({type:a.HEARTBEAT});break;case a.HEARTBEAT:break;case a.ADAPTER_CLOSE:this.removeNode(e.uid);break;default:super.onMessage(e,t)}}serverCount(){return Promise.resolve(1+this.nodesMap.size)}publish(e){return this.scheduleHeartbeat(),super.publish(e)}async serverSideEmit(e){if(!("function"==typeof e[e.length-1]))return this.publish({type:a.SERVER_SIDE_EMIT,data:{packet:e}});const t=e.pop(),n=this.nodesMap.size;if(i('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return t(null,[]);const r=o(),c=setTimeout((()=>{const e=this.customRequests.get(r);e&&(t(new Error(`timeout reached: missing ${e.missingUids.size} responses`),e.responses),this.customRequests.delete(r))}),s),l={type:a.SERVER_SIDE_EMIT,resolve:t,timeout:c,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(r,l),this.publish({type:a.SERVER_SIDE_EMIT,data:{requestId:r,packet:e}})}async fetchSockets(e){var t;const[n,r]=await Promise.all([super.fetchSockets({rooms:e.rooms,except:e.except,flags:{local:!0}}),this.serverCount()]),i=r-1;if((null===(t=e.flags)||void 0===t?void 0:t.local)||i<=0)return n;const l=o();return new Promise(((t,r)=>{const i=setTimeout((()=>{const e=this.customRequests.get(l);e&&(r(new Error(`timeout reached: missing ${e.missingUids.size} responses`)),this.customRequests.delete(l))}),e.flags.timeout||s),o={type:a.FETCH_SOCKETS,resolve:t,timeout:i,missingUids:new Set([...this.nodesMap.keys()]),responses:n};this.customRequests.set(l,o),this.publish({type:a.FETCH_SOCKETS,data:{opts:c(e),requestId:l}})}))}onResponse(e){const t=e.data.requestId;switch(i("[%s] received response %s to request %s",this.uid,e.type,t),e.type){case a.FETCH_SOCKETS_RESPONSE:{const n=this.customRequests.get(t);if(!n)return;e.data.sockets.forEach((e=>n.responses.push(e))),n.missingUids.delete(e.uid),0===n.missingUids.size&&(clearTimeout(n.timeout),n.resolve(n.responses),this.customRequests.delete(t));break}case a.SERVER_SIDE_EMIT_RESPONSE:{const n=this.customRequests.get(t);if(!n)return;n.responses.push(e.data.packet),n.missingUids.delete(e.uid),0===n.missingUids.size&&(clearTimeout(n.timeout),n.resolve(null,n.responses),this.customRequests.delete(t));break}default:super.onResponse(e)}}removeNode(e){this.customRequests.forEach(((t,n)=>{t.missingUids.delete(e),0===t.missingUids.size&&(clearTimeout(t.timeout),t.type===a.FETCH_SOCKETS?t.resolve(t.responses):t.type===a.SERVER_SIDE_EMIT&&t.resolve(null,t.responses),this.customRequests.delete(n))})),this.nodesMap.delete(e)}}}(fX),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.MessageType=e.ClusterAdapterWithHeartbeat=e.ClusterAdapter=e.SessionAwareAdapter=e.Adapter=void 0;var t=XQ;Object.defineProperty(e,"Adapter",{enumerable:!0,get:function(){return t.Adapter}}),Object.defineProperty(e,"SessionAwareAdapter",{enumerable:!0,get:function(){return t.SessionAwareAdapter}});var n=fX;Object.defineProperty(e,"ClusterAdapter",{enumerable:!0,get:function(){return n.ClusterAdapter}}),Object.defineProperty(e,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return n.ClusterAdapterWithHeartbeat}}),Object.defineProperty(e,"MessageType",{enumerable:!0,get:function(){return n.MessageType}})}(QQ);var mX=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZQ,"__esModule",{value:!0}),ZQ.ParentNamespace=void 0;const gX=UQ,yX=QQ,vX=(0,mX(ah).default)("socket.io:parent-namespace");class bX extends gX.Namespace{constructor(e){super(e,"/_"+bX.count++),this.children=new Set}_initAdapter(){this.adapter=new _X(this,this.children)}emit(e,...t){return this.children.forEach((n=>{n.emit(e,...t)})),!0}createChild(e){vX("creating child namespace %s",e);const t=new gX.Namespace(this.server,e);if(t._fns=this._fns.slice(0),this.listeners("connect").forEach((e=>t.on("connect",e))),this.listeners("connection").forEach((e=>t.on("connection",e))),this.children.add(t),this.server._opts.cleanupEmptyChildNamespaces){const n=t._remove;t._remove=r=>{n.call(t,r),0===t.sockets.size&&(vX("closing child namespace %s",e),t.adapter.close(),this.server._nsps.delete(t.name),this.children.delete(t))}}return this.server._nsps.set(e,t),this.server.sockets.emitReserved("new_namespace",t),t}fetchSockets(){throw new Error("fetchSockets() is not supported on parent namespaces")}}ZQ.ParentNamespace=bX,bX.count=0;class _X extends yX.Adapter{constructor(e,t){super(e),this.children=t}broadcast(e,t){this.children.forEach((n=>{n.adapter.broadcast(e,t)}))}}var wX={},xX=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wX,"__esModule",{value:!0}),wX.serveFile=wX.restoreAdapter=wX.patchAdapter=void 0;const EX=QQ,SX=s,TX=(0,xX(ah).default)("socket.io:adapter-uws"),DX="",{addAll:kX,del:AX,broadcast:CX}=EX.Adapter.prototype;function RX(e,t,n,r){const i=t.conn.id,s=t.conn.transport.socket;n&&(TX("subscribe connection %s to topic %s",i,e),s.subscribe(e)),r.forEach((t=>{const n=`${e}${DX}${t}`;TX("subscribe connection %s to topic %s",i,n),s.subscribe(n)}))}wX.patchAdapter=function(e){EX.Adapter.prototype.addAll=function(e,t){const n=!this.sids.has(e);kX.call(this,e,t);const r=this.nsp.sockets.get(e);r&&("websocket"!==r.conn.transport.name?n&&r.conn.on("upgrade",(()=>{const t=this.sids.get(e);t&&RX(this.nsp.name,r,n,t)})):RX(this.nsp.name,r,n,t))},EX.Adapter.prototype.del=function(e,t){AX.call(this,e,t);const n=this.nsp.sockets.get(e);if(n&&"websocket"===n.conn.transport.name){const e=n.conn.id,r=n.conn.transport.socket,i=`${this.nsp.name}${DX}${t}`;TX("unsubscribe connection %s from topic %s",e,i),r.unsubscribe(i)}},EX.Adapter.prototype.broadcast=function(t,n){if(!(n.rooms.size<=1&&0===n.except.size))return void CX.call(this,t,n);const r=n.flags||{},i={preEncoded:!0,volatile:r.volatile,compress:r.compress};t.nsp=this.nsp.name;const s=this.encoder.encode(t),o=0===n.rooms.size?this.nsp.name:`${this.nsp.name}${DX}${n.rooms.keys().next().value}`;TX("fast publish to %s",o),s.forEach((t=>{const n="string"!=typeof t;e.publish(o,n?t:"4"+t,n)})),this.apply(n,(e=>{"websocket"!==e.conn.transport.name&&e.client.writeToEngine(s,i)}))}},wX.restoreAdapter=function(){EX.Adapter.prototype.addAll=kX,EX.Adapter.prototype.del=AX,EX.Adapter.prototype.broadcast=CX};wX.serveFile=function(e,t){const{size:n}=(0,SX.statSync)(t),r=(0,SX.createReadStream)(t),i=()=>!r.destroyed&&r.destroy();e.onAborted(i),r.on("data",(t=>{const i=(e=>{const{buffer:t,byteOffset:n,byteLength:r}=e;return t.slice(n,n+r)})(t),s=e.getWriteOffset(),[o,a]=e.tryEnd(i,n);a||o||(r.pause(),e.onWritable((t=>{const[o,a]=e.tryEnd(i.slice(t-s),n);return!a&&o&&r.resume(),o})))})).on("error",(e=>{throw i(),e})).on("end",i)};var OX="4.7.5";!function(e,t){var n=U&&U.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),r=U&&U.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=U&&U.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return r(t,e),t},a=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Namespace=t.Socket=t.Server=void 0;const c=x,l=s,u=T,d=KM,f=h,m=o,g=vG,y=xQ,v=p,b=UQ;Object.defineProperty(t,"Namespace",{enumerable:!0,get:function(){return b.Namespace}});const _=ZQ,w=QQ,E=i(EQ),S=a(ah),D=YQ();Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return D.Socket}});const k=HQ,A=wX,C=a(FZ),R=(0,S.default)("socket.io:server"),O=OX,L=/\.map/;class I extends k.StrictEventEmitter{constructor(e,t={}){super(),this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,"object"==typeof e&&e instanceof Object&&!e.listen&&(t=e,e=void 0),this.path(t.path||"/socket.io"),this.connectTimeout(t.connectTimeout||45e3),this.serveClient(!1!==t.serveClient),this._parser=t.parser||E,this.encoder=new this._parser.Encoder,this.opts=t,t.connectionStateRecovery?(t.connectionStateRecovery=Object.assign({maxDisconnectionDuration:12e4,skipMiddlewares:!0},t.connectionStateRecovery),this.adapter(t.adapter||w.SessionAwareAdapter)):this.adapter(t.adapter||w.Adapter),t.cleanupEmptyChildNamespaces=!!t.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),(e||"number"==typeof e)&&this.attach(e),this.opts.cors&&(this._corsMiddleware=(0,C.default)(this.opts.cors))}get _opts(){return this.opts}serveClient(e){return arguments.length?(this._serveClient=e,this):this._serveClient}_checkNamespace(e,t,n){if(0===this.parentNsps.size)return n(!1);const r=this.parentNsps.keys(),i=()=>{const s=r.next();if(s.done)return n(!1);s.value(e,t,((t,r)=>{if(t||!r)return i();if(this._nsps.has(e))return R("dynamic namespace %s already exists",e),n(this._nsps.get(e));const o=this.parentNsps.get(s.value).createChild(e);R("dynamic namespace %s was created",e),n(o)}))};i()}path(e){if(!arguments.length)return this._path;this._path=e.replace(/\/$/,"");const t=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+t+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(e){return void 0===e?this._connectTimeout:(this._connectTimeout=e,this)}adapter(e){if(!arguments.length)return this._adapter;this._adapter=e;for(const e of this._nsps.values())e._initAdapter();return this}listen(e,t={}){return this.attach(e,t)}attach(e,t={}){if("function"==typeof e){throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.")}if(Number(e)==e&&(e=Number(e)),"number"==typeof e){R("creating http server and binding to %d",e);const t=e;e=c.createServer(((e,t)=>{t.writeHead(404),t.end()})),e.listen(t)}return Object.assign(t,this.opts),t.path=t.path||this._path,this.initEngine(e,t),this}attachApp(e,t={}){Object.assign(t,this.opts),t.path=t.path||this._path,R("creating uWebSockets.js-based engine with opts %j",t);const n=new g.uServer(t);n.attach(e,t),this.bind(n),this._serveClient&&e.get(`${this._path}/*`,((e,t)=>{if(!this.clientPathRegex.test(t.getUrl()))return void t.setYield(!0);const n=t.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),r=L.test(n),i=r?"map":"source",s='"'+O+'"',o="W/"+s,a=t.getHeader("if-none-match");if(a&&(s===a||o===a))return R("serve client %s 304",i),e.writeStatus("304 Not Modified"),void e.end();R("serve client %s",i),e.writeHeader("cache-control","public, max-age=0"),e.writeHeader("content-type","application/"+(r?"json":"javascript")+"; charset=utf-8"),e.writeHeader("etag",s);const c=m.join(__dirname,"../client-dist/",n);(0,A.serveFile)(e,c)})),(0,A.patchAdapter)(e)}initEngine(e,t){R("creating engine.io instance with opts %j",t),this.eio=(0,g.attach)(e,t),this._serveClient&&this.attachServe(e),this.httpServer=e,this.bind(this.eio)}attachServe(e){R("attaching client serving req handler");const t=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("request",((n,r)=>{if(this.clientPathRegex.test(n.url))this._corsMiddleware?this._corsMiddleware(n,r,(()=>{this.serve(n,r)})):this.serve(n,r);else for(let i=0;i<t.length;i++)t[i].call(e,n,r)}))}serve(e,t){const n=e.url.replace(this._path,"").replace(/\?.*$/,""),r=L.test(n),i=r?"map":"source",s='"'+O+'"',o="W/"+s,a=e.headers["if-none-match"];if(a&&(s===a||o===a))return R("serve client %s 304",i),t.writeHead(304),void t.end();R("serve client %s",i),t.setHeader("Cache-Control","public, max-age=0"),t.setHeader("Content-Type","application/"+(r?"json":"javascript")+"; charset=utf-8"),t.setHeader("ETag",s),I.sendFile(n,e,t)}static sendFile(e,t,n){const r=(0,l.createReadStream)(m.join(__dirname,"../client-dist/",e)),i=e=>{e&&n.end()};switch(d(t).encodings(["br","gzip","deflate"])){case"br":n.writeHead(200,{"content-encoding":"br"}),(0,f.pipeline)(r,(0,u.createBrotliCompress)(),n,i);break;case"gzip":n.writeHead(200,{"content-encoding":"gzip"}),(0,f.pipeline)(r,(0,u.createGzip)(),n,i);break;case"deflate":n.writeHead(200,{"content-encoding":"deflate"}),(0,f.pipeline)(r,(0,u.createDeflate)(),n,i);break;default:n.writeHead(200),(0,f.pipeline)(r,n,i)}}bind(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(e){R("incoming connection with id %s",e.id);const t=new y.Client(this,e);return 3===e.protocol&&t.connect("/"),this}of(e,t){if("function"==typeof e||e instanceof RegExp){const n=new _.ParentNamespace(this);return R("initializing parent namespace %s",n.name),"function"==typeof e?this.parentNsps.set(e,n):(this.parentNsps.set(((t,n,r)=>r(null,e.test(t))),n),this.parentNamespacesFromRegExp.set(e,n)),t&&n.on("connect",t),n}"/"!==String(e)[0]&&(e="/"+e);let n=this._nsps.get(e);if(!n){for(const[t,n]of this.parentNamespacesFromRegExp)if(t.test(e))return R("attaching namespace %s to parent namespace %s",e,t),n.createChild(e);R("initializing namespace %s",e),n=new b.Namespace(this,e),this._nsps.set(e,n),"/"!==e&&this.sockets.emitReserved("new_namespace",n)}return t&&n.on("connect",t),n}close(e){this._nsps.forEach((e=>{e.sockets.forEach((e=>{e._onclose("server shutting down")})),e.adapter.close()})),this.engine.close(),(0,A.restoreAdapter)(),this.httpServer?this.httpServer.close(e):e&&e()}use(e){return this.sockets.use(e),this}to(e){return this.sockets.to(e)}in(e){return this.sockets.in(e)}except(e){return this.sockets.except(e)}send(...e){return this.sockets.emit("message",...e),this}write(...e){return this.sockets.emit("message",...e),this}serverSideEmit(e,...t){return this.sockets.serverSideEmit(e,...t)}serverSideEmitWithAck(e,...t){return this.sockets.serverSideEmitWithAck(e,...t)}allSockets(){return this.sockets.allSockets()}compress(e){return this.sockets.compress(e)}get volatile(){return this.sockets.volatile}get local(){return this.sockets.local}timeout(e){return this.sockets.timeout(e)}fetchSockets(){return this.sockets.fetchSockets()}socketsJoin(e){return this.sockets.socketsJoin(e)}socketsLeave(e){return this.sockets.socketsLeave(e)}disconnectSockets(e=!1){return this.sockets.disconnectSockets(e)}}t.Server=I;const P=Object.keys(v.EventEmitter.prototype).filter((function(e){return"function"==typeof v.EventEmitter.prototype[e]}));P.forEach((function(e){I.prototype[e]=function(){return this.sockets[e].apply(this.sockets,arguments)}})),e.exports=(e,t)=>new I(e,t),e.exports.Server=I,e.exports.Namespace=b.Namespace,e.exports.Socket=D.Socket,YQ()}(yG,yG.exports);var LX=q(yG.exports);const{Server:IX,Namespace:PX,Socket:NX}=LX,jX=e=>new Promise(((t,n)=>{const r=a.platform();let i;if("win32"===r)i=`start ${e}`;else if("darwin"===r)i=`open ${e}`;else{if("linux"!==r)return n(new Error(`Unsupported platform: ${r}`));i=`xdg-open ${e}`}d.exec(i,(e=>{if(e)return n(new Error(`Failed to open URL on ${r}: ${e.message}`));t()}))})),FX=process.cwd(),BX=o.join(FX,"src","views");const MX=new ke;MX.name("theme").description("dev, list"),MX.command("create").description("Run development server with Webpack and BrowserSync").action(gf),MX.command("check").description("Run development server with Webpack and BrowserSync").action((async function(){const e=zr("Checking files...").start();try{const t=await qO(BX,"views"),n=Object.keys(t);await HO(n,e)}catch(t){e.fail("Failed to retrieve files"),console.error(_t.red(`Failed to retrieve files - Error: ${t.message}`))}})),MX.command("dev").description("Run development server with Webpack and BrowserSync").action((async()=>{await mf();const{data:e}=await of.get("/apps"),t=e?.apps?.map((e=>({name:e.subdomain,value:e._id}))),n=await yl.prompt({type:"list",name:"app",message:"Choose the theme you want to use",choices:t});var r=e?.apps?.find((e=>e._id===n.app));const i=XU(),s=3e3,a=new x.Server(i),c=new IX(a),l=zr("Start Server").start(),u=process.cwd(),p=o.join(u,"src");o.join(u,"src","assets");const h=o.join(u,"dist");d.exec("npx webpack --config webpack.config.js --mode development --stats errors-warnings",(async e=>{e&&console.log(e,"errrrrr");try{await I.access(p),await I.access(h)}catch{console.error("Error: Required directories do not exist."),process.exit(1)}i.use(XU.static(h)),i.get("/api/auth",((e,t)=>{const{redirect_url:n,token:r}=e.query;if(console.log("🚀 ~ app.get ~ req.query:",e.query),!n||!r)return t.status(400).send("Missing redirect_url or token");t.cookie("token",r,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,expires:new Date(9999,0,1)}),t.redirect(n)})),i.get("*",j(i,{viewsDirectory:p,secretKey:r.secretKey,watch:!0})),zr("REloading");const t=zr("Connected"),n=zr("Budilding");c.on("connection",(e=>{t.stop(),t.start();const r=JU.watch([p,o.join(u,"tailwind.config.js")]);r.on("change",(()=>{r.close(),t.stop(),n.start(),d.exec(`cd ${u} && npx webpack --config webpack.config.js --mode development --stats errors-warnings`,(t=>{if(t)return console.log(t),void n.fail(_t.red("Build failed"));n.succeed(_t.blue("Rebuilt successfully")),e.emit("reload")}))})),e.on("disconnect",(()=>{r.close()}))})),c.on("disconnect",(()=>{console.log(_t.blue("Disconnected")),t.stop(),reloadSpinner.stop()})),a.listen(s,(()=>{l.succeed("Server Started"),console.log("Server running at http://localhost:3000"),jX("http://localhost:3000")}))}))})),MX.command("list").description("List available themes").action((async()=>{const e=zr("Fetching Data...").start();try{const{data:t}=await of.get("/themes");e.stop();const n=t?.themes?.map((e=>({name:e.title,value:e._id}))),r=await yl.prompt({type:"list",name:"selectedThemeId",message:"Choose the theme you want to use:",choices:n}),i=t?.themes.find((e=>e._id===r.selectedThemeId));console.log("🚀 ~ getThemes ~ selectedTheme:",i)}catch(t){e.stop(),console.error("Failed to fetch data:",t)}}));const UX=Object.create(null);UX.open="0",UX.close="1",UX.ping="2",UX.pong="3",UX.message="4",UX.upgrade="5",UX.noop="6";const qX=Object.create(null);Object.keys(UX).forEach((e=>{qX[UX[e]]=e}));const HX={type:"error",data:"parser error"},$X=({type:e,data:t},n,r)=>t instanceof ArrayBuffer||ArrayBuffer.isView(t)?r(n?t:"b"+zX(t,!0).toString("base64")):r(UX[e]+(t||"")),zX=(e,t)=>Buffer.isBuffer(e)||e instanceof Uint8Array&&!t?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength);let WX;const GX=(e,t)=>{if("string"!=typeof e)return{type:"message",data:VX(e,t)};const n=e.charAt(0);if("b"===n){const n=Buffer.from(e.substring(1),"base64");return{type:"message",data:VX(n,t)}}return qX[n]?e.length>1?{type:qX[n],data:e.substring(1)}:{type:qX[n]}:HX},VX=(e,t)=>"arraybuffer"===t?e instanceof ArrayBuffer?e:Buffer.isBuffer(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e.buffer:Buffer.isBuffer(e)?e:Buffer.from(e),KX=String.fromCharCode(30);function YX(){return new TransformStream({transform(e,t){!function(e,t){if(e.data instanceof ArrayBuffer||ArrayBuffer.isView(e.data))return t(zX(e.data,!1));$X(e,!0,(e=>{WX||(WX=new TextEncoder),t(WX.encode(e))}))}(e,(n=>{const r=n.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);const e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&"string"!=typeof e.data&&(i[0]|=128),t.enqueue(i),t.enqueue(n)}))}})}let ZX;function QX(e){return e.reduce(((e,t)=>e+t.length),0)}function XX(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}const JX=global;function eJ(e,...t){return t.reduce(((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t)),{})}const tJ=JX.setTimeout,nJ=JX.clearTimeout;function rJ(e,t){t.useNativeTimers?(e.setTimeoutFn=tJ.bind(JX),e.clearTimeoutFn=nJ.bind(JX)):(e.setTimeoutFn=JX.setTimeout.bind(JX),e.clearTimeoutFn=JX.clearTimeout.bind(JX))}class iJ extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type="TransportError"}}class sJ extends SQ{constructor(e){super(),this.writable=!1,rJ(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,t,n){return super.emitReserved("error",new iJ(e,t,n)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=GX(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){const t=function(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}const oJ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),aJ=64,cJ={};let lJ,uJ=0,pJ=0;function hJ(e){let t="";do{t=oJ[e%aJ]+t,e=Math.floor(e/aJ)}while(e>0);return t}function dJ(){const e=hJ(+new Date);return e!==lJ?(uJ=0,lJ=e):e+"."+hJ(uJ++)}for(;pJ<aJ;pJ++)cJ[oJ[pJ]]=pJ;
377
+ parse:function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},r=t||{},i=e.split(OV),s=r.decode||CV,o=0;o<i.length;o++){var a=i[o],c=a.indexOf("=");if(!(c<0)){var l=a.substr(0,c).trim(),u=a.substr(++c,a.length).trim();'"'==u[0]&&(u=u.slice(1,-1)),null==n[l]&&(n[l]=IV(u,s))}}return n},serialize:function(e,t,n){var r=n||{},i=r.encode||RV;if("function"!=typeof i)throw new TypeError("option encode is invalid");if(!LV.test(e))throw new TypeError("argument name is invalid");var s=i(t);if(s&&!LV.test(s))throw new TypeError("argument val is invalid");var o=e+"="+s;if(null!=r.maxAge){var a=r.maxAge-0;if(isNaN(a)||!isFinite(a))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(a)}if(r.domain){if(!LV.test(r.domain))throw new TypeError("option domain is invalid");o+="; Domain="+r.domain}if(r.path){if(!LV.test(r.path))throw new TypeError("option path is invalid");o+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");o+="; Expires="+r.expires.toUTCString()}r.httpOnly&&(o+="; HttpOnly");r.secure&&(o+="; Secure");if(r.sameSite){switch("string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o}},CV=decodeURIComponent,RV=encodeURIComponent,OV=/; */,LV=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function IV(e,t){try{return t(e)}catch(t){return e}}var PV,NV,jV,FV,BV,MV,UV={exports:{}},qV={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}},HV={exports:{}},$V={exports:{}};function zV(){if(jV)return $V.exports;jV=1;const e="function"==typeof __webpack_require__?__non_webpack_require__:rF;return"function"==typeof e.addon?$V.exports=e.addon.bind(e):$V.exports=function(){if(NV)return PV;NV=1;var e=s,t=o,n=a,r="function"==typeof __webpack_require__?__non_webpack_require__:rF,i=process.config&&process.config.variables||{},c=!!process.env.PREBUILDS_ONLY,l=process.versions.modules,u=process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type?"electron":process.versions&&process.versions.nw?"node-webkit":"node",p=process.env.npm_config_arch||n.arch(),h=process.env.npm_config_platform||n.platform(),d=process.env.LIBC||(function(t){return"linux"===t&&e.existsSync("/etc/alpine-release")}(h)?"musl":"glibc"),f=process.env.ARM_VERSION||("arm64"===p?"8":i.arm_version)||"",m=(process.versions.uv||"").split(".")[0];function g(e){return r(g.resolve(e))}function y(t){try{return e.readdirSync(t)}catch(e){return[]}}function v(e,n){var r=y(e).filter(n);return r[0]&&t.join(e,r[0])}function b(e){return/\.node$/.test(e)}function _(e){var t=e.split("-");if(2===t.length){var n=t[0],r=t[1].split("+");if(n&&r.length&&r.every(Boolean))return{name:e,platform:n,architectures:r}}}function w(e,t){return function(n){return null!=n&&n.platform===e&&n.architectures.includes(t)}}function x(e,t){return e.architectures.length-t.architectures.length}function E(e){var t=e.split("."),n={file:e,specificity:0};if("node"===t.pop()){for(var r=0;r<t.length;r++){var i=t[r];if("node"===i||"electron"===i||"node-webkit"===i)n.runtime=i;else if("napi"===i)n.napi=!0;else if("abi"===i.slice(0,3))n.abi=i.slice(3);else if("uv"===i.slice(0,2))n.uv=i.slice(2);else if("armv"===i.slice(0,4))n.armv=i.slice(4);else{if("glibc"!==i&&"musl"!==i)continue;n.libc=i}n.specificity++}return n}}function S(e,t){return function(n){return!(null==n||n.runtime&&n.runtime!==e&&!function(e){return"node"===e.runtime&&e.napi}(n)||n.abi&&n.abi!==t&&!n.napi||n.uv&&n.uv!==m||n.armv&&n.armv!==f||n.libc&&n.libc!==d)}}function T(e){return function(t,n){return t.runtime!==n.runtime?t.runtime===e?-1:1:t.abi!==n.abi?t.abi?-1:1:t.specificity!==n.specificity?t.specificity>n.specificity?-1:1:0}}return PV=g,g.resolve=g.path=function(e){e=t.resolve(e||".");try{var n=r(t.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[n+"_PREBUILD"]&&(e=process.env[n+"_PREBUILD"])}catch(e){}if(!c){var i=v(t.join(e,"build/Release"),b);if(i)return i;var s=v(t.join(e,"build/Debug"),b);if(s)return s}var o=D(e);if(o)return o;var a=D(t.dirname(process.execPath));if(a)return a;var g=["platform="+h,"arch="+p,"runtime="+u,"abi="+l,"uv="+m,f?"armv="+f:"","libc="+d,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"","function"==typeof __webpack_require__?"webpack=true":""].filter(Boolean).join(" ");throw new Error("No native build was found for "+g+"\n loaded from: "+e+"\n");function D(e){var n=y(t.join(e,"prebuilds")).map(_).filter(w(h,p)).sort(x)[0];if(n){var r=t.join(e,"prebuilds",n.name),i=y(r).map(E).filter(S(u,l)).sort(T(u))[0];return i?t.join(r,i.file):void 0}}},g.parseTags=E,g.matchTags=S,g.compareTags=T,g.parseTuple=_,g.matchTuple=w,g.compareTuples=x,PV}(),$V.exports}const{EMPTY_BUFFER:WV}=qV,GV=Buffer[Symbol.species];function VV(e,t,n,r,i){for(let s=0;s<i;s++)n[r+s]=e[s]^t[3&s]}function KV(e,t){for(let n=0;n<e.length;n++)e[n]^=t[3&n]}if(UV.exports={concat:function(e,t){if(0===e.length)return WV;if(1===e.length)return e[0];const n=Buffer.allocUnsafe(t);let r=0;for(let t=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return r<t?new GV(n.buffer,n.byteOffset,r):n},mask:VV,toArrayBuffer:function(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)},toBuffer:function e(t){if(e.readOnly=!0,Buffer.isBuffer(t))return t;let n;return t instanceof ArrayBuffer?n=new GV(t):ArrayBuffer.isView(t)?n=new GV(t.buffer,t.byteOffset,t.byteLength):(n=Buffer.from(t),e.readOnly=!1),n},unmask:KV},!process.env.WS_NO_BUFFER_UTIL)try{const e=function(){if(MV)return HV.exports;MV=1;try{HV.exports=zV()(__dirname)}catch(e){HV.exports=(BV||(BV=1,FV={mask:(e,t,n,r,i)=>{for(var s=0;s<i;s++)n[r+s]=e[s]^t[3&s]},unmask:(e,t)=>{const n=e.length;for(var r=0;r<n;r++)e[r]^=t[3&r]}}),FV)}return HV.exports}();UV.exports.mask=function(t,n,r,i,s){s<48?VV(t,n,r,i,s):e.mask(t,n,r,i,s)},UV.exports.unmask=function(t,n){t.length<32?KV(t,n):e.unmask(t,n)}}catch(e){}var YV=UV.exports;const ZV=Symbol("kDone"),QV=Symbol("kRun");const XV=T,JV=YV,eK=class{constructor(e){this[ZV]=()=>{this.pending--,this[QV]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[QV]()}[QV](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[ZV])}}},{kStatusCode:tK}=qV,nK=Buffer[Symbol.species],rK=Buffer.from([0,0,255,255]),iK=Symbol("permessage-deflate"),sK=Symbol("total-length"),oK=Symbol("callback"),aK=Symbol("buffers"),cK=Symbol("error");let lK;var uK=class{constructor(e,t,n){if(this._maxPayload=0|n,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!lK){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;lK=new eK(e)}}static get extensionName(){return"permessage-deflate"}offer(){const 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:null==this._options.clientMaxWindowBits&&(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){const e=this._deflate[oK];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,n=e.find((e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits)));if(!n)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(n.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?n.client_max_window_bits=t.clientMaxWindowBits:!0!==n.client_max_window_bits&&!1!==t.clientMaxWindowBits||delete n.client_max_window_bits,n}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((t=>{let n=e[t];if(n.length>1)throw new Error(`Parameter "${t}" must have only a single value`);if(n=n[0],"client_max_window_bits"===t){if(!0!==n){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}else if("server_max_window_bits"===t){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else{if("client_no_context_takeover"!==t&&"server_no_context_takeover"!==t)throw new Error(`Unknown parameter "${t}"`);if(!0!==n)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}e[t]=n}))})),e}decompress(e,t,n){lK.add((r=>{this._decompress(e,t,((e,t)=>{r(),n(e,t)}))}))}compress(e,t,n){lK.add((r=>{this._compress(e,t,((e,t)=>{r(),n(e,t)}))}))}_decompress(e,t,n){const r=this._isServer?"client":"server";if(!this._inflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?XV.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=XV.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[iK]=this,this._inflate[sK]=0,this._inflate[aK]=[],this._inflate.on("error",dK),this._inflate.on("data",hK)}this._inflate[oK]=n,this._inflate.write(e),t&&this._inflate.write(rK),this._inflate.flush((()=>{const e=this._inflate[cK];if(e)return this._inflate.close(),this._inflate=null,void n(e);const i=JV.concat(this._inflate[aK],this._inflate[sK]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[sK]=0,this._inflate[aK]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),n(null,i)}))}_compress(e,t,n){const r=this._isServer?"server":"client";if(!this._deflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?XV.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=XV.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[sK]=0,this._deflate[aK]=[],this._deflate.on("data",pK)}this._deflate[oK]=n,this._deflate.write(e),this._deflate.flush(XV.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=JV.concat(this._deflate[aK],this._deflate[sK]);t&&(e=new nK(e.buffer,e.byteOffset,e.length-4)),this._deflate[oK]=null,this._deflate[sK]=0,this._deflate[aK]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),n(null,e)}))}};function pK(e){this[aK].push(e),this[sK]+=e.length}function hK(e){this[sK]+=e.length,this[iK]._maxPayload<1||this[sK]<=this[iK]._maxPayload?this[aK].push(e):(this[cK]=new RangeError("Max payload size exceeded"),this[cK].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[cK][tK]=1009,this.removeListener("data",hK),this.reset())}function dK(e){this[iK]._inflate=null,e[tK]=1007,this[oK](e)}var fK,mK,gK,yK={exports:{}},vK={exports:{}};const{isUtf8:bK}=v;function _K(e){const t=e.length;let n=0;for(;n<t;)if(128&e[n])if(192==(224&e[n])){if(n+1===t||128!=(192&e[n+1])||192==(254&e[n]))return!1;n+=2}else if(224==(240&e[n])){if(n+2>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}else n++;return!0}if(yK.exports={isValidStatusCode:function(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},isValidUTF8:_K,tokenChars:[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]},bK)yK.exports.isValidUTF8=function(e){return e.length<24?_K(e):bK(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{const e=function(){if(gK)return vK.exports;gK=1;try{vK.exports=zV()(__dirname)}catch(e){vK.exports=(mK||(mK=1,fK=function(e){const t=e.length;let n=0;for(;n<t;)if(128&e[n])if(192==(224&e[n])){if(n+1===t||128!=(192&e[n+1])||192==(254&e[n]))return!1;n+=2}else if(224==(240&e[n])){if(n+2>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}else n++;return!0}),fK)}return vK.exports}();yK.exports.isValidUTF8=function(t){return t.length<32?_K(t):e(t)}}catch(e){}var wK=yK.exports;const{Writable:xK}=h,EK=uK,{BINARY_TYPES:SK,EMPTY_BUFFER:TK,kStatusCode:DK,kWebSocket:kK}=qV,{concat:AK,toArrayBuffer:CK,unmask:RK}=YV,{isValidStatusCode:OK,isValidUTF8:LK}=wK,IK=Buffer[Symbol.species];var PK=class extends xK{constructor(e={}){super(),this._allowSynchronousEvents=void 0===e.allowSynchronousEvents||e.allowSynchronousEvents,this._binaryType=e.binaryType||SK[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=0|e.maxPayload,this._skipUTF8Validation=!!e.skipUTF8Validation,this[kK]=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=0}_write(e,t,n){if(8===this._opcode&&0==this._state)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){const t=this._buffers[0];return this._buffers[0]=new IK(t.buffer,t.byteOffset+e,t.length-e),new IK(t.buffer,t.byteOffset,e)}const t=Buffer.allocUnsafe(e);do{const n=this._buffers[0],r=t.length-e;e>=n.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),r),this._buffers[0]=new IK(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do{switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:return void(this._loop=!1)}}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2)return void(this._loop=!1);const t=this.consume(2);if(48&t[0]){return void e(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"))}const n=!(64&~t[0]);if(!n||this._extensions[EK.extensionName]){if(this._fin=!(128&~t[0]),this._opcode=15&t[0],this._payloadLength=127&t[1],0===this._opcode){if(n){return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}if(!this._fragmented){return void e(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"))}this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented){return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"))}this._compressed=n}else{if(!(this._opcode>7&&this._opcode<11)){return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"))}if(!this._fin){return void e(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"))}if(n){return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength){return void e(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=!(128&~t[1]),this._isServer){if(!this._masked){return void e(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}}else if(this._masked){return void e(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"))}126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(e)}else{e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}}getPayloadLength16(e){this._bufferedBytes<2?this._loop=!1:(this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e))}getPayloadLength64(e){if(this._bufferedBytes<8)return void(this._loop=!1);const t=this.consume(8),n=t.readUInt32BE(0);if(n>Math.pow(2,21)-1){e(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH"))}else this._payloadLength=n*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){e(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"))}else this._masked?this._state=3:this._state=4}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=4)}getData(e){let t=TK;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength)return void(this._loop=!1);t=this.consume(this._payloadLength),this._masked&&this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3]&&RK(t,this._mask)}if(this._opcode>7)this.controlMessage(t,e);else{if(this._compressed)return this._state=5,void this.decompress(t,e);t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}}decompress(e,t){this._extensions[EK.extensionName].decompress(e,this._fin,((e,n)=>{if(e)return t(e);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){const e=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");return void t(e)}this._fragments.push(n)}this.dataMessage(t),0===this._state&&this.startLoop(t)}))}dataMessage(e){if(!this._fin)return void(this._state=0);const t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let r;r="nodebuffer"===this._binaryType?AK(n,t):"arraybuffer"===this._binaryType?CK(AK(n,t)):n,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=0):(this._state=6,setImmediate((()=>{this.emit("message",r,!0),this._state=0,this.startLoop(e)})))}else{const r=AK(n,t);if(!this._skipUTF8Validation&&!LK(r)){const t=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void e(t)}5===this._state||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=0):(this._state=6,setImmediate((()=>{this.emit("message",r,!1),this._state=0,this.startLoop(e)})))}}controlMessage(e,t){if(8!==this._opcode)this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",e),this._state=0):(this._state=6,setImmediate((()=>{this.emit(9===this._opcode?"ping":"pong",e),this._state=0,this.startLoop(t)})));else{if(0===e.length)this._loop=!1,this.emit("conclude",1005,TK),this.end();else{const n=e.readUInt16BE(0);if(!OK(n)){const e=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");return void t(e)}const r=new IK(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!LK(r)){const e=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void t(e)}this._loop=!1,this.emit("conclude",n,r),this.end()}this._state=0}}createError(e,t,n,r,i){this._loop=!1,this._errored=!0;const s=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(s,this.createError),s.code=i,s[DK]=r,s}};const{randomFillSync:NK}=w,jK=uK,{EMPTY_BUFFER:FK}=qV,{isValidStatusCode:BK}=wK,{mask:MK,toBuffer:UK}=YV,qK=Symbol("kByteLength"),HK=Buffer.alloc(4),$K=8192;let zK,WK=$K;var GK=class e{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){let n,r,i=!1,s=2,o=!1;t.mask&&(n=t.maskBuffer||HK,t.generateMask?t.generateMask(n):(WK===$K&&(void 0===zK&&(zK=Buffer.alloc($K)),NK(zK,0,$K),WK=0),n[0]=zK[WK++],n[1]=zK[WK++],n[2]=zK[WK++],n[3]=zK[WK++]),o=!(n[0]|n[1]|n[2]|n[3]),s=6),"string"==typeof e?r=t.mask&&!o||void 0===t[qK]?(e=Buffer.from(e)).length:t[qK]:(r=e.length,i=t.mask&&t.readOnly&&!o);let a=r;r>=65536?(s+=8,a=127):r>125&&(s+=2,a=126);const c=Buffer.allocUnsafe(i?r+s:s);return c[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(c[0]|=64),c[1]=a,126===a?c.writeUInt16BE(r,2):127===a&&(c[2]=c[3]=0,c.writeUIntBE(r,4,6)),t.mask?(c[1]|=128,c[s-4]=n[0],c[s-3]=n[1],c[s-2]=n[2],c[s-1]=n[3],o?[c,e]:i?(MK(e,n,c,s,r),[c]):(MK(e,n,e,0,r),[c,e])):[c,e]}close(t,n,r,i){let s;if(void 0===t)s=FK;else{if("number"!=typeof t||!BK(t))throw new TypeError("First argument must be a valid error code number");if(void 0!==n&&n.length){const e=Buffer.byteLength(n);if(e>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+e),s.writeUInt16BE(t,0),"string"==typeof n?s.write(n,2):s.set(n,2)}else s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0)}const o={[qK]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._deflating?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if("string"==typeof t?(i=Buffer.byteLength(t),s=!1):(i=(t=UK(t)).length,s=UK.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");const o={[qK]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if("string"==typeof t?(i=Buffer.byteLength(t),s=!1):(i=(t=UK(t)).length,s=UK.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");const o={[qK]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){const i=this._extensions[jK.extensionName];let s,o,a=n.binary?2:1,c=n.compress;if("string"==typeof t?(s=Buffer.byteLength(t),o=!1):(s=(t=UK(t)).length,o=UK.readOnly),this._firstFragment?(this._firstFragment=!1,c&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(c=s>=i._threshold),this._compress=c):(c=!1,a=0),n.fin&&(this._firstFragment=!0),i){const e={[qK]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:o,rsv1:c};this._deflating?this.enqueue([this.dispatch,t,this._compress,e,r]):this.dispatch(t,this._compress,e,r)}else this.sendFrame(e.frame(t,{[qK]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:o,rsv1:!1}),r)}dispatch(t,n,r,i){if(!n)return void this.sendFrame(e.frame(t,r),i);const s=this._extensions[jK.extensionName];this._bufferedBytes+=r[qK],this._deflating=!0,s.compress(t,r.fin,((t,n)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof i&&i(e);for(let t=0;t<this._queue.length;t++){const n=this._queue[t],r=n[n.length-1];"function"==typeof r&&r(e)}}else this._bufferedBytes-=r[qK],this._deflating=!1,r.readOnly=!1,this.sendFrame(e.frame(n,r),i),this.dequeue()}))}dequeue(){for(;!this._deflating&&this._queue.length;){const e=this._queue.shift();this._bufferedBytes-=e[3][qK],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][qK],this._queue.push(e)}sendFrame(e,t){2===e.length?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};const{kForOnEventAttribute:VK,kListener:KK}=qV,YK=Symbol("kCode"),ZK=Symbol("kData"),QK=Symbol("kError"),XK=Symbol("kMessage"),JK=Symbol("kReason"),eY=Symbol("kTarget"),tY=Symbol("kType"),nY=Symbol("kWasClean");class rY{constructor(e){this[eY]=null,this[tY]=e}get target(){return this[eY]}get type(){return this[tY]}}Object.defineProperty(rY.prototype,"target",{enumerable:!0}),Object.defineProperty(rY.prototype,"type",{enumerable:!0});class iY extends rY{constructor(e,t={}){super(e),this[YK]=void 0===t.code?0:t.code,this[JK]=void 0===t.reason?"":t.reason,this[nY]=void 0!==t.wasClean&&t.wasClean}get code(){return this[YK]}get reason(){return this[JK]}get wasClean(){return this[nY]}}Object.defineProperty(iY.prototype,"code",{enumerable:!0}),Object.defineProperty(iY.prototype,"reason",{enumerable:!0}),Object.defineProperty(iY.prototype,"wasClean",{enumerable:!0});class sY extends rY{constructor(e,t={}){super(e),this[QK]=void 0===t.error?null:t.error,this[XK]=void 0===t.message?"":t.message}get error(){return this[QK]}get message(){return this[XK]}}Object.defineProperty(sY.prototype,"error",{enumerable:!0}),Object.defineProperty(sY.prototype,"message",{enumerable:!0});class oY extends rY{constructor(e,t={}){super(e),this[ZK]=void 0===t.data?null:t.data}get data(){return this[ZK]}}Object.defineProperty(oY.prototype,"data",{enumerable:!0});const aY={addEventListener(e,t,n={}){for(const r of this.listeners(e))if(!n[VK]&&r[KK]===t&&!r[VK])return;let r;if("message"===e)r=function(e,n){const r=new oY("message",{data:n?e:e.toString()});r[eY]=this,lY(t,this,r)};else if("close"===e)r=function(e,n){const r=new iY("close",{code:e,reason:n.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[eY]=this,lY(t,this,r)};else if("error"===e)r=function(e){const n=new sY("error",{error:e,message:e.message});n[eY]=this,lY(t,this,n)};else{if("open"!==e)return;r=function(){const e=new rY("open");e[eY]=this,lY(t,this,e)}}r[VK]=!!n[VK],r[KK]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(const n of this.listeners(e))if(n[KK]===t&&!n[VK]){this.removeListener(e,n);break}}};var cY={CloseEvent:iY,ErrorEvent:sY,Event:rY,EventTarget:aY,MessageEvent:oY};function lY(e,t,n){"object"==typeof e&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}const{tokenChars:uY}=wK;function pY(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}var hY={format:function(e){return Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>[t].concat(Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>!0===e?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")},parse:function(e){const t=Object.create(null);let n,r,i=Object.create(null),s=!1,o=!1,a=!1,c=-1,l=-1,u=-1,p=0;for(;p<e.length;p++)if(l=e.charCodeAt(p),void 0===n)if(-1===u&&1===uY[l])-1===c&&(c=p);else if(0===p||32!==l&&9!==l){if(59!==l&&44!==l)throw new SyntaxError(`Unexpected character at index ${p}`);{if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p);const r=e.slice(c,u);44===l?(pY(t,r,i),i=Object.create(null)):n=r,c=u=-1}}else-1===u&&-1!==c&&(u=p);else if(void 0===r)if(-1===u&&1===uY[l])-1===c&&(c=p);else if(32===l||9===l)-1===u&&-1!==c&&(u=p);else if(59===l||44===l){if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p),pY(i,e.slice(c,u),!0),44===l&&(pY(t,n,i),i=Object.create(null),n=void 0),c=u=-1}else{if(61!==l||-1===c||-1!==u)throw new SyntaxError(`Unexpected character at index ${p}`);r=e.slice(c,p),c=u=-1}else if(o){if(1!==uY[l])throw new SyntaxError(`Unexpected character at index ${p}`);-1===c?c=p:s||(s=!0),o=!1}else if(a)if(1===uY[l])-1===c&&(c=p);else if(34===l&&-1!==c)a=!1,u=p;else{if(92!==l)throw new SyntaxError(`Unexpected character at index ${p}`);o=!0}else if(34===l&&61===e.charCodeAt(p-1))a=!0;else if(-1===u&&1===uY[l])-1===c&&(c=p);else if(-1===c||32!==l&&9!==l){if(59!==l&&44!==l)throw new SyntaxError(`Unexpected character at index ${p}`);{if(-1===c)throw new SyntaxError(`Unexpected character at index ${p}`);-1===u&&(u=p);let o=e.slice(c,u);s&&(o=o.replace(/\\/g,""),s=!1),pY(i,r,o),44===l&&(pY(t,n,i),i=Object.create(null),n=void 0),r=void 0,c=u=-1}}else-1===u&&(u=p);if(-1===c||a||32===l||9===l)throw new SyntaxError("Unexpected end of input");-1===u&&(u=p);const h=e.slice(c,u);return void 0===n?pY(t,h,i):(void 0===r?pY(i,h,!0):pY(i,r,s?h.replace(/\\/g,""):h),pY(t,n,i)),t}};const dY=p,fY=E,mY=x,gY=O,yY=N,{randomBytes:vY,createHash:bY}=w,{URL:_Y}=S,wY=uK,xY=PK,EY=GK,{BINARY_TYPES:SY,EMPTY_BUFFER:TY,GUID:DY,kForOnEventAttribute:kY,kListener:AY,kStatusCode:CY,kWebSocket:RY,NOOP:OY}=qV,{EventTarget:{addEventListener:LY,removeEventListener:IY}}=cY,{format:PY,parse:NY}=hY,{toBuffer:jY}=YV,FY=Symbol("kAborted"),BY=[8,13],MY=["CONNECTING","OPEN","CLOSING","CLOSED"],UY=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;let qY=class e extends dY{constructor(t,n,r){super(),this._binaryType=SY[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=TY,this._closeTimer=null,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==t?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===n?n=[]:Array.isArray(n)||("object"==typeof n&&null!==n?(r=n,n=[]):n=[n]),$Y(this,t,n,r)):(this._autoPong=r.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){SY.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(t,n,r){const i=new xY({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation});this._sender=new EY(t,this._extensions,r.generateMask),this._receiver=i,this._socket=t,i[RY]=this,t[RY]=this,i.on("conclude",YY),i.on("drain",ZY),i.on("error",QY),i.on("message",JY),i.on("ping",eZ),i.on("pong",tZ),t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",rZ),t.on("data",iZ),t.on("end",sZ),t.on("error",oZ),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=e.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[wY.extensionName]&&this._extensions[wY.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED)if(this.readyState!==e.CONNECTING)this.readyState!==e.CLOSING?(this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();else{const e="WebSocket was closed before the connection was established";VY(this,this._req,e)}}pause(){this.readyState!==e.CONNECTING&&this.readyState!==e.CLOSED&&(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(r=t,t=n=void 0):"function"==typeof n&&(r=n,n=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===e.OPEN?(void 0===n&&(n=!this._isServer),this._sender.ping(t||TY,n,r)):KY(this,t,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(r=t,t=n=void 0):"function"==typeof n&&(r=n,n=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===e.OPEN?(void 0===n&&(n=!this._isServer),this._sender.pong(t||TY,n,r)):KY(this,t,r)}resume(){this.readyState!==e.CONNECTING&&this.readyState!==e.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof n&&(r=n,n={}),"number"==typeof t&&(t=t.toString()),this.readyState!==e.OPEN)return void KY(this,t,r);const i={binary:"string"!=typeof t,mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[wY.extensionName]||(i.compress=!1),this._sender.send(t||TY,i,r)}terminate(){if(this.readyState!==e.CLOSED)if(this.readyState!==e.CONNECTING)this._socket&&(this._readyState=e.CLOSING,this._socket.destroy());else{const e="WebSocket was closed before the connection was established";VY(this,this._req,e)}}};Object.defineProperty(qY,"CONNECTING",{enumerable:!0,value:MY.indexOf("CONNECTING")}),Object.defineProperty(qY.prototype,"CONNECTING",{enumerable:!0,value:MY.indexOf("CONNECTING")}),Object.defineProperty(qY,"OPEN",{enumerable:!0,value:MY.indexOf("OPEN")}),Object.defineProperty(qY.prototype,"OPEN",{enumerable:!0,value:MY.indexOf("OPEN")}),Object.defineProperty(qY,"CLOSING",{enumerable:!0,value:MY.indexOf("CLOSING")}),Object.defineProperty(qY.prototype,"CLOSING",{enumerable:!0,value:MY.indexOf("CLOSING")}),Object.defineProperty(qY,"CLOSED",{enumerable:!0,value:MY.indexOf("CLOSED")}),Object.defineProperty(qY.prototype,"CLOSED",{enumerable:!0,value:MY.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((e=>{Object.defineProperty(qY.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(qY.prototype,`on${e}`,{enumerable:!0,get(){for(const t of this.listeners(e))if(t[kY])return t[AY];return null},set(t){for(const t of this.listeners(e))if(t[kY]){this.removeListener(e,t);break}"function"==typeof t&&this.addEventListener(e,t,{[kY]:!0})}})})),qY.prototype.addEventListener=LY,qY.prototype.removeEventListener=IY;var HY=qY;function $Y(e,t,n,r){const i={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:BY[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,!BY.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${BY.join(", ")})`);let s;if(t instanceof _Y)s=t;else try{s=new _Y(t)}catch(e){throw new SyntaxError(`Invalid URL: ${t}`)}"http:"===s.protocol?s.protocol="ws:":"https:"===s.protocol&&(s.protocol="wss:"),e._url=s.href;const o="wss:"===s.protocol,a="ws+unix:"===s.protocol;let c;if("ws:"===s.protocol||o||a?a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"):c='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"',c){const t=new SyntaxError(c);if(0===e._redirects)throw t;return void zY(e,t)}const l=o?443:80,u=vY(16).toString("base64"),p=o?fY.request:mY.request,h=new Set;let d,f;if(i.createConnection=i.createConnection||(o?GY:WY),i.defaultPort=i.defaultPort||l,i.port=s.port||l,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":u,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(d=new wY(!0!==i.perMessageDeflate?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=PY({[wY.extensionName]:d.offer()})),n.length){for(const e of n){if("string"!=typeof e||!UY.test(e)||h.has(e))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(e)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){const e=i.path.split(":");i.socketPath=e[0],i.path=e[1]}if(i.followRedirects){if(0===e._redirects){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;const t=r&&r.headers;if(r={...r,headers:{}},t)for(const[e,n]of Object.entries(t))r.headers[e.toLowerCase()]=n}else if(0===e.listenerCount("redirect")){const t=a?!!e._originalIpc&&i.socketPath===e._originalHostOrSocketPath:!e._originalIpc&&s.host===e._originalHostOrSocketPath;(!t||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,t||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),f=e._req=p(i),e._redirects&&e.emit("redirect",e.url,f)}else f=e._req=p(i);i.timeout&&f.on("timeout",(()=>{VY(e,f,"Opening handshake has timed out")})),f.on("error",(t=>{null===f||f[FY]||(f=e._req=null,zY(e,t))})),f.on("response",(s=>{const o=s.headers.location,a=s.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects)return void VY(e,f,"Maximum redirects exceeded");let s;f.abort();try{s=new _Y(o,t)}catch(t){const n=new SyntaxError(`Invalid URL: ${o}`);return void zY(e,n)}$Y(e,s,n,r)}else e.emit("unexpected-response",f,s)||VY(e,f,`Unexpected server response: ${s.statusCode}`)})),f.on("upgrade",((t,n,r)=>{if(e.emit("upgrade",t),e.readyState!==qY.CONNECTING)return;f=e._req=null;const s=t.headers.upgrade;if(void 0===s||"websocket"!==s.toLowerCase())return void VY(e,n,"Invalid Upgrade header");const o=bY("sha1").update(u+DY).digest("base64");if(t.headers["sec-websocket-accept"]!==o)return void VY(e,n,"Invalid Sec-WebSocket-Accept header");const a=t.headers["sec-websocket-protocol"];let c;if(void 0!==a?h.size?h.has(a)||(c="Server sent an invalid subprotocol"):c="Server sent a subprotocol but none was requested":h.size&&(c="Server sent no subprotocol"),c)return void VY(e,n,c);a&&(e._protocol=a);const l=t.headers["sec-websocket-extensions"];if(void 0!==l){if(!d){return void VY(e,n,"Server sent a Sec-WebSocket-Extensions header but no extension was requested")}let t;try{t=NY(l)}catch(t){return void VY(e,n,"Invalid Sec-WebSocket-Extensions header")}const r=Object.keys(t);if(1!==r.length||r[0]!==wY.extensionName){return void VY(e,n,"Server indicated an extension that was not requested")}try{d.accept(t[wY.extensionName])}catch(t){return void VY(e,n,"Invalid Sec-WebSocket-Extensions header")}e._extensions[wY.extensionName]=d}e.setSocket(n,r,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})})),i.finishRequest?i.finishRequest(f,e):f.end()}function zY(e,t){e._readyState=qY.CLOSING,e.emit("error",t),e.emitClose()}function WY(e){return e.path=e.socketPath,gY.connect(e)}function GY(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=gY.isIP(e.host)?"":e.host),yY.connect(e)}function VY(e,t,n){e._readyState=qY.CLOSING;const r=new Error(n);Error.captureStackTrace(r,VY),t.setHeader?(t[FY]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(zY,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function KY(e,t,n){if(t){const n=jY(t).length;e._socket?e._sender._bufferedBytes+=n:e._bufferedAmount+=n}if(n){const t=new Error(`WebSocket is not open: readyState ${e.readyState} (${MY[e.readyState]})`);process.nextTick(n,t)}}function YY(e,t){const n=this[RY];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,void 0!==n._socket[RY]&&(n._socket.removeListener("data",iZ),process.nextTick(nZ,n._socket),1005===e?n.close():n.close(e,t))}function ZY(){const e=this[RY];e.isPaused||e._socket.resume()}function QY(e){const t=this[RY];void 0!==t._socket[RY]&&(t._socket.removeListener("data",iZ),process.nextTick(nZ,t._socket),t.close(e[CY])),t.emit("error",e)}function XY(){this[RY].emitClose()}function JY(e,t){this[RY].emit("message",e,t)}function eZ(e){const t=this[RY];t._autoPong&&t.pong(e,!this._isServer,OY),t.emit("ping",e)}function tZ(e){this[RY].emit("pong",e)}function nZ(e){e.resume()}function rZ(){const e=this[RY];let t;this.removeListener("close",rZ),this.removeListener("data",iZ),this.removeListener("end",sZ),e._readyState=qY.CLOSING,this._readableState.endEmitted||e._closeFrameReceived||e._receiver._writableState.errorEmitted||null===(t=e._socket.read())||e._receiver.write(t),e._receiver.end(),this[RY]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",XY),e._receiver.on("finish",XY))}function iZ(e){this[RY]._receiver.write(e)||this.pause()}function sZ(){const e=this[RY];e._readyState=qY.CLOSING,e._receiver.end(),this.end()}function oZ(){const e=this[RY];this.removeListener("error",oZ),this.on("error",OY),e&&(e._readyState=qY.CLOSING,this.destroy())}var aZ=q(HY);const{Duplex:cZ}=h;function lZ(e){e.emit("close")}function uZ(){!this.destroyed&&this._writableState.finished&&this.destroy()}function pZ(e){this.removeListener("error",pZ),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}var hZ=function(e,t){let n=!0;const r=new cZ({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",(function(t,n){const i=!n&&r._readableState.objectMode?t.toString():t;r.push(i)||e.pause()})),e.once("error",(function(e){r.destroyed||(n=!1,r.destroy(e))})),e.once("close",(function(){r.destroyed||r.push(null)})),r._destroy=function(t,i){if(e.readyState===e.CLOSED)return i(t),void process.nextTick(lZ,r);let s=!1;e.once("error",(function(e){s=!0,i(e)})),e.once("close",(function(){s||i(t),process.nextTick(lZ,r)})),n&&e.terminate()},r._final=function(t){e.readyState!==e.CONNECTING?null!==e._socket&&(e._socket._writableState.finished?(t(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",(function(){t()})),e.close())):e.once("open",(function(){r._final(t)}))},r._read=function(){e.isPaused&&e.resume()},r._write=function(t,n,i){e.readyState!==e.CONNECTING?e.send(t,i):e.once("open",(function(){r._write(t,n,i)}))},r.on("end",uZ),r.on("error",pZ),r};const{tokenChars:dZ}=wK;var fZ={parse:function(e){const t=new Set;let n=-1,r=-1,i=0;for(;i<e.length;i++){const s=e.charCodeAt(i);if(-1===r&&1===dZ[s])-1===n&&(n=i);else if(0===i||32!==s&&9!==s){if(44!==s)throw new SyntaxError(`Unexpected character at index ${i}`);{if(-1===n)throw new SyntaxError(`Unexpected character at index ${i}`);-1===r&&(r=i);const s=e.slice(n,r);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);t.add(s),n=r=-1}}else-1===r&&-1!==n&&(r=i)}if(-1===n||-1!==r)throw new SyntaxError("Unexpected end of input");const s=e.slice(n,i);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);return t.add(s),t}};const mZ=p,gZ=x,{createHash:yZ}=w,vZ=hY,bZ=uK,_Z=fZ,wZ=HY,{GUID:xZ,kWebSocket:EZ}=qV,SZ=/^[+/0-9A-Za-z]{22}==$/;var TZ=class extends mZ{constructor(e,t){if(super(),null==(e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:wZ,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(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(null!=e.port?(this._server=gZ.createServer(((e,t)=>{const n=gZ.STATUS_CODES[426];t.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),t.end(n)})),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(const n of Object.keys(t))e.on(n,t[n]);return function(){for(const n of Object.keys(t))e.removeListener(n,t[n])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,n,r)=>{this.handleUpgrade(t,n,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}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(2===this._state)return e&&this.once("close",(()=>{e(new Error("The server is not running"))})),void process.nextTick(DZ,this);if(e&&this.once("close",e),1!==this._state)if(this._state=1,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(DZ,this);else{const e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close((()=>{DZ(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");if((-1!==t?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,r){t.on("error",kZ);const i=e.headers["sec-websocket-key"],s=e.headers.upgrade,o=+e.headers["sec-websocket-version"];if("GET"!==e.method){return void CZ(this,e,t,405,"Invalid HTTP method")}if(void 0===s||"websocket"!==s.toLowerCase()){return void CZ(this,e,t,400,"Invalid Upgrade header")}if(void 0===i||!SZ.test(i)){return void CZ(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header")}if(8!==o&&13!==o){return void CZ(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header")}if(!this.shouldHandle(e))return void AZ(t,400);const a=e.headers["sec-websocket-protocol"];let c=new Set;if(void 0!==a)try{c=_Z.parse(a)}catch(n){return void CZ(this,e,t,400,"Invalid Sec-WebSocket-Protocol header")}const l=e.headers["sec-websocket-extensions"],u={};if(this.options.perMessageDeflate&&void 0!==l){const n=new bZ(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const e=vZ.parse(l);e[bZ.extensionName]&&(n.accept(e[bZ.extensionName]),u[bZ.extensionName]=n)}catch(n){return void CZ(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header")}}if(this.options.verifyClient){const s={origin:e.headers[""+(8===o?"sec-websocket-origin":"origin")],secure:!(!e.socket.authorized&&!e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(s,((s,o,a,l)=>{if(!s)return AZ(t,o||401,a,l);this.completeUpgrade(u,i,c,e,t,n,r)}));if(!this.options.verifyClient(s))return AZ(t,401)}this.completeUpgrade(u,i,c,e,t,n,r)}completeUpgrade(e,t,n,r,i,s,o){if(!i.readable||!i.writable)return i.destroy();if(i[EZ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return AZ(i,503);const a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${yZ("sha1").update(t+xZ).digest("base64")}`],c=new this.options.WebSocket(null,void 0,this.options);if(n.size){const e=this.options.handleProtocols?this.options.handleProtocols(n,r):n.values().next().value;e&&(a.push(`Sec-WebSocket-Protocol: ${e}`),c._protocol=e)}if(e[bZ.extensionName]){const t=e[bZ.extensionName].params,n=vZ.format({[bZ.extensionName]:[t]});a.push(`Sec-WebSocket-Extensions: ${n}`),c._extensions=e}this.emit("headers",a,r),i.write(a.concat("\r\n").join("\r\n")),i.removeListener("error",kZ),c.setSocket(i,s,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(c),c.on("close",(()=>{this.clients.delete(c),this._shouldEmitClose&&!this.clients.size&&process.nextTick(DZ,this)}))),o(c,r)}};function DZ(e){e._state=2,e.emit("close")}function kZ(){this.destroy()}function AZ(e,t,n,r){n=n||gZ.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${gZ.STATUS_CODES[t]}\r\n`+Object.keys(r).map((e=>`${e}: ${r[e]}`)).join("\r\n")+"\r\n\r\n"+n)}function CZ(e,t,n,r,i){if(e.listenerCount("wsClientError")){const r=new Error(i);Error.captureStackTrace(r,CZ),e.emit("wsClientError",r,n,t)}else AZ(n,r,i)}const RZ=HY;RZ.createWebSocketStream=hZ,RZ.Server=TZ,RZ.Receiver=PK,RZ.Sender=GK,RZ.WebSocket=RZ,RZ.WebSocketServer=RZ.Server;var OZ=RZ,LZ={exports:{}},IZ=Object.getOwnPropertySymbols,PZ=Object.prototype.hasOwnProperty,NZ=Object.prototype.propertyIsEnumerable;var jZ=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,r,i=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var o in n=Object(arguments[s]))PZ.call(n,o)&&(i[o]=n[o]);if(IZ){r=IZ(n);for(var a=0;a<r.length;a++)NZ.call(n,r[a])&&(i[r[a]]=n[r[a]])}}return i};!function(){var e=jZ,t=wU,n={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function r(e){return"string"==typeof e||e instanceof String}function i(e,t){if(Array.isArray(t)){for(var n=0;n<t.length;++n)if(i(e,t[n]))return!0;return!1}return r(t)?e===t:t instanceof RegExp?t.test(e):!!t}function s(e,t){var n,s=t.headers.origin,o=[];return e.origin&&"*"!==e.origin?r(e.origin)?(o.push([{key:"Access-Control-Allow-Origin",value:e.origin}]),o.push([{key:"Vary",value:"Origin"}])):(n=i(s,e.origin),o.push([{key:"Access-Control-Allow-Origin",value:!!n&&s}]),o.push([{key:"Vary",value:"Origin"}])):o.push([{key:"Access-Control-Allow-Origin",value:"*"}]),o}function o(e){return!0===e.credentials?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function a(e){var t=e.exposedHeaders;return t?(t.join&&(t=t.join(",")),t&&t.length?{key:"Access-Control-Expose-Headers",value:t}:null):null}function c(e,n){for(var r=0,i=e.length;r<i;r++){var s=e[r];s&&(Array.isArray(s)?c(s,n):"Vary"===s.key&&s.value?t(n,s.value):s.value&&n.setHeader(s.key,s.value))}}LZ.exports=function(t){var r=null;return r="function"==typeof t?t:function(e,n){n(null,t)},function(t,i,l){r(t,(function(r,u){if(r)l(r);else{var p=e({},n,u),h=null;p.origin&&"function"==typeof p.origin?h=p.origin:p.origin&&(h=function(e,t){t(null,p.origin)}),h?h(t.headers.origin,(function(e,n){e||!n?l(e):(p.origin=n,function(e,t,n,r){var i=[];"OPTIONS"===(t.method&&t.method.toUpperCase&&t.method.toUpperCase())?(i.push(s(e,t)),i.push(o(e)),i.push(function(e){var t=e.methods;return t.join&&(t=e.methods.join(",")),{key:"Access-Control-Allow-Methods",value:t}}(e)),i.push(function(e,t){var n=e.allowedHeaders||e.headers,r=[];return n?n.join&&(n=n.join(",")):(n=t.headers["access-control-request-headers"],r.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),n&&n.length&&r.push([{key:"Access-Control-Allow-Headers",value:n}]),r}(e,t)),i.push(function(e){var t=("number"==typeof e.maxAge||e.maxAge)&&e.maxAge.toString();return t&&t.length?{key:"Access-Control-Max-Age",value:t}:null}(e)),i.push(a(e)),c(i,n),e.preflightContinue?r():(n.statusCode=e.optionsSuccessStatus,n.setHeader("Content-Length","0"),n.end())):(i.push(s(e,t)),i.push(o(e)),i.push(a(e)),c(i,n),r())}(p,t,i,l))})):l()}}))}}}();var FZ=LZ.exports;Object.defineProperty(bG,"__esModule",{value:!0}),bG.Server=bG.BaseServer=void 0;const BZ=L,MZ=S,UZ=wG,qZ=xG,HZ=p,$Z=EV,zZ=AV,WZ=OZ,GZ=dV,VZ=TG,KZ=(0,ah.default)("engine"),YZ=Symbol("responseHeaders");class ZZ extends HZ.EventEmitter{constructor(e={}){super(),this.middlewares=[],this.clients={},this.clientsCount=0,this.opts=Object.assign({wsEngine:WZ.Server,pingTimeout:2e4,pingInterval:25e3,upgradeTimeout:1e4,maxHttpBufferSize:1e6,transports:["polling","websocket"],allowUpgrades:!0,httpCompression:{threshold:1024},cors:!1,allowEIO3:!1},e),e.cookie&&(this.opts.cookie=Object.assign({name:"io",path:"/",httpOnly:!1!==e.cookie.path,sameSite:"lax"},e.cookie)),this.opts.cors&&this.use(FZ(this.opts.cors)),e.perMessageDeflate&&(this.opts.perMessageDeflate=Object.assign({threshold:1024},e.perMessageDeflate)),this.init()}_computePath(e){let t=(e.path||"/engine.io").replace(/\/$/,"");return!1!==e.addTrailingSlash&&(t+="/"),t}upgrades(e){return this.opts.allowUpgrades&&qZ.default[e].upgradesTo||[]}verify(e,t,n){const r=e._query.transport;if(!~this.opts.transports.indexOf(r)||"webtransport"===r)return KZ('unknown transport "%s"',r),n(XZ.errors.UNKNOWN_TRANSPORT,{transport:r});const i=function(e){if((e+="").length<1)return!1;if(!tQ[e.charCodeAt(0)])return KZ('invalid header, index 0, char "%s"',e.charCodeAt(0)),!0;if(e.length<2)return!1;if(!tQ[e.charCodeAt(1)])return KZ('invalid header, index 1, char "%s"',e.charCodeAt(1)),!0;if(e.length<3)return!1;if(!tQ[e.charCodeAt(2)])return KZ('invalid header, index 2, char "%s"',e.charCodeAt(2)),!0;if(e.length<4)return!1;if(!tQ[e.charCodeAt(3)])return KZ('invalid header, index 3, char "%s"',e.charCodeAt(3)),!0;for(let t=4;t<e.length;++t)if(!tQ[e.charCodeAt(t)])return KZ('invalid header, index "%i", char "%s"',t,e.charCodeAt(t)),!0;return!1}(e.headers.origin);if(i){const t=e.headers.origin;return e.headers.origin=null,KZ("origin header invalid"),n(XZ.errors.BAD_REQUEST,{name:"INVALID_ORIGIN",origin:t})}const s=e._query.sid;if(!s)return"GET"!==e.method?n(XZ.errors.BAD_HANDSHAKE_METHOD,{method:e.method}):"websocket"!==r||t?this.opts.allowRequest?this.opts.allowRequest(e,((e,t)=>{if(!t)return n(XZ.errors.FORBIDDEN,{message:e});n()})):n():(KZ("invalid transport upgrade"),n(XZ.errors.BAD_REQUEST,{name:"TRANSPORT_HANDSHAKE_ERROR"}));{if(!this.clients.hasOwnProperty(s))return KZ('unknown sid "%s"',s),n(XZ.errors.UNKNOWN_SID,{sid:s});const e=this.clients[s].transport.name;if(!t&&e!==r)return KZ("bad request: unexpected transport without upgrade"),n(XZ.errors.BAD_REQUEST,{name:"TRANSPORT_MISMATCH",transport:r,previousTransport:e})}n()}use(e){this.middlewares.push(e)}_applyMiddlewares(e,t,n){if(0===this.middlewares.length)return KZ("no middleware to apply, skipping"),n();const r=i=>{KZ("applying middleware n°%d",i+1),this.middlewares[i](e,t,(e=>{if(e)return n(e);i+1<this.middlewares.length?r(i+1):n()}))};r(0)}close(){KZ("closing all open clients");for(let e in this.clients)this.clients.hasOwnProperty(e)&&this.clients[e].close(!0);return this.cleanup(),this}generateId(e){return UZ.generateId()}async handshake(e,t,n){const r="4"===t._query.EIO?4:3;if(3===r&&!this.opts.allowEIO3)return KZ("unsupported protocol version"),this.emit("connection_error",{req:t,code:XZ.errors.UNSUPPORTED_PROTOCOL_VERSION,message:XZ.errorMessages[XZ.errors.UNSUPPORTED_PROTOCOL_VERSION],context:{protocol:r}}),void n(XZ.errors.UNSUPPORTED_PROTOCOL_VERSION);let i;try{i=await this.generateId(t)}catch(e){return KZ("error while generating an id"),this.emit("connection_error",{req:t,code:XZ.errors.BAD_REQUEST,message:XZ.errorMessages[XZ.errors.BAD_REQUEST],context:{name:"ID_GENERATION_ERROR",error:e}}),void n(XZ.errors.BAD_REQUEST)}KZ('handshaking client "%s"',i);try{var s=this.createTransport(e,t);"polling"===e?(s.maxHttpBufferSize=this.opts.maxHttpBufferSize,s.httpCompression=this.opts.httpCompression):"websocket"===e&&(s.perMessageDeflate=this.opts.perMessageDeflate)}catch(r){return KZ('error handshaking to transport "%s"',e),this.emit("connection_error",{req:t,code:XZ.errors.BAD_REQUEST,message:XZ.errorMessages[XZ.errors.BAD_REQUEST],context:{name:"TRANSPORT_HANDSHAKE_ERROR",error:r}}),void n(XZ.errors.BAD_REQUEST)}const o=new $Z.Socket(i,this,s,t,r);return s.on("headers",((e,t)=>{!t._query.sid&&(this.opts.cookie&&(e["Set-Cookie"]=[(0,zZ.serialize)(this.opts.cookie.name,i,this.opts.cookie)]),this.emit("initial_headers",e,t)),this.emit("headers",e,t)})),s.onRequest(t),this.clients[i]=o,this.clientsCount++,o.once("close",(()=>{delete this.clients[i],this.clientsCount--})),this.emit("connection",o),s}async onWebTransportSession(e){const t=setTimeout((()=>{KZ("the client failed to establish a bidirectional stream in the given period"),e.close()}),this.opts.upgradeTimeout),n=e.incomingBidirectionalStreams.getReader(),r=await n.read();if(r.done)return void KZ("session is closed");const i=r.value,s=(0,VZ.createPacketDecoderStream)(this.opts.maxHttpBufferSize,"nodebuffer"),o=i.readable.pipeThrough(s).getReader(),{value:a,done:c}=await o.read();if(c)return void KZ("stream is closed");if(clearTimeout(t),"open"!==a.type)return KZ("invalid WebTransport handshake"),e.close();if(void 0===a.data){const t=new GZ.WebTransport(e,i,o),n=UZ.generateId();KZ('handshaking client "%s" (WebTransport)',n);const r=new $Z.Socket(n,this,t,null,4);return this.clients[n]=r,this.clientsCount++,r.once("close",(()=>{delete this.clients[n],this.clientsCount--})),void this.emit("connection",r)}const l=function(e){try{const t=JSON.parse(e);if("string"==typeof t.sid)return t.sid}catch(e){}}(a.data);if(!l)return KZ("invalid WebTransport handshake"),e.close();const u=this.clients[l];if(u)if(u.upgrading)KZ("transport has already been trying to upgrade"),e.close();else if(u.upgraded)KZ("transport had already been upgraded"),e.close();else{KZ("upgrading existing transport");const t=new GZ.WebTransport(e,i,o);u.maybeUpgrade(t)}else KZ("upgrade attempt for closed client"),e.close()}}bG.BaseServer=ZZ,ZZ.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4,UNSUPPORTED_PROTOCOL_VERSION:5},ZZ.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden",5:"Unsupported protocol version"};class QZ{constructor(e,t){this.req=e,this.socket=t,e[YZ]={}}setHeader(e,t){this.req[YZ][e]=t}getHeader(e){return this.req[YZ][e]}removeHeader(e){delete this.req[YZ][e]}write(){}writeHead(){}end(){this.socket.destroy()}}let XZ=class e extends ZZ{init(){~this.opts.transports.indexOf("websocket")&&(this.ws&&this.ws.close(),this.ws=new this.opts.wsEngine({noServer:!0,clientTracking:!1,perMessageDeflate:this.opts.perMessageDeflate,maxPayload:this.opts.maxHttpBufferSize}),"function"==typeof this.ws.on&&this.ws.on("headers",((e,t)=>{const n=t[YZ]||{};delete t[YZ];!t._query.sid&&this.emit("initial_headers",n,t),this.emit("headers",n,t),KZ("writing headers: %j",n),Object.keys(n).forEach((t=>{e.push(`${t}: ${n[t]}`)}))})))}cleanup(){this.ws&&(KZ("closing webSocketServer"),this.ws.close())}prepare(e){e._query||(e._query=~e.url.indexOf("?")?BZ.parse((0,MZ.parse)(e.url).query):{})}createTransport(e,t){return new qZ.default[e](t)}handleRequest(t,n){KZ('handling "%s" http request "%s"',t.method,t.url),this.prepare(t),t.res=n;const r=(r,i)=>{if(void 0!==r)return this.emit("connection_error",{req:t,code:r,message:e.errorMessages[r],context:i}),void JZ(n,r,i);if(t._query.sid)KZ("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{const e=(e,t)=>JZ(n,e,t);this.handshake(t._query.transport,t,e)}};this._applyMiddlewares(t,n,(n=>{n?r(e.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,r)}))}handleUpgrade(t,n,r){this.prepare(t);const i=new QZ(t,n),s=(s,o)=>{if(void 0!==s)return this.emit("connection_error",{req:t,code:s,message:e.errorMessages[s],context:o}),void eQ(n,s,o);const a=Buffer.from(r);r=null,i.writeHead(),this.ws.handleUpgrade(t,n,a,(e=>{this.onWebSocket(t,n,e)}))};this._applyMiddlewares(t,i,(n=>{n?s(e.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,s)}))}onWebSocket(e,t,n){if(n.on("error",i),void 0!==qZ.default[e._query.transport]&&!qZ.default[e._query.transport].prototype.handlesUpgrades)return KZ("transport doesnt handle upgraded requests"),void n.close();const r=e._query.sid;if(e.websocket=n,r){const t=this.clients[r];if(t)if(t.upgrading)KZ("transport has already been trying to upgrade"),n.close();else if(t.upgraded)KZ("transport had already been upgraded"),n.close();else{KZ("upgrading existing transport"),n.removeListener("error",i);const r=this.createTransport(e._query.transport,e);r.perMessageDeflate=this.opts.perMessageDeflate,t.maybeUpgrade(r)}else KZ("upgrade attempt for closed client"),n.close()}else{const n=(e,n)=>eQ(t,e,n);this.handshake(e._query.transport,e,n)}function i(){KZ("websocket error before upgrade")}}attach(e,t={}){const n=this._computePath(t),r=t.destroyUpgradeTimeout||1e3;function i(e){return n===e.url.slice(0,n.length)}const s=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("close",this.close.bind(this)),e.on("listening",this.init.bind(this)),e.on("request",((t,r)=>{if(i(t))KZ('intercepting request for path "%s"',n),this.handleRequest(t,r);else{let n=0;const i=s.length;for(;n<i;n++)s[n].call(e,t,r)}})),~this.opts.transports.indexOf("websocket")&&e.on("upgrade",((e,n,s)=>{i(e)?this.handleUpgrade(e,n,s):!1!==t.destroyUpgrade&&setTimeout((function(){if(n.writable&&n.bytesWritten<=0)return n.on("error",(e=>{KZ("error while destroying upgrade: %s",e.message)})),n.end()}),r)}))}};function JZ(e,t,n){const r=t===XZ.errors.FORBIDDEN?403:400,i=n&&n.message?n.message:XZ.errorMessages[t];e.writeHead(r,{"Content-Type":"application/json"}),e.end(JSON.stringify({code:t,message:i}))}function eQ(e,t,n={}){if(e.on("error",(()=>{KZ("ignoring error from closed connection")})),e.writable){const r=n.message||XZ.errorMessages[t],i=Buffer.byteLength(r);e.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+i+"\r\n\r\n"+r)}e.destroy()}bG.Server=XZ;const tQ=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1];var nQ={},rQ={},iQ={};Object.defineProperty(iQ,"__esModule",{value:!0}),iQ.Polling=void 0;const sQ=SG,oQ=T,aQ=KM,cQ=(0,ah.default)("engine:polling"),lQ={gzip:oQ.createGzip,deflate:oQ.createDeflate};let uQ=class extends sQ.Transport{constructor(e){super(e),this.closeTimeout=3e4}get name(){return"polling"}get supportsFraming(){return!1}onRequest(e){const t=e.res;e.res=null,"get"===e.getMethod()?this.onPollRequest(e,t):"post"===e.getMethod()?this.onDataRequest(e,t):(t.writeStatus("500 Internal Server Error"),t.end())}onPollRequest(e,t){if(this.req)return cQ("request overlap"),this.onError("overlap from client"),t.writeStatus("500 Internal Server Error"),void t.end();cQ("setting request"),this.req=e,this.res=t;e.cleanup=()=>{this.req=this.res=null},t.onAborted((()=>{this.writable=!1,this.onError("poll connection closed prematurely")})),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose&&(cQ("triggering empty send to append close packet"),this.send([{type:"noop"}]))}onDataRequest(e,t){if(this.dataReq)return this.onError("data request overlap from client"),t.writeStatus("500 Internal Server Error"),void t.end();const n=Number(e.headers["content-length"]);if(!n)return this.onError("content-length header required"),void t.writeStatus("411 Length Required").end();if(n>this.maxHttpBufferSize)return this.onError("payload too large"),void t.writeStatus("413 Payload Too Large").end();if("application/octet-stream"===e.headers["content-type"]&&4===this.protocol)return this.onError("invalid content");let r;this.dataReq=e,this.dataRes=t;let i=0;const s={"Content-Type":"text/html"};this.headers(e,s);for(let e in s)t.writeHeader(e,String(s[e]));const o=e=>{this.onData(e.toString()),this.onDataRequestCleanup(),t.cork((()=>{t.end("ok")}))};t.onAborted((()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")})),t.onData(((e,s)=>{const a=i+e.byteLength;if(a>n)return this.onError("content-length mismatch"),void t.close();if(!r){if(s)return void o(Buffer.from(e));r=Buffer.allocUnsafe(n)}if(Buffer.from(e).copy(r,i),s)return a!=n?(this.onError("content-length mismatch"),t.writeStatus("400 Content-Length Mismatch").end(),void this.onDataRequestCleanup()):void o(r);i=a}))}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(e){cQ('received "%s"',e);const t=e=>{if("close"===e.type)return cQ("got xhr close packet"),this.onClose(),!1;this.onPacket(e)};3===this.protocol?this.parser.decodePayload(e,t):this.parser.decodePayload(e).forEach(t)}onClose(){this.writable&&this.send([{type:"noop"}]),super.onClose()}send(e){this.writable=!1,this.shouldClose&&(cQ("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null);const t=t=>{const n=e.some((e=>e.options&&e.options.compress));this.write(t,{compress:n})};3===this.protocol?this.parser.encodePayload(e,this.supportsBinary,t):this.parser.encodePayload(e,t)}write(e,t){cQ('writing "%s"',e),this.doWrite(e,t,(()=>{this.req.cleanup()}))}doWrite(e,t,n){const r="string"==typeof e,i={"Content-Type":r?"text/plain; charset=UTF-8":"application/octet-stream"},s=e=>{this.headers(this.req,i),this.res.cork((()=>{Object.keys(i).forEach((e=>{this.res.writeHeader(e,String(i[e]))})),this.res.end(e)})),n()};if(!this.httpCompression||!t.compress)return void s(e);if((r?Buffer.byteLength(e):e.length)<this.httpCompression.threshold)return void s(e);const o=aQ(this.req).encodings(["gzip","deflate"]);o?this.compress(e,o,((e,t)=>{if(e)return this.res.writeStatus("500 Internal Server Error"),this.res.end(),void n(e);i["Content-Encoding"]=o,s(t)})):s(e)}compress(e,t,n){cQ("compressing");const r=[];let i=0;lQ[t](this.httpCompression).on("error",n).on("data",(function(e){r.push(e),i+=e.length})).on("end",(function(){n(null,Buffer.concat(r,i))})).end(e)}doClose(e){let t;cQ("closing");const n=()=>{clearTimeout(t),e(),this.onClose()};this.writable?(cQ("transport writable - closing right away"),this.send([{type:"close"}]),n()):this.discarded?(cQ("transport discarded - closing right away"),n()):(cQ("transport not writable - buffering orderly close"),this.shouldClose=n,t=setTimeout(n,this.closeTimeout))}headers(e,t){t=t||{};const n=e.headers["user-agent"];return n&&(~n.indexOf(";MSIE")||~n.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0"),t["cache-control"]="no-store",this.emit("headers",t,e),t}};iQ.Polling=uQ;var pQ={};Object.defineProperty(pQ,"__esModule",{value:!0}),pQ.WebSocket=void 0;const hQ=SG,dQ=(0,ah.default)("engine:ws");let fQ=class extends hQ.Transport{constructor(e){super(e),this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){const n=e[t],r=t+1===e.length,i=e=>{const t="string"!=typeof e,n=this.perMessageDeflate&&Buffer.byteLength(e)>this.perMessageDeflate.threshold;dQ('writing "%s"',e),this.socket.send(e,t,n),r&&(this.writable=!0,this.emit("drain"))};n.options&&"string"==typeof n.options.wsPreEncoded?i(n.options.wsPreEncoded):this.parser.encodePacket(n,this.supportsBinary,i)}}doClose(e){dQ("closing"),e&&e(),this.socket.end()}};pQ.WebSocket=fQ,Object.defineProperty(rQ,"__esModule",{value:!0});const mQ=iQ,gQ=pQ;rQ.default={polling:mQ.Polling,websocket:gQ.WebSocket},Object.defineProperty(nQ,"__esModule",{value:!0}),nQ.uServer=void 0;const yQ=bG,vQ=rQ,bQ=(0,ah.default)("engine:uws");class _Q extends yQ.BaseServer{init(){}cleanup(){}prepare(e,t){e.method=e.getMethod().toUpperCase(),e.url=e.getUrl();const n=new URLSearchParams(e.getQuery());e._query=Object.fromEntries(n.entries()),e.headers={},e.forEach(((t,n)=>{e.headers[t]=n})),e.connection={remoteAddress:Buffer.from(t.getRemoteAddressAsText()).toString()},t.onAborted((()=>{bQ("response has been aborted")}))}createTransport(e,t){return new vQ.default[e](t)}attach(e,t={}){const n=this._computePath(t);e.any(n,this.handleRequest.bind(this)).ws(n,{compression:t.compression,idleTimeout:t.idleTimeout,maxBackpressure:t.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:e=>{const t=e.getUserData().transport;t.socket=e,t.writable=!0,t.emit("drain")},message:(e,t,n)=>{e.getUserData().transport.onData(n?t:Buffer.from(t).toString())},close:(e,t,n)=>{e.getUserData().transport.onClose(t,n)}})}_applyMiddlewares(e,t,n){if(0===this.middlewares.length)return n();e.res=new wQ(t),super._applyMiddlewares(e,e.res,(t=>{e.res.writeHead(),n(t)}))}handleRequest(e,t){bQ('handling "%s" http request "%s"',t.getMethod(),t.getUrl()),this.prepare(t,e),t.res=e;const n=(n,r)=>{if(void 0!==n)return this.emit("connection_error",{req:t,code:n,message:yQ.Server.errorMessages[n],context:r}),void this.abortRequest(t.res,n,r);if(t._query.sid)bQ("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{const n=(t,n)=>this.abortRequest(e,t,n);this.handshake(t._query.transport,t,n)}};this._applyMiddlewares(t,e,(e=>{e?n(yQ.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,n)}))}handleUpgrade(e,t,n){bQ("on upgrade"),this.prepare(t,e),t.res=e;const r=async(r,i)=>{if(void 0!==r)return this.emit("connection_error",{req:t,code:r,message:yQ.Server.errorMessages[r],context:i}),void this.abortRequest(e,r,i);const s=t._query.sid;let o;if(s){const n=this.clients[s];n?n.upgrading?(bQ("transport has already been trying to upgrade"),e.close()):n.upgraded?(bQ("transport had already been upgraded"),e.close()):(bQ("upgrading existing transport"),o=this.createTransport(t._query.transport,t),n.maybeUpgrade(o)):(bQ("upgrade attempt for closed client"),e.close())}else if(o=await this.handshake(t._query.transport,t,((t,n)=>this.abortRequest(e,t,n))),!o)return;t.res.writeStatus("101 Switching Protocols"),e.upgrade({transport:o},t.getHeader("sec-websocket-key"),t.getHeader("sec-websocket-protocol"),t.getHeader("sec-websocket-extensions"),n)};this._applyMiddlewares(t,e,(e=>{e?r(yQ.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,r)}))}abortRequest(e,t,n){const r=t===yQ.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",i=n&&n.message?n.message:yQ.Server.errorMessages[t];e.writeStatus(r),e.writeHeader("Content-Type","application/json"),e.end(JSON.stringify({code:t,message:i}))}}nQ.uServer=_Q;class wQ{constructor(e){this.res=e,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(e){e&&this.writeStatus(200===e?"200 OK":"204 No Content")}writeHead(e){this.statusCode=e}setHeader(e,t){Array.isArray(t)?t.forEach((t=>{this.writeHeader(e,t)})):this.writeHeader(e,t)}removeHeader(){}getHeader(){}writeStatus(e){if(!this.isAborted)return this.res.writeStatus(e),this.statusWritten=!0,this.writeBufferedHeaders(),this}writeHeader(e,t){this.isAborted||"Content-Length"!==e&&(this.statusWritten?this.res.writeHeader(e,t):this.headers.push([e,t]))}writeBufferedHeaders(){this.headers.forEach((([e,t])=>{this.res.writeHeader(e,t)}))}end(e){this.isAborted||this.res.cork((()=>{this.statusWritten||this.writeBufferedHeaders(),this.res.end(e)}))}onData(e){this.isAborted||this.res.onData(e)}onAborted(e){this.isAborted||this.res.onAborted((()=>{this.isAborted=!0,e()}))}cork(e){this.isAborted||this.res.cork(e)}}!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.protocol=e.Transport=e.Socket=e.uServer=e.parser=e.attach=e.listen=e.transports=e.Server=void 0;const t=x,n=bG;Object.defineProperty(e,"Server",{enumerable:!0,get:function(){return n.Server}});const r=xG;e.transports=r.default;const i=TG;e.parser=i;var s=nQ;Object.defineProperty(e,"uServer",{enumerable:!0,get:function(){return s.uServer}});var o=EV;Object.defineProperty(e,"Socket",{enumerable:!0,get:function(){return o.Socket}});var a=SG;function c(e,t){const r=new n.Server(t);return r.attach(e,t),r}Object.defineProperty(e,"Transport",{enumerable:!0,get:function(){return a.Transport}}),e.protocol=i.protocol,e.listen=function(e,n,r){"function"==typeof n&&(r=n,n={});const i=(0,t.createServer)((function(e,t){t.writeHead(501),t.end("Not Implemented")})),s=c(i,n);return s.httpServer=i,i.listen(e,r),s},e.attach=c}(vG);var xQ={},EQ={};function SQ(e){if(e)return function(e){for(var t in SQ.prototype)e[t]=SQ.prototype[t];return e}(e)}SQ.prototype.on=SQ.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},SQ.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},SQ.prototype.off=SQ.prototype.removeListener=SQ.prototype.removeAllListeners=SQ.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i=0;i<r.length;i++)if((n=r[i])===t||n.fn===t){r.splice(i,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},SQ.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var i=(n=n.slice(0)).length;r<i;++r)n[r].apply(this,t)}return this},SQ.prototype.emitReserved=SQ.prototype.emit,SQ.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},SQ.prototype.hasListeners=function(e){return!!this.listeners(e).length};var TQ=H(Object.freeze({__proto__:null,Emitter:SQ})),DQ={},kQ={};Object.defineProperty(kQ,"__esModule",{value:!0}),kQ.hasBinary=kQ.isBinary=void 0;const AQ="function"==typeof ArrayBuffer,CQ=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,RQ=Object.prototype.toString,OQ="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===RQ.call(Blob),LQ="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===RQ.call(File);function IQ(e){return AQ&&(e instanceof ArrayBuffer||CQ(e))||OQ&&e instanceof Blob||LQ&&e instanceof File}kQ.isBinary=IQ,kQ.hasBinary=function e(t,n){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(e(t[n]))return!0;return!1}if(IQ(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0);for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return!0;return!1},Object.defineProperty(DQ,"__esModule",{value:!0}),DQ.reconstructPacket=DQ.deconstructPacket=void 0;const PQ=kQ;function NQ(e,t){if(!e)return e;if((0,PQ.isBinary)(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=NQ(e[r],t);return n}if("object"==typeof e&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=NQ(e[r],t));return n}return e}function jQ(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=jQ(e[n],t);else if("object"==typeof e)for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=jQ(e[n],t));return e}DQ.deconstructPacket=function(e){const t=[],n=e.data,r=e;return r.data=NQ(n,t),r.attachments=t.length,{packet:r,buffers:t}},DQ.reconstructPacket=function(e,t){return e.data=jQ(e.data,t),delete e.attachments,e},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Decoder=e.Encoder=e.PacketType=e.protocol=void 0;const t=TQ,n=DQ,r=kQ,i=(0,ah.default)("socket.io-parser"),s=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var o;e.protocol=5,function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(o=e.PacketType||(e.PacketType={}));function a(e){return"[object Object]"===Object.prototype.toString.call(e)}e.Encoder=class{constructor(e){this.replacer=e}encode(e){return i("encoding packet %j",e),e.type!==o.EVENT&&e.type!==o.ACK||!(0,r.hasBinary)(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===o.EVENT?o.BINARY_EVENT:o.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}encodeAsString(e){let t=""+e.type;return e.type!==o.BINARY_EVENT&&e.type!==o.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),i("encoded %j as %s",e,t),t}encodeAsBinary(e){const t=(0,n.deconstructPacket)(e),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}};class c extends t.Emitter{constructor(e){super(),this.reviver=e}add(e){let t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const n=t.type===o.BINARY_EVENT;n||t.type===o.BINARY_ACK?(t.type=n?o.EVENT:o.ACK,this.reconstructor=new l(t),0===t.attachments&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else{if(!(0,r.isBinary)(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t))}}decodeString(e){let t=0;const n={type:Number(e.charAt(0))};if(void 0===o[n.type])throw new Error("unknown packet type "+n.type);if(n.type===o.BINARY_EVENT||n.type===o.BINARY_ACK){const r=t+1;for(;"-"!==e.charAt(++t)&&t!=e.length;);const i=e.substring(r,t);if(i!=Number(i)||"-"!==e.charAt(t))throw new Error("Illegal attachments");n.attachments=Number(i)}if("/"===e.charAt(t+1)){const r=t+1;for(;++t;){if(","===e.charAt(t))break;if(t===e.length)break}n.nsp=e.substring(r,t)}else n.nsp="/";const r=e.charAt(t+1);if(""!==r&&Number(r)==r){const r=t+1;for(;++t;){const n=e.charAt(t);if(null==n||Number(n)!=n){--t;break}if(t===e.length)break}n.id=Number(e.substring(r,t+1))}if(e.charAt(++t)){const r=this.tryParse(e.substr(t));if(!c.isPayloadValid(n.type,r))throw new Error("invalid payload");n.data=r}return i("decoded %s as %j",e,n),n}tryParse(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}static isPayloadValid(e,t){switch(e){case o.CONNECT:return a(t);case o.DISCONNECT:return void 0===t;case o.CONNECT_ERROR:return"string"==typeof t||a(t);case o.EVENT:case o.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===s.indexOf(t[0]));case o.ACK:case o.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}e.Decoder=c;class l{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=(0,n.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}}(EQ),Object.defineProperty(xQ,"__esModule",{value:!0}),xQ.Client=void 0;const FQ=EQ,BQ=S,MQ=ah("socket.io:client");xQ.Client=class{constructor(e,t){this.sockets=new Map,this.nsps=new Map,this.server=e,this.conn=t,this.encoder=e.encoder,this.decoder=new e._parser.Decoder,this.id=t.id,this.setup()}get request(){return this.conn.request}setup(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose),this.connectTimeout=setTimeout((()=>{0===this.nsps.size?(MQ("no namespace joined yet, close the client"),this.close()):MQ("the client has already joined a namespace, nothing to do")}),this.server._connectTimeout)}connect(e,t={}){if(this.server._nsps.has(e))return MQ("connecting to namespace %s",e),this.doConnect(e,t);this.server._checkNamespace(e,t,(n=>{n?this.doConnect(e,t):(MQ("creation of namespace %s was denied",e),this._packet({type:FQ.PacketType.CONNECT_ERROR,nsp:e,data:{message:"Invalid namespace"}}))}))}doConnect(e,t){const n=this.server.of(e);n._add(this,t,(e=>{this.sockets.set(e.id,e),this.nsps.set(n.name,e),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}))}_disconnect(){for(const e of this.sockets.values())e.disconnect();this.sockets.clear(),this.close()}_remove(e){if(this.sockets.has(e.id)){const t=this.sockets.get(e.id).nsp.name;this.sockets.delete(e.id),this.nsps.delete(t)}else MQ("ignoring remove for %s",e.id)}close(){"open"===this.conn.readyState&&(MQ("forcing transport close"),this.conn.close(),this.onclose("forced server close"))}_packet(e,t={}){if("open"!==this.conn.readyState)return void MQ("ignoring packet write %j",e);const n=t.preEncoded?e:this.encoder.encode(e);this.writeToEngine(n,t)}writeToEngine(e,t){if(t.volatile&&!this.conn.transport.writable)return void MQ("volatile packet is discarded since the transport is not currently writable");const n=Array.isArray(e)?e:[e];for(const e of n)this.conn.write(e,t)}ondata(e){try{this.decoder.add(e)}catch(e){MQ("invalid packet format"),this.onerror(e)}}ondecoded(e){let t,n;if(3===this.conn.protocol){const r=BQ.parse(e.nsp,!0);t=r.pathname,n=r.query}else t=e.nsp,n=e.data;const r=this.nsps.get(t);r||e.type!==FQ.PacketType.CONNECT?r&&e.type!==FQ.PacketType.CONNECT&&e.type!==FQ.PacketType.CONNECT_ERROR?process.nextTick((function(){r._onpacket(e)})):(MQ("invalid state (packet type: %s)",e.type),this.close()):this.connect(t,n)}onerror(e){for(const t of this.sockets.values())t._onerror(e);this.conn.close()}onclose(e,t){MQ("client close with reason %s",e),this.destroy();for(const n of this.sockets.values())n._onclose(e,t);this.sockets.clear(),this.decoder.destroy()}destroy(){this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)}};var UQ={},qQ={},HQ={};Object.defineProperty(HQ,"__esModule",{value:!0}),HQ.StrictEventEmitter=void 0;const $Q=p;class zQ extends $Q.EventEmitter{on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}emit(e,...t){return super.emit(e,...t)}emitReserved(e,...t){return super.emit(e,...t)}emitUntyped(e,...t){return super.emit(e,...t)}listeners(e){return super.listeners(e)}}HQ.StrictEventEmitter=zQ;var WQ,GQ,VQ={};function KQ(){if(WQ)return VQ;WQ=1,Object.defineProperty(VQ,"__esModule",{value:!0}),VQ.RemoteSocket=VQ.BroadcastOperator=void 0;const e=YQ(),t=EQ;class n{constructor(e,t=new Set,n=new Set,r={}){this.adapter=e,this.rooms=t,this.exceptRooms=n,this.flags=r}to(e){const t=new Set(this.rooms);return Array.isArray(e)?e.forEach((e=>t.add(e))):t.add(e),new n(this.adapter,t,this.exceptRooms,this.flags)}in(e){return this.to(e)}except(e){const t=new Set(this.exceptRooms);return Array.isArray(e)?e.forEach((e=>t.add(e))):t.add(e),new n(this.adapter,this.rooms,t,this.flags)}compress(e){const t=Object.assign({},this.flags,{compress:e});return new n(this.adapter,this.rooms,this.exceptRooms,t)}get volatile(){const e=Object.assign({},this.flags,{volatile:!0});return new n(this.adapter,this.rooms,this.exceptRooms,e)}get local(){const e=Object.assign({},this.flags,{local:!0});return new n(this.adapter,this.rooms,this.exceptRooms,e)}timeout(e){const t=Object.assign({},this.flags,{timeout:e});return new n(this.adapter,this.rooms,this.exceptRooms,t)}emit(n,...r){if(e.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const i=[n,...r],s={type:t.PacketType.EVENT,data:i};if(!("function"==typeof i[i.length-1]))return this.adapter.broadcast(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;const o=i.pop();let a=!1,c=[];const l=setTimeout((()=>{a=!0,o.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])}),this.flags.timeout);let u=-1,p=0,h=0;const d=()=>{a||u!==p||c.length!==h||(clearTimeout(l),o.apply(this,[null,this.flags.expectSingleResponse?c[0]:c]))};return this.adapter.broadcastWithAck(s,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},(e=>{h+=e,p++,d()}),(e=>{c.push(e),d()})),this.adapter.serverCount().then((e=>{u=e,d()})),!0}emitWithAck(e,...t){return new Promise(((n,r)=>{t.push(((e,t)=>e?(e.responses=t,r(e)):n(t))),this.emit(e,...t)}))}allSockets(){if(!this.adapter)throw new Error("No adapter for this namespace, are you trying to get the list of clients of a dynamic namespace?");return this.adapter.sockets(this.rooms)}fetchSockets(){return this.adapter.fetchSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags}).then((t=>t.map((t=>t instanceof e.Socket?t:new r(this.adapter,t)))))}socketsJoin(e){this.adapter.addSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}socketsLeave(e){this.adapter.delSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(e)?e:[e])}disconnectSockets(e=!1){this.adapter.disconnectSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},e)}}VQ.BroadcastOperator=n;class r{constructor(e,t){this.id=t.id,this.handshake=t.handshake,this.rooms=new Set(t.rooms),this.data=t.data,this.operator=new n(e,new Set([this.id]),new Set,{expectSingleResponse:!0})}timeout(e){return this.operator.timeout(e)}emit(e,...t){return this.operator.emit(e,...t)}join(e){return this.operator.socketsJoin(e)}leave(e){return this.operator.socketsLeave(e)}disconnect(e=!1){return this.operator.disconnectSockets(e),this}}return VQ.RemoteSocket=r,VQ}function YQ(){return GQ||(GQ=1,function(e){var t=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.Socket=e.RESERVED_EVENTS=void 0;const n=EQ,r=t(ah),i=HQ,s=t(wG),o=KQ(),a=(0,r.default)("socket.io:socket"),c=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);function l(){}e.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"]);class u extends i.StrictEventEmitter{constructor(e,t,r,i){super(),this.nsp=e,this.client=t,this.recovered=!1,this.data={},this.connected=!1,this.acks=new Map,this.fns=[],this.flags={},this.server=e.server,this.adapter=this.nsp.adapter,i?(this.id=i.sid,this.pid=i.pid,i.rooms.forEach((e=>this.join(e))),this.data=i.data,i.missedPackets.forEach((e=>{this.packet({type:n.PacketType.EVENT,data:e})})),this.recovered=!0):(3===t.conn.protocol?this.id="/"!==e.name?e.name+"#"+t.id:t.id:this.id=s.default.generateId(),this.server._opts.connectionStateRecovery&&(this.pid=s.default.generateId())),this.handshake=this.buildHandshake(r),this.on("error",l)}buildHandshake(e){var t,n,r,i;return{headers:(null===(t=this.request)||void 0===t?void 0:t.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!(null===(n=this.request)||void 0===n?void 0:n.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:null===(r=this.request)||void 0===r?void 0:r.url,query:(null===(i=this.request)||void 0===i?void 0:i._query)||{},auth:e}}emit(t,...r){if(e.RESERVED_EVENTS.has(t))throw new Error(`"${String(t)}" is a reserved event name`);const i=[t,...r],s={type:n.PacketType.EVENT,data:i};if("function"==typeof i[i.length-1]){const e=this.nsp._ids++;a("emitting packet with ack id %d",e),this.registerAckCallback(e,i.pop()),s.id=e}const o=Object.assign({},this.flags);return this.flags={},this.nsp.server.opts.connectionStateRecovery?this.adapter.broadcast(s,{rooms:new Set([this.id]),except:new Set,flags:o}):(this.notifyOutgoingListeners(s),this.packet(s,o)),!0}emitWithAck(e,...t){const n=void 0!==this.flags.timeout;return new Promise(((r,i)=>{t.push(((e,t)=>n?e?i(e):r(t):r(e))),this.emit(e,...t)}))}registerAckCallback(e,t){const n=this.flags.timeout;if(void 0===n)return void this.acks.set(e,t);const r=setTimeout((()=>{a("event with ack id %d has timed out after %d ms",e,n),this.acks.delete(e),t.call(this,new Error("operation has timed out"))}),n);this.acks.set(e,((...e)=>{clearTimeout(r),t.apply(this,[null,...e])}))}to(e){return this.newBroadcastOperator().to(e)}in(e){return this.newBroadcastOperator().in(e)}except(e){return this.newBroadcastOperator().except(e)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}packet(e,t={}){e.nsp=this.nsp.name,t.compress=!1!==t.compress,this.client._packet(e,t)}join(e){return a("join room %s",e),this.adapter.addAll(this.id,new Set(Array.isArray(e)?e:[e]))}leave(e){return a("leave room %s",e),this.adapter.del(this.id,e)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){a("socket connected - writing packet"),this.connected=!0,this.join(this.id),3===this.conn.protocol?this.packet({type:n.PacketType.CONNECT}):this.packet({type:n.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(e){switch(a("got packet %j",e),e.type){case n.PacketType.EVENT:case n.PacketType.BINARY_EVENT:this.onevent(e);break;case n.PacketType.ACK:case n.PacketType.BINARY_ACK:this.onack(e);break;case n.PacketType.DISCONNECT:this.ondisconnect()}}onevent(e){const t=e.data||[];if(a("emitting event %j",t),null!=e.id&&(a("attaching ack callback to event"),t.push(this.ack(e.id))),this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const n of e)n.apply(this,t)}this.dispatch(t)}ack(e){const t=this;let r=!1;return function(){if(r)return;const i=Array.prototype.slice.call(arguments);a("sending ack %j",i),t.packet({id:e,type:n.PacketType.ACK,data:i}),r=!0}}onack(e){const t=this.acks.get(e.id);"function"==typeof t?(a("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),this.acks.delete(e.id)):a("bad ack %s",e.id)}ondisconnect(){a("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(e){this.emitReserved("error",e)}_onclose(e,t){if(!this.connected)return this;a("closing socket - reason %s",e),this.emitReserved("disconnecting",e,t),this.server._opts.connectionStateRecovery&&c.has(e)&&(a("connection state recovery is enabled for sid %s",this.id),this.adapter.persistSession({sid:this.id,pid:this.pid,rooms:[...this.rooms],data:this.data})),this._cleanup(),this.client._remove(this),this.connected=!1,this.emitReserved("disconnect",e,t)}_cleanup(){this.leaveAll(),this.nsp._remove(this),this.join=l}_error(e){this.packet({type:n.PacketType.CONNECT_ERROR,data:e})}disconnect(e=!1){return this.connected?(e?this.client._disconnect():(this.packet({type:n.PacketType.DISCONNECT}),this._onclose("server namespace disconnect")),this):this}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}get broadcast(){return this.newBroadcastOperator()}get local(){return this.newBroadcastOperator().local}timeout(e){return this.flags.timeout=e,this}dispatch(e){a("dispatching an event %j",e),this.run(e,(t=>{process.nextTick((()=>{if(t)return this._onerror(t);this.connected?super.emitUntyped.apply(this,e):a("ignore packet received after disconnection")}))}))}use(e){return this.fns.push(e),this}run(e,t){const n=this.fns.slice(0);if(!n.length)return t(null);!function r(i){n[i](e,(function(e){return e?t(e):n[i+1]?void r(i+1):t(null)}))}(0)}get disconnected(){return!this.connected}get request(){return this.client.request}get conn(){return this.client.conn}get rooms(){return this.adapter.socketRooms(this.id)||new Set}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const n of t)n.apply(this,e.data)}}newBroadcastOperator(){const e=Object.assign({},this.flags);return this.flags={},new o.BroadcastOperator(this.adapter,new Set,new Set([this.id]),e)}}e.Socket=u}(qQ)),qQ}!function(e){var t=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.Namespace=e.RESERVED_EVENTS=void 0;const n=YQ(),r=HQ,i=t(ah),s=KQ(),o=(0,i.default)("socket.io:namespace");e.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);class a extends r.StrictEventEmitter{constructor(e,t){super(),this.sockets=new Map,this._fns=[],this._ids=0,this.server=e,this.name=t,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this)}use(e){return this._fns.push(e),this}run(e,t){const n=this._fns.slice(0);if(!n.length)return t(null);!function r(i){n[i](e,(function(e){return e?t(e):n[i+1]?void r(i+1):t(null)}))}(0)}to(e){return new s.BroadcastOperator(this.adapter).to(e)}in(e){return new s.BroadcastOperator(this.adapter).in(e)}except(e){return new s.BroadcastOperator(this.adapter).except(e)}async _add(e,t,n){var r;o("adding socket to nsp %s",this.name);const i=await this._createSocket(e,t);if((null===(r=this.server.opts.connectionStateRecovery)||void 0===r?void 0:r.skipMiddlewares)&&i.recovered&&"open"===e.conn.readyState)return this._doConnect(i,n);this.run(i,(t=>{process.nextTick((()=>"open"!==e.conn.readyState?(o("next called after client was closed - ignoring socket"),void i._cleanup()):t?(o("middleware error, sending CONNECT_ERROR packet to the client"),i._cleanup(),3===e.conn.protocol?i._error(t.data||t.message):i._error({message:t.message,data:t.data})):void this._doConnect(i,n)))}))}async _createSocket(e,t){const r=t.pid,i=t.offset;if(this.server.opts.connectionStateRecovery&&"string"==typeof r&&"string"==typeof i){let s;try{s=await this.adapter.restoreSession(r,i)}catch(e){o("error while restoring session: %s",e)}if(s)return o("connection state recovered for sid %s",s.sid),new n.Socket(this,e,t,s)}return new n.Socket(this,e,t)}_doConnect(e,t){this.sockets.set(e.id,e),e._onconnect(),t&&t(e),this.emitReserved("connect",e),this.emitReserved("connection",e)}_remove(e){this.sockets.has(e.id)?this.sockets.delete(e.id):o("ignoring remove for %s",e.id)}emit(e,...t){return new s.BroadcastOperator(this.adapter).emit(e,...t)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}serverSideEmit(t,...n){if(e.RESERVED_EVENTS.has(t))throw new Error(`"${String(t)}" is a reserved event name`);return n.unshift(t),this.adapter.serverSideEmit(n),!0}serverSideEmitWithAck(e,...t){return new Promise(((n,r)=>{t.push(((e,t)=>e?(e.responses=t,r(e)):n(t))),this.serverSideEmit(e,...t)}))}_onServerSideEmit(e){super.emitUntyped.apply(this,e)}allSockets(){return new s.BroadcastOperator(this.adapter).allSockets()}compress(e){return new s.BroadcastOperator(this.adapter).compress(e)}get volatile(){return new s.BroadcastOperator(this.adapter).volatile}get local(){return new s.BroadcastOperator(this.adapter).local}timeout(e){return new s.BroadcastOperator(this.adapter).timeout(e)}fetchSockets(){return new s.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(e){return new s.BroadcastOperator(this.adapter).socketsJoin(e)}socketsLeave(e){return new s.BroadcastOperator(this.adapter).socketsLeave(e)}disconnectSockets(e=!1){return new s.BroadcastOperator(this.adapter).disconnectSockets(e)}}e.Namespace=a}(UQ);var ZQ={},QQ={},XQ={},JQ={};Object.defineProperty(JQ,"__esModule",{value:!0}),JQ.yeast=JQ.decode=JQ.encode=void 0;const eX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),tX=64,nX={};let rX,iX=0,sX=0;function oX(e){let t="";do{t=eX[e%tX]+t,e=Math.floor(e/tX)}while(e>0);return t}for(JQ.encode=oX,JQ.decode=function(e){let t=0;for(sX=0;sX<e.length;sX++)t=t*tX+nX[e.charAt(sX)];return t},JQ.yeast=function(){const e=oX(+new Date);return e!==rX?(iX=0,rX=e):e+"."+oX(iX++)};sX<tX;sX++)nX[eX[sX]]=sX;var aX;Object.defineProperty(XQ,"__esModule",{value:!0}),XQ.SessionAwareAdapter=XQ.Adapter=void 0;const cX=p,lX=JQ,uX=OZ,pX="function"==typeof(null===(aX=null==uX?void 0:uX.Sender)||void 0===aX?void 0:aX.frame);class hX extends cX.EventEmitter{constructor(e){super(),this.nsp=e,this.rooms=new Map,this.sids=new Map,this.encoder=e.server.encoder}init(){}close(){}serverCount(){return Promise.resolve(1)}addAll(e,t){this.sids.has(e)||this.sids.set(e,new Set);for(const n of t)this.sids.get(e).add(n),this.rooms.has(n)||(this.rooms.set(n,new Set),this.emit("create-room",n)),this.rooms.get(n).has(e)||(this.rooms.get(n).add(e),this.emit("join-room",n,e))}del(e,t){this.sids.has(e)&&this.sids.get(e).delete(t),this._del(t,e)}_del(e,t){const n=this.rooms.get(e);if(null!=n){n.delete(t)&&this.emit("leave-room",e,t),0===n.size&&this.rooms.delete(e)&&this.emit("delete-room",e)}}delAll(e){if(this.sids.has(e)){for(const t of this.sids.get(e))this._del(t,e);this.sids.delete(e)}}broadcast(e,t){const n=t.flags||{},r={preEncoded:!0,volatile:n.volatile,compress:n.compress};e.nsp=this.nsp.name;const i=this._encode(e,r);this.apply(t,(t=>{"function"==typeof t.notifyOutgoingListeners&&t.notifyOutgoingListeners(e),t.client.writeToEngine(i,r)}))}broadcastWithAck(e,t,n,r){const i=t.flags||{},s={preEncoded:!0,volatile:i.volatile,compress:i.compress};e.nsp=this.nsp.name,e.id=this.nsp._ids++;const o=this._encode(e,s);let a=0;this.apply(t,(t=>{a++,t.acks.set(e.id,r),"function"==typeof t.notifyOutgoingListeners&&t.notifyOutgoingListeners(e),t.client.writeToEngine(o,s)})),n(a)}_encode(e,t){const n=this.encoder.encode(e);if(pX&&1===n.length&&"string"==typeof n[0]){const e=Buffer.from("4"+n[0]);t.wsPreEncodedFrame=uX.Sender.frame(e,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return n}sockets(e){const t=new Set;return this.apply({rooms:e},(e=>{t.add(e.id)})),Promise.resolve(t)}socketRooms(e){return this.sids.get(e)}fetchSockets(e){const t=[];return this.apply(e,(e=>{t.push(e)})),Promise.resolve(t)}addSockets(e,t){this.apply(e,(e=>{e.join(t)}))}delSockets(e,t){this.apply(e,(e=>{t.forEach((t=>e.leave(t)))}))}disconnectSockets(e,t){this.apply(e,(e=>{e.disconnect(t)}))}apply(e,t){const n=e.rooms,r=this.computeExceptSids(e.except);if(n.size){const e=new Set;for(const i of n)if(this.rooms.has(i))for(const n of this.rooms.get(i)){if(e.has(n)||r.has(n))continue;const i=this.nsp.sockets.get(n);i&&(t(i),e.add(n))}}else for(const[e]of this.sids){if(r.has(e))continue;const n=this.nsp.sockets.get(e);n&&t(n)}}computeExceptSids(e){const t=new Set;if(e&&e.size>0)for(const n of e)this.rooms.has(n)&&this.rooms.get(n).forEach((e=>t.add(e)));return t}serverSideEmit(e){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(e){}restoreSession(e,t){return null}}XQ.Adapter=hX;function dX(e,t){const n=0===t.rooms.size||e.some((e=>t.rooms.has(e))),r=e.every((e=>!t.except.has(e)));return n&&r}XQ.SessionAwareAdapter=class extends hX{constructor(e){super(e),this.nsp=e,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=e.server.opts.connectionStateRecovery.maxDisconnectionDuration;const t=setInterval((()=>{const e=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach(((t,n)=>{t.disconnectedAt<e&&this.sessions.delete(n)}));for(let t=this.packets.length-1;t>=0;t--){if(this.packets[t].emittedAt<e){this.packets.splice(0,t+1);break}}}),6e4);t.unref()}persistSession(e){e.disconnectedAt=Date.now(),this.sessions.set(e.pid,e)}restoreSession(e,t){const n=this.sessions.get(e);if(!n)return null;if(n.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(e),null;const r=this.packets.findIndex((e=>e.id===t));if(-1===r)return null;const i=[];for(let e=r+1;e<this.packets.length;e++){const t=this.packets[e];dX(n.rooms,t.opts)&&i.push(t.data)}return Promise.resolve(Object.assign(Object.assign({},n),{missedPackets:i}))}broadcast(e,t){var n;const r=2===e.type,i=void 0===e.id,s=void 0===(null===(n=t.flags)||void 0===n?void 0:n.volatile);if(r&&i&&s){const n=(0,lX.yeast)();e.data.push(n),this.packets.push({id:n,opts:t,data:e.data,emittedAt:Date.now()})}super.broadcast(e,t)}};var fX={};!function(e){var t=U&&U.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};Object.defineProperty(e,"__esModule",{value:!0}),e.ClusterAdapterWithHeartbeat=e.ClusterAdapter=e.MessageType=void 0;const n=XQ,r=w,i=(0,ah.debug)("socket.io-adapter"),s=5e3;function o(){return(0,r.randomBytes)(8).toString("hex")}var a;function c(e){return{rooms:[...e.rooms],except:[...e.except],flags:e.flags}}function l(e){return{rooms:new Set(e.rooms),except:new Set(e.except),flags:e.flags}}!function(e){e[e.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",e[e.HEARTBEAT=2]="HEARTBEAT",e[e.BROADCAST=3]="BROADCAST",e[e.SOCKETS_JOIN=4]="SOCKETS_JOIN",e[e.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",e[e.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",e[e.FETCH_SOCKETS=7]="FETCH_SOCKETS",e[e.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",e[e.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",e[e.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",e[e.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",e[e.BROADCAST_ACK=12]="BROADCAST_ACK",e[e.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"}(a=e.MessageType||(e.MessageType={}));class u extends n.Adapter{constructor(e){super(e),this.requests=new Map,this.ackRequests=new Map,this.uid=o()}onMessage(e,n){if(e.uid===this.uid)return i("[%s] ignore message from self",this.uid);switch(i("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case a.BROADCAST:if(void 0!==e.data.requestId)super.broadcastWithAck(e.data.packet,l(e.data.opts),(t=>{i("[%s] waiting for %d client acknowledgements",this.uid,t),this.publishResponse(e.uid,{type:a.BROADCAST_CLIENT_COUNT,data:{requestId:e.data.requestId,clientCount:t}})}),(t=>{i("[%s] received acknowledgement with value %j",this.uid,t),this.publishResponse(e.uid,{type:a.BROADCAST_ACK,data:{requestId:e.data.requestId,packet:t}})}));else{const t=e.data.packet,r=l(e.data.opts);this.addOffsetIfNecessary(t,r,n),super.broadcast(t,r)}break;case a.SOCKETS_JOIN:super.addSockets(l(e.data.opts),e.data.rooms);break;case a.SOCKETS_LEAVE:super.delSockets(l(e.data.opts),e.data.rooms);break;case a.DISCONNECT_SOCKETS:super.disconnectSockets(l(e.data.opts),e.data.close);break;case a.FETCH_SOCKETS:i("[%s] calling fetchSockets with opts %j",this.uid,e.data.opts),super.fetchSockets(l(e.data.opts)).then((n=>{this.publishResponse(e.uid,{type:a.FETCH_SOCKETS_RESPONSE,data:{requestId:e.data.requestId,sockets:n.map((e=>{const n=e.handshake,r=t(n,["sessionStore"]);return{id:e.id,handshake:r,rooms:[...e.rooms],data:e.data}}))}})}));break;case a.SERVER_SIDE_EMIT:{const t=e.data.packet;if(!(void 0!==e.data.requestId))return void this.nsp._onServerSideEmit(t);let n=!1;const r=t=>{n||(n=!0,i("[%s] calling acknowledgement with %j",this.uid,t),this.publishResponse(e.uid,{type:a.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:e.data.requestId,packet:t}}))};this.nsp._onServerSideEmit([...t,r]);break}case a.BROADCAST_CLIENT_COUNT:case a.BROADCAST_ACK:case a.FETCH_SOCKETS_RESPONSE:case a.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(e);break;default:i("[%s] unknown message type: %s",this.uid,e.type)}}onResponse(e){var t,n;const r=e.data.requestId;switch(i("[%s] received response %s to request %s",this.uid,e.type,r),e.type){case a.BROADCAST_CLIENT_COUNT:null===(t=this.ackRequests.get(r))||void 0===t||t.clientCountCallback(e.data.clientCount);break;case a.BROADCAST_ACK:null===(n=this.ackRequests.get(r))||void 0===n||n.ack(e.data.packet);break;case a.FETCH_SOCKETS_RESPONSE:{const t=this.requests.get(r);if(!t)return;t.current++,e.data.sockets.forEach((e=>t.responses.push(e))),t.current===t.expected&&(clearTimeout(t.timeout),t.resolve(t.responses),this.requests.delete(r));break}case a.SERVER_SIDE_EMIT_RESPONSE:{const t=this.requests.get(r);if(!t)return;t.current++,t.responses.push(e.data.packet),t.current===t.expected&&(clearTimeout(t.timeout),t.resolve(null,t.responses),this.requests.delete(r));break}default:i("[%s] unknown response type: %s",this.uid,e.type)}}async broadcast(e,t){var n;if(!(null===(n=t.flags)||void 0===n?void 0:n.local))try{const n=await this.publishAndReturnOffset({type:a.BROADCAST,data:{packet:e,opts:c(t)}});this.addOffsetIfNecessary(e,t,n)}catch(e){return i("[%s] error while broadcasting message: %s",this.uid,e.message)}super.broadcast(e,t)}addOffsetIfNecessary(e,t,n){var r;if(!this.nsp.server.opts.connectionStateRecovery)return;const i=2===e.type,s=void 0===e.id,o=void 0===(null===(r=t.flags)||void 0===r?void 0:r.volatile);i&&s&&o&&e.data.push(n)}broadcastWithAck(e,t,n,r){var i;if(!(null===(i=null==t?void 0:t.flags)||void 0===i?void 0:i.local)){const i=o();this.ackRequests.set(i,{clientCountCallback:n,ack:r}),this.publish({type:a.BROADCAST,data:{packet:e,requestId:i,opts:c(t)}}),setTimeout((()=>{this.ackRequests.delete(i)}),t.flags.timeout)}super.broadcastWithAck(e,t,n,r)}async addSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.SOCKETS_JOIN,data:{opts:c(e),rooms:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.addSockets(e,t)}async delSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.SOCKETS_LEAVE,data:{opts:c(e),rooms:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.delSockets(e,t)}async disconnectSockets(e,t){var n;if(!(null===(n=e.flags)||void 0===n?void 0:n.local))try{await this.publishAndReturnOffset({type:a.DISCONNECT_SOCKETS,data:{opts:c(e),close:t}})}catch(e){i("[%s] error while publishing message: %s",this.uid,e.message)}super.disconnectSockets(e,t)}async fetchSockets(e){var t;const[n,r]=await Promise.all([super.fetchSockets(e),this.serverCount()]),i=r-1;if((null===(t=e.flags)||void 0===t?void 0:t.local)||i<=0)return n;const l=o();return new Promise(((t,r)=>{const o=setTimeout((()=>{const e=this.requests.get(l);e&&(r(new Error(`timeout reached: only ${e.current} responses received out of ${e.expected}`)),this.requests.delete(l))}),e.flags.timeout||s),u={type:a.FETCH_SOCKETS,resolve:t,timeout:o,current:0,expected:i,responses:n};this.requests.set(l,u),this.publish({type:a.FETCH_SOCKETS,data:{opts:c(e),requestId:l}})}))}async serverSideEmit(e){if(!("function"==typeof e[e.length-1]))return this.publish({type:a.SERVER_SIDE_EMIT,data:{packet:e}});const t=e.pop(),n=await this.serverCount()-1;if(i('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return t(null,[]);const r=o(),c=setTimeout((()=>{const e=this.requests.get(r);e&&(t(new Error(`timeout reached: only ${e.current} responses received out of ${e.expected}`),e.responses),this.requests.delete(r))}),s),l={type:a.SERVER_SIDE_EMIT,resolve:t,timeout:c,current:0,expected:n,responses:[]};this.requests.set(r,l),this.publish({type:a.SERVER_SIDE_EMIT,data:{requestId:r,packet:e}})}publish(e){this.publishAndReturnOffset(e).catch((e=>{i("[%s] error while publishing message: %s",this.uid,e)}))}publishAndReturnOffset(e){return e.uid=this.uid,e.nsp=this.nsp.name,this.doPublish(e)}publishResponse(e,t){t.uid=this.uid,t.nsp=this.nsp.name,this.doPublishResponse(e,t).catch((e=>{i("[%s] error while publishing response: %s",this.uid,e)}))}}e.ClusterAdapter=u;e.ClusterAdapterWithHeartbeat=class extends u{constructor(e,t){super(e),this.nodesMap=new Map,this.customRequests=new Map,this._opts=Object.assign({heartbeatInterval:5e3,heartbeatTimeout:1e4},t),this.cleanupTimer=setInterval((()=>{const e=Date.now();this.nodesMap.forEach(((t,n)=>{e-t>this._opts.heartbeatTimeout&&(i("[%s] node %s seems down",this.uid,n),this.removeNode(n))}))}),1e3)}init(){this.publish({type:a.INITIAL_HEARTBEAT})}scheduleHeartbeat(){this.heartbeatTimer?this.heartbeatTimer.refresh():this.heartbeatTimer=setTimeout((()=>{this.publish({type:a.HEARTBEAT})}),this._opts.heartbeatInterval)}close(){this.publish({type:a.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer&&clearInterval(this.cleanupTimer)}onMessage(e,t){if(e.uid===this.uid)return i("[%s] ignore message from self",this.uid);switch(e.uid&&"emitter"!==e.uid&&this.nodesMap.set(e.uid,Date.now()),i("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case a.INITIAL_HEARTBEAT:this.publish({type:a.HEARTBEAT});break;case a.HEARTBEAT:break;case a.ADAPTER_CLOSE:this.removeNode(e.uid);break;default:super.onMessage(e,t)}}serverCount(){return Promise.resolve(1+this.nodesMap.size)}publish(e){return this.scheduleHeartbeat(),super.publish(e)}async serverSideEmit(e){if(!("function"==typeof e[e.length-1]))return this.publish({type:a.SERVER_SIDE_EMIT,data:{packet:e}});const t=e.pop(),n=this.nodesMap.size;if(i('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return t(null,[]);const r=o(),c=setTimeout((()=>{const e=this.customRequests.get(r);e&&(t(new Error(`timeout reached: missing ${e.missingUids.size} responses`),e.responses),this.customRequests.delete(r))}),s),l={type:a.SERVER_SIDE_EMIT,resolve:t,timeout:c,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(r,l),this.publish({type:a.SERVER_SIDE_EMIT,data:{requestId:r,packet:e}})}async fetchSockets(e){var t;const[n,r]=await Promise.all([super.fetchSockets({rooms:e.rooms,except:e.except,flags:{local:!0}}),this.serverCount()]),i=r-1;if((null===(t=e.flags)||void 0===t?void 0:t.local)||i<=0)return n;const l=o();return new Promise(((t,r)=>{const i=setTimeout((()=>{const e=this.customRequests.get(l);e&&(r(new Error(`timeout reached: missing ${e.missingUids.size} responses`)),this.customRequests.delete(l))}),e.flags.timeout||s),o={type:a.FETCH_SOCKETS,resolve:t,timeout:i,missingUids:new Set([...this.nodesMap.keys()]),responses:n};this.customRequests.set(l,o),this.publish({type:a.FETCH_SOCKETS,data:{opts:c(e),requestId:l}})}))}onResponse(e){const t=e.data.requestId;switch(i("[%s] received response %s to request %s",this.uid,e.type,t),e.type){case a.FETCH_SOCKETS_RESPONSE:{const n=this.customRequests.get(t);if(!n)return;e.data.sockets.forEach((e=>n.responses.push(e))),n.missingUids.delete(e.uid),0===n.missingUids.size&&(clearTimeout(n.timeout),n.resolve(n.responses),this.customRequests.delete(t));break}case a.SERVER_SIDE_EMIT_RESPONSE:{const n=this.customRequests.get(t);if(!n)return;n.responses.push(e.data.packet),n.missingUids.delete(e.uid),0===n.missingUids.size&&(clearTimeout(n.timeout),n.resolve(null,n.responses),this.customRequests.delete(t));break}default:super.onResponse(e)}}removeNode(e){this.customRequests.forEach(((t,n)=>{t.missingUids.delete(e),0===t.missingUids.size&&(clearTimeout(t.timeout),t.type===a.FETCH_SOCKETS?t.resolve(t.responses):t.type===a.SERVER_SIDE_EMIT&&t.resolve(null,t.responses),this.customRequests.delete(n))})),this.nodesMap.delete(e)}}}(fX),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.MessageType=e.ClusterAdapterWithHeartbeat=e.ClusterAdapter=e.SessionAwareAdapter=e.Adapter=void 0;var t=XQ;Object.defineProperty(e,"Adapter",{enumerable:!0,get:function(){return t.Adapter}}),Object.defineProperty(e,"SessionAwareAdapter",{enumerable:!0,get:function(){return t.SessionAwareAdapter}});var n=fX;Object.defineProperty(e,"ClusterAdapter",{enumerable:!0,get:function(){return n.ClusterAdapter}}),Object.defineProperty(e,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return n.ClusterAdapterWithHeartbeat}}),Object.defineProperty(e,"MessageType",{enumerable:!0,get:function(){return n.MessageType}})}(QQ);var mX=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZQ,"__esModule",{value:!0}),ZQ.ParentNamespace=void 0;const gX=UQ,yX=QQ,vX=(0,mX(ah).default)("socket.io:parent-namespace");class bX extends gX.Namespace{constructor(e){super(e,"/_"+bX.count++),this.children=new Set}_initAdapter(){this.adapter=new _X(this,this.children)}emit(e,...t){return this.children.forEach((n=>{n.emit(e,...t)})),!0}createChild(e){vX("creating child namespace %s",e);const t=new gX.Namespace(this.server,e);if(t._fns=this._fns.slice(0),this.listeners("connect").forEach((e=>t.on("connect",e))),this.listeners("connection").forEach((e=>t.on("connection",e))),this.children.add(t),this.server._opts.cleanupEmptyChildNamespaces){const n=t._remove;t._remove=r=>{n.call(t,r),0===t.sockets.size&&(vX("closing child namespace %s",e),t.adapter.close(),this.server._nsps.delete(t.name),this.children.delete(t))}}return this.server._nsps.set(e,t),this.server.sockets.emitReserved("new_namespace",t),t}fetchSockets(){throw new Error("fetchSockets() is not supported on parent namespaces")}}ZQ.ParentNamespace=bX,bX.count=0;class _X extends yX.Adapter{constructor(e,t){super(e),this.children=t}broadcast(e,t){this.children.forEach((n=>{n.adapter.broadcast(e,t)}))}}var wX={},xX=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wX,"__esModule",{value:!0}),wX.serveFile=wX.restoreAdapter=wX.patchAdapter=void 0;const EX=QQ,SX=s,TX=(0,xX(ah).default)("socket.io:adapter-uws"),DX="",{addAll:kX,del:AX,broadcast:CX}=EX.Adapter.prototype;function RX(e,t,n,r){const i=t.conn.id,s=t.conn.transport.socket;n&&(TX("subscribe connection %s to topic %s",i,e),s.subscribe(e)),r.forEach((t=>{const n=`${e}${DX}${t}`;TX("subscribe connection %s to topic %s",i,n),s.subscribe(n)}))}wX.patchAdapter=function(e){EX.Adapter.prototype.addAll=function(e,t){const n=!this.sids.has(e);kX.call(this,e,t);const r=this.nsp.sockets.get(e);r&&("websocket"!==r.conn.transport.name?n&&r.conn.on("upgrade",(()=>{const t=this.sids.get(e);t&&RX(this.nsp.name,r,n,t)})):RX(this.nsp.name,r,n,t))},EX.Adapter.prototype.del=function(e,t){AX.call(this,e,t);const n=this.nsp.sockets.get(e);if(n&&"websocket"===n.conn.transport.name){const e=n.conn.id,r=n.conn.transport.socket,i=`${this.nsp.name}${DX}${t}`;TX("unsubscribe connection %s from topic %s",e,i),r.unsubscribe(i)}},EX.Adapter.prototype.broadcast=function(t,n){if(!(n.rooms.size<=1&&0===n.except.size))return void CX.call(this,t,n);const r=n.flags||{},i={preEncoded:!0,volatile:r.volatile,compress:r.compress};t.nsp=this.nsp.name;const s=this.encoder.encode(t),o=0===n.rooms.size?this.nsp.name:`${this.nsp.name}${DX}${n.rooms.keys().next().value}`;TX("fast publish to %s",o),s.forEach((t=>{const n="string"!=typeof t;e.publish(o,n?t:"4"+t,n)})),this.apply(n,(e=>{"websocket"!==e.conn.transport.name&&e.client.writeToEngine(s,i)}))}},wX.restoreAdapter=function(){EX.Adapter.prototype.addAll=kX,EX.Adapter.prototype.del=AX,EX.Adapter.prototype.broadcast=CX};wX.serveFile=function(e,t){const{size:n}=(0,SX.statSync)(t),r=(0,SX.createReadStream)(t),i=()=>!r.destroyed&&r.destroy();e.onAborted(i),r.on("data",(t=>{const i=(e=>{const{buffer:t,byteOffset:n,byteLength:r}=e;return t.slice(n,n+r)})(t),s=e.getWriteOffset(),[o,a]=e.tryEnd(i,n);a||o||(r.pause(),e.onWritable((t=>{const[o,a]=e.tryEnd(i.slice(t-s),n);return!a&&o&&r.resume(),o})))})).on("error",(e=>{throw i(),e})).on("end",i)};var OX="4.7.5";!function(e,t){var n=U&&U.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),r=U&&U.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=U&&U.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return r(t,e),t},a=U&&U.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Namespace=t.Socket=t.Server=void 0;const c=x,l=s,u=T,d=KM,f=h,m=o,g=vG,y=xQ,v=p,b=UQ;Object.defineProperty(t,"Namespace",{enumerable:!0,get:function(){return b.Namespace}});const _=ZQ,w=QQ,E=i(EQ),S=a(ah),D=YQ();Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return D.Socket}});const k=HQ,A=wX,C=a(FZ),R=(0,S.default)("socket.io:server"),O=OX,L=/\.map/;class I extends k.StrictEventEmitter{constructor(e,t={}){super(),this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,"object"==typeof e&&e instanceof Object&&!e.listen&&(t=e,e=void 0),this.path(t.path||"/socket.io"),this.connectTimeout(t.connectTimeout||45e3),this.serveClient(!1!==t.serveClient),this._parser=t.parser||E,this.encoder=new this._parser.Encoder,this.opts=t,t.connectionStateRecovery?(t.connectionStateRecovery=Object.assign({maxDisconnectionDuration:12e4,skipMiddlewares:!0},t.connectionStateRecovery),this.adapter(t.adapter||w.SessionAwareAdapter)):this.adapter(t.adapter||w.Adapter),t.cleanupEmptyChildNamespaces=!!t.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),(e||"number"==typeof e)&&this.attach(e),this.opts.cors&&(this._corsMiddleware=(0,C.default)(this.opts.cors))}get _opts(){return this.opts}serveClient(e){return arguments.length?(this._serveClient=e,this):this._serveClient}_checkNamespace(e,t,n){if(0===this.parentNsps.size)return n(!1);const r=this.parentNsps.keys(),i=()=>{const s=r.next();if(s.done)return n(!1);s.value(e,t,((t,r)=>{if(t||!r)return i();if(this._nsps.has(e))return R("dynamic namespace %s already exists",e),n(this._nsps.get(e));const o=this.parentNsps.get(s.value).createChild(e);R("dynamic namespace %s was created",e),n(o)}))};i()}path(e){if(!arguments.length)return this._path;this._path=e.replace(/\/$/,"");const t=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+t+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(e){return void 0===e?this._connectTimeout:(this._connectTimeout=e,this)}adapter(e){if(!arguments.length)return this._adapter;this._adapter=e;for(const e of this._nsps.values())e._initAdapter();return this}listen(e,t={}){return this.attach(e,t)}attach(e,t={}){if("function"==typeof e){throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.")}if(Number(e)==e&&(e=Number(e)),"number"==typeof e){R("creating http server and binding to %d",e);const t=e;e=c.createServer(((e,t)=>{t.writeHead(404),t.end()})),e.listen(t)}return Object.assign(t,this.opts),t.path=t.path||this._path,this.initEngine(e,t),this}attachApp(e,t={}){Object.assign(t,this.opts),t.path=t.path||this._path,R("creating uWebSockets.js-based engine with opts %j",t);const n=new g.uServer(t);n.attach(e,t),this.bind(n),this._serveClient&&e.get(`${this._path}/*`,((e,t)=>{if(!this.clientPathRegex.test(t.getUrl()))return void t.setYield(!0);const n=t.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),r=L.test(n),i=r?"map":"source",s='"'+O+'"',o="W/"+s,a=t.getHeader("if-none-match");if(a&&(s===a||o===a))return R("serve client %s 304",i),e.writeStatus("304 Not Modified"),void e.end();R("serve client %s",i),e.writeHeader("cache-control","public, max-age=0"),e.writeHeader("content-type","application/"+(r?"json":"javascript")+"; charset=utf-8"),e.writeHeader("etag",s);const c=m.join(__dirname,"../client-dist/",n);(0,A.serveFile)(e,c)})),(0,A.patchAdapter)(e)}initEngine(e,t){R("creating engine.io instance with opts %j",t),this.eio=(0,g.attach)(e,t),this._serveClient&&this.attachServe(e),this.httpServer=e,this.bind(this.eio)}attachServe(e){R("attaching client serving req handler");const t=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("request",((n,r)=>{if(this.clientPathRegex.test(n.url))this._corsMiddleware?this._corsMiddleware(n,r,(()=>{this.serve(n,r)})):this.serve(n,r);else for(let i=0;i<t.length;i++)t[i].call(e,n,r)}))}serve(e,t){const n=e.url.replace(this._path,"").replace(/\?.*$/,""),r=L.test(n),i=r?"map":"source",s='"'+O+'"',o="W/"+s,a=e.headers["if-none-match"];if(a&&(s===a||o===a))return R("serve client %s 304",i),t.writeHead(304),void t.end();R("serve client %s",i),t.setHeader("Cache-Control","public, max-age=0"),t.setHeader("Content-Type","application/"+(r?"json":"javascript")+"; charset=utf-8"),t.setHeader("ETag",s),I.sendFile(n,e,t)}static sendFile(e,t,n){const r=(0,l.createReadStream)(m.join(__dirname,"../client-dist/",e)),i=e=>{e&&n.end()};switch(d(t).encodings(["br","gzip","deflate"])){case"br":n.writeHead(200,{"content-encoding":"br"}),(0,f.pipeline)(r,(0,u.createBrotliCompress)(),n,i);break;case"gzip":n.writeHead(200,{"content-encoding":"gzip"}),(0,f.pipeline)(r,(0,u.createGzip)(),n,i);break;case"deflate":n.writeHead(200,{"content-encoding":"deflate"}),(0,f.pipeline)(r,(0,u.createDeflate)(),n,i);break;default:n.writeHead(200),(0,f.pipeline)(r,n,i)}}bind(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(e){R("incoming connection with id %s",e.id);const t=new y.Client(this,e);return 3===e.protocol&&t.connect("/"),this}of(e,t){if("function"==typeof e||e instanceof RegExp){const n=new _.ParentNamespace(this);return R("initializing parent namespace %s",n.name),"function"==typeof e?this.parentNsps.set(e,n):(this.parentNsps.set(((t,n,r)=>r(null,e.test(t))),n),this.parentNamespacesFromRegExp.set(e,n)),t&&n.on("connect",t),n}"/"!==String(e)[0]&&(e="/"+e);let n=this._nsps.get(e);if(!n){for(const[t,n]of this.parentNamespacesFromRegExp)if(t.test(e))return R("attaching namespace %s to parent namespace %s",e,t),n.createChild(e);R("initializing namespace %s",e),n=new b.Namespace(this,e),this._nsps.set(e,n),"/"!==e&&this.sockets.emitReserved("new_namespace",n)}return t&&n.on("connect",t),n}close(e){this._nsps.forEach((e=>{e.sockets.forEach((e=>{e._onclose("server shutting down")})),e.adapter.close()})),this.engine.close(),(0,A.restoreAdapter)(),this.httpServer?this.httpServer.close(e):e&&e()}use(e){return this.sockets.use(e),this}to(e){return this.sockets.to(e)}in(e){return this.sockets.in(e)}except(e){return this.sockets.except(e)}send(...e){return this.sockets.emit("message",...e),this}write(...e){return this.sockets.emit("message",...e),this}serverSideEmit(e,...t){return this.sockets.serverSideEmit(e,...t)}serverSideEmitWithAck(e,...t){return this.sockets.serverSideEmitWithAck(e,...t)}allSockets(){return this.sockets.allSockets()}compress(e){return this.sockets.compress(e)}get volatile(){return this.sockets.volatile}get local(){return this.sockets.local}timeout(e){return this.sockets.timeout(e)}fetchSockets(){return this.sockets.fetchSockets()}socketsJoin(e){return this.sockets.socketsJoin(e)}socketsLeave(e){return this.sockets.socketsLeave(e)}disconnectSockets(e=!1){return this.sockets.disconnectSockets(e)}}t.Server=I;const P=Object.keys(v.EventEmitter.prototype).filter((function(e){return"function"==typeof v.EventEmitter.prototype[e]}));P.forEach((function(e){I.prototype[e]=function(){return this.sockets[e].apply(this.sockets,arguments)}})),e.exports=(e,t)=>new I(e,t),e.exports.Server=I,e.exports.Namespace=b.Namespace,e.exports.Socket=D.Socket,YQ()}(yG,yG.exports);var LX=q(yG.exports);const{Server:IX,Namespace:PX,Socket:NX}=LX,jX=e=>new Promise(((t,n)=>{const r=a.platform();let i;if("win32"===r)i=`start ${e}`;else if("darwin"===r)i=`open ${e}`;else{if("linux"!==r)return n(new Error(`Unsupported platform: ${r}`));i=`xdg-open ${e}`}d.exec(i,(e=>{if(e)return n(new Error(`Failed to open URL on ${r}: ${e.message}`));t()}))})),FX=process.cwd(),BX=o.join(FX,"src","views");const MX=new ke;MX.name("theme").description("dev, list"),MX.command("create").description("Run development server with Webpack and BrowserSync").action(gf),MX.command("check").description("Run development server with Webpack and BrowserSync").action((async function(){const e=zr("Checking files...").start();try{const t=await qO(BX,"views"),n=Object.keys(t);await HO(n,e)}catch(t){e.fail("Failed to retrieve files"),console.error(_t.red(`Failed to retrieve files - Error: ${t.message}`))}})),MX.command("dev").description("Run development server with Webpack and BrowserSync").action((async()=>{await mf();const{data:e}=await of.get("/apps"),t=e?.apps?.map((e=>({name:e.subdomain,value:e._id}))),n=await yl.prompt({type:"list",name:"app",message:"Choose the theme you want to use",choices:t});var r=e?.apps?.find((e=>e._id===n.app));const i=XU(),s=3e3,a=new x.Server(i),c=new IX(a),l=zr("Start Server").start(),u=process.cwd(),p=o.join(u,"src");o.join(u,"src","assets");const h=o.join(u,"dist");d.exec("npx webpack --config webpack.config.js --mode development --stats errors-warnings",(async e=>{e&&console.log(e,"errrrrr");try{await I.access(p),await I.access(h)}catch{console.error("Error: Required directories do not exist."),process.exit(1)}i.use(XU.static(h)),i.get("/api/auth",((e,t)=>{const{redirect_url:n,token:r}=e.query;if(console.log("🚀 ~ app.get ~ req.query:",e.query),!n||!r)return t.status(400).send("Missing redirect_url or token");t.cookie("token",r,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,expires:new Date(9999,0,1)}),t.redirect(n)})),i.get("/api/auth/logout",((e,t)=>{t.clearCookie("token",{httpOnly:!0,secure:"production"===process.env.NODE_ENV}),t.redirect("/")})),i.get("*",j(i,{viewsDirectory:p,secretKey:r.secretKey,watch:!0})),zr("REloading");const t=zr("Connected"),n=zr("Budilding");c.on("connection",(e=>{t.stop(),t.start();const r=JU.watch([p,o.join(u,"tailwind.config.js")]);r.on("change",(()=>{r.close(),t.stop(),n.start(),d.exec(`cd ${u} && npx webpack --config webpack.config.js --mode development --stats errors-warnings`,(t=>{if(t)return console.log(t),void n.fail(_t.red("Build failed"));n.succeed(_t.blue("Rebuilt successfully")),e.emit("reload")}))})),e.on("disconnect",(()=>{r.close()}))})),c.on("disconnect",(()=>{console.log(_t.blue("Disconnected")),t.stop(),reloadSpinner.stop()})),a.listen(s,(()=>{l.succeed("Server Started"),console.log("Server running at http://localhost:3000"),jX("http://localhost:3000")}))}))})),MX.command("list").description("List available themes").action((async()=>{const e=zr("Fetching Data...").start();try{const{data:t}=await of.get("/themes");e.stop();const n=t?.themes?.map((e=>({name:e.title,value:e._id}))),r=await yl.prompt({type:"list",name:"selectedThemeId",message:"Choose the theme you want to use:",choices:n}),i=t?.themes.find((e=>e._id===r.selectedThemeId));console.log("🚀 ~ getThemes ~ selectedTheme:",i)}catch(t){e.stop(),console.error("Failed to fetch data:",t)}}));const UX=Object.create(null);UX.open="0",UX.close="1",UX.ping="2",UX.pong="3",UX.message="4",UX.upgrade="5",UX.noop="6";const qX=Object.create(null);Object.keys(UX).forEach((e=>{qX[UX[e]]=e}));const HX={type:"error",data:"parser error"},$X=({type:e,data:t},n,r)=>t instanceof ArrayBuffer||ArrayBuffer.isView(t)?r(n?t:"b"+zX(t,!0).toString("base64")):r(UX[e]+(t||"")),zX=(e,t)=>Buffer.isBuffer(e)||e instanceof Uint8Array&&!t?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength);let WX;const GX=(e,t)=>{if("string"!=typeof e)return{type:"message",data:VX(e,t)};const n=e.charAt(0);if("b"===n){const n=Buffer.from(e.substring(1),"base64");return{type:"message",data:VX(n,t)}}return qX[n]?e.length>1?{type:qX[n],data:e.substring(1)}:{type:qX[n]}:HX},VX=(e,t)=>"arraybuffer"===t?e instanceof ArrayBuffer?e:Buffer.isBuffer(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e.buffer:Buffer.isBuffer(e)?e:Buffer.from(e),KX=String.fromCharCode(30);function YX(){return new TransformStream({transform(e,t){!function(e,t){if(e.data instanceof ArrayBuffer||ArrayBuffer.isView(e.data))return t(zX(e.data,!1));$X(e,!0,(e=>{WX||(WX=new TextEncoder),t(WX.encode(e))}))}(e,(n=>{const r=n.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);const e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&"string"!=typeof e.data&&(i[0]|=128),t.enqueue(i),t.enqueue(n)}))}})}let ZX;function QX(e){return e.reduce(((e,t)=>e+t.length),0)}function XX(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}const JX=global;function eJ(e,...t){return t.reduce(((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t)),{})}const tJ=JX.setTimeout,nJ=JX.clearTimeout;function rJ(e,t){t.useNativeTimers?(e.setTimeoutFn=tJ.bind(JX),e.clearTimeoutFn=nJ.bind(JX)):(e.setTimeoutFn=JX.setTimeout.bind(JX),e.clearTimeoutFn=JX.clearTimeout.bind(JX))}class iJ extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type="TransportError"}}class sJ extends SQ{constructor(e){super(),this.writable=!1,rJ(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,t,n){return super.emitReserved("error",new iJ(e,t,n)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=GX(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){const t=function(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}const oJ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),aJ=64,cJ={};let lJ,uJ=0,pJ=0;function hJ(e){let t="";do{t=oJ[e%aJ]+t,e=Math.floor(e/aJ)}while(e>0);return t}function dJ(){const e=hJ(+new Date);return e!==lJ?(uJ=0,lJ=e):e+"."+hJ(uJ++)}for(;pJ<aJ;pJ++)cJ[oJ[pJ]]=pJ;
378
378
  /**
379
379
  * Wrapper for built-in http.js to emulate the browser XMLHttpRequest object.
380
380
  *