9remote 0.1.7 → 0.1.8

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.
Files changed (56) hide show
  1. package/dist/server.cjs +1 -1
  2. package/dist/standalone/.next/BUILD_ID +1 -1
  3. package/dist/standalone/.next/build-manifest.json +2 -2
  4. package/dist/standalone/.next/server/app/_global-error.html +2 -2
  5. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/dist/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  12. package/dist/standalone/.next/server/app/_not-found.rsc +1 -1
  13. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/index.html +2 -2
  20. package/dist/standalone/.next/server/app/index.rsc +1 -1
  21. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  22. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  23. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  24. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  25. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  26. package/dist/standalone/.next/server/app/login.html +1 -1
  27. package/dist/standalone/.next/server/app/login.rsc +1 -1
  28. package/dist/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  29. package/dist/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  30. package/dist/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  31. package/dist/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  32. package/dist/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  33. package/dist/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  34. package/dist/standalone/.next/server/app/remote.html +1 -1
  35. package/dist/standalone/.next/server/app/remote.rsc +1 -1
  36. package/dist/standalone/.next/server/app/remote.segments/_full.segment.rsc +1 -1
  37. package/dist/standalone/.next/server/app/remote.segments/_head.segment.rsc +1 -1
  38. package/dist/standalone/.next/server/app/remote.segments/_index.segment.rsc +1 -1
  39. package/dist/standalone/.next/server/app/remote.segments/_tree.segment.rsc +1 -1
  40. package/dist/standalone/.next/server/app/remote.segments/remote/__PAGE__.segment.rsc +1 -1
  41. package/dist/standalone/.next/server/app/remote.segments/remote.segment.rsc +1 -1
  42. package/dist/standalone/.next/server/app/terminal.html +1 -1
  43. package/dist/standalone/.next/server/app/terminal.rsc +1 -1
  44. package/dist/standalone/.next/server/app/terminal.segments/_full.segment.rsc +1 -1
  45. package/dist/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  46. package/dist/standalone/.next/server/app/terminal.segments/_index.segment.rsc +1 -1
  47. package/dist/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +1 -1
  48. package/dist/standalone/.next/server/app/terminal.segments/terminal/__PAGE__.segment.rsc +1 -1
  49. package/dist/standalone/.next/server/app/terminal.segments/terminal.segment.rsc +1 -1
  50. package/dist/standalone/.next/server/pages/404.html +1 -1
  51. package/dist/standalone/.next/server/pages/500.html +2 -2
  52. package/dist/standalone/package.json +1 -1
  53. package/package.json +1 -1
  54. /package/dist/standalone/.next/static/{8lYelLN5FU1xeKQ5IW9Tr → niBV9uszI8DM_Av9_qyqt}/_buildManifest.js +0 -0
  55. /package/dist/standalone/.next/static/{8lYelLN5FU1xeKQ5IW9Tr → niBV9uszI8DM_Av9_qyqt}/_clientMiddlewareManifest.json +0 -0
  56. /package/dist/standalone/.next/static/{8lYelLN5FU1xeKQ5IW9Tr → niBV9uszI8DM_Av9_qyqt}/_ssgManifest.js +0 -0
package/dist/server.cjs CHANGED
@@ -15,7 +15,7 @@ Connection: close\r
15
15
  Content-type: text/html\r
16
16
  Content-Length: `+n+`\r
17
17
  \r
18
- `+i)}s.destroy()}var Dt=[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];function xm(s){if(s+="",s.length<1)return!1;if(!Dt[s.charCodeAt(0)])return w('invalid header, index 0, char "%s"',s.charCodeAt(0)),!0;if(s.length<2)return!1;if(!Dt[s.charCodeAt(1)])return w('invalid header, index 1, char "%s"',s.charCodeAt(1)),!0;if(s.length<3)return!1;if(!Dt[s.charCodeAt(2)])return w('invalid header, index 2, char "%s"',s.charCodeAt(2)),!0;if(s.length<4)return!1;if(!Dt[s.charCodeAt(3)])return w('invalid header, index 3, char "%s"',s.charCodeAt(3)),!0;for(let e=4;e<s.length;++e)if(!Dt[s.charCodeAt(e)])return w('invalid header, index "%i", char "%s"',e,s.charCodeAt(e)),!0;return!1}});var Qo=x(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.Polling=void 0;var vm=qe(),Jo=require("zlib"),gm=es(),bm=R(),ie=(0,bm.default)("engine:polling"),ym={gzip:Jo.createGzip,deflate:Jo.createDeflate},hn=class extends vm.Transport{constructor(e){super(e),this.closeTimeout=30*1e3}get name(){return"polling"}onRequest(e){let t=e.res;e.res=null,e.getMethod()==="get"?this.onPollRequest(e,t):e.getMethod()==="post"?this.onDataRequest(e,t):(t.writeStatus("500 Internal Server Error"),t.end())}onPollRequest(e,t){if(this.req){ie("request overlap"),this.onError("overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}ie("setting request"),this.req=e,this.res=t;let i=()=>{this.writable=!1,this.onError("poll connection closed prematurely")},n=()=>{this.req=this.res=null};e.cleanup=n,t.onAborted(i),this.writable=!0,this.emit("ready"),this.writable&&this.shouldClose&&(ie("triggering empty send to append close packet"),this.send([{type:"noop"}]))}onDataRequest(e,t){if(this.dataReq){this.onError("data request overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}let i=Number(e.headers["content-length"]);if(!i){this.onError("content-length header required"),t.writeStatus("411 Length Required").end();return}if(i>this.maxHttpBufferSize){this.onError("payload too large"),t.writeStatus("413 Payload Too Large").end();return}if(e.headers["content-type"]==="application/octet-stream"&&this.protocol===4)return this.onError("invalid content");this.dataReq=e,this.dataRes=t;let a,r=0,o={"Content-Type":"text/html"};this.headers(e,o);for(let l in o)t.writeHeader(l,String(o[l]));let c=l=>{this.onData(l.toString()),this.onDataRequestCleanup(),t.cork(()=>{t.end("ok")})};t.onAborted(()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")}),t.onData((l,p)=>{let u=r+l.byteLength;if(u>i){this.onError("content-length mismatch"),t.close();return}if(!a){if(p){c(Buffer.from(l));return}a=Buffer.allocUnsafe(i)}if(Buffer.from(l).copy(a,r),p){if(u!=i){this.onError("content-length mismatch"),t.writeStatus("400 Content-Length Mismatch").end(),this.onDataRequestCleanup();return}c(a);return}r=u})}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(e){ie('received "%s"',e);let t=i=>{if(i.type==="close")return ie("got xhr close packet"),this.onClose(),!1;this.onPacket(i)};this.protocol===3?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&&(ie("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null);let t=i=>{let n=e.some(a=>a.options&&a.options.compress);this.write(i,{compress:n})};this.protocol===3?this.parser.encodePayload(e,this.supportsBinary,t):this.parser.encodePayload(e,t)}write(e,t){ie('writing "%s"',e),this.doWrite(e,t,()=>{this.req.cleanup(),this.emit("drain")})}doWrite(e,t,i){let n=typeof e=="string",r={"Content-Type":n?"text/plain; charset=UTF-8":"application/octet-stream"},o=p=>{this.headers(this.req,r),this.res.cork(()=>{Object.keys(r).forEach(u=>{this.res.writeHeader(u,String(r[u]))}),this.res.end(p)}),i()};if(!this.httpCompression||!t.compress){o(e);return}if((n?Buffer.byteLength(e):e.length)<this.httpCompression.threshold){o(e);return}let l=gm(this.req).encodings(["gzip","deflate"]);if(!l){o(e);return}this.compress(e,l,(p,u)=>{if(p){this.res.writeStatus("500 Internal Server Error"),this.res.end(),i(p);return}r["Content-Encoding"]=l,o(u)})}compress(e,t,i){ie("compressing");let n=[],a=0;ym[t](this.httpCompression).on("error",i).on("data",function(r){n.push(r),a+=r.length}).on("end",function(){i(null,Buffer.concat(n,a))}).end(e)}doClose(e){ie("closing");let t,i=()=>{clearTimeout(t),e(),this.onClose()};this.writable?(ie("transport writable - closing right away"),this.send([{type:"close"}]),i()):this.discarded?(ie("transport discarded - closing right away"),i()):(ie("transport not writable - buffering orderly close"),this.shouldClose=i,t=setTimeout(i,this.closeTimeout))}headers(e,t){t=t||{};let i=e.headers["user-agent"];return i&&(~i.indexOf(";MSIE")||~i.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0"),t["cache-control"]="no-store",this.emit("headers",t,e),t}};Is.Polling=hn});var ec=x(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.WebSocket=void 0;var wm=qe(),_m=R(),Zo=(0,_m.default)("engine:ws"),xn=class extends wm.Transport{constructor(e){super(e),this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){let i=e[t],n=t+1===e.length,a=r=>{let o=typeof r!="string",c=this.perMessageDeflate&&Buffer.byteLength(r)>this.perMessageDeflate.threshold;Zo('writing "%s"',r),this.socket.send(r,o,c),n&&(this.emit("drain"),this.writable=!0,this.emit("ready"))};i.options&&typeof i.options.wsPreEncoded=="string"?a(i.options.wsPreEncoded):this.parser.encodePacket(i,this.supportsBinary,a)}}doClose(e){Zo("closing"),e&&e(),this.socket.end()}};Ns.WebSocket=xn});var tc=x(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var Sm=Qo(),Em=ec();vn.default={polling:Sm.Polling,websocket:Em.WebSocket}});var sc=x(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.uServer=void 0;var km=R(),$e=mn(),Cm=tc(),Ie=(0,km.default)("engine:uws"),gn=class extends $e.BaseServer{init(){}cleanup(){}prepare(e,t){e.method=e.getMethod().toUpperCase(),e.url=e.getUrl();let i=new URLSearchParams(e.getQuery());e._query=Object.fromEntries(i.entries()),e.headers={},e.forEach((n,a)=>{e.headers[n]=a}),e.connection={remoteAddress:Buffer.from(t.getRemoteAddressAsText()).toString()},t.onAborted(()=>{Ie("response has been aborted")})}createTransport(e,t){return new Cm.default[e](t)}attach(e,t={}){let i=this._computePath(t);e.any(i,this.handleRequest.bind(this)).ws(i,{compression:t.compression,idleTimeout:t.idleTimeout,maxBackpressure:t.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:n=>{let a=n.getUserData().transport;a.socket=n,a.writable=!0,a.emit("ready")},message:(n,a,r)=>{n.getUserData().transport.onData(r?a:Buffer.from(a).toString())},close:(n,a,r)=>{n.getUserData().transport.onClose(a,r)}})}_applyMiddlewares(e,t,i){if(this.middlewares.length===0)return i();e.res=new bn(t),super._applyMiddlewares(e,e.res,n=>{e.res.writeHead(),i(n)})}handleRequest(e,t){Ie('handling "%s" http request "%s"',t.getMethod(),t.getUrl()),this.prepare(t,e),t.res=e;let i=(n,a)=>{if(n!==void 0){this.emit("connection_error",{req:t,code:n,message:$e.Server.errorMessages[n],context:a}),this.abortRequest(t.res,n,a);return}if(t._query.sid)Ie("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{let r=(o,c)=>this.abortRequest(e,o,c);this.handshake(t._query.transport,t,r)}};this._applyMiddlewares(t,e,n=>{n?i($e.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,i)})}handleUpgrade(e,t,i){Ie("on upgrade"),this.prepare(t,e),t.res=e;let n=async(a,r)=>{if(a!==void 0){this.emit("connection_error",{req:t,code:a,message:$e.Server.errorMessages[a],context:r}),this.abortRequest(e,a,r);return}let o=t._query.sid,c;if(o){let l=this.clients[o];if(l){if(l.upgrading)return Ie("transport has already been trying to upgrade"),e.close();if(l.upgraded)return Ie("transport had already been upgraded"),e.close();Ie("upgrading existing transport"),c=this.createTransport(t._query.transport,t),l._maybeUpgrade(c)}else return Ie("upgrade attempt for closed client"),e.close()}else if(c=await this.handshake(t._query.transport,t,(l,p)=>this.abortRequest(e,l,p)),!c)return;t.res.writeStatus("101 Switching Protocols"),e.upgrade({transport:c},t.getHeader("sec-websocket-key"),t.getHeader("sec-websocket-protocol"),t.getHeader("sec-websocket-extensions"),i)};this._applyMiddlewares(t,e,a=>{a?n($e.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,n)})}abortRequest(e,t,i){let n=t===$e.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",a=i&&i.message?i.message:$e.Server.errorMessages[t];e.writeStatus(n),e.writeHeader("Content-Type","application/json"),e.end(JSON.stringify({code:t,message:a}))}};Bs.uServer=gn;var bn=class{constructor(e){this.res=e,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(e){e&&this.writeStatus(e===200?"200 OK":"204 No Content")}writeHead(e){this.statusCode=e}setHeader(e,t){Array.isArray(t)?t.forEach(i=>{this.writeHeader(e,i)}):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||e!=="Content-Length"&&(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)}}});var rc=x(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.protocol=B.Transport=B.Socket=B.uServer=B.parser=B.transports=B.Server=void 0;B.listen=jm;B.attach=ac;var Tm=require("http"),ic=mn();Object.defineProperty(B,"Server",{enumerable:!0,get:function(){return ic.Server}});var Om=Di();B.transports=Om.default;var nc=Rt();B.parser=nc;var Rm=sc();Object.defineProperty(B,"uServer",{enumerable:!0,get:function(){return Rm.uServer}});var Am=Fi();Object.defineProperty(B,"Socket",{enumerable:!0,get:function(){return Am.Socket}});var Pm=qe();Object.defineProperty(B,"Transport",{enumerable:!0,get:function(){return Pm.Transport}});B.protocol=nc.protocol;function jm(s,e,t){typeof e=="function"&&(t=e,e={});let i=(0,Tm.createServer)(function(a,r){r.writeHead(501),r.end("Not Implemented")}),n=ac(i,e);return n.httpServer=i,i.listen(s,t),n}function ac(s,e){let t=new ic.Server(e);return t.attach(s,e),t}});var cc=x(oc=>{oc.Emitter=U;function U(s){if(s)return Im(s)}function Im(s){for(var e in U.prototype)s[e]=U.prototype[e];return s}U.prototype.on=U.prototype.addEventListener=function(s,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(e),this};U.prototype.once=function(s,e){function t(){this.off(s,t),e.apply(this,arguments)}return t.fn=e,this.on(s,t),this};U.prototype.off=U.prototype.removeListener=U.prototype.removeAllListeners=U.prototype.removeEventListener=function(s,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+s];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var i,n=0;n<t.length;n++)if(i=t[n],i===e||i.fn===e){t.splice(n,1);break}return t.length===0&&delete this._callbacks["$"+s],this};U.prototype.emit=function(s){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+s],i=1;i<arguments.length;i++)e[i-1]=arguments[i];if(t){t=t.slice(0);for(var i=0,n=t.length;i<n;++i)t[i].apply(this,e)}return this};U.prototype.emitReserved=U.prototype.emit;U.prototype.listeners=function(s){return this._callbacks=this._callbacks||{},this._callbacks["$"+s]||[]};U.prototype.hasListeners=function(s){return!!this.listeners(s).length}});var yn=x(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});Ms.isBinary=pc;Ms.hasBinary=Ls;var Nm=typeof ArrayBuffer=="function",Bm=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,lc=Object.prototype.toString,Lm=typeof Blob=="function"||typeof Blob<"u"&&lc.call(Blob)==="[object BlobConstructor]",Mm=typeof File=="function"||typeof File<"u"&&lc.call(File)==="[object FileConstructor]";function pc(s){return Nm&&(s instanceof ArrayBuffer||Bm(s))||Lm&&s instanceof Blob||Mm&&s instanceof File}function Ls(s,e){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let t=0,i=s.length;t<i;t++)if(Ls(s[t]))return!0;return!1}if(pc(s))return!0;if(s.toJSON&&typeof s.toJSON=="function"&&arguments.length===1)return Ls(s.toJSON(),!0);for(let t in s)if(Object.prototype.hasOwnProperty.call(s,t)&&Ls(s[t]))return!0;return!1}});var uc=x(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});Ds.deconstructPacket=qm;Ds.reconstructPacket=Fm;var Dm=yn();function qm(s){let e=[],t=s.data,i=s;return i.data=wn(t,e),i.attachments=e.length,{packet:i,buffers:e}}function wn(s,e){if(!s)return s;if((0,Dm.isBinary)(s)){let t={_placeholder:!0,num:e.length};return e.push(s),t}else if(Array.isArray(s)){let t=new Array(s.length);for(let i=0;i<s.length;i++)t[i]=wn(s[i],e);return t}else if(typeof s=="object"&&!(s instanceof Date)){let t={};for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=wn(s[i],e));return t}return s}function Fm(s,e){return s.data=_n(s.data,e),delete s.attachments,s}function _n(s,e){if(!s)return s;if(s&&s._placeholder===!0){if(typeof s.num=="number"&&s.num>=0&&s.num<e.length)return e[s.num];throw new Error("illegal attachments")}else if(Array.isArray(s))for(let t=0;t<s.length;t++)s[t]=_n(s[t],e);else if(typeof s=="object")for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=_n(s[t],e));return s}});var qt=x(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Decoder=ce.Encoder=ce.PacketType=ce.protocol=void 0;ce.isPacketValid=Gm;var Um=cc(),dc=uc(),fc=yn(),Hm=R(),Sn=(0,Hm.default)("socket.io-parser"),mc=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];ce.protocol=5;var E;(function(s){s[s.CONNECT=0]="CONNECT",s[s.DISCONNECT=1]="DISCONNECT",s[s.EVENT=2]="EVENT",s[s.ACK=3]="ACK",s[s.CONNECT_ERROR=4]="CONNECT_ERROR",s[s.BINARY_EVENT=5]="BINARY_EVENT",s[s.BINARY_ACK=6]="BINARY_ACK"})(E||(ce.PacketType=E={}));var En=class{constructor(e){this.replacer=e}encode(e){return Sn("encoding packet %j",e),(e.type===E.EVENT||e.type===E.ACK)&&(0,fc.hasBinary)(e)?this.encodeAsBinary({type:e.type===E.EVENT?E.BINARY_EVENT:E.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===E.BINARY_EVENT||e.type===E.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),Sn("encoded %j as %s",e,t),t}encodeAsBinary(e){let t=(0,dc.deconstructPacket)(e),i=this.encodeAsString(t.packet),n=t.buffers;return n.unshift(i),n}};ce.Encoder=En;var kn=class s extends Um.Emitter{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);let i=t.type===E.BINARY_EVENT;i||t.type===E.BINARY_ACK?(t.type=i?E.EVENT:E.ACK,this.reconstructor=new Cn(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if((0,fc.isBinary)(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0,i={type:Number(e.charAt(0))};if(E[i.type]===void 0)throw new Error("unknown packet type "+i.type);if(i.type===E.BINARY_EVENT||i.type===E.BINARY_ACK){let a=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);let r=e.substring(a,t);if(r!=Number(r)||e.charAt(t)!=="-")throw new Error("Illegal attachments");i.attachments=Number(r)}if(e.charAt(t+1)==="/"){let a=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););i.nsp=e.substring(a,t)}else i.nsp="/";let n=e.charAt(t+1);if(n!==""&&Number(n)==n){let a=t+1;for(;++t;){let r=e.charAt(t);if(r==null||Number(r)!=r){--t;break}if(t===e.length)break}i.id=Number(e.substring(a,t+1))}if(e.charAt(++t)){let a=this.tryParse(e.substr(t));if(s.isPayloadValid(i.type,a))i.data=a;else throw new Error("invalid payload")}return Sn("decoded %s as %j",e,i),i}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case E.CONNECT:return qs(t);case E.DISCONNECT:return t===void 0;case E.CONNECT_ERROR:return typeof t=="string"||qs(t);case E.EVENT:case E.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&mc.indexOf(t[0])===-1);case E.ACK:case E.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}};ce.Decoder=kn;var Cn=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let t=(0,dc.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function zm(s){return typeof s=="string"}var Wm=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s};function $m(s){return s===void 0||Wm(s)}function qs(s){return Object.prototype.toString.call(s)==="[object Object]"}function Vm(s,e){switch(s){case E.CONNECT:return e===void 0||qs(e);case E.DISCONNECT:return e===void 0;case E.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&mc.indexOf(e[0])===-1);case E.ACK:return Array.isArray(e);case E.CONNECT_ERROR:return typeof e=="string"||qs(e);default:return!1}}function Gm(s){return zm(s.nsp)&&$m(s.id)&&Vm(s.type,s.data)}});var hc=x(xt=>{"use strict";var Km=xt&&xt.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(xt,"__esModule",{value:!0});xt.Client=void 0;var Fs=qt(),Ym=Km(R()),le=(0,Ym.default)("socket.io:client"),Tn=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(()=>{this.nsps.size===0?(le("no namespace joined yet, close the client"),this.close()):le("the client has already joined a namespace, nothing to do")},this.server._connectTimeout)}connect(e,t={}){if(this.server._nsps.has(e))return le("connecting to namespace %s",e),this.doConnect(e,t);this.server._checkNamespace(e,t,i=>{i?this.doConnect(e,t):(le("creation of namespace %s was denied",e),this._packet({type:Fs.PacketType.CONNECT_ERROR,nsp:e,data:{message:"Invalid namespace"}}))})}doConnect(e,t){let i=this.server.of(e);i._add(this,t,n=>{this.sockets.set(n.id,n),this.nsps.set(i.name,n),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)})}_disconnect(){for(let e of this.sockets.values())e.disconnect();this.sockets.clear(),this.close()}_remove(e){if(this.sockets.has(e.id)){let t=this.sockets.get(e.id).nsp.name;this.sockets.delete(e.id),this.nsps.delete(t)}else le("ignoring remove for %s",e.id)}close(){this.conn.readyState==="open"&&(le("forcing transport close"),this.conn.close(),this.onclose("forced server close"))}_packet(e,t={}){if(this.conn.readyState!=="open"){le("ignoring packet write %j",e);return}let i=t.preEncoded?e:this.encoder.encode(e);this.writeToEngine(i,t)}writeToEngine(e,t){if(t.volatile&&!this.conn.transport.writable){le("volatile packet is discarded since the transport is not currently writable");return}let i=Array.isArray(e)?e:[e];for(let n of i)this.conn.write(n,t)}ondata(e){try{this.decoder.add(e)}catch(t){le("invalid packet format"),this.onerror(t)}}ondecoded(e){let{namespace:t,authPayload:i}=this._parseNamespace(e),n=this.nsps.get(t);!n&&e.type===Fs.PacketType.CONNECT?this.connect(t,i):n&&e.type!==Fs.PacketType.CONNECT&&e.type!==Fs.PacketType.CONNECT_ERROR?process.nextTick(function(){n._onpacket(e)}):(le("invalid state (packet type: %s)",e.type),this.close())}_parseNamespace(e){if(this.conn.protocol!==3)return{namespace:e.nsp,authPayload:e.data};let t=new URL(e.nsp,"https://socket.io");return{namespace:t.pathname,authPayload:Object.fromEntries(t.searchParams.entries())}}onerror(e){for(let t of this.sockets.values())t._onerror(e);this.conn.close()}onclose(e,t){le("client close with reason %s",e),this.destroy();for(let i of this.sockets.values())i._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)}};xt.Client=Tn});var Hs=x(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.StrictEventEmitter=void 0;var Xm=require("events"),On=class extends Xm.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)}};Us.StrictEventEmitter=On});var Rn=x(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.RESERVED_EVENTS=void 0;zs.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"])});var An=x(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.RemoteSocket=vt.BroadcastOperator=void 0;var Jm=Rn(),Qm=qt(),Ws=class s{constructor(e,t=new Set,i=new Set,n={}){this.adapter=e,this.rooms=t,this.exceptRooms=i,this.flags=n}to(e){let t=new Set(this.rooms);return Array.isArray(e)?e.forEach(i=>t.add(i)):t.add(e),new s(this.adapter,t,this.exceptRooms,this.flags)}in(e){return this.to(e)}except(e){let t=new Set(this.exceptRooms);return Array.isArray(e)?e.forEach(i=>t.add(i)):t.add(e),new s(this.adapter,this.rooms,t,this.flags)}compress(e){let t=Object.assign({},this.flags,{compress:e});return new s(this.adapter,this.rooms,this.exceptRooms,t)}get volatile(){let e=Object.assign({},this.flags,{volatile:!0});return new s(this.adapter,this.rooms,this.exceptRooms,e)}get local(){let e=Object.assign({},this.flags,{local:!0});return new s(this.adapter,this.rooms,this.exceptRooms,e)}timeout(e){let t=Object.assign({},this.flags,{timeout:e});return new s(this.adapter,this.rooms,this.exceptRooms,t)}emit(e,...t){if(Jm.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],n={type:Qm.PacketType.EVENT,data:i};if(!(typeof i[i.length-1]=="function"))return this.adapter.broadcast(n,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;let r=i.pop(),o=!1,c=[],l=setTimeout(()=>{o=!0,r.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])},this.flags.timeout),p=-1,u=0,d=0,h=()=>{!o&&p===u&&c.length===d&&(clearTimeout(l),r.apply(this,[null,this.flags.expectSingleResponse?c[0]:c]))};return this.adapter.broadcastWithAck(n,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},m=>{d+=m,u++,h()},m=>{c.push(m),h()}),this.adapter.serverCount().then(m=>{p=m,h()}),!0}emitWithAck(e,...t){return new Promise((i,n)=>{t.push((a,r)=>a?(a.responses=r,n(a)):i(r)),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(e=>e.map(t=>t.server?t:new $s(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)}};vt.BroadcastOperator=Ws;var $s=class{constructor(e,t){this.id=t.id,this.handshake=t.handshake,this.rooms=new Set(t.rooms),this.data=t.data,this.operator=new Ws(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}};vt.RemoteSocket=$s});var jn=x(gt=>{"use strict";var gc=gt&&gt.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(gt,"__esModule",{value:!0});gt.Socket=void 0;var ne=qt(),Zm=gc(R()),eh=Hs(),xc=gc(gi()),th=An(),sh=Rn(),D=(0,Zm.default)("socket.io:socket"),ih=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);function vc(){}var Pn=class extends eh.StrictEventEmitter{constructor(e,t,i,n){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=e.adapter,n?(this.id=n.sid,this.pid=n.pid,n.rooms.forEach(a=>this.join(a)),this.data=n.data,n.missedPackets.forEach(a=>{this.packet({type:ne.PacketType.EVENT,data:a})}),this.recovered=!0):(t.conn.protocol===3?this.id=e.name!=="/"?e.name+"#"+t.id:t.id:this.id=xc.default.generateId(),this.server._opts.connectionStateRecovery&&(this.pid=xc.default.generateId())),this.handshake=this.buildHandshake(i),this.on("error",vc)}buildHandshake(e){var t,i,n,a;return{headers:((t=this.request)===null||t===void 0?void 0:t.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!(!((i=this.request)===null||i===void 0)&&i.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:(n=this.request)===null||n===void 0?void 0:n.url,query:((a=this.request)===null||a===void 0?void 0:a._query)||{},auth:e}}emit(e,...t){if(sh.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],n={type:ne.PacketType.EVENT,data:i};if(typeof i[i.length-1]=="function"){let r=this.nsp._ids++;D("emitting packet with ack id %d",r),this.registerAckCallback(r,i.pop()),n.id=r}let a=Object.assign({},this.flags);return this.flags={},this.nsp.server.opts.connectionStateRecovery?this.adapter.broadcast(n,{rooms:new Set([this.id]),except:new Set,flags:a}):(this.notifyOutgoingListeners(n),this.packet(n,a)),!0}emitWithAck(e,...t){let i=this.flags.timeout!==void 0;return new Promise((n,a)=>{t.push((r,o)=>i?r?a(r):n(o):n(r)),this.emit(e,...t)})}registerAckCallback(e,t){let i=this.flags.timeout;if(i===void 0){this.acks.set(e,t);return}let n=setTimeout(()=>{D("event with ack id %d has timed out after %d ms",e,i),this.acks.delete(e),t.call(this,new Error("operation has timed out"))},i);this.acks.set(e,(...a)=>{clearTimeout(n),t.apply(this,[null,...a])})}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=t.compress!==!1,this.client._packet(e,t)}join(e){return D("join room %s",e),this.adapter.addAll(this.id,new Set(Array.isArray(e)?e:[e]))}leave(e){return D("leave room %s",e),this.adapter.del(this.id,e)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){D("socket connected - writing packet"),this.connected=!0,this.join(this.id),this.conn.protocol===3?this.packet({type:ne.PacketType.CONNECT}):this.packet({type:ne.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(e){switch(D("got packet %j",e),e.type){case ne.PacketType.EVENT:this.onevent(e);break;case ne.PacketType.BINARY_EVENT:this.onevent(e);break;case ne.PacketType.ACK:this.onack(e);break;case ne.PacketType.BINARY_ACK:this.onack(e);break;case ne.PacketType.DISCONNECT:this.ondisconnect();break}}onevent(e){let t=e.data||[];if(D("emitting event %j",t),e.id!=null&&(D("attaching ack callback to event"),t.push(this.ack(e.id))),this._anyListeners&&this._anyListeners.length){let i=this._anyListeners.slice();for(let n of i)n.apply(this,t)}this.dispatch(t)}ack(e){let t=this,i=!1;return function(){if(i)return;let n=Array.prototype.slice.call(arguments);D("sending ack %j",n),t.packet({id:e,type:ne.PacketType.ACK,data:n}),i=!0}}onack(e){let t=this.acks.get(e.id);typeof t=="function"?(D("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),this.acks.delete(e.id)):D("bad ack %s",e.id)}ondisconnect(){D("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(e){this.emitReserved("error",e)}_onclose(e,t){if(!this.connected)return this;D("closing socket - reason %s",e),this.emitReserved("disconnecting",e,t),this.server._opts.connectionStateRecovery&&ih.has(e)&&(D("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=vc}_error(e){this.packet({type:ne.PacketType.CONNECT_ERROR,data:e})}disconnect(e=!1){return this.connected?(e?this.client._disconnect():(this.packet({type:ne.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){D("dispatching an event %j",e),this.run(e,t=>{process.nextTick(()=>{if(t)return this._onerror(t);this.connected?super.emitUntyped.apply(this,e):D("ignore packet received after disconnection")})})}use(e){return this.fns.push(e),this}run(e,t){if(!this.fns.length)return t();let i=this.fns.slice(0);function n(a){i[a](e,r=>{if(r)return t(r);if(!i[a+1])return t();n(a+1)})}n(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){let t=this._anyListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,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){let t=this._anyOutgoingListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let i of t)i.apply(this,e.data)}}newBroadcastOperator(){let e=Object.assign({},this.flags);return this.flags={},new th.BroadcastOperator(this.adapter,new Set,new Set([this.id]),e)}};gt.Socket=Pn});var Nn=x(Ee=>{"use strict";var nh=Ee&&Ee.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ee,"__esModule",{value:!0});Ee.Namespace=Ee.RESERVED_EVENTS=void 0;var bc=jn(),ah=Hs(),rh=nh(R()),Z=An(),bt=(0,rh.default)("socket.io:namespace");Ee.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);var In=class extends ah.StrictEventEmitter{constructor(e,t){super(),this.sockets=new Map,this._preConnectSockets=new Map,this._fns=[],this._ids=0,this.server=e,this.name=t,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this),Promise.resolve(this.adapter.init()).catch(e=>{bt("error while initializing adapter: %s",e)})}use(e){return this._fns.push(e),this}run(e,t){if(!this._fns.length)return t();let i=this._fns.slice(0);function n(a){i[a](e,r=>{if(r)return t(r);if(!i[a+1])return t();n(a+1)})}n(0)}to(e){return new Z.BroadcastOperator(this.adapter).to(e)}in(e){return new Z.BroadcastOperator(this.adapter).in(e)}except(e){return new Z.BroadcastOperator(this.adapter).except(e)}async _add(e,t,i){var n;bt("adding socket to nsp %s",this.name);let a=await this._createSocket(e,t);if(this._preConnectSockets.set(a.id,a),!((n=this.server.opts.connectionStateRecovery)===null||n===void 0)&&n.skipMiddlewares&&a.recovered&&e.conn.readyState==="open")return this._doConnect(a,i);this.run(a,r=>{process.nextTick(()=>{if(e.conn.readyState!=="open"){bt("next called after client was closed - ignoring socket"),a._cleanup();return}if(r)return bt("middleware error, sending CONNECT_ERROR packet to the client"),a._cleanup(),e.conn.protocol===3?a._error(r.data||r.message):a._error({message:r.message,data:r.data});this._doConnect(a,i)})})}async _createSocket(e,t){let i=t.pid,n=t.offset;if(this.server.opts.connectionStateRecovery&&typeof i=="string"&&typeof n=="string"){let a;try{a=await this.adapter.restoreSession(i,n)}catch(r){bt("error while restoring session: %s",r)}if(a)return bt("connection state recovered for sid %s",a.sid),new bc.Socket(this,e,t,a)}return new bc.Socket(this,e,t)}_doConnect(e,t){this._preConnectSockets.delete(e.id),this.sockets.set(e.id,e),e._onconnect(),t&&t(e),this.emitReserved("connect",e),this.emitReserved("connection",e)}_remove(e){this.sockets.delete(e.id)||this._preConnectSockets.delete(e.id)}emit(e,...t){return new Z.BroadcastOperator(this.adapter).emit(e,...t)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}serverSideEmit(e,...t){if(Ee.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);return t.unshift(e),this.adapter.serverSideEmit(t),!0}serverSideEmitWithAck(e,...t){return new Promise((i,n)=>{t.push((a,r)=>a?(a.responses=r,n(a)):i(r)),this.serverSideEmit(e,...t)})}_onServerSideEmit(e){super.emitUntyped.apply(this,e)}allSockets(){return new Z.BroadcastOperator(this.adapter).allSockets()}compress(e){return new Z.BroadcastOperator(this.adapter).compress(e)}get volatile(){return new Z.BroadcastOperator(this.adapter).volatile}get local(){return new Z.BroadcastOperator(this.adapter).local}timeout(e){return new Z.BroadcastOperator(this.adapter).timeout(e)}fetchSockets(){return new Z.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(e){return new Z.BroadcastOperator(this.adapter).socketsJoin(e)}socketsLeave(e){return new Z.BroadcastOperator(this.adapter).socketsLeave(e)}disconnectSockets(e=!1){return new Z.BroadcastOperator(this.adapter).disconnectSockets(e)}};Ee.Namespace=In});var Ec=x(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.encode=Bn;Ft.decode=oh;Ft.yeast=ch;var _c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Vs=64,Sc={},yc=0,Ne=0,wc;function Bn(s){let e="";do e=_c[s%Vs]+e,s=Math.floor(s/Vs);while(s>0);return e}function oh(s){let e=0;for(Ne=0;Ne<s.length;Ne++)e=e*Vs+Sc[s.charAt(Ne)];return e}function ch(){let s=Bn(+new Date);return s!==wc?(yc=0,wc=s):s+"."+Bn(yc++)}for(;Ne<Vs;Ne++)Sc[_c[Ne]]=Ne});var Dn=x(yt=>{"use strict";var Ln;Object.defineProperty(yt,"__esModule",{value:!0});yt.SessionAwareAdapter=yt.Adapter=void 0;var lh=require("events"),ph=Ec(),Gs=pn(),uh=typeof((Ln=Gs?.Sender)===null||Ln===void 0?void 0:Ln.frame)=="function",Ks=class extends lh.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(let i of t)this.sids.get(e).add(i),this.rooms.has(i)||(this.rooms.set(i,new Set),this.emit("create-room",i)),this.rooms.get(i).has(e)||(this.rooms.get(i).add(e),this.emit("join-room",i,e))}del(e,t){this.sids.has(e)&&this.sids.get(e).delete(t),this._del(t,e)}_del(e,t){let i=this.rooms.get(e);i!=null&&(i.delete(t)&&this.emit("leave-room",e,t),i.size===0&&this.rooms.delete(e)&&this.emit("delete-room",e))}delAll(e){if(this.sids.has(e)){for(let t of this.sids.get(e))this._del(t,e);this.sids.delete(e)}}broadcast(e,t){let i=t.flags||{},n={preEncoded:!0,volatile:i.volatile,compress:i.compress};e.nsp=this.nsp.name;let a=this._encode(e,n);this.apply(t,r=>{typeof r.notifyOutgoingListeners=="function"&&r.notifyOutgoingListeners(e),r.client.writeToEngine(a,n)})}broadcastWithAck(e,t,i,n){let a=t.flags||{},r={preEncoded:!0,volatile:a.volatile,compress:a.compress};e.nsp=this.nsp.name,e.id=this.nsp._ids++;let o=this._encode(e,r),c=0;this.apply(t,l=>{c++,l.acks.set(e.id,n),typeof l.notifyOutgoingListeners=="function"&&l.notifyOutgoingListeners(e),l.client.writeToEngine(o,r)}),i(c)}_encode(e,t){let i=this.encoder.encode(e);if(uh&&i.length===1&&typeof i[0]=="string"){let n=Buffer.from("4"+i[0]);t.wsPreEncodedFrame=Gs.Sender.frame(n,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return i}sockets(e){let t=new Set;return this.apply({rooms:e},i=>{t.add(i.id)}),Promise.resolve(t)}socketRooms(e){return this.sids.get(e)}fetchSockets(e){let t=[];return this.apply(e,i=>{t.push(i)}),Promise.resolve(t)}addSockets(e,t){this.apply(e,i=>{i.join(t)})}delSockets(e,t){this.apply(e,i=>{t.forEach(n=>i.leave(n))})}disconnectSockets(e,t){this.apply(e,i=>{i.disconnect(t)})}apply(e,t){let i=e.rooms,n=this.computeExceptSids(e.except);if(i.size){let a=new Set;for(let r of i)if(this.rooms.has(r))for(let o of this.rooms.get(r)){if(a.has(o)||n.has(o))continue;let c=this.nsp.sockets.get(o);c&&(t(c),a.add(o))}}else for(let[a]of this.sids){if(n.has(a))continue;let r=this.nsp.sockets.get(a);r&&t(r)}}computeExceptSids(e){let t=new Set;if(e&&e.size>0)for(let i of e)this.rooms.has(i)&&this.rooms.get(i).forEach(n=>t.add(n));return t}serverSideEmit(e){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(e){}restoreSession(e,t){return null}};yt.Adapter=Ks;var Mn=class extends Ks{constructor(e){super(e),this.nsp=e,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=e.server.opts.connectionStateRecovery.maxDisconnectionDuration,setInterval(()=>{let i=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach((n,a)=>{n.disconnectedAt<i&&this.sessions.delete(a)});for(let n=this.packets.length-1;n>=0;n--)if(this.packets[n].emittedAt<i){this.packets.splice(0,n+1);break}},60*1e3).unref()}persistSession(e){e.disconnectedAt=Date.now(),this.sessions.set(e.pid,e)}restoreSession(e,t){let i=this.sessions.get(e);if(!i)return null;if(i.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(e),null;let a=this.packets.findIndex(o=>o.id===t);if(a===-1)return null;let r=[];for(let o=a+1;o<this.packets.length;o++){let c=this.packets[o];dh(i.rooms,c.opts)&&r.push(c.data)}return Promise.resolve(Object.assign(Object.assign({},i),{missedPackets:r}))}broadcast(e,t){var i;let n=e.type===2,a=e.id===void 0,r=((i=t.flags)===null||i===void 0?void 0:i.volatile)===void 0;if(n&&a&&r){let o=(0,ph.yeast)();e.data.push(o),this.packets.push({id:o,opts:t,data:e.data,emittedAt:Date.now()})}super.broadcast(e,t)}};yt.SessionAwareAdapter=Mn;function dh(s,e){let t=e.rooms.size===0||s.some(n=>e.rooms.has(n)),i=s.every(n=>!e.except.has(n));return t&&i}});var kc=x(he=>{"use strict";var fh=he&&he.__rest||function(s,e){var t={};for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&e.indexOf(i)<0&&(t[i]=s[i]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(s);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(s,i[n])&&(t[i[n]]=s[i[n]]);return t};Object.defineProperty(he,"__esModule",{value:!0});he.ClusterAdapterWithHeartbeat=he.ClusterAdapter=he.MessageType=void 0;var mh=Dn(),hh=R(),xh=require("crypto"),T=(0,hh.debug)("socket.io-adapter"),vh="emitter",Ys=5e3;function _t(){return(0,xh.randomBytes)(8).toString("hex")}var b;(function(s){s[s.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",s[s.HEARTBEAT=2]="HEARTBEAT",s[s.BROADCAST=3]="BROADCAST",s[s.SOCKETS_JOIN=4]="SOCKETS_JOIN",s[s.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",s[s.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",s[s.FETCH_SOCKETS=7]="FETCH_SOCKETS",s[s.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",s[s.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",s[s.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",s[s.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",s[s.BROADCAST_ACK=12]="BROADCAST_ACK",s[s.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"})(b||(he.MessageType=b={}));function Ve(s){return{rooms:[...s.rooms],except:[...s.except],flags:s.flags}}function wt(s){return{rooms:new Set(s.rooms),except:new Set(s.except),flags:s.flags}}var Xs=class extends mh.Adapter{constructor(e){super(e),this.requests=new Map,this.ackRequests=new Map,this.uid=_t()}onMessage(e,t){if(e.uid===this.uid)return T("[%s] ignore message from self",this.uid);if(e.nsp!==this.nsp.name)return T("[%s] ignore message from another namespace (%s)",this.uid,e.nsp);switch(T("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case b.BROADCAST:{if(e.data.requestId!==void 0)super.broadcastWithAck(e.data.packet,wt(e.data.opts),n=>{T("[%s] waiting for %d client acknowledgements",this.uid,n),this.publishResponse(e.uid,{type:b.BROADCAST_CLIENT_COUNT,data:{requestId:e.data.requestId,clientCount:n}})},n=>{T("[%s] received acknowledgement with value %j",this.uid,n),this.publishResponse(e.uid,{type:b.BROADCAST_ACK,data:{requestId:e.data.requestId,packet:n}})});else{let n=e.data.packet,a=wt(e.data.opts);this.addOffsetIfNecessary(n,a,t),super.broadcast(n,a)}break}case b.SOCKETS_JOIN:super.addSockets(wt(e.data.opts),e.data.rooms);break;case b.SOCKETS_LEAVE:super.delSockets(wt(e.data.opts),e.data.rooms);break;case b.DISCONNECT_SOCKETS:super.disconnectSockets(wt(e.data.opts),e.data.close);break;case b.FETCH_SOCKETS:{T("[%s] calling fetchSockets with opts %j",this.uid,e.data.opts),super.fetchSockets(wt(e.data.opts)).then(i=>{this.publishResponse(e.uid,{type:b.FETCH_SOCKETS_RESPONSE,data:{requestId:e.data.requestId,sockets:i.map(n=>{let a=n.handshake,{sessionStore:r}=a,o=fh(a,["sessionStore"]);return{id:n.id,handshake:o,rooms:[...n.rooms],data:n.data}})}})});break}case b.SERVER_SIDE_EMIT:{let i=e.data.packet;if(!(e.data.requestId!==void 0)){this.nsp._onServerSideEmit(i);return}let a=!1,r=o=>{a||(a=!0,T("[%s] calling acknowledgement with %j",this.uid,o),this.publishResponse(e.uid,{type:b.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:e.data.requestId,packet:o}}))};this.nsp._onServerSideEmit([...i,r]);break}case b.BROADCAST_CLIENT_COUNT:case b.BROADCAST_ACK:case b.FETCH_SOCKETS_RESPONSE:case b.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(e);break;default:T("[%s] unknown message type: %s",this.uid,e.type)}}onResponse(e){var t,i;let n=e.data.requestId;switch(T("[%s] received response %s to request %s",this.uid,e.type,n),e.type){case b.BROADCAST_CLIENT_COUNT:{(t=this.ackRequests.get(n))===null||t===void 0||t.clientCountCallback(e.data.clientCount);break}case b.BROADCAST_ACK:{(i=this.ackRequests.get(n))===null||i===void 0||i.ack(e.data.packet);break}case b.FETCH_SOCKETS_RESPONSE:{let a=this.requests.get(n);if(!a)return;a.current++,e.data.sockets.forEach(r=>a.responses.push(r)),a.current===a.expected&&(clearTimeout(a.timeout),a.resolve(a.responses),this.requests.delete(n));break}case b.SERVER_SIDE_EMIT_RESPONSE:{let a=this.requests.get(n);if(!a)return;a.current++,a.responses.push(e.data.packet),a.current===a.expected&&(clearTimeout(a.timeout),a.resolve(null,a.responses),this.requests.delete(n));break}default:T("[%s] unknown response type: %s",this.uid,e.type)}}async broadcast(e,t){var i;if(!((i=t.flags)===null||i===void 0?void 0:i.local))try{let a=await this.publishAndReturnOffset({type:b.BROADCAST,data:{packet:e,opts:Ve(t)}});this.addOffsetIfNecessary(e,t,a)}catch(a){return T("[%s] error while broadcasting message: %s",this.uid,a.message)}super.broadcast(e,t)}addOffsetIfNecessary(e,t,i){var n;if(!this.nsp.server.opts.connectionStateRecovery)return;let a=e.type===2,r=e.id===void 0,o=((n=t.flags)===null||n===void 0?void 0:n.volatile)===void 0;a&&r&&o&&e.data.push(i)}broadcastWithAck(e,t,i,n){var a;if(!((a=t?.flags)===null||a===void 0?void 0:a.local)){let o=_t();this.ackRequests.set(o,{clientCountCallback:i,ack:n}),this.publish({type:b.BROADCAST,data:{packet:e,requestId:o,opts:Ve(t)}}),setTimeout(()=>{this.ackRequests.delete(o)},t.flags.timeout)}super.broadcastWithAck(e,t,i,n)}async addSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.SOCKETS_JOIN,data:{opts:Ve(e),rooms:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.addSockets(e,t)}async delSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.SOCKETS_LEAVE,data:{opts:Ve(e),rooms:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.delSockets(e,t)}async disconnectSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.DISCONNECT_SOCKETS,data:{opts:Ve(e),close:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.disconnectSockets(e,t)}async fetchSockets(e){var t;let[i,n]=await Promise.all([super.fetchSockets(e),this.serverCount()]),a=n-1;if(!((t=e.flags)===null||t===void 0)&&t.local||a<=0)return i;let r=_t();return new Promise((o,c)=>{let l=setTimeout(()=>{let u=this.requests.get(r);u&&(c(new Error(`timeout reached: only ${u.current} responses received out of ${u.expected}`)),this.requests.delete(r))},e.flags.timeout||Ys),p={type:b.FETCH_SOCKETS,resolve:o,timeout:l,current:0,expected:a,responses:i};this.requests.set(r,p),this.publish({type:b.FETCH_SOCKETS,data:{opts:Ve(e),requestId:r}})})}async serverSideEmit(e){if(!(typeof e[e.length-1]=="function"))return this.publish({type:b.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),n=await this.serverCount()-1;if(T('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return i(null,[]);let a=_t(),r=setTimeout(()=>{let c=this.requests.get(a);c&&(i(new Error(`timeout reached: only ${c.current} responses received out of ${c.expected}`),c.responses),this.requests.delete(a))},Ys),o={type:b.SERVER_SIDE_EMIT,resolve:i,timeout:r,current:0,expected:n,responses:[]};this.requests.set(a,o),this.publish({type:b.SERVER_SIDE_EMIT,data:{requestId:a,packet:e}})}publish(e){T("[%s] sending message %s",this.uid,e.type),this.publishAndReturnOffset(e).catch(t=>{T("[%s] error while publishing message: %s",this.uid,t)})}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,T("[%s] sending response %s to %s",this.uid,t.type,e),this.doPublishResponse(e,t).catch(i=>{T("[%s] error while publishing response: %s",this.uid,i)})}};he.ClusterAdapter=Xs;var qn=class extends Xs{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(()=>{let i=Date.now();this.nodesMap.forEach((n,a)=>{i-n>this._opts.heartbeatTimeout&&(T("[%s] node %s seems down",this.uid,a),this.removeNode(a))})},1e3)}init(){this.publish({type:b.INITIAL_HEARTBEAT})}scheduleHeartbeat(){this.heartbeatTimer?this.heartbeatTimer.refresh():this.heartbeatTimer=setTimeout(()=>{this.publish({type:b.HEARTBEAT})},this._opts.heartbeatInterval)}close(){this.publish({type:b.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer&&clearInterval(this.cleanupTimer)}onMessage(e,t){if(e.uid===this.uid)return T("[%s] ignore message from self",this.uid);switch(e.uid&&e.uid!==vh&&this.nodesMap.set(e.uid,Date.now()),e.type){case b.INITIAL_HEARTBEAT:this.publish({type:b.HEARTBEAT});break;case b.HEARTBEAT:break;case b.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(!(typeof e[e.length-1]=="function"))return this.publish({type:b.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),n=this.nodesMap.size;if(T('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return i(null,[]);let a=_t(),r=setTimeout(()=>{let c=this.customRequests.get(a);c&&(i(new Error(`timeout reached: missing ${c.missingUids.size} responses`),c.responses),this.customRequests.delete(a))},Ys),o={type:b.SERVER_SIDE_EMIT,resolve:i,timeout:r,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(a,o),this.publish({type:b.SERVER_SIDE_EMIT,data:{requestId:a,packet:e}})}async fetchSockets(e){var t;let[i,n]=await Promise.all([super.fetchSockets({rooms:e.rooms,except:e.except,flags:{local:!0}}),this.serverCount()]),a=n-1;if(!((t=e.flags)===null||t===void 0)&&t.local||a<=0)return i;let r=_t();return new Promise((o,c)=>{let l=setTimeout(()=>{let u=this.customRequests.get(r);u&&(c(new Error(`timeout reached: missing ${u.missingUids.size} responses`)),this.customRequests.delete(r))},e.flags.timeout||Ys),p={type:b.FETCH_SOCKETS,resolve:o,timeout:l,missingUids:new Set([...this.nodesMap.keys()]),responses:i};this.customRequests.set(r,p),this.publish({type:b.FETCH_SOCKETS,data:{opts:Ve(e),requestId:r}})})}onResponse(e){let t=e.data.requestId;switch(T("[%s] received response %s to request %s",this.uid,e.type,t),e.type){case b.FETCH_SOCKETS_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;e.data.sockets.forEach(n=>i.responses.push(n)),i.missingUids.delete(e.uid),i.missingUids.size===0&&(clearTimeout(i.timeout),i.resolve(i.responses),this.customRequests.delete(t));break}case b.SERVER_SIDE_EMIT_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;i.responses.push(e.data.packet),i.missingUids.delete(e.uid),i.missingUids.size===0&&(clearTimeout(i.timeout),i.resolve(null,i.responses),this.customRequests.delete(t));break}default:super.onResponse(e)}}removeNode(e){this.customRequests.forEach((t,i)=>{t.missingUids.delete(e),t.missingUids.size===0&&(clearTimeout(t.timeout),t.type===b.FETCH_SOCKETS?t.resolve(t.responses):t.type===b.SERVER_SIDE_EMIT&&t.resolve(null,t.responses),this.customRequests.delete(i))}),this.nodesMap.delete(e)}};he.ClusterAdapterWithHeartbeat=qn});var Js=x(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.MessageType=ae.ClusterAdapterWithHeartbeat=ae.ClusterAdapter=ae.SessionAwareAdapter=ae.Adapter=void 0;var Cc=Dn();Object.defineProperty(ae,"Adapter",{enumerable:!0,get:function(){return Cc.Adapter}});Object.defineProperty(ae,"SessionAwareAdapter",{enumerable:!0,get:function(){return Cc.SessionAwareAdapter}});var Fn=kc();Object.defineProperty(ae,"ClusterAdapter",{enumerable:!0,get:function(){return Fn.ClusterAdapter}});Object.defineProperty(ae,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return Fn.ClusterAdapterWithHeartbeat}});Object.defineProperty(ae,"MessageType",{enumerable:!0,get:function(){return Fn.MessageType}})});var Rc=x(St=>{"use strict";var gh=St&&St.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(St,"__esModule",{value:!0});St.ParentNamespace=void 0;var Tc=Nn(),bh=Js(),yh=gh(R()),Oc=(0,yh.default)("socket.io:parent-namespace"),Qs=class s extends Tc.Namespace{constructor(e){super(e,"/_"+s.count++),this.children=new Set}_initAdapter(){this.adapter=new Un(this)}emit(e,...t){return this.children.forEach(i=>{i.emit(e,...t)}),!0}createChild(e){Oc("creating child namespace %s",e);let t=new Tc.Namespace(this.server,e);if(this._fns.forEach(i=>t.use(i)),this.listeners("connect").forEach(i=>t.on("connect",i)),this.listeners("connection").forEach(i=>t.on("connection",i)),this.children.add(t),this.server._opts.cleanupEmptyChildNamespaces){let i=t._remove;t._remove=n=>{i.call(t,n),t.sockets.size===0&&(Oc("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")}};St.ParentNamespace=Qs;Qs.count=0;var Un=class extends bh.Adapter{broadcast(e,t){this.nsp.children.forEach(i=>{i.adapter.broadcast(e,t)})}}});var Bc=x(Ke=>{"use strict";var wh=Ke&&Ke.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ke,"__esModule",{value:!0});Ke.patchAdapter=Sh;Ke.restoreAdapter=Eh;Ke.serveFile=Ch;var Ge=Js(),Ac=require("fs"),_h=wh(R()),Zs=(0,_h.default)("socket.io:adapter-uws"),Hn="",{addAll:jc,del:Ic,broadcast:Nc}=Ge.Adapter.prototype;function Sh(s){Ge.Adapter.prototype.addAll=function(e,t){let i=!this.sids.has(e);jc.call(this,e,t);let n=this.nsp.sockets.get(e)||this.nsp._preConnectSockets.get(e);if(n){if(n.conn.transport.name==="websocket"){Pc(this.nsp.name,n,i,t);return}i&&n.conn.on("upgrade",()=>{let a=this.sids.get(e);a&&Pc(this.nsp.name,n,i,a)})}},Ge.Adapter.prototype.del=function(e,t){Ic.call(this,e,t);let i=this.nsp.sockets.get(e)||this.nsp._preConnectSockets.get(e);if(i&&i.conn.transport.name==="websocket"){let n=i.conn.id,a=i.conn.transport.socket,r=`${this.nsp.name}${Hn}${t}`;Zs("unsubscribe connection %s from topic %s",n,r),a.unsubscribe(r)}},Ge.Adapter.prototype.broadcast=function(e,t){if(!(t.rooms.size<=1&&t.except.size===0)){Nc.call(this,e,t);return}let n=t.flags||{},a={preEncoded:!0,volatile:n.volatile,compress:n.compress};e.nsp=this.nsp.name;let r=this.encoder.encode(e),o=t.rooms.size===0?this.nsp.name:`${this.nsp.name}${Hn}${t.rooms.keys().next().value}`;Zs("fast publish to %s",o),r.forEach(c=>{let l=typeof c!="string";s.publish(o,l?c:"4"+c,l)}),this.apply(t,c=>{c.conn.transport.name!=="websocket"&&c.client.writeToEngine(r,a)})}}function Pc(s,e,t,i){let n=e.conn.id,a=e.conn.transport.socket;t&&(Zs("subscribe connection %s to topic %s",n,s),a.subscribe(s)),i.forEach(r=>{let o=`${s}${Hn}${r}`;Zs("subscribe connection %s to topic %s",n,o),a.subscribe(o)})}function Eh(){Ge.Adapter.prototype.addAll=jc,Ge.Adapter.prototype.del=Ic,Ge.Adapter.prototype.broadcast=Nc}var kh=s=>{let{buffer:e,byteOffset:t,byteLength:i}=s;return e.slice(t,t+i)};function Ch(s,e){let{size:t}=(0,Ac.statSync)(e),i=(0,Ac.createReadStream)(e),n=()=>!i.destroyed&&i.destroy(),a=o=>{throw n(),o},r=o=>{let c=kh(o);s.cork(()=>{let l=s.getWriteOffset(),[p,u]=s.tryEnd(c,t);!u&&!p&&(i.pause(),s.onWritable(d=>{let[h,m]=s.tryEnd(c.slice(d-l),t);return!m&&h&&i.resume(),h}))})};s.onAborted(n),i.on("data",r).on("error",a).on("end",n)}});var Lc=x((ng,Th)=>{Th.exports={name:"socket.io",version:"4.8.3",description:"node.js realtime framework server",keywords:["realtime","framework","websocket","tcp","events","socket","io"],files:["dist/","client-dist/","wrapper.mjs","!**/*.tsbuildinfo"],directories:{doc:"docs/",example:"example/",lib:"lib/",test:"test/"},type:"commonjs",main:"./dist/index.js",exports:{".":{types:"./dist/index.d.ts",import:"./wrapper.mjs",require:"./dist/index.js"},"./package.json":"./package.json"},types:"./dist/index.d.ts",license:"MIT",homepage:"https://github.com/socketio/socket.io/tree/main/packages/socket.io#readme",repository:{type:"git",url:"git+https://github.com/socketio/socket.io.git"},bugs:{url:"https://github.com/socketio/socket.io/issues"},scripts:{compile:"rimraf ./dist && tsc",test:"npm run format:check && npm run compile && npm run test:types && npm run test:unit","test:types":"tsd","test:unit":"nyc mocha --import=tsx --reporter spec --slow 200 --bail --timeout 10000 test/index.ts","format:check":'prettier --check "lib/**/*.ts" "test/**/*.ts"',"format:fix":'prettier --write "lib/**/*.ts" "test/**/*.ts"',prepack:"npm run compile"},dependencies:{accepts:"~1.3.4",base64id:"~2.0.0",cors:"~2.8.5",debug:"~4.4.1","engine.io":"~6.6.0","socket.io-adapter":"~2.5.2","socket.io-parser":"~4.2.4"},contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],engines:{node:">=10.2.0"},tsd:{directory:"test"}}});var Wc=x((q,Ut)=>{"use strict";var Oh=q&&q.__createBinding||(Object.create?(function(s,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(s,i,n)}):(function(s,e,t,i){i===void 0&&(i=t),s[i]=e[t]})),Rh=q&&q.__setModuleDefault||(Object.create?(function(s,e){Object.defineProperty(s,"default",{enumerable:!0,value:e})}):function(s,e){s.default=e}),Ah=q&&q.__importStar||function(s){if(s&&s.__esModule)return s;var e={};if(s!=null)for(var t in s)t!=="default"&&Object.prototype.hasOwnProperty.call(s,t)&&Oh(e,s,t);return Rh(e,s),e},$n=q&&q.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(q,"__esModule",{value:!0});q.Namespace=q.Socket=q.Server=void 0;var Ph=$n(require("http")),jh=require("fs"),zn=require("zlib"),Ih=es(),ei=require("stream"),Mc=require("path"),Dc=rc(),Nh=hc(),qc=require("events"),Vn=Nn();Object.defineProperty(q,"Namespace",{enumerable:!0,get:function(){return Vn.Namespace}});var Bh=Rc(),Fc=Js(),Lh=Ah(qt()),Mh=$n(R()),zc=jn();Object.defineProperty(q,"Socket",{enumerable:!0,get:function(){return zc.Socket}});var Dh=Hs(),Wn=Bc(),qh=$n(dn()),H=(0,Mh.default)("socket.io:server"),Uc=Lc().version,Hc=/\.map/,Et=class s extends Dh.StrictEventEmitter{constructor(e,t={}){super(),this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,typeof e=="object"&&e instanceof Object&&!e.listen&&(t=e,e=void 0),this.path(t.path||"/socket.io"),this.connectTimeout(t.connectTimeout||45e3),this.serveClient(t.serveClient!==!1),this._parser=t.parser||Lh,this.encoder=new this._parser.Encoder,this.opts=t,t.connectionStateRecovery?(t.connectionStateRecovery=Object.assign({maxDisconnectionDuration:120*1e3,skipMiddlewares:!0},t.connectionStateRecovery),this.adapter(t.adapter||Fc.SessionAwareAdapter)):this.adapter(t.adapter||Fc.Adapter),t.cleanupEmptyChildNamespaces=!!t.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),(e||typeof e=="number")&&this.attach(e),this.opts.cors&&(this._corsMiddleware=(0,qh.default)(this.opts.cors))}get _opts(){return this.opts}serveClient(e){return arguments.length?(this._serveClient=e,this):this._serveClient}_checkNamespace(e,t,i){if(this.parentNsps.size===0)return i(!1);let n=this.parentNsps.keys(),a=()=>{let r=n.next();if(r.done)return i(!1);r.value(e,t,(o,c)=>{if(o||!c)return a();if(this._nsps.has(e))return H("dynamic namespace %s already exists",e),i(this._nsps.get(e));let l=this.parentNsps.get(r.value).createChild(e);H("dynamic namespace %s was created",e),i(l)})};a()}path(e){if(!arguments.length)return this._path;this._path=e.replace(/\/$/,"");let t=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+t+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(e){return e===void 0?this._connectTimeout:(this._connectTimeout=e,this)}adapter(e){if(!arguments.length)return this._adapter;this._adapter=e;for(let t of this._nsps.values())t._initAdapter();return this}listen(e,t={}){return this.attach(e,t)}attach(e,t={}){if(typeof e=="function"){let i="You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.";throw new Error(i)}if(Number(e)==e&&(e=Number(e)),typeof e=="number"){H("creating http server and binding to %d",e);let i=e;e=Ph.default.createServer((n,a)=>{a.writeHead(404),a.end()}),e.listen(i)}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,H("creating uWebSockets.js-based engine with opts %j",t);let i=new Dc.uServer(t);i.attach(e,t),this.bind(i),this._serveClient&&e.get(`${this._path}/*`,(n,a)=>{if(!this.clientPathRegex.test(a.getUrl())){a.setYield(!0);return}let r=a.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),o=Hc.test(r),c=o?"map":"source",l='"'+Uc+'"',p="W/"+l,u=a.getHeader("if-none-match");if(u&&(l===u||p===u)){H("serve client %s 304",c),n.writeStatus("304 Not Modified"),n.end();return}H("serve client %s",c),n.writeHeader("cache-control","public, max-age=0"),n.writeHeader("content-type","application/"+(o?"json":"javascript")+"; charset=utf-8"),n.writeHeader("etag",l);let d=Mc.join(__dirname,"../client-dist/",r);(0,Wn.serveFile)(n,d)}),(0,Wn.patchAdapter)(e)}initEngine(e,t){H("creating engine.io instance with opts %j",t),this.eio=(0,Dc.attach)(e,t),this._serveClient&&this.attachServe(e),this.httpServer=e,this.bind(this.eio)}attachServe(e){H("attaching client serving req handler");let t=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("request",(i,n)=>{if(this.clientPathRegex.test(i.url))this._corsMiddleware?this._corsMiddleware(i,n,()=>{this.serve(i,n)}):this.serve(i,n);else for(let a=0;a<t.length;a++)t[a].call(e,i,n)})}serve(e,t){let i=e.url.replace(this._path,"").replace(/\?.*$/,""),n=Hc.test(i),a=n?"map":"source",r='"'+Uc+'"',o="W/"+r,c=e.headers["if-none-match"];if(c&&(r===c||o===c)){H("serve client %s 304",a),t.writeHead(304),t.end();return}H("serve client %s",a),t.setHeader("Cache-Control","public, max-age=0"),t.setHeader("Content-Type","application/"+(n?"json":"javascript")+"; charset=utf-8"),t.setHeader("ETag",r),s.sendFile(i,e,t)}static sendFile(e,t,i){let n=(0,jh.createReadStream)(Mc.join(__dirname,"../client-dist/",e)),a=Ih(t).encodings(["br","gzip","deflate"]),r=o=>{o&&i.end()};switch(a){case"br":i.writeHead(200,{"content-encoding":"br"}),(0,ei.pipeline)(n,(0,zn.createBrotliCompress)(),i,r);break;case"gzip":i.writeHead(200,{"content-encoding":"gzip"}),(0,ei.pipeline)(n,(0,zn.createGzip)(),i,r);break;case"deflate":i.writeHead(200,{"content-encoding":"deflate"}),(0,ei.pipeline)(n,(0,zn.createDeflate)(),i,r);break;default:i.writeHead(200),(0,ei.pipeline)(n,i,r)}}bind(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(e){H("incoming connection with id %s",e.id);let t=new Nh.Client(this,e);return e.protocol===3&&t.connect("/"),this}of(e,t){if(typeof e=="function"||e instanceof RegExp){let n=new Bh.ParentNamespace(this);return H("initializing parent namespace %s",n.name),typeof e=="function"?this.parentNsps.set(e,n):(this.parentNsps.set((a,r,o)=>o(null,e.test(a)),n),this.parentNamespacesFromRegExp.set(e,n)),t&&n.on("connect",t),n}String(e)[0]!=="/"&&(e="/"+e);let i=this._nsps.get(e);if(!i){for(let[n,a]of this.parentNamespacesFromRegExp)if(n.test(e))return H("attaching namespace %s to parent namespace %s",e,n),a.createChild(e);H("initializing namespace %s",e),i=new Vn.Namespace(this,e),this._nsps.set(e,i),e!=="/"&&this.sockets.emitReserved("new_namespace",i)}return t&&i.on("connect",t),i}async close(e){if(await Promise.allSettled([...this._nsps.values()].map(async t=>{t.sockets.forEach(i=>{i._onclose("server shutting down")}),await t.adapter.close()})),this.engine.close(),(0,Wn.restoreAdapter)(),this.httpServer)return new Promise(t=>{this.httpServer.close(i=>{e&&e(i),i&&H("server was not running"),t()})});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)}};q.Server=Et;var Fh=Object.keys(qc.EventEmitter.prototype).filter(function(s){return typeof qc.EventEmitter.prototype[s]=="function"});Fh.forEach(function(s){Et.prototype[s]=function(){return this.sockets[s].apply(this.sockets,arguments)}});Ut.exports=(s,e)=>new Et(s,e);Ut.exports.Server=Et;Ut.exports.Namespace=Vn.Namespace;Ut.exports.Socket=zc.Socket});var Kc={};Qe(Kc,{TileManager:()=>Gn});var ti,kt,si,Gc,Uh,Hh,Gn,Yc=Me(()=>{ti=M(require("sharp"),1),kt=M(require("fs"),1),si=M(require("path"),1),Gc=require("url"),Uh=(0,Gc.fileURLToPath)(__importMetaUrl),Hh=si.default.dirname(Uh),Gn=class{constructor(e){this.robot=e,this.tileSize=100,this.lastTileChecksums=new Map,this.lastTileBuffers=new Map,this.screenWidth=0,this.screenHeight=0,this.tilesPerRow=0,this.tilesPerColumn=0,this.totalTiles=0,this.frameCount=0,this.tempDir=si.default.join(Hh,"../../temp"),this.compressionQuality=1,this.changeThreshold=1,this.scaleFactor=.99,this.scaledWidth=0,this.scaledHeight=0,this.isProcessing=!1,this.sharedScreenCache=null,this.lastCaptureTime=0,this.CACHE_TTL=100,kt.default.existsSync(this.tempDir)||kt.default.mkdirSync(this.tempDir,{recursive:!0}),this.initializeScreenDimensions()}initializeScreenDimensions(){try{let{width:e,height:t}=this.robot.getScreenSize();this.screenWidth=e,this.screenHeight=t,this.scaledWidth=Math.floor(e*this.scaleFactor),this.scaledHeight=Math.floor(t*this.scaleFactor),this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn;let i=100;if(this.totalTiles>i){let n=Math.ceil(Math.sqrt(this.scaledWidth*this.scaledHeight/i));this.tileSize=Math.max(n,120),this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}console.log(`\u{1F5A5}\uFE0F TileManager: ${e}x${t} -> ${this.totalTiles} tiles`)}catch(e){console.error("Screen dimensions error:",e),this.screenWidth=1920,this.screenHeight=1080,this.scaledWidth=1728,this.scaledHeight=972,this.tileSize=120,this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}}async captureFullScreen(){let e=this.robot.screen.capture(),t=Buffer.from(e.image);for(let o=0;o<t.length;o+=4){let c=t[o],l=t[o+2];t[o]=l,t[o+2]=c}let i=e.byteWidth/e.bytesPerPixel,n=t,a=i,r=e.height;if(this.scaleFactor<1){let o=Math.floor(i*this.scaleFactor),c=Math.floor(e.height*this.scaleFactor);n=await(0,ti.default)(t,{raw:{width:i,height:e.height,channels:e.bytesPerPixel}}).resize(o,c,{kernel:ti.default.kernel.lanczos3,fit:"fill"}).raw().toBuffer(),a=o,r=c,this.scaledWidth=o,this.scaledHeight=c,this.tilesPerRow=Math.ceil(o/this.tileSize),this.tilesPerColumn=Math.ceil(c/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}return{buffer:n,width:a,height:r,channels:e.bytesPerPixel}}async getSharedScreenCapture(){let e=Date.now();return this.sharedScreenCache&&e-this.lastCaptureTime<this.CACHE_TTL?this.sharedScreenCache:(this.sharedScreenCache=await this.captureFullScreen(),this.lastCaptureTime=e,this.sharedScreenCache)}clearScreenCache(){}async detectChangedTiles(){if(this.isProcessing)return[];this.isProcessing=!0;try{let e=await this.getSharedScreenCapture(),t=[],i=[];if(this.frameCount++,this.lastTileChecksums.size===0){let a=[];for(let o=0;o<this.totalTiles;o++)a.push(this.processTileAsync(e,o,!0));let r=await Promise.all(a);return t.push(...r),t}for(let a=0;a<this.totalTiles;a++){let r=await this.extractTile(e,a),o=this.calculateTileChecksum(r.buffer),c=this.lastTileChecksums.get(a);o!==c&&(i.push(a),this.lastTileChecksums.set(a,o))}if(i.length/this.totalTiles>this.changeThreshold){let a=[];for(let o=0;o<this.totalTiles;o++)a.push(this.processTileAsync(e,o,!0));let r=await Promise.all(a);t.push(...r.map(o=>({...o,fullRefresh:!0})))}else if(i.length>0){let a=i.map(o=>this.processTileAsync(e,o,!1)),r=await Promise.all(a);t.push(...r)}return t}finally{this.isProcessing=!1}}async processTileAsync(e,t){let i=await this.extractTile(e,t),n=this.calculateTileChecksum(i.buffer);this.lastTileChecksums.set(t,n),this.lastTileBuffers.set(t,i.buffer);let a=await this.compressTileImage(i.buffer,i.width,i.height),{row:r,col:o}=this.getTilePosition(t);return{type:"tile-update",tileIndex:t,x:o*this.tileSize,y:r*this.tileSize,width:i.width,height:i.height,imageBase64:a,size:Math.round(a.length*.75/1024),timestamp:Date.now(),frameCount:this.frameCount}}calculateTileChecksum(e){let t=0;for(let i=0;i<e.length;i+=64)t+=e[i]||0,t^=e[i+1]||0,t+=(e[i+2]||0)<<1,t^=(e[i+3]||0)<<2;return t>>>0}getTilePosition(e){return{row:Math.floor(e/this.tilesPerRow),col:e%this.tilesPerRow}}async extractTile(e,t){let{row:i,col:n}=this.getTilePosition(t),a=n*this.tileSize,r=i*this.tileSize,o=Math.min(a+this.tileSize,e.width),c=Math.min(r+this.tileSize,e.height),l=o-a,p=c-r,u=Buffer.alloc(l*p*e.channels);for(let d=0;d<p;d++)for(let h=0;h<l;h++){let m=((r+d)*e.width+(a+h))*e.channels,f=(d*l+h)*e.channels;for(let v=0;v<e.channels;v++)u[f+v]=e.buffer[m+v]}return{buffer:u,width:l,height:p,channels:e.channels,tileIndex:t,x:a,y:r}}async compressTileImage(e,t,i){return`data:image/webp;base64,${(await(0,ti.default)(e,{raw:{width:t,height:i,channels:4}}).webp({quality:85,effort:2,smartSubsample:!0}).toBuffer()).toString("base64")}`}async getScreenDimensions(){try{let e=await this.captureFullScreen();this.scaledWidth=e.width,this.scaledHeight=e.height,this.tilesPerRow=Math.ceil(e.width/this.tileSize),this.tilesPerColumn=Math.ceil(e.height/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}catch(e){console.error("Error getting dimensions:",e)}return{width:this.scaledWidth,height:this.scaledHeight,tileWidth:this.tileSize,tileHeight:this.tileSize,tileCount:this.totalTiles,scaleFactor:this.scaleFactor,originalWidth:this.screenWidth,originalHeight:this.screenHeight}}async compareClientTileHashes(e){if(this.isProcessing)return{tiles:[],currentHashes:[],changedIndices:[]};this.isProcessing=!0;try{let t=await this.getSharedScreenCapture(),i=[],n=[];this.frameCount++;let a=new Map;for(let o=0;o<this.totalTiles;o++){let c=await this.extractTile(t,o),l=this.calculateTileChecksum(c.buffer);a.set(o,l),this.lastTileChecksums.set(o,l)}if(!e||e.length===0){let o=[];for(let l=0;l<this.totalTiles;l++)o.push(this.processTileAsync(t,l,!0));let c=await Promise.all(o);return i.push(...c),{tiles:i,currentHashes:Array.from(a.values())}}for(let o=0;o<this.totalTiles;o++)e[o]!==a.get(o)&&n.push(o);if(n.length/this.totalTiles>this.changeThreshold){let o=[];for(let l=0;l<this.totalTiles;l++)o.push(this.processTileAsync(t,l,!0));let c=await Promise.all(o);i.push(...c.map(l=>({...l,fullRefresh:!0})))}else if(n.length>0){let o=n.map(l=>this.processTileAsync(t,l,!1)),c=await Promise.all(o);i.push(...c)}return{tiles:i,currentHashes:Array.from(a.values()),changedIndices:n}}finally{this.isProcessing=!1}}reset(){this.lastTileChecksums.clear(),this.lastTileBuffers.clear(),this.frameCount=0}cleanup(){try{kt.default.existsSync(this.tempDir)&&kt.default.readdirSync(this.tempDir).forEach(t=>kt.default.unlinkSync(si.default.join(this.tempDir,t)))}catch(e){console.warn("Cleanup error:",e)}}}});var K,Ht=Me(()=>{K={robotSettings:{mouseDelay:2,keyboardDelay:2},throttling:{mouseThrottle:8,keyThrottle:25,typeTextThrottle:100,maxTextLength:1e3},resourceManagement:{inactiveTimeout:12e4,memoryCheckInterval:6e4,memoryWarningThreshold:1e3,maxTimersPerClient:100,maxChunkTimersPerClient:50},streaming:{autoStreamingInterval:100,chunkSize:32,chunkDelay:5,updateDelayAfterAction:200}}});var Xc={};Qe(Xc,{ResourceManager:()=>Kn});var Kn,Jc=Me(()=>{Ht();Kn=class{constructor(){this.activeClients=new Map,this.activeTimers=new Map,this.chunkTimers=new Map,this.memoryCheckInterval=null}startResourceMonitoring(){this.memoryCheckInterval=setInterval(()=>{let e=process.memoryUsage(),t=Math.round(e.heapUsed/1024/1024);t>K.resourceManagement.memoryWarningThreshold&&(console.warn(`\u26A0\uFE0F High memory: ${t}MB`),this.cleanupInactiveClients())},K.resourceManagement.memoryCheckInterval)}stopResourceMonitoring(){this.memoryCheckInterval&&(clearInterval(this.memoryCheckInterval),this.memoryCheckInterval=null)}addClient(e,t){this.activeClients.set(e,{...t,lastActivity:Date.now()})}getClient(e){return this.activeClients.get(e)}updateClientActivity(e){let t=this.activeClients.get(e);t&&(t.lastActivity=Date.now())}cleanupInactiveClients(){let e=Date.now(),t=K.resourceManagement.inactiveTimeout;for(let[i,n]of this.activeClients.entries())e-n.lastActivity>t&&(console.log(`\u{1F9F9} Cleaning inactive client: ${i}`),this.cleanupClientResources(i,n),this.activeClients.delete(i))}cleanupClientResources(e,t){try{t?.screenInterval&&(clearInterval(t.screenInterval),t.screenInterval=null);let i=this.activeTimers.get(e);i&&(i.forEach(a=>clearTimeout(a)),this.activeTimers.delete(e));let n=this.chunkTimers.get(e);n&&(n.forEach(a=>clearTimeout(a)),this.chunkTimers.delete(e)),t?.tileManager&&(t.tileManager.cleanup(),t.tileManager.reset())}catch(i){console.error(`Error cleaning up ${e}:`,i.message)}}removeClient(e){let t=this.activeClients.get(e);t&&(this.cleanupClientResources(e,t),this.activeClients.delete(e))}getChunkTimers(e){return this.chunkTimers.has(e)||this.chunkTimers.set(e,new Set),this.chunkTimers.get(e)}cleanupAll(){this.stopResourceMonitoring();for(let[e,t]of this.activeClients.entries())this.cleanupClientResources(e,t);this.activeClients.clear(),this.activeTimers.clear(),this.chunkTimers.clear()}}});var Qc={};Qe(Qc,{ScreenUpdateHelper:()=>Yn});var Yn,Zc=Me(()=>{Ht();Yn=class{constructor(e){this.resourceManager=e}async sendTilesInChunks(e,t,i,n=!1){if(!t||t.length===0)return;let a=K.streaming.chunkSize,r=[];for(let c=0;c<t.length;c+=a)r.push(t.slice(c,c+a));let o=this.resourceManager.getChunkTimers(e.id);for(let c=0;c<r.length;c++){let l=r[c],p=c===r.length-1,u=setTimeout(()=>{o.delete(u),e.connected&&e.emit("tiles-data",{tiles:l,timestamp:i,forceRefresh:!1,userAction:n,chunkInfo:{chunkIndex:c,totalChunks:r.length,isLastChunk:p}})},c*K.streaming.chunkDelay);o.add(u)}}}});var el={};Qe(el,{MouseHandler:()=>Xn});var Xn,tl=Me(()=>{Ht();Xn=class{constructor(e,t){this.robot=e,this.resourceManager=t,this.lastMouseMove=0}setupMouseHandlers(e,t){let i=this.robot;e.on("mouse-move",t(n=>{let a=Date.now();if(!(a-this.lastMouseMove<K.throttling.mouseThrottle)){this.lastMouseMove=a;try{i.moveMouse(n.x,n.y),this.resourceManager.updateClientActivity(e.id)}catch(r){console.error("Mouse move error:",r.message)}}})),e.on("mouse-click",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseClick(n.button||"left",n.double||!1),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse click error:",a.message)}})),e.on("mouse-press",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseToggle("down",n.button||"left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse press error:",a.message)}})),e.on("mouse-release",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseToggle("up",n.button||"left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse release error:",a.message)}})),e.on("scroll",t(async n=>{try{let{direction:a,amount:r=60,horizontal:o=!1}=n;if(!this.resourceManager.getClient(e.id))return;let l=0,p=0;o||a==="left"||a==="right"?l=a==="right"?r:-r:p=a==="down"?-r:r,i.scrollMouse(l,p),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Scroll error:",a.message)}})),e.on("mouse-drag-select",t(n=>{try{let{startX:a,startY:r,endX:o,endY:c}=n,l=i.getScreenSize(),p=Math.round(a/100*l.width),u=Math.round(r/100*l.height),d=Math.round(o/100*l.width),h=Math.round(c/100*l.height),m=Math.max(0,Math.min(l.width-1,p)),f=Math.max(0,Math.min(l.height-1,u)),v=Math.max(0,Math.min(l.width-1,d)),y=Math.max(0,Math.min(l.height-1,h));i.moveMouse(m,f),i.mouseToggle("down","left"),i.dragMouse(v,y),i.mouseToggle("up","left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Drag selection error:",a.message)}}))}}});var sl={};Qe(sl,{KeyboardHandler:()=>Jn});var Jn,il=Me(()=>{Ht();Jn=class{constructor(e,t){this.robot=e,this.resourceManager=t,this.lastKeyPress=0,this.lastTypeText=0}setupKeyboardHandlers(e,t){let i=this.robot;e.on("key-press",t(n=>{let a=Date.now();if(!(a-this.lastKeyPress<K.throttling.keyThrottle)){this.lastKeyPress=a;try{if(!n.key||typeof n.key!="string")return;let r=n.key;if(r.length===1){i.keyTap(r,n.modifier||[]);for(let o of n.modifier||[])i.keyToggle(o,"up")}else switch(r.toLowerCase()){case"enter":case"return":i.keyTap("enter");break;case"space":i.keyTap(" ");break;case"backspace":i.keyTap("backspace");break;case"tab":i.keyTap("tab");break;case"escape":i.keyTap("escape");break;default:i.keyTap(r,n.modifier||[])}this.resourceManager.updateClientActivity(e.id)}catch(r){console.error("Key press error:",r.message)}}})),e.on("type-text",t(n=>{let a=Date.now();if(!(a-this.lastTypeText<K.throttling.typeTextThrottle)){this.lastTypeText=a;try{if(!n.text||typeof n.text!="string")return;let r=n.text;r.length>K.throttling.maxTextLength&&(r=r.substring(0,K.throttling.maxTextLength));let o=r.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"");setTimeout(()=>{try{i.typeString(o),this.resourceManager.updateClientActivity(e.id);let c=this.resourceManager.getClient(e.id);c?.tileManager&&c.tileManager.clearScreenCache()}catch(c){console.error("Robot typeString error:",c.message)}},10)}catch(r){console.error("Type text error:",r.message)}}}))}}});var nl={};Qe(nl,{ScreenHandler:()=>Qn});var Qn,al=Me(()=>{Qn=class{constructor(e,t){this.resourceManager=e,this.screenUpdateHelper=t}setupScreenHandlers(e,t){e.on("request-screen",t(async()=>{let i=this.resourceManager.getClient(e.id);if(i)try{let n=await i.tileManager.detectChangedTiles();n.length>0&&e.emit("tiles-data",{tiles:n,timestamp:Date.now()}),this.resourceManager.updateClientActivity(e.id)}catch(n){console.error("Tile capture error:",n),e.emit("screen-error",{error:n.message})}})),e.on("request-screen-with-hashes",t(async i=>{let n=this.resourceManager.getClient(e.id);if(n)try{let a=i.tileHashes||[],r=await n.tileManager.compareClientTileHashes(a);r?.tiles?.length>0?e.emit("tiles-data",{tiles:r.tiles,timestamp:Date.now(),currentHashes:r.currentHashes,changedIndices:r.changedIndices}):e.emit("tiles-data",{tiles:[],timestamp:Date.now(),currentHashes:r.currentHashes,changedIndices:[]}),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Tile capture with hashes error:",a),e.emit("screen-error",{error:a.message})}})),e.on("start-streaming",t(()=>{let i=this.resourceManager.getClient(e.id);i&&(i.screenInterval&&(clearInterval(i.screenInterval),i.screenInterval=null),console.log("\u{1F680} Remote streaming started"),i.screenInterval=setInterval(async()=>{try{let n=await i.tileManager.detectChangedTiles();if(n.length>0){let a=Date.now();await this.screenUpdateHelper.sendTilesInChunks(e,n,a,!1)}}catch(n){console.error("Auto streaming error:",n)}},400))})),e.on("stop-streaming",()=>{let i=this.resourceManager.getClient(e.id);i&&(i.screenInterval&&(clearInterval(i.screenInterval),i.screenInterval=null),console.log("\u23F9\uFE0F Remote streaming stopped"))}),e.on("get-screen-dimensions",t(async()=>{let i=this.resourceManager.getClient(e.id);if(i)try{let n=await i.tileManager.getScreenDimensions();e.emit("screen-dimensions",n)}catch(n){console.error("Get dimensions error:",n),e.emit("screen-error",{error:n.message})}}))}}});var gl=x((bg,ta)=>{"use strict";var Xh=Object.prototype.hasOwnProperty,z="~";function Vt(){}Object.create&&(Vt.prototype=Object.create(null),new Vt().__proto__||(z=!1));function Jh(s,e,t){this.fn=s,this.context=e,this.once=t||!1}function vl(s,e,t,i,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var a=new Jh(t,i||s,n),r=z?z+e:e;return s._events[r]?s._events[r].fn?s._events[r]=[s._events[r],a]:s._events[r].push(a):(s._events[r]=a,s._eventsCount++),s}function ri(s,e){--s._eventsCount===0?s._events=new Vt:delete s._events[e]}function F(){this._events=new Vt,this._eventsCount=0}F.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)Xh.call(t,i)&&e.push(z?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};F.prototype.listeners=function(e){var t=z?z+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,a=i.length,r=new Array(a);n<a;n++)r[n]=i[n].fn;return r};F.prototype.listenerCount=function(e){var t=z?z+e:e,i=this._events[t];return i?i.fn?1:i.length:0};F.prototype.emit=function(e,t,i,n,a,r){var o=z?z+e:e;if(!this._events[o])return!1;var c=this._events[o],l=arguments.length,p,u;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,n),!0;case 5:return c.fn.call(c.context,t,i,n,a),!0;case 6:return c.fn.call(c.context,t,i,n,a,r),!0}for(u=1,p=new Array(l-1);u<l;u++)p[u-1]=arguments[u];c.fn.apply(c.context,p)}else{var d=c.length,h;for(u=0;u<d;u++)switch(c[u].once&&this.removeListener(e,c[u].fn,void 0,!0),l){case 1:c[u].fn.call(c[u].context);break;case 2:c[u].fn.call(c[u].context,t);break;case 3:c[u].fn.call(c[u].context,t,i);break;case 4:c[u].fn.call(c[u].context,t,i,n);break;default:if(!p)for(h=1,p=new Array(l-1);h<l;h++)p[h-1]=arguments[h];c[u].fn.apply(c[u].context,p)}}return!0};F.prototype.on=function(e,t,i){return vl(this,e,t,i,!1)};F.prototype.once=function(e,t,i){return vl(this,e,t,i,!0)};F.prototype.removeListener=function(e,t,i,n){var a=z?z+e:e;if(!this._events[a])return this;if(!t)return ri(this,a),this;var r=this._events[a];if(r.fn)r.fn===t&&(!n||r.once)&&(!i||r.context===i)&&ri(this,a);else{for(var o=0,c=[],l=r.length;o<l;o++)(r[o].fn!==t||n&&!r[o].once||i&&r[o].context!==i)&&c.push(r[o]);c.length?this._events[a]=c.length===1?c[0]:c:ri(this,a)}return this};F.prototype.removeAllListeners=function(e){var t;return e?(t=z?z+e:e,this._events[t]&&ri(this,t)):(this._events=new Vt,this._eventsCount=0),this};F.prototype.off=F.prototype.removeListener;F.prototype.addListener=F.prototype.on;F.prefixed=z;F.EventEmitter=F;typeof ta<"u"&&(ta.exports=F)});var yl=x((yg,bl)=>{"use strict";bl.exports=function(e,t){if(t=t.split(":")[0],e=+e,!e)return!1;switch(t){case"http":case"ws":return e!==80;case"https":case"wss":return e!==443;case"ftp":return e!==21;case"gopher":return e!==70;case"file":return!1}return e!==0}});var oi=x(_l=>{var Ce=_l,Qh=require("url"),wl=require("util")._extend,Zh=yl(),ex=/(^|,)\s*upgrade\s*($|,)/i,sa=/^https|wss/;Ce.isSSL=sa;Ce.setupOutgoing=function(s,e,t,i){s.port=e[i||"target"].port||(sa.test(e[i||"target"].protocol)?443:80),["host","hostname","socketPath","pfx","key","passphrase","cert","ca","ciphers","secureProtocol"].forEach(function(o){s[o]=e[i||"target"][o]}),s.method=e.method||t.method,s.headers=wl({},t.headers),e.headers&&wl(s.headers,e.headers),e.auth&&(s.auth=e.auth),e.ca&&(s.ca=e.ca),sa.test(e[i||"target"].protocol)&&(s.rejectUnauthorized=typeof e.secure>"u"?!0:e.secure),s.agent=e.agent||!1,s.localAddress=e.localAddress,s.agent||(s.headers=s.headers||{},(typeof s.headers.connection!="string"||!ex.test(s.headers.connection))&&(s.headers.connection="close"));var n=e[i||"target"],a=n&&e.prependPath!==!1&&n.path||"",r=e.toProxy?t.url:Qh.parse(t.url).path||"";return r=e.ignorePath?"":r,s.path=Ce.urlJoin(a,r),e.changeOrigin&&(s.headers.host=Zh(s.port,e[i||"target"].protocol)&&!tx(s.host)?s.host+":"+s.port:s.host),s};Ce.setupSocket=function(s){return s.setTimeout(0),s.setNoDelay(!0),s.setKeepAlive(!0,0),s};Ce.getPort=function(s){var e=s.headers.host?s.headers.host.match(/:(\d+)/):"";return e?e[1]:Ce.hasEncryptedConnection(s)?"443":"80"};Ce.hasEncryptedConnection=function(s){return!!(s.connection.encrypted||s.connection.pair)};Ce.urlJoin=function(){var s=Array.prototype.slice.call(arguments),e=s.length-1,t=s[e],i=t.split("?"),n;return s[e]=i.shift(),n=[s.filter(Boolean).join("/").replace(/\/+/g,"/").replace("http:/","http://").replace("https:/","https://")],n.push.apply(n,i),n.join("?")};Ce.rewriteCookieProperty=function s(e,t,i){return Array.isArray(e)?e.map(function(n){return s(n,t,i)}):e.replace(new RegExp("(;\\s*"+i+"=)([^;]+)","i"),function(n,a,r){var o;if(r in t)o=t[r];else if("*"in t)o=t["*"];else return n;return o?a+o:""})};function tx(s){return!!~s.indexOf(":")}});var Cl=x((_g,kl)=>{var Sl=require("url"),El=oi(),sx=/^201|30(1|2|7|8)$/;kl.exports={removeChunked:function(e,t,i){e.httpVersion==="1.0"&&delete i.headers["transfer-encoding"]},setConnection:function(e,t,i){e.httpVersion==="1.0"?i.headers.connection=e.headers.connection||"close":e.httpVersion!=="2.0"&&!i.headers.connection&&(i.headers.connection=e.headers.connection||"keep-alive")},setRedirectHostRewrite:function(e,t,i,n){if((n.hostRewrite||n.autoRewrite||n.protocolRewrite)&&i.headers.location&&sx.test(i.statusCode)){var a=Sl.parse(n.target),r=Sl.parse(i.headers.location);if(a.host!=r.host)return;n.hostRewrite?r.host=n.hostRewrite:n.autoRewrite&&(r.host=e.headers.host),n.protocolRewrite&&(r.protocol=n.protocolRewrite),i.headers.location=r.format()}},writeHeaders:function(e,t,i,n){var a=n.cookieDomainRewrite,r=n.cookiePathRewrite,o=n.preserveHeaderKeyCase,c,l=function(d,h){h!=null&&(a&&d.toLowerCase()==="set-cookie"&&(h=El.rewriteCookieProperty(h,a,"domain")),r&&d.toLowerCase()==="set-cookie"&&(h=El.rewriteCookieProperty(h,r,"path")),t.setHeader(String(d).trim(),h))};if(typeof a=="string"&&(a={"*":a}),typeof r=="string"&&(r={"*":r}),o&&i.rawHeaders!=null){c={};for(var p=0;p<i.rawHeaders.length;p+=2){var u=i.rawHeaders[p];c[u.toLowerCase()]=u}}Object.keys(i.headers).forEach(function(d){var h=i.headers[d];o&&c&&(d=c[d]||d),l(d,h)})},writeStatusCode:function(e,t,i){i.statusMessage?(t.statusCode=i.statusCode,t.statusMessage=i.statusMessage):t.statusCode=i.statusCode}}});var Ol=x((Sg,Tl)=>{var Gt;Tl.exports=function(){if(!Gt){try{Gt=R()("follow-redirects")}catch{}typeof Gt!="function"&&(Gt=function(){})}Gt.apply(null,arguments)}});var Il=x((Eg,ma)=>{var Yt=require("url"),Kt=Yt.URL,ix=require("http"),nx=require("https"),oa=require("stream").Writable,ca=require("assert"),Rl=Ol();(function(){var e=typeof process<"u",t=typeof window<"u"&&typeof document<"u",i=Xe(Error.captureStackTrace);!e&&(t||!i)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var la=!1;try{ca(new Kt(""))}catch(s){la=s.code==="ERR_INVALID_URL"}var ax=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],pa=["abort","aborted","connect","error","socket","timeout"],ua=Object.create(null);pa.forEach(function(s){ua[s]=function(e,t,i){this._redirectable.emit(s,e,t,i)}});var na=Xt("ERR_INVALID_URL","Invalid URL",TypeError),aa=Xt("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),rx=Xt("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",aa),ox=Xt("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),cx=Xt("ERR_STREAM_WRITE_AFTER_END","write after end"),lx=oa.prototype.destroy||Pl;function Y(s,e){oa.call(this),this._sanitizeOptions(s),this._options=s,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(i){try{t._processResponse(i)}catch(n){t.emit("error",n instanceof aa?n:new aa({cause:n}))}},this._performRequest()}Y.prototype=Object.create(oa.prototype);Y.prototype.abort=function(){fa(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Y.prototype.destroy=function(s){return fa(this._currentRequest,s),lx.call(this,s),this};Y.prototype.write=function(s,e,t){if(this._ending)throw new cx;if(!Ye(s)&&!dx(s))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Xe(e)&&(t=e,e=null),s.length===0){t&&t();return}this._requestBodyLength+s.length<=this._options.maxBodyLength?(this._requestBodyLength+=s.length,this._requestBodyBuffers.push({data:s,encoding:e}),this._currentRequest.write(s,e,t)):(this.emit("error",new ox),this.abort())};Y.prototype.end=function(s,e,t){if(Xe(s)?(t=s,s=e=null):Xe(e)&&(t=e,e=null),!s)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var i=this,n=this._currentRequest;this.write(s,e,function(){i._ended=!0,n.end(null,null,t)}),this._ending=!0}};Y.prototype.setHeader=function(s,e){this._options.headers[s]=e,this._currentRequest.setHeader(s,e)};Y.prototype.removeHeader=function(s){delete this._options.headers[s],this._currentRequest.removeHeader(s)};Y.prototype.setTimeout=function(s,e){var t=this;function i(r){r.setTimeout(s),r.removeListener("timeout",r.destroy),r.addListener("timeout",r.destroy)}function n(r){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),a()},s),i(r)}function a(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",a),t.removeListener("error",a),t.removeListener("response",a),t.removeListener("close",a),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",n)}return e&&this.on("timeout",e),this.socket?n(this.socket):this._currentRequest.once("socket",n),this.on("socket",i),this.on("abort",a),this.on("error",a),this.on("response",a),this.on("close",a),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(s){Y.prototype[s]=function(e,t){return this._currentRequest[s](e,t)}});["aborted","connection","socket"].forEach(function(s){Object.defineProperty(Y.prototype,s,{get:function(){return this._currentRequest[s]}})});Y.prototype._sanitizeOptions=function(s){if(s.headers||(s.headers={}),s.host&&(s.hostname||(s.hostname=s.host),delete s.host),!s.pathname&&s.path){var e=s.path.indexOf("?");e<0?s.pathname=s.path:(s.pathname=s.path.substring(0,e),s.search=s.path.substring(e))}};Y.prototype._performRequest=function(){var s=this._options.protocol,e=this._options.nativeProtocols[s];if(!e)throw new TypeError("Unsupported protocol "+s);if(this._options.agents){var t=s.slice(0,-1);this._options.agent=this._options.agents[t]}var i=this._currentRequest=e.request(this._options,this._onNativeResponse);i._redirectable=this;for(var n of pa)i.on(n,ua[n]);if(this._currentUrl=/^\//.test(this._options.path)?Yt.format(this._options):this._options.path,this._isRedirect){var a=0,r=this,o=this._requestBodyBuffers;(function c(l){if(i===r._currentRequest)if(l)r.emit("error",l);else if(a<o.length){var p=o[a++];i.finished||i.write(p.data,p.encoding,c)}else r._ended&&i.end()})()}};Y.prototype._processResponse=function(s){var e=s.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:s.headers,statusCode:e});var t=s.headers.location;if(!t||this._options.followRedirects===!1||e<300||e>=400){s.responseUrl=this._currentUrl,s.redirects=this._redirects,this.emit("response",s),this._requestBodyBuffers=[];return}if(fa(this._currentRequest),s.destroy(),++this._redirectCount>this._options.maxRedirects)throw new rx;var i,n=this._options.beforeRedirect;n&&(i=Object.assign({Host:s.req.getHeader("host")},this._options.headers));var a=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],ia(/^content-/i,this._options.headers));var r=ia(/^host$/i,this._options.headers),o=da(this._currentUrl),c=r||o.host,l=/^\w+:/.test(t)?this._currentUrl:Yt.format(Object.assign(o,{host:c})),p=px(t,l);if(Rl("redirecting to",p.href),this._isRedirect=!0,ra(p,this._options),(p.protocol!==o.protocol&&p.protocol!=="https:"||p.host!==c&&!ux(p.host,c))&&ia(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),Xe(n)){var u={headers:s.headers,statusCode:e},d={url:l,method:a,headers:i};n(this._options,u,d),this._sanitizeOptions(this._options)}this._performRequest()};function Al(s){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(s).forEach(function(i){var n=i+":",a=t[n]=s[i],r=e[i]=Object.create(a);function o(l,p,u){return fx(l)?l=ra(l):Ye(l)?l=ra(da(l)):(u=p,p=jl(l),l={protocol:n}),Xe(p)&&(u=p,p=null),p=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},l,p),p.nativeProtocols=t,!Ye(p.host)&&!Ye(p.hostname)&&(p.hostname="::1"),ca.equal(p.protocol,n,"protocol mismatch"),Rl("options",p),new Y(p,u)}function c(l,p,u){var d=r.request(l,p,u);return d.end(),d}Object.defineProperties(r,{request:{value:o,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),e}function Pl(){}function da(s){var e;if(la)e=new Kt(s);else if(e=jl(Yt.parse(s)),!Ye(e.protocol))throw new na({input:s});return e}function px(s,e){return la?new Kt(s,e):da(Yt.resolve(e,s))}function jl(s){if(/^\[/.test(s.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(s.hostname))throw new na({input:s.href||s});if(/^\[/.test(s.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(s.host))throw new na({input:s.href||s});return s}function ra(s,e){var t=e||{};for(var i of ax)t[i]=s[i];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function ia(s,e){var t;for(var i in e)s.test(i)&&(t=e[i],delete e[i]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Xt(s,e,t){function i(n){Xe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,n||{}),this.code=s,this.message=this.cause?e+": "+this.cause.message:e}return i.prototype=new(t||Error),Object.defineProperties(i.prototype,{constructor:{value:i,enumerable:!1},name:{value:"Error ["+s+"]",enumerable:!1}}),i}function fa(s,e){for(var t of pa)s.removeListener(t,ua[t]);s.on("error",Pl),s.destroy(e)}function ux(s,e){ca(Ye(s)&&Ye(e));var t=s.length-e.length-1;return t>0&&s[t]==="."&&s.endsWith(e)}function Ye(s){return typeof s=="string"||s instanceof String}function Xe(s){return typeof s=="function"}function dx(s){return typeof s=="object"&&"length"in s}function fx(s){return Kt&&s instanceof Kt}ma.exports=Al({http:ix,https:nx});ma.exports.wrap=Al});var Bl=x((kg,Nl)=>{var mx=require("http"),hx=require("https"),Jt=Cl(),ci=oi(),xx=Il();Jt=Object.keys(Jt).map(function(s){return Jt[s]});var vx={http:mx,https:hx};Nl.exports={deleteLength:function(e,t,i){(e.method==="DELETE"||e.method==="OPTIONS")&&!e.headers["content-length"]&&(e.headers["content-length"]="0",delete e.headers["transfer-encoding"])},timeout:function(e,t,i){i.timeout&&e.socket.setTimeout(i.timeout)},XHeaders:function(e,t,i){if(i.xfwd){var n=e.isSpdy||ci.hasEncryptedConnection(e),a={for:e.connection.remoteAddress||e.socket.remoteAddress,port:ci.getPort(e),proto:n?"https":"http"};["for","port","proto"].forEach(function(r){e.headers["x-forwarded-"+r]=(e.headers["x-forwarded-"+r]||"")+(e.headers["x-forwarded-"+r]?",":"")+a[r]}),e.headers["x-forwarded-host"]=e.headers["x-forwarded-host"]||e.headers.host||""}},stream:function(e,t,i,n,a,r){a.emit("start",e,t,i.target||i.forward);var o=i.followRedirects?xx:vx,c=o.http,l=o.https;if(i.forward){var p=(i.forward.protocol==="https:"?l:c).request(ci.setupOutgoing(i.ssl||{},i,e,"forward")),u=m(p,i.forward);if(e.on("error",u),p.on("error",u),(i.buffer||e).pipe(p),!i.target)return t.end()}var d=(i.target.protocol==="https:"?l:c).request(ci.setupOutgoing(i.ssl||{},i,e));d.on("socket",function(f){a&&!d.getHeader("expect")&&a.emit("proxyReq",d,e,t,i)}),i.proxyTimeout&&d.setTimeout(i.proxyTimeout,function(){d.abort()}),e.on("aborted",function(){d.abort()});var h=m(d,i.target);e.on("error",h),d.on("error",h);function m(f,v){return function(g){if(e.socket.destroyed&&g.code==="ECONNRESET")return a.emit("econnreset",g,e,t,v),f.abort();r?r(g,e,t,v):a.emit("error",g,e,t,v)}}(i.buffer||e).pipe(d),d.on("response",function(f){if(a&&a.emit("proxyRes",f,e,t),!t.headersSent&&!i.selfHandleResponse)for(var v=0;v<Jt.length&&!Jt[v](e,t,f,i);v++);t.finished?a&&a.emit("end",e,t,f):(f.on("end",function(){a&&a.emit("end",e,t,f)}),i.selfHandleResponse||f.pipe(t))})}}});var Ml=x((Cg,Ll)=>{var gx=require("http"),bx=require("https"),Ct=oi();Ll.exports={checkMethodAndHeader:function(e,t){if(e.method!=="GET"||!e.headers.upgrade||e.headers.upgrade.toLowerCase()!=="websocket")return t.destroy(),!0},XHeaders:function(e,t,i){if(i.xfwd){var n={for:e.connection.remoteAddress||e.socket.remoteAddress,port:Ct.getPort(e),proto:Ct.hasEncryptedConnection(e)?"wss":"ws"};["for","port","proto"].forEach(function(a){e.headers["x-forwarded-"+a]=(e.headers["x-forwarded-"+a]||"")+(e.headers["x-forwarded-"+a]?",":"")+n[a]})}},stream:function(e,t,i,n,a,r){var o=function(p,u){return Object.keys(u).reduce(function(d,h){var m=u[h];if(!Array.isArray(m))return d.push(h+": "+m),d;for(var f=0;f<m.length;f++)d.push(h+": "+m[f]);return d},[p]).join(`\r
18
+ `+i)}s.destroy()}var Dt=[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];function xm(s){if(s+="",s.length<1)return!1;if(!Dt[s.charCodeAt(0)])return w('invalid header, index 0, char "%s"',s.charCodeAt(0)),!0;if(s.length<2)return!1;if(!Dt[s.charCodeAt(1)])return w('invalid header, index 1, char "%s"',s.charCodeAt(1)),!0;if(s.length<3)return!1;if(!Dt[s.charCodeAt(2)])return w('invalid header, index 2, char "%s"',s.charCodeAt(2)),!0;if(s.length<4)return!1;if(!Dt[s.charCodeAt(3)])return w('invalid header, index 3, char "%s"',s.charCodeAt(3)),!0;for(let e=4;e<s.length;++e)if(!Dt[s.charCodeAt(e)])return w('invalid header, index "%i", char "%s"',e,s.charCodeAt(e)),!0;return!1}});var Qo=x(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.Polling=void 0;var vm=qe(),Jo=require("zlib"),gm=es(),bm=R(),ie=(0,bm.default)("engine:polling"),ym={gzip:Jo.createGzip,deflate:Jo.createDeflate},hn=class extends vm.Transport{constructor(e){super(e),this.closeTimeout=30*1e3}get name(){return"polling"}onRequest(e){let t=e.res;e.res=null,e.getMethod()==="get"?this.onPollRequest(e,t):e.getMethod()==="post"?this.onDataRequest(e,t):(t.writeStatus("500 Internal Server Error"),t.end())}onPollRequest(e,t){if(this.req){ie("request overlap"),this.onError("overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}ie("setting request"),this.req=e,this.res=t;let i=()=>{this.writable=!1,this.onError("poll connection closed prematurely")},n=()=>{this.req=this.res=null};e.cleanup=n,t.onAborted(i),this.writable=!0,this.emit("ready"),this.writable&&this.shouldClose&&(ie("triggering empty send to append close packet"),this.send([{type:"noop"}]))}onDataRequest(e,t){if(this.dataReq){this.onError("data request overlap from client"),t.writeStatus("500 Internal Server Error"),t.end();return}let i=Number(e.headers["content-length"]);if(!i){this.onError("content-length header required"),t.writeStatus("411 Length Required").end();return}if(i>this.maxHttpBufferSize){this.onError("payload too large"),t.writeStatus("413 Payload Too Large").end();return}if(e.headers["content-type"]==="application/octet-stream"&&this.protocol===4)return this.onError("invalid content");this.dataReq=e,this.dataRes=t;let a,r=0,o={"Content-Type":"text/html"};this.headers(e,o);for(let l in o)t.writeHeader(l,String(o[l]));let c=l=>{this.onData(l.toString()),this.onDataRequestCleanup(),t.cork(()=>{t.end("ok")})};t.onAborted(()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")}),t.onData((l,p)=>{let u=r+l.byteLength;if(u>i){this.onError("content-length mismatch"),t.close();return}if(!a){if(p){c(Buffer.from(l));return}a=Buffer.allocUnsafe(i)}if(Buffer.from(l).copy(a,r),p){if(u!=i){this.onError("content-length mismatch"),t.writeStatus("400 Content-Length Mismatch").end(),this.onDataRequestCleanup();return}c(a);return}r=u})}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(e){ie('received "%s"',e);let t=i=>{if(i.type==="close")return ie("got xhr close packet"),this.onClose(),!1;this.onPacket(i)};this.protocol===3?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&&(ie("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null);let t=i=>{let n=e.some(a=>a.options&&a.options.compress);this.write(i,{compress:n})};this.protocol===3?this.parser.encodePayload(e,this.supportsBinary,t):this.parser.encodePayload(e,t)}write(e,t){ie('writing "%s"',e),this.doWrite(e,t,()=>{this.req.cleanup(),this.emit("drain")})}doWrite(e,t,i){let n=typeof e=="string",r={"Content-Type":n?"text/plain; charset=UTF-8":"application/octet-stream"},o=p=>{this.headers(this.req,r),this.res.cork(()=>{Object.keys(r).forEach(u=>{this.res.writeHeader(u,String(r[u]))}),this.res.end(p)}),i()};if(!this.httpCompression||!t.compress){o(e);return}if((n?Buffer.byteLength(e):e.length)<this.httpCompression.threshold){o(e);return}let l=gm(this.req).encodings(["gzip","deflate"]);if(!l){o(e);return}this.compress(e,l,(p,u)=>{if(p){this.res.writeStatus("500 Internal Server Error"),this.res.end(),i(p);return}r["Content-Encoding"]=l,o(u)})}compress(e,t,i){ie("compressing");let n=[],a=0;ym[t](this.httpCompression).on("error",i).on("data",function(r){n.push(r),a+=r.length}).on("end",function(){i(null,Buffer.concat(n,a))}).end(e)}doClose(e){ie("closing");let t,i=()=>{clearTimeout(t),e(),this.onClose()};this.writable?(ie("transport writable - closing right away"),this.send([{type:"close"}]),i()):this.discarded?(ie("transport discarded - closing right away"),i()):(ie("transport not writable - buffering orderly close"),this.shouldClose=i,t=setTimeout(i,this.closeTimeout))}headers(e,t){t=t||{};let i=e.headers["user-agent"];return i&&(~i.indexOf(";MSIE")||~i.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0"),t["cache-control"]="no-store",this.emit("headers",t,e),t}};Is.Polling=hn});var ec=x(Ns=>{"use strict";Object.defineProperty(Ns,"__esModule",{value:!0});Ns.WebSocket=void 0;var wm=qe(),_m=R(),Zo=(0,_m.default)("engine:ws"),xn=class extends wm.Transport{constructor(e){super(e),this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}send(e){this.writable=!1;for(let t=0;t<e.length;t++){let i=e[t],n=t+1===e.length,a=r=>{let o=typeof r!="string",c=this.perMessageDeflate&&Buffer.byteLength(r)>this.perMessageDeflate.threshold;Zo('writing "%s"',r),this.socket.send(r,o,c),n&&(this.emit("drain"),this.writable=!0,this.emit("ready"))};i.options&&typeof i.options.wsPreEncoded=="string"?a(i.options.wsPreEncoded):this.parser.encodePacket(i,this.supportsBinary,a)}}doClose(e){Zo("closing"),e&&e(),this.socket.end()}};Ns.WebSocket=xn});var tc=x(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var Sm=Qo(),Em=ec();vn.default={polling:Sm.Polling,websocket:Em.WebSocket}});var sc=x(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.uServer=void 0;var km=R(),$e=mn(),Cm=tc(),Ie=(0,km.default)("engine:uws"),gn=class extends $e.BaseServer{init(){}cleanup(){}prepare(e,t){e.method=e.getMethod().toUpperCase(),e.url=e.getUrl();let i=new URLSearchParams(e.getQuery());e._query=Object.fromEntries(i.entries()),e.headers={},e.forEach((n,a)=>{e.headers[n]=a}),e.connection={remoteAddress:Buffer.from(t.getRemoteAddressAsText()).toString()},t.onAborted(()=>{Ie("response has been aborted")})}createTransport(e,t){return new Cm.default[e](t)}attach(e,t={}){let i=this._computePath(t);e.any(i,this.handleRequest.bind(this)).ws(i,{compression:t.compression,idleTimeout:t.idleTimeout,maxBackpressure:t.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:n=>{let a=n.getUserData().transport;a.socket=n,a.writable=!0,a.emit("ready")},message:(n,a,r)=>{n.getUserData().transport.onData(r?a:Buffer.from(a).toString())},close:(n,a,r)=>{n.getUserData().transport.onClose(a,r)}})}_applyMiddlewares(e,t,i){if(this.middlewares.length===0)return i();e.res=new bn(t),super._applyMiddlewares(e,e.res,n=>{e.res.writeHead(),i(n)})}handleRequest(e,t){Ie('handling "%s" http request "%s"',t.getMethod(),t.getUrl()),this.prepare(t,e),t.res=e;let i=(n,a)=>{if(n!==void 0){this.emit("connection_error",{req:t,code:n,message:$e.Server.errorMessages[n],context:a}),this.abortRequest(t.res,n,a);return}if(t._query.sid)Ie("setting new request for existing client"),this.clients[t._query.sid].transport.onRequest(t);else{let r=(o,c)=>this.abortRequest(e,o,c);this.handshake(t._query.transport,t,r)}};this._applyMiddlewares(t,e,n=>{n?i($e.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!1,i)})}handleUpgrade(e,t,i){Ie("on upgrade"),this.prepare(t,e),t.res=e;let n=async(a,r)=>{if(a!==void 0){this.emit("connection_error",{req:t,code:a,message:$e.Server.errorMessages[a],context:r}),this.abortRequest(e,a,r);return}let o=t._query.sid,c;if(o){let l=this.clients[o];if(l){if(l.upgrading)return Ie("transport has already been trying to upgrade"),e.close();if(l.upgraded)return Ie("transport had already been upgraded"),e.close();Ie("upgrading existing transport"),c=this.createTransport(t._query.transport,t),l._maybeUpgrade(c)}else return Ie("upgrade attempt for closed client"),e.close()}else if(c=await this.handshake(t._query.transport,t,(l,p)=>this.abortRequest(e,l,p)),!c)return;t.res.writeStatus("101 Switching Protocols"),e.upgrade({transport:c},t.getHeader("sec-websocket-key"),t.getHeader("sec-websocket-protocol"),t.getHeader("sec-websocket-extensions"),i)};this._applyMiddlewares(t,e,a=>{a?n($e.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"}):this.verify(t,!0,n)})}abortRequest(e,t,i){let n=t===$e.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",a=i&&i.message?i.message:$e.Server.errorMessages[t];e.writeStatus(n),e.writeHeader("Content-Type","application/json"),e.end(JSON.stringify({code:t,message:a}))}};Bs.uServer=gn;var bn=class{constructor(e){this.res=e,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(e){e&&this.writeStatus(e===200?"200 OK":"204 No Content")}writeHead(e){this.statusCode=e}setHeader(e,t){Array.isArray(t)?t.forEach(i=>{this.writeHeader(e,i)}):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||e!=="Content-Length"&&(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)}}});var rc=x(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.protocol=B.Transport=B.Socket=B.uServer=B.parser=B.transports=B.Server=void 0;B.listen=jm;B.attach=ac;var Tm=require("http"),ic=mn();Object.defineProperty(B,"Server",{enumerable:!0,get:function(){return ic.Server}});var Om=Di();B.transports=Om.default;var nc=Rt();B.parser=nc;var Rm=sc();Object.defineProperty(B,"uServer",{enumerable:!0,get:function(){return Rm.uServer}});var Am=Fi();Object.defineProperty(B,"Socket",{enumerable:!0,get:function(){return Am.Socket}});var Pm=qe();Object.defineProperty(B,"Transport",{enumerable:!0,get:function(){return Pm.Transport}});B.protocol=nc.protocol;function jm(s,e,t){typeof e=="function"&&(t=e,e={});let i=(0,Tm.createServer)(function(a,r){r.writeHead(501),r.end("Not Implemented")}),n=ac(i,e);return n.httpServer=i,i.listen(s,t),n}function ac(s,e){let t=new ic.Server(e);return t.attach(s,e),t}});var cc=x(oc=>{oc.Emitter=U;function U(s){if(s)return Im(s)}function Im(s){for(var e in U.prototype)s[e]=U.prototype[e];return s}U.prototype.on=U.prototype.addEventListener=function(s,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(e),this};U.prototype.once=function(s,e){function t(){this.off(s,t),e.apply(this,arguments)}return t.fn=e,this.on(s,t),this};U.prototype.off=U.prototype.removeListener=U.prototype.removeAllListeners=U.prototype.removeEventListener=function(s,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+s];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var i,n=0;n<t.length;n++)if(i=t[n],i===e||i.fn===e){t.splice(n,1);break}return t.length===0&&delete this._callbacks["$"+s],this};U.prototype.emit=function(s){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+s],i=1;i<arguments.length;i++)e[i-1]=arguments[i];if(t){t=t.slice(0);for(var i=0,n=t.length;i<n;++i)t[i].apply(this,e)}return this};U.prototype.emitReserved=U.prototype.emit;U.prototype.listeners=function(s){return this._callbacks=this._callbacks||{},this._callbacks["$"+s]||[]};U.prototype.hasListeners=function(s){return!!this.listeners(s).length}});var yn=x(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});Ms.isBinary=pc;Ms.hasBinary=Ls;var Nm=typeof ArrayBuffer=="function",Bm=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,lc=Object.prototype.toString,Lm=typeof Blob=="function"||typeof Blob<"u"&&lc.call(Blob)==="[object BlobConstructor]",Mm=typeof File=="function"||typeof File<"u"&&lc.call(File)==="[object FileConstructor]";function pc(s){return Nm&&(s instanceof ArrayBuffer||Bm(s))||Lm&&s instanceof Blob||Mm&&s instanceof File}function Ls(s,e){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let t=0,i=s.length;t<i;t++)if(Ls(s[t]))return!0;return!1}if(pc(s))return!0;if(s.toJSON&&typeof s.toJSON=="function"&&arguments.length===1)return Ls(s.toJSON(),!0);for(let t in s)if(Object.prototype.hasOwnProperty.call(s,t)&&Ls(s[t]))return!0;return!1}});var uc=x(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});Ds.deconstructPacket=qm;Ds.reconstructPacket=Fm;var Dm=yn();function qm(s){let e=[],t=s.data,i=s;return i.data=wn(t,e),i.attachments=e.length,{packet:i,buffers:e}}function wn(s,e){if(!s)return s;if((0,Dm.isBinary)(s)){let t={_placeholder:!0,num:e.length};return e.push(s),t}else if(Array.isArray(s)){let t=new Array(s.length);for(let i=0;i<s.length;i++)t[i]=wn(s[i],e);return t}else if(typeof s=="object"&&!(s instanceof Date)){let t={};for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=wn(s[i],e));return t}return s}function Fm(s,e){return s.data=_n(s.data,e),delete s.attachments,s}function _n(s,e){if(!s)return s;if(s&&s._placeholder===!0){if(typeof s.num=="number"&&s.num>=0&&s.num<e.length)return e[s.num];throw new Error("illegal attachments")}else if(Array.isArray(s))for(let t=0;t<s.length;t++)s[t]=_n(s[t],e);else if(typeof s=="object")for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=_n(s[t],e));return s}});var qt=x(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.Decoder=ce.Encoder=ce.PacketType=ce.protocol=void 0;ce.isPacketValid=Gm;var Um=cc(),dc=uc(),fc=yn(),Hm=R(),Sn=(0,Hm.default)("socket.io-parser"),mc=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];ce.protocol=5;var E;(function(s){s[s.CONNECT=0]="CONNECT",s[s.DISCONNECT=1]="DISCONNECT",s[s.EVENT=2]="EVENT",s[s.ACK=3]="ACK",s[s.CONNECT_ERROR=4]="CONNECT_ERROR",s[s.BINARY_EVENT=5]="BINARY_EVENT",s[s.BINARY_ACK=6]="BINARY_ACK"})(E||(ce.PacketType=E={}));var En=class{constructor(e){this.replacer=e}encode(e){return Sn("encoding packet %j",e),(e.type===E.EVENT||e.type===E.ACK)&&(0,fc.hasBinary)(e)?this.encodeAsBinary({type:e.type===E.EVENT?E.BINARY_EVENT:E.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===E.BINARY_EVENT||e.type===E.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),Sn("encoded %j as %s",e,t),t}encodeAsBinary(e){let t=(0,dc.deconstructPacket)(e),i=this.encodeAsString(t.packet),n=t.buffers;return n.unshift(i),n}};ce.Encoder=En;var kn=class s extends Um.Emitter{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);let i=t.type===E.BINARY_EVENT;i||t.type===E.BINARY_ACK?(t.type=i?E.EVENT:E.ACK,this.reconstructor=new Cn(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if((0,fc.isBinary)(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0,i={type:Number(e.charAt(0))};if(E[i.type]===void 0)throw new Error("unknown packet type "+i.type);if(i.type===E.BINARY_EVENT||i.type===E.BINARY_ACK){let a=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);let r=e.substring(a,t);if(r!=Number(r)||e.charAt(t)!=="-")throw new Error("Illegal attachments");i.attachments=Number(r)}if(e.charAt(t+1)==="/"){let a=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););i.nsp=e.substring(a,t)}else i.nsp="/";let n=e.charAt(t+1);if(n!==""&&Number(n)==n){let a=t+1;for(;++t;){let r=e.charAt(t);if(r==null||Number(r)!=r){--t;break}if(t===e.length)break}i.id=Number(e.substring(a,t+1))}if(e.charAt(++t)){let a=this.tryParse(e.substr(t));if(s.isPayloadValid(i.type,a))i.data=a;else throw new Error("invalid payload")}return Sn("decoded %s as %j",e,i),i}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case E.CONNECT:return qs(t);case E.DISCONNECT:return t===void 0;case E.CONNECT_ERROR:return typeof t=="string"||qs(t);case E.EVENT:case E.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&mc.indexOf(t[0])===-1);case E.ACK:case E.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}};ce.Decoder=kn;var Cn=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let t=(0,dc.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function zm(s){return typeof s=="string"}var Wm=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s};function $m(s){return s===void 0||Wm(s)}function qs(s){return Object.prototype.toString.call(s)==="[object Object]"}function Vm(s,e){switch(s){case E.CONNECT:return e===void 0||qs(e);case E.DISCONNECT:return e===void 0;case E.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&mc.indexOf(e[0])===-1);case E.ACK:return Array.isArray(e);case E.CONNECT_ERROR:return typeof e=="string"||qs(e);default:return!1}}function Gm(s){return zm(s.nsp)&&$m(s.id)&&Vm(s.type,s.data)}});var hc=x(xt=>{"use strict";var Km=xt&&xt.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(xt,"__esModule",{value:!0});xt.Client=void 0;var Fs=qt(),Ym=Km(R()),le=(0,Ym.default)("socket.io:client"),Tn=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(()=>{this.nsps.size===0?(le("no namespace joined yet, close the client"),this.close()):le("the client has already joined a namespace, nothing to do")},this.server._connectTimeout)}connect(e,t={}){if(this.server._nsps.has(e))return le("connecting to namespace %s",e),this.doConnect(e,t);this.server._checkNamespace(e,t,i=>{i?this.doConnect(e,t):(le("creation of namespace %s was denied",e),this._packet({type:Fs.PacketType.CONNECT_ERROR,nsp:e,data:{message:"Invalid namespace"}}))})}doConnect(e,t){let i=this.server.of(e);i._add(this,t,n=>{this.sockets.set(n.id,n),this.nsps.set(i.name,n),this.connectTimeout&&(clearTimeout(this.connectTimeout),this.connectTimeout=void 0)})}_disconnect(){for(let e of this.sockets.values())e.disconnect();this.sockets.clear(),this.close()}_remove(e){if(this.sockets.has(e.id)){let t=this.sockets.get(e.id).nsp.name;this.sockets.delete(e.id),this.nsps.delete(t)}else le("ignoring remove for %s",e.id)}close(){this.conn.readyState==="open"&&(le("forcing transport close"),this.conn.close(),this.onclose("forced server close"))}_packet(e,t={}){if(this.conn.readyState!=="open"){le("ignoring packet write %j",e);return}let i=t.preEncoded?e:this.encoder.encode(e);this.writeToEngine(i,t)}writeToEngine(e,t){if(t.volatile&&!this.conn.transport.writable){le("volatile packet is discarded since the transport is not currently writable");return}let i=Array.isArray(e)?e:[e];for(let n of i)this.conn.write(n,t)}ondata(e){try{this.decoder.add(e)}catch(t){le("invalid packet format"),this.onerror(t)}}ondecoded(e){let{namespace:t,authPayload:i}=this._parseNamespace(e),n=this.nsps.get(t);!n&&e.type===Fs.PacketType.CONNECT?this.connect(t,i):n&&e.type!==Fs.PacketType.CONNECT&&e.type!==Fs.PacketType.CONNECT_ERROR?process.nextTick(function(){n._onpacket(e)}):(le("invalid state (packet type: %s)",e.type),this.close())}_parseNamespace(e){if(this.conn.protocol!==3)return{namespace:e.nsp,authPayload:e.data};let t=new URL(e.nsp,"https://socket.io");return{namespace:t.pathname,authPayload:Object.fromEntries(t.searchParams.entries())}}onerror(e){for(let t of this.sockets.values())t._onerror(e);this.conn.close()}onclose(e,t){le("client close with reason %s",e),this.destroy();for(let i of this.sockets.values())i._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)}};xt.Client=Tn});var Hs=x(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.StrictEventEmitter=void 0;var Xm=require("events"),On=class extends Xm.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)}};Us.StrictEventEmitter=On});var Rn=x(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.RESERVED_EVENTS=void 0;zs.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"])});var An=x(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.RemoteSocket=vt.BroadcastOperator=void 0;var Jm=Rn(),Qm=qt(),Ws=class s{constructor(e,t=new Set,i=new Set,n={}){this.adapter=e,this.rooms=t,this.exceptRooms=i,this.flags=n}to(e){let t=new Set(this.rooms);return Array.isArray(e)?e.forEach(i=>t.add(i)):t.add(e),new s(this.adapter,t,this.exceptRooms,this.flags)}in(e){return this.to(e)}except(e){let t=new Set(this.exceptRooms);return Array.isArray(e)?e.forEach(i=>t.add(i)):t.add(e),new s(this.adapter,this.rooms,t,this.flags)}compress(e){let t=Object.assign({},this.flags,{compress:e});return new s(this.adapter,this.rooms,this.exceptRooms,t)}get volatile(){let e=Object.assign({},this.flags,{volatile:!0});return new s(this.adapter,this.rooms,this.exceptRooms,e)}get local(){let e=Object.assign({},this.flags,{local:!0});return new s(this.adapter,this.rooms,this.exceptRooms,e)}timeout(e){let t=Object.assign({},this.flags,{timeout:e});return new s(this.adapter,this.rooms,this.exceptRooms,t)}emit(e,...t){if(Jm.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],n={type:Qm.PacketType.EVENT,data:i};if(!(typeof i[i.length-1]=="function"))return this.adapter.broadcast(n,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;let r=i.pop(),o=!1,c=[],l=setTimeout(()=>{o=!0,r.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])},this.flags.timeout),p=-1,u=0,d=0,h=()=>{!o&&p===u&&c.length===d&&(clearTimeout(l),r.apply(this,[null,this.flags.expectSingleResponse?c[0]:c]))};return this.adapter.broadcastWithAck(n,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},m=>{d+=m,u++,h()},m=>{c.push(m),h()}),this.adapter.serverCount().then(m=>{p=m,h()}),!0}emitWithAck(e,...t){return new Promise((i,n)=>{t.push((a,r)=>a?(a.responses=r,n(a)):i(r)),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(e=>e.map(t=>t.server?t:new $s(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)}};vt.BroadcastOperator=Ws;var $s=class{constructor(e,t){this.id=t.id,this.handshake=t.handshake,this.rooms=new Set(t.rooms),this.data=t.data,this.operator=new Ws(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}};vt.RemoteSocket=$s});var jn=x(gt=>{"use strict";var gc=gt&&gt.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(gt,"__esModule",{value:!0});gt.Socket=void 0;var ne=qt(),Zm=gc(R()),eh=Hs(),xc=gc(gi()),th=An(),sh=Rn(),D=(0,Zm.default)("socket.io:socket"),ih=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);function vc(){}var Pn=class extends eh.StrictEventEmitter{constructor(e,t,i,n){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=e.adapter,n?(this.id=n.sid,this.pid=n.pid,n.rooms.forEach(a=>this.join(a)),this.data=n.data,n.missedPackets.forEach(a=>{this.packet({type:ne.PacketType.EVENT,data:a})}),this.recovered=!0):(t.conn.protocol===3?this.id=e.name!=="/"?e.name+"#"+t.id:t.id:this.id=xc.default.generateId(),this.server._opts.connectionStateRecovery&&(this.pid=xc.default.generateId())),this.handshake=this.buildHandshake(i),this.on("error",vc)}buildHandshake(e){var t,i,n,a;return{headers:((t=this.request)===null||t===void 0?void 0:t.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!(!((i=this.request)===null||i===void 0)&&i.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:(n=this.request)===null||n===void 0?void 0:n.url,query:((a=this.request)===null||a===void 0?void 0:a._query)||{},auth:e}}emit(e,...t){if(sh.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);let i=[e,...t],n={type:ne.PacketType.EVENT,data:i};if(typeof i[i.length-1]=="function"){let r=this.nsp._ids++;D("emitting packet with ack id %d",r),this.registerAckCallback(r,i.pop()),n.id=r}let a=Object.assign({},this.flags);return this.flags={},this.nsp.server.opts.connectionStateRecovery?this.adapter.broadcast(n,{rooms:new Set([this.id]),except:new Set,flags:a}):(this.notifyOutgoingListeners(n),this.packet(n,a)),!0}emitWithAck(e,...t){let i=this.flags.timeout!==void 0;return new Promise((n,a)=>{t.push((r,o)=>i?r?a(r):n(o):n(r)),this.emit(e,...t)})}registerAckCallback(e,t){let i=this.flags.timeout;if(i===void 0){this.acks.set(e,t);return}let n=setTimeout(()=>{D("event with ack id %d has timed out after %d ms",e,i),this.acks.delete(e),t.call(this,new Error("operation has timed out"))},i);this.acks.set(e,(...a)=>{clearTimeout(n),t.apply(this,[null,...a])})}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=t.compress!==!1,this.client._packet(e,t)}join(e){return D("join room %s",e),this.adapter.addAll(this.id,new Set(Array.isArray(e)?e:[e]))}leave(e){return D("leave room %s",e),this.adapter.del(this.id,e)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){D("socket connected - writing packet"),this.connected=!0,this.join(this.id),this.conn.protocol===3?this.packet({type:ne.PacketType.CONNECT}):this.packet({type:ne.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(e){switch(D("got packet %j",e),e.type){case ne.PacketType.EVENT:this.onevent(e);break;case ne.PacketType.BINARY_EVENT:this.onevent(e);break;case ne.PacketType.ACK:this.onack(e);break;case ne.PacketType.BINARY_ACK:this.onack(e);break;case ne.PacketType.DISCONNECT:this.ondisconnect();break}}onevent(e){let t=e.data||[];if(D("emitting event %j",t),e.id!=null&&(D("attaching ack callback to event"),t.push(this.ack(e.id))),this._anyListeners&&this._anyListeners.length){let i=this._anyListeners.slice();for(let n of i)n.apply(this,t)}this.dispatch(t)}ack(e){let t=this,i=!1;return function(){if(i)return;let n=Array.prototype.slice.call(arguments);D("sending ack %j",n),t.packet({id:e,type:ne.PacketType.ACK,data:n}),i=!0}}onack(e){let t=this.acks.get(e.id);typeof t=="function"?(D("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),this.acks.delete(e.id)):D("bad ack %s",e.id)}ondisconnect(){D("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(e){this.emitReserved("error",e)}_onclose(e,t){if(!this.connected)return this;D("closing socket - reason %s",e),this.emitReserved("disconnecting",e,t),this.server._opts.connectionStateRecovery&&ih.has(e)&&(D("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=vc}_error(e){this.packet({type:ne.PacketType.CONNECT_ERROR,data:e})}disconnect(e=!1){return this.connected?(e?this.client._disconnect():(this.packet({type:ne.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){D("dispatching an event %j",e),this.run(e,t=>{process.nextTick(()=>{if(t)return this._onerror(t);this.connected?super.emitUntyped.apply(this,e):D("ignore packet received after disconnection")})})}use(e){return this.fns.push(e),this}run(e,t){if(!this.fns.length)return t();let i=this.fns.slice(0);function n(a){i[a](e,r=>{if(r)return t(r);if(!i[a+1])return t();n(a+1)})}n(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){let t=this._anyListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,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){let t=this._anyOutgoingListeners;for(let i=0;i<t.length;i++)if(e===t[i])return t.splice(i,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let i of t)i.apply(this,e.data)}}newBroadcastOperator(){let e=Object.assign({},this.flags);return this.flags={},new th.BroadcastOperator(this.adapter,new Set,new Set([this.id]),e)}};gt.Socket=Pn});var Nn=x(Ee=>{"use strict";var nh=Ee&&Ee.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ee,"__esModule",{value:!0});Ee.Namespace=Ee.RESERVED_EVENTS=void 0;var bc=jn(),ah=Hs(),rh=nh(R()),Z=An(),bt=(0,rh.default)("socket.io:namespace");Ee.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);var In=class extends ah.StrictEventEmitter{constructor(e,t){super(),this.sockets=new Map,this._preConnectSockets=new Map,this._fns=[],this._ids=0,this.server=e,this.name=t,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this),Promise.resolve(this.adapter.init()).catch(e=>{bt("error while initializing adapter: %s",e)})}use(e){return this._fns.push(e),this}run(e,t){if(!this._fns.length)return t();let i=this._fns.slice(0);function n(a){i[a](e,r=>{if(r)return t(r);if(!i[a+1])return t();n(a+1)})}n(0)}to(e){return new Z.BroadcastOperator(this.adapter).to(e)}in(e){return new Z.BroadcastOperator(this.adapter).in(e)}except(e){return new Z.BroadcastOperator(this.adapter).except(e)}async _add(e,t,i){var n;bt("adding socket to nsp %s",this.name);let a=await this._createSocket(e,t);if(this._preConnectSockets.set(a.id,a),!((n=this.server.opts.connectionStateRecovery)===null||n===void 0)&&n.skipMiddlewares&&a.recovered&&e.conn.readyState==="open")return this._doConnect(a,i);this.run(a,r=>{process.nextTick(()=>{if(e.conn.readyState!=="open"){bt("next called after client was closed - ignoring socket"),a._cleanup();return}if(r)return bt("middleware error, sending CONNECT_ERROR packet to the client"),a._cleanup(),e.conn.protocol===3?a._error(r.data||r.message):a._error({message:r.message,data:r.data});this._doConnect(a,i)})})}async _createSocket(e,t){let i=t.pid,n=t.offset;if(this.server.opts.connectionStateRecovery&&typeof i=="string"&&typeof n=="string"){let a;try{a=await this.adapter.restoreSession(i,n)}catch(r){bt("error while restoring session: %s",r)}if(a)return bt("connection state recovered for sid %s",a.sid),new bc.Socket(this,e,t,a)}return new bc.Socket(this,e,t)}_doConnect(e,t){this._preConnectSockets.delete(e.id),this.sockets.set(e.id,e),e._onconnect(),t&&t(e),this.emitReserved("connect",e),this.emitReserved("connection",e)}_remove(e){this.sockets.delete(e.id)||this._preConnectSockets.delete(e.id)}emit(e,...t){return new Z.BroadcastOperator(this.adapter).emit(e,...t)}send(...e){return this.emit("message",...e),this}write(...e){return this.emit("message",...e),this}serverSideEmit(e,...t){if(Ee.RESERVED_EVENTS.has(e))throw new Error(`"${String(e)}" is a reserved event name`);return t.unshift(e),this.adapter.serverSideEmit(t),!0}serverSideEmitWithAck(e,...t){return new Promise((i,n)=>{t.push((a,r)=>a?(a.responses=r,n(a)):i(r)),this.serverSideEmit(e,...t)})}_onServerSideEmit(e){super.emitUntyped.apply(this,e)}allSockets(){return new Z.BroadcastOperator(this.adapter).allSockets()}compress(e){return new Z.BroadcastOperator(this.adapter).compress(e)}get volatile(){return new Z.BroadcastOperator(this.adapter).volatile}get local(){return new Z.BroadcastOperator(this.adapter).local}timeout(e){return new Z.BroadcastOperator(this.adapter).timeout(e)}fetchSockets(){return new Z.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(e){return new Z.BroadcastOperator(this.adapter).socketsJoin(e)}socketsLeave(e){return new Z.BroadcastOperator(this.adapter).socketsLeave(e)}disconnectSockets(e=!1){return new Z.BroadcastOperator(this.adapter).disconnectSockets(e)}};Ee.Namespace=In});var Ec=x(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.encode=Bn;Ft.decode=oh;Ft.yeast=ch;var _c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Vs=64,Sc={},yc=0,Ne=0,wc;function Bn(s){let e="";do e=_c[s%Vs]+e,s=Math.floor(s/Vs);while(s>0);return e}function oh(s){let e=0;for(Ne=0;Ne<s.length;Ne++)e=e*Vs+Sc[s.charAt(Ne)];return e}function ch(){let s=Bn(+new Date);return s!==wc?(yc=0,wc=s):s+"."+Bn(yc++)}for(;Ne<Vs;Ne++)Sc[_c[Ne]]=Ne});var Dn=x(yt=>{"use strict";var Ln;Object.defineProperty(yt,"__esModule",{value:!0});yt.SessionAwareAdapter=yt.Adapter=void 0;var lh=require("events"),ph=Ec(),Gs=pn(),uh=typeof((Ln=Gs?.Sender)===null||Ln===void 0?void 0:Ln.frame)=="function",Ks=class extends lh.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(let i of t)this.sids.get(e).add(i),this.rooms.has(i)||(this.rooms.set(i,new Set),this.emit("create-room",i)),this.rooms.get(i).has(e)||(this.rooms.get(i).add(e),this.emit("join-room",i,e))}del(e,t){this.sids.has(e)&&this.sids.get(e).delete(t),this._del(t,e)}_del(e,t){let i=this.rooms.get(e);i!=null&&(i.delete(t)&&this.emit("leave-room",e,t),i.size===0&&this.rooms.delete(e)&&this.emit("delete-room",e))}delAll(e){if(this.sids.has(e)){for(let t of this.sids.get(e))this._del(t,e);this.sids.delete(e)}}broadcast(e,t){let i=t.flags||{},n={preEncoded:!0,volatile:i.volatile,compress:i.compress};e.nsp=this.nsp.name;let a=this._encode(e,n);this.apply(t,r=>{typeof r.notifyOutgoingListeners=="function"&&r.notifyOutgoingListeners(e),r.client.writeToEngine(a,n)})}broadcastWithAck(e,t,i,n){let a=t.flags||{},r={preEncoded:!0,volatile:a.volatile,compress:a.compress};e.nsp=this.nsp.name,e.id=this.nsp._ids++;let o=this._encode(e,r),c=0;this.apply(t,l=>{c++,l.acks.set(e.id,n),typeof l.notifyOutgoingListeners=="function"&&l.notifyOutgoingListeners(e),l.client.writeToEngine(o,r)}),i(c)}_encode(e,t){let i=this.encoder.encode(e);if(uh&&i.length===1&&typeof i[0]=="string"){let n=Buffer.from("4"+i[0]);t.wsPreEncodedFrame=Gs.Sender.frame(n,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return i}sockets(e){let t=new Set;return this.apply({rooms:e},i=>{t.add(i.id)}),Promise.resolve(t)}socketRooms(e){return this.sids.get(e)}fetchSockets(e){let t=[];return this.apply(e,i=>{t.push(i)}),Promise.resolve(t)}addSockets(e,t){this.apply(e,i=>{i.join(t)})}delSockets(e,t){this.apply(e,i=>{t.forEach(n=>i.leave(n))})}disconnectSockets(e,t){this.apply(e,i=>{i.disconnect(t)})}apply(e,t){let i=e.rooms,n=this.computeExceptSids(e.except);if(i.size){let a=new Set;for(let r of i)if(this.rooms.has(r))for(let o of this.rooms.get(r)){if(a.has(o)||n.has(o))continue;let c=this.nsp.sockets.get(o);c&&(t(c),a.add(o))}}else for(let[a]of this.sids){if(n.has(a))continue;let r=this.nsp.sockets.get(a);r&&t(r)}}computeExceptSids(e){let t=new Set;if(e&&e.size>0)for(let i of e)this.rooms.has(i)&&this.rooms.get(i).forEach(n=>t.add(n));return t}serverSideEmit(e){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(e){}restoreSession(e,t){return null}};yt.Adapter=Ks;var Mn=class extends Ks{constructor(e){super(e),this.nsp=e,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=e.server.opts.connectionStateRecovery.maxDisconnectionDuration,setInterval(()=>{let i=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach((n,a)=>{n.disconnectedAt<i&&this.sessions.delete(a)});for(let n=this.packets.length-1;n>=0;n--)if(this.packets[n].emittedAt<i){this.packets.splice(0,n+1);break}},60*1e3).unref()}persistSession(e){e.disconnectedAt=Date.now(),this.sessions.set(e.pid,e)}restoreSession(e,t){let i=this.sessions.get(e);if(!i)return null;if(i.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(e),null;let a=this.packets.findIndex(o=>o.id===t);if(a===-1)return null;let r=[];for(let o=a+1;o<this.packets.length;o++){let c=this.packets[o];dh(i.rooms,c.opts)&&r.push(c.data)}return Promise.resolve(Object.assign(Object.assign({},i),{missedPackets:r}))}broadcast(e,t){var i;let n=e.type===2,a=e.id===void 0,r=((i=t.flags)===null||i===void 0?void 0:i.volatile)===void 0;if(n&&a&&r){let o=(0,ph.yeast)();e.data.push(o),this.packets.push({id:o,opts:t,data:e.data,emittedAt:Date.now()})}super.broadcast(e,t)}};yt.SessionAwareAdapter=Mn;function dh(s,e){let t=e.rooms.size===0||s.some(n=>e.rooms.has(n)),i=s.every(n=>!e.except.has(n));return t&&i}});var kc=x(he=>{"use strict";var fh=he&&he.__rest||function(s,e){var t={};for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&e.indexOf(i)<0&&(t[i]=s[i]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(s);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(s,i[n])&&(t[i[n]]=s[i[n]]);return t};Object.defineProperty(he,"__esModule",{value:!0});he.ClusterAdapterWithHeartbeat=he.ClusterAdapter=he.MessageType=void 0;var mh=Dn(),hh=R(),xh=require("crypto"),T=(0,hh.debug)("socket.io-adapter"),vh="emitter",Ys=5e3;function _t(){return(0,xh.randomBytes)(8).toString("hex")}var b;(function(s){s[s.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",s[s.HEARTBEAT=2]="HEARTBEAT",s[s.BROADCAST=3]="BROADCAST",s[s.SOCKETS_JOIN=4]="SOCKETS_JOIN",s[s.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",s[s.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",s[s.FETCH_SOCKETS=7]="FETCH_SOCKETS",s[s.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",s[s.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",s[s.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",s[s.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",s[s.BROADCAST_ACK=12]="BROADCAST_ACK",s[s.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"})(b||(he.MessageType=b={}));function Ve(s){return{rooms:[...s.rooms],except:[...s.except],flags:s.flags}}function wt(s){return{rooms:new Set(s.rooms),except:new Set(s.except),flags:s.flags}}var Xs=class extends mh.Adapter{constructor(e){super(e),this.requests=new Map,this.ackRequests=new Map,this.uid=_t()}onMessage(e,t){if(e.uid===this.uid)return T("[%s] ignore message from self",this.uid);if(e.nsp!==this.nsp.name)return T("[%s] ignore message from another namespace (%s)",this.uid,e.nsp);switch(T("[%s] new event of type %d from %s",this.uid,e.type,e.uid),e.type){case b.BROADCAST:{if(e.data.requestId!==void 0)super.broadcastWithAck(e.data.packet,wt(e.data.opts),n=>{T("[%s] waiting for %d client acknowledgements",this.uid,n),this.publishResponse(e.uid,{type:b.BROADCAST_CLIENT_COUNT,data:{requestId:e.data.requestId,clientCount:n}})},n=>{T("[%s] received acknowledgement with value %j",this.uid,n),this.publishResponse(e.uid,{type:b.BROADCAST_ACK,data:{requestId:e.data.requestId,packet:n}})});else{let n=e.data.packet,a=wt(e.data.opts);this.addOffsetIfNecessary(n,a,t),super.broadcast(n,a)}break}case b.SOCKETS_JOIN:super.addSockets(wt(e.data.opts),e.data.rooms);break;case b.SOCKETS_LEAVE:super.delSockets(wt(e.data.opts),e.data.rooms);break;case b.DISCONNECT_SOCKETS:super.disconnectSockets(wt(e.data.opts),e.data.close);break;case b.FETCH_SOCKETS:{T("[%s] calling fetchSockets with opts %j",this.uid,e.data.opts),super.fetchSockets(wt(e.data.opts)).then(i=>{this.publishResponse(e.uid,{type:b.FETCH_SOCKETS_RESPONSE,data:{requestId:e.data.requestId,sockets:i.map(n=>{let a=n.handshake,{sessionStore:r}=a,o=fh(a,["sessionStore"]);return{id:n.id,handshake:o,rooms:[...n.rooms],data:n.data}})}})});break}case b.SERVER_SIDE_EMIT:{let i=e.data.packet;if(!(e.data.requestId!==void 0)){this.nsp._onServerSideEmit(i);return}let a=!1,r=o=>{a||(a=!0,T("[%s] calling acknowledgement with %j",this.uid,o),this.publishResponse(e.uid,{type:b.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:e.data.requestId,packet:o}}))};this.nsp._onServerSideEmit([...i,r]);break}case b.BROADCAST_CLIENT_COUNT:case b.BROADCAST_ACK:case b.FETCH_SOCKETS_RESPONSE:case b.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(e);break;default:T("[%s] unknown message type: %s",this.uid,e.type)}}onResponse(e){var t,i;let n=e.data.requestId;switch(T("[%s] received response %s to request %s",this.uid,e.type,n),e.type){case b.BROADCAST_CLIENT_COUNT:{(t=this.ackRequests.get(n))===null||t===void 0||t.clientCountCallback(e.data.clientCount);break}case b.BROADCAST_ACK:{(i=this.ackRequests.get(n))===null||i===void 0||i.ack(e.data.packet);break}case b.FETCH_SOCKETS_RESPONSE:{let a=this.requests.get(n);if(!a)return;a.current++,e.data.sockets.forEach(r=>a.responses.push(r)),a.current===a.expected&&(clearTimeout(a.timeout),a.resolve(a.responses),this.requests.delete(n));break}case b.SERVER_SIDE_EMIT_RESPONSE:{let a=this.requests.get(n);if(!a)return;a.current++,a.responses.push(e.data.packet),a.current===a.expected&&(clearTimeout(a.timeout),a.resolve(null,a.responses),this.requests.delete(n));break}default:T("[%s] unknown response type: %s",this.uid,e.type)}}async broadcast(e,t){var i;if(!((i=t.flags)===null||i===void 0?void 0:i.local))try{let a=await this.publishAndReturnOffset({type:b.BROADCAST,data:{packet:e,opts:Ve(t)}});this.addOffsetIfNecessary(e,t,a)}catch(a){return T("[%s] error while broadcasting message: %s",this.uid,a.message)}super.broadcast(e,t)}addOffsetIfNecessary(e,t,i){var n;if(!this.nsp.server.opts.connectionStateRecovery)return;let a=e.type===2,r=e.id===void 0,o=((n=t.flags)===null||n===void 0?void 0:n.volatile)===void 0;a&&r&&o&&e.data.push(i)}broadcastWithAck(e,t,i,n){var a;if(!((a=t?.flags)===null||a===void 0?void 0:a.local)){let o=_t();this.ackRequests.set(o,{clientCountCallback:i,ack:n}),this.publish({type:b.BROADCAST,data:{packet:e,requestId:o,opts:Ve(t)}}),setTimeout(()=>{this.ackRequests.delete(o)},t.flags.timeout)}super.broadcastWithAck(e,t,i,n)}async addSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.SOCKETS_JOIN,data:{opts:Ve(e),rooms:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.addSockets(e,t)}async delSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.SOCKETS_LEAVE,data:{opts:Ve(e),rooms:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.delSockets(e,t)}async disconnectSockets(e,t){var i;if(!((i=e.flags)===null||i===void 0?void 0:i.local))try{await this.publishAndReturnOffset({type:b.DISCONNECT_SOCKETS,data:{opts:Ve(e),close:t}})}catch(a){T("[%s] error while publishing message: %s",this.uid,a.message)}super.disconnectSockets(e,t)}async fetchSockets(e){var t;let[i,n]=await Promise.all([super.fetchSockets(e),this.serverCount()]),a=n-1;if(!((t=e.flags)===null||t===void 0)&&t.local||a<=0)return i;let r=_t();return new Promise((o,c)=>{let l=setTimeout(()=>{let u=this.requests.get(r);u&&(c(new Error(`timeout reached: only ${u.current} responses received out of ${u.expected}`)),this.requests.delete(r))},e.flags.timeout||Ys),p={type:b.FETCH_SOCKETS,resolve:o,timeout:l,current:0,expected:a,responses:i};this.requests.set(r,p),this.publish({type:b.FETCH_SOCKETS,data:{opts:Ve(e),requestId:r}})})}async serverSideEmit(e){if(!(typeof e[e.length-1]=="function"))return this.publish({type:b.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),n=await this.serverCount()-1;if(T('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return i(null,[]);let a=_t(),r=setTimeout(()=>{let c=this.requests.get(a);c&&(i(new Error(`timeout reached: only ${c.current} responses received out of ${c.expected}`),c.responses),this.requests.delete(a))},Ys),o={type:b.SERVER_SIDE_EMIT,resolve:i,timeout:r,current:0,expected:n,responses:[]};this.requests.set(a,o),this.publish({type:b.SERVER_SIDE_EMIT,data:{requestId:a,packet:e}})}publish(e){T("[%s] sending message %s",this.uid,e.type),this.publishAndReturnOffset(e).catch(t=>{T("[%s] error while publishing message: %s",this.uid,t)})}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,T("[%s] sending response %s to %s",this.uid,t.type,e),this.doPublishResponse(e,t).catch(i=>{T("[%s] error while publishing response: %s",this.uid,i)})}};he.ClusterAdapter=Xs;var qn=class extends Xs{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(()=>{let i=Date.now();this.nodesMap.forEach((n,a)=>{i-n>this._opts.heartbeatTimeout&&(T("[%s] node %s seems down",this.uid,a),this.removeNode(a))})},1e3)}init(){this.publish({type:b.INITIAL_HEARTBEAT})}scheduleHeartbeat(){this.heartbeatTimer?this.heartbeatTimer.refresh():this.heartbeatTimer=setTimeout(()=>{this.publish({type:b.HEARTBEAT})},this._opts.heartbeatInterval)}close(){this.publish({type:b.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer&&clearInterval(this.cleanupTimer)}onMessage(e,t){if(e.uid===this.uid)return T("[%s] ignore message from self",this.uid);switch(e.uid&&e.uid!==vh&&this.nodesMap.set(e.uid,Date.now()),e.type){case b.INITIAL_HEARTBEAT:this.publish({type:b.HEARTBEAT});break;case b.HEARTBEAT:break;case b.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(!(typeof e[e.length-1]=="function"))return this.publish({type:b.SERVER_SIDE_EMIT,data:{packet:e}});let i=e.pop(),n=this.nodesMap.size;if(T('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,n),n<=0)return i(null,[]);let a=_t(),r=setTimeout(()=>{let c=this.customRequests.get(a);c&&(i(new Error(`timeout reached: missing ${c.missingUids.size} responses`),c.responses),this.customRequests.delete(a))},Ys),o={type:b.SERVER_SIDE_EMIT,resolve:i,timeout:r,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(a,o),this.publish({type:b.SERVER_SIDE_EMIT,data:{requestId:a,packet:e}})}async fetchSockets(e){var t;let[i,n]=await Promise.all([super.fetchSockets({rooms:e.rooms,except:e.except,flags:{local:!0}}),this.serverCount()]),a=n-1;if(!((t=e.flags)===null||t===void 0)&&t.local||a<=0)return i;let r=_t();return new Promise((o,c)=>{let l=setTimeout(()=>{let u=this.customRequests.get(r);u&&(c(new Error(`timeout reached: missing ${u.missingUids.size} responses`)),this.customRequests.delete(r))},e.flags.timeout||Ys),p={type:b.FETCH_SOCKETS,resolve:o,timeout:l,missingUids:new Set([...this.nodesMap.keys()]),responses:i};this.customRequests.set(r,p),this.publish({type:b.FETCH_SOCKETS,data:{opts:Ve(e),requestId:r}})})}onResponse(e){let t=e.data.requestId;switch(T("[%s] received response %s to request %s",this.uid,e.type,t),e.type){case b.FETCH_SOCKETS_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;e.data.sockets.forEach(n=>i.responses.push(n)),i.missingUids.delete(e.uid),i.missingUids.size===0&&(clearTimeout(i.timeout),i.resolve(i.responses),this.customRequests.delete(t));break}case b.SERVER_SIDE_EMIT_RESPONSE:{let i=this.customRequests.get(t);if(!i)return;i.responses.push(e.data.packet),i.missingUids.delete(e.uid),i.missingUids.size===0&&(clearTimeout(i.timeout),i.resolve(null,i.responses),this.customRequests.delete(t));break}default:super.onResponse(e)}}removeNode(e){this.customRequests.forEach((t,i)=>{t.missingUids.delete(e),t.missingUids.size===0&&(clearTimeout(t.timeout),t.type===b.FETCH_SOCKETS?t.resolve(t.responses):t.type===b.SERVER_SIDE_EMIT&&t.resolve(null,t.responses),this.customRequests.delete(i))}),this.nodesMap.delete(e)}};he.ClusterAdapterWithHeartbeat=qn});var Js=x(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.MessageType=ae.ClusterAdapterWithHeartbeat=ae.ClusterAdapter=ae.SessionAwareAdapter=ae.Adapter=void 0;var Cc=Dn();Object.defineProperty(ae,"Adapter",{enumerable:!0,get:function(){return Cc.Adapter}});Object.defineProperty(ae,"SessionAwareAdapter",{enumerable:!0,get:function(){return Cc.SessionAwareAdapter}});var Fn=kc();Object.defineProperty(ae,"ClusterAdapter",{enumerable:!0,get:function(){return Fn.ClusterAdapter}});Object.defineProperty(ae,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return Fn.ClusterAdapterWithHeartbeat}});Object.defineProperty(ae,"MessageType",{enumerable:!0,get:function(){return Fn.MessageType}})});var Rc=x(St=>{"use strict";var gh=St&&St.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(St,"__esModule",{value:!0});St.ParentNamespace=void 0;var Tc=Nn(),bh=Js(),yh=gh(R()),Oc=(0,yh.default)("socket.io:parent-namespace"),Qs=class s extends Tc.Namespace{constructor(e){super(e,"/_"+s.count++),this.children=new Set}_initAdapter(){this.adapter=new Un(this)}emit(e,...t){return this.children.forEach(i=>{i.emit(e,...t)}),!0}createChild(e){Oc("creating child namespace %s",e);let t=new Tc.Namespace(this.server,e);if(this._fns.forEach(i=>t.use(i)),this.listeners("connect").forEach(i=>t.on("connect",i)),this.listeners("connection").forEach(i=>t.on("connection",i)),this.children.add(t),this.server._opts.cleanupEmptyChildNamespaces){let i=t._remove;t._remove=n=>{i.call(t,n),t.sockets.size===0&&(Oc("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")}};St.ParentNamespace=Qs;Qs.count=0;var Un=class extends bh.Adapter{broadcast(e,t){this.nsp.children.forEach(i=>{i.adapter.broadcast(e,t)})}}});var Bc=x(Ke=>{"use strict";var wh=Ke&&Ke.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ke,"__esModule",{value:!0});Ke.patchAdapter=Sh;Ke.restoreAdapter=Eh;Ke.serveFile=Ch;var Ge=Js(),Ac=require("fs"),_h=wh(R()),Zs=(0,_h.default)("socket.io:adapter-uws"),Hn="",{addAll:jc,del:Ic,broadcast:Nc}=Ge.Adapter.prototype;function Sh(s){Ge.Adapter.prototype.addAll=function(e,t){let i=!this.sids.has(e);jc.call(this,e,t);let n=this.nsp.sockets.get(e)||this.nsp._preConnectSockets.get(e);if(n){if(n.conn.transport.name==="websocket"){Pc(this.nsp.name,n,i,t);return}i&&n.conn.on("upgrade",()=>{let a=this.sids.get(e);a&&Pc(this.nsp.name,n,i,a)})}},Ge.Adapter.prototype.del=function(e,t){Ic.call(this,e,t);let i=this.nsp.sockets.get(e)||this.nsp._preConnectSockets.get(e);if(i&&i.conn.transport.name==="websocket"){let n=i.conn.id,a=i.conn.transport.socket,r=`${this.nsp.name}${Hn}${t}`;Zs("unsubscribe connection %s from topic %s",n,r),a.unsubscribe(r)}},Ge.Adapter.prototype.broadcast=function(e,t){if(!(t.rooms.size<=1&&t.except.size===0)){Nc.call(this,e,t);return}let n=t.flags||{},a={preEncoded:!0,volatile:n.volatile,compress:n.compress};e.nsp=this.nsp.name;let r=this.encoder.encode(e),o=t.rooms.size===0?this.nsp.name:`${this.nsp.name}${Hn}${t.rooms.keys().next().value}`;Zs("fast publish to %s",o),r.forEach(c=>{let l=typeof c!="string";s.publish(o,l?c:"4"+c,l)}),this.apply(t,c=>{c.conn.transport.name!=="websocket"&&c.client.writeToEngine(r,a)})}}function Pc(s,e,t,i){let n=e.conn.id,a=e.conn.transport.socket;t&&(Zs("subscribe connection %s to topic %s",n,s),a.subscribe(s)),i.forEach(r=>{let o=`${s}${Hn}${r}`;Zs("subscribe connection %s to topic %s",n,o),a.subscribe(o)})}function Eh(){Ge.Adapter.prototype.addAll=jc,Ge.Adapter.prototype.del=Ic,Ge.Adapter.prototype.broadcast=Nc}var kh=s=>{let{buffer:e,byteOffset:t,byteLength:i}=s;return e.slice(t,t+i)};function Ch(s,e){let{size:t}=(0,Ac.statSync)(e),i=(0,Ac.createReadStream)(e),n=()=>!i.destroyed&&i.destroy(),a=o=>{throw n(),o},r=o=>{let c=kh(o);s.cork(()=>{let l=s.getWriteOffset(),[p,u]=s.tryEnd(c,t);!u&&!p&&(i.pause(),s.onWritable(d=>{let[h,m]=s.tryEnd(c.slice(d-l),t);return!m&&h&&i.resume(),h}))})};s.onAborted(n),i.on("data",r).on("error",a).on("end",n)}});var Lc=x((ng,Th)=>{Th.exports={name:"socket.io",version:"4.8.3",description:"node.js realtime framework server",keywords:["realtime","framework","websocket","tcp","events","socket","io"],files:["dist/","client-dist/","wrapper.mjs","!**/*.tsbuildinfo"],directories:{doc:"docs/",example:"example/",lib:"lib/",test:"test/"},type:"commonjs",main:"./dist/index.js",exports:{".":{types:"./dist/index.d.ts",import:"./wrapper.mjs",require:"./dist/index.js"},"./package.json":"./package.json"},types:"./dist/index.d.ts",license:"MIT",homepage:"https://github.com/socketio/socket.io/tree/main/packages/socket.io#readme",repository:{type:"git",url:"git+https://github.com/socketio/socket.io.git"},bugs:{url:"https://github.com/socketio/socket.io/issues"},scripts:{compile:"rimraf ./dist && tsc",test:"npm run format:check && npm run compile && npm run test:types && npm run test:unit","test:types":"tsd","test:unit":"nyc mocha --import=tsx --reporter spec --slow 200 --bail --timeout 10000 test/index.ts","format:check":'prettier --check "lib/**/*.ts" "test/**/*.ts"',"format:fix":'prettier --write "lib/**/*.ts" "test/**/*.ts"',prepack:"npm run compile"},dependencies:{accepts:"~1.3.4",base64id:"~2.0.0",cors:"~2.8.5",debug:"~4.4.1","engine.io":"~6.6.0","socket.io-adapter":"~2.5.2","socket.io-parser":"~4.2.4"},contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],engines:{node:">=10.2.0"},tsd:{directory:"test"}}});var Wc=x((q,Ut)=>{"use strict";var Oh=q&&q.__createBinding||(Object.create?(function(s,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(s,i,n)}):(function(s,e,t,i){i===void 0&&(i=t),s[i]=e[t]})),Rh=q&&q.__setModuleDefault||(Object.create?(function(s,e){Object.defineProperty(s,"default",{enumerable:!0,value:e})}):function(s,e){s.default=e}),Ah=q&&q.__importStar||function(s){if(s&&s.__esModule)return s;var e={};if(s!=null)for(var t in s)t!=="default"&&Object.prototype.hasOwnProperty.call(s,t)&&Oh(e,s,t);return Rh(e,s),e},$n=q&&q.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(q,"__esModule",{value:!0});q.Namespace=q.Socket=q.Server=void 0;var Ph=$n(require("http")),jh=require("fs"),zn=require("zlib"),Ih=es(),ei=require("stream"),Mc=require("path"),Dc=rc(),Nh=hc(),qc=require("events"),Vn=Nn();Object.defineProperty(q,"Namespace",{enumerable:!0,get:function(){return Vn.Namespace}});var Bh=Rc(),Fc=Js(),Lh=Ah(qt()),Mh=$n(R()),zc=jn();Object.defineProperty(q,"Socket",{enumerable:!0,get:function(){return zc.Socket}});var Dh=Hs(),Wn=Bc(),qh=$n(dn()),H=(0,Mh.default)("socket.io:server"),Uc=Lc().version,Hc=/\.map/,Et=class s extends Dh.StrictEventEmitter{constructor(e,t={}){super(),this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,typeof e=="object"&&e instanceof Object&&!e.listen&&(t=e,e=void 0),this.path(t.path||"/socket.io"),this.connectTimeout(t.connectTimeout||45e3),this.serveClient(t.serveClient!==!1),this._parser=t.parser||Lh,this.encoder=new this._parser.Encoder,this.opts=t,t.connectionStateRecovery?(t.connectionStateRecovery=Object.assign({maxDisconnectionDuration:120*1e3,skipMiddlewares:!0},t.connectionStateRecovery),this.adapter(t.adapter||Fc.SessionAwareAdapter)):this.adapter(t.adapter||Fc.Adapter),t.cleanupEmptyChildNamespaces=!!t.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),(e||typeof e=="number")&&this.attach(e),this.opts.cors&&(this._corsMiddleware=(0,qh.default)(this.opts.cors))}get _opts(){return this.opts}serveClient(e){return arguments.length?(this._serveClient=e,this):this._serveClient}_checkNamespace(e,t,i){if(this.parentNsps.size===0)return i(!1);let n=this.parentNsps.keys(),a=()=>{let r=n.next();if(r.done)return i(!1);r.value(e,t,(o,c)=>{if(o||!c)return a();if(this._nsps.has(e))return H("dynamic namespace %s already exists",e),i(this._nsps.get(e));let l=this.parentNsps.get(r.value).createChild(e);H("dynamic namespace %s was created",e),i(l)})};a()}path(e){if(!arguments.length)return this._path;this._path=e.replace(/\/$/,"");let t=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+t+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(e){return e===void 0?this._connectTimeout:(this._connectTimeout=e,this)}adapter(e){if(!arguments.length)return this._adapter;this._adapter=e;for(let t of this._nsps.values())t._initAdapter();return this}listen(e,t={}){return this.attach(e,t)}attach(e,t={}){if(typeof e=="function"){let i="You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.";throw new Error(i)}if(Number(e)==e&&(e=Number(e)),typeof e=="number"){H("creating http server and binding to %d",e);let i=e;e=Ph.default.createServer((n,a)=>{a.writeHead(404),a.end()}),e.listen(i)}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,H("creating uWebSockets.js-based engine with opts %j",t);let i=new Dc.uServer(t);i.attach(e,t),this.bind(i),this._serveClient&&e.get(`${this._path}/*`,(n,a)=>{if(!this.clientPathRegex.test(a.getUrl())){a.setYield(!0);return}let r=a.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),o=Hc.test(r),c=o?"map":"source",l='"'+Uc+'"',p="W/"+l,u=a.getHeader("if-none-match");if(u&&(l===u||p===u)){H("serve client %s 304",c),n.writeStatus("304 Not Modified"),n.end();return}H("serve client %s",c),n.writeHeader("cache-control","public, max-age=0"),n.writeHeader("content-type","application/"+(o?"json":"javascript")+"; charset=utf-8"),n.writeHeader("etag",l);let d=Mc.join(__dirname,"../client-dist/",r);(0,Wn.serveFile)(n,d)}),(0,Wn.patchAdapter)(e)}initEngine(e,t){H("creating engine.io instance with opts %j",t),this.eio=(0,Dc.attach)(e,t),this._serveClient&&this.attachServe(e),this.httpServer=e,this.bind(this.eio)}attachServe(e){H("attaching client serving req handler");let t=e.listeners("request").slice(0);e.removeAllListeners("request"),e.on("request",(i,n)=>{if(this.clientPathRegex.test(i.url))this._corsMiddleware?this._corsMiddleware(i,n,()=>{this.serve(i,n)}):this.serve(i,n);else for(let a=0;a<t.length;a++)t[a].call(e,i,n)})}serve(e,t){let i=e.url.replace(this._path,"").replace(/\?.*$/,""),n=Hc.test(i),a=n?"map":"source",r='"'+Uc+'"',o="W/"+r,c=e.headers["if-none-match"];if(c&&(r===c||o===c)){H("serve client %s 304",a),t.writeHead(304),t.end();return}H("serve client %s",a),t.setHeader("Cache-Control","public, max-age=0"),t.setHeader("Content-Type","application/"+(n?"json":"javascript")+"; charset=utf-8"),t.setHeader("ETag",r),s.sendFile(i,e,t)}static sendFile(e,t,i){let n=(0,jh.createReadStream)(Mc.join(__dirname,"../client-dist/",e)),a=Ih(t).encodings(["br","gzip","deflate"]),r=o=>{o&&i.end()};switch(a){case"br":i.writeHead(200,{"content-encoding":"br"}),(0,ei.pipeline)(n,(0,zn.createBrotliCompress)(),i,r);break;case"gzip":i.writeHead(200,{"content-encoding":"gzip"}),(0,ei.pipeline)(n,(0,zn.createGzip)(),i,r);break;case"deflate":i.writeHead(200,{"content-encoding":"deflate"}),(0,ei.pipeline)(n,(0,zn.createDeflate)(),i,r);break;default:i.writeHead(200),(0,ei.pipeline)(n,i,r)}}bind(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(e){H("incoming connection with id %s",e.id);let t=new Nh.Client(this,e);return e.protocol===3&&t.connect("/"),this}of(e,t){if(typeof e=="function"||e instanceof RegExp){let n=new Bh.ParentNamespace(this);return H("initializing parent namespace %s",n.name),typeof e=="function"?this.parentNsps.set(e,n):(this.parentNsps.set((a,r,o)=>o(null,e.test(a)),n),this.parentNamespacesFromRegExp.set(e,n)),t&&n.on("connect",t),n}String(e)[0]!=="/"&&(e="/"+e);let i=this._nsps.get(e);if(!i){for(let[n,a]of this.parentNamespacesFromRegExp)if(n.test(e))return H("attaching namespace %s to parent namespace %s",e,n),a.createChild(e);H("initializing namespace %s",e),i=new Vn.Namespace(this,e),this._nsps.set(e,i),e!=="/"&&this.sockets.emitReserved("new_namespace",i)}return t&&i.on("connect",t),i}async close(e){if(await Promise.allSettled([...this._nsps.values()].map(async t=>{t.sockets.forEach(i=>{i._onclose("server shutting down")}),await t.adapter.close()})),this.engine.close(),(0,Wn.restoreAdapter)(),this.httpServer)return new Promise(t=>{this.httpServer.close(i=>{e&&e(i),i&&H("server was not running"),t()})});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)}};q.Server=Et;var Fh=Object.keys(qc.EventEmitter.prototype).filter(function(s){return typeof qc.EventEmitter.prototype[s]=="function"});Fh.forEach(function(s){Et.prototype[s]=function(){return this.sockets[s].apply(this.sockets,arguments)}});Ut.exports=(s,e)=>new Et(s,e);Ut.exports.Server=Et;Ut.exports.Namespace=Vn.Namespace;Ut.exports.Socket=zc.Socket});var Kc={};Qe(Kc,{TileManager:()=>Gn});var ti,kt,si,Gc,Uh,Hh,Gn,Yc=Me(()=>{ti=M(require("sharp"),1),kt=M(require("fs"),1),si=M(require("path"),1),Gc=require("url"),Uh=(0,Gc.fileURLToPath)(__importMetaUrl),Hh=si.default.dirname(Uh),Gn=class{constructor(e){this.robot=e,this.tileSize=100,this.lastTileChecksums=new Map,this.lastTileBuffers=new Map,this.screenWidth=0,this.screenHeight=0,this.tilesPerRow=0,this.tilesPerColumn=0,this.totalTiles=0,this.frameCount=0,this.tempDir=si.default.join(Hh,"../../temp"),this.compressionQuality=1,this.changeThreshold=1,this.scaleFactor=.99,this.scaledWidth=0,this.scaledHeight=0,this.isProcessing=!1,this.sharedScreenCache=null,this.lastCaptureTime=0,this.CACHE_TTL=100,kt.default.existsSync(this.tempDir)||kt.default.mkdirSync(this.tempDir,{recursive:!0}),this.initializeScreenDimensions()}initializeScreenDimensions(){try{let{width:e,height:t}=this.robot.getScreenSize();this.screenWidth=e,this.screenHeight=t,this.scaledWidth=Math.floor(e*this.scaleFactor),this.scaledHeight=Math.floor(t*this.scaleFactor),this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn;let i=100;if(this.totalTiles>i){let n=Math.ceil(Math.sqrt(this.scaledWidth*this.scaledHeight/i));this.tileSize=Math.max(n,120),this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}console.log(`\u{1F5A5}\uFE0F TileManager: ${e}x${t} -> ${this.totalTiles} tiles`)}catch(e){console.error("Screen dimensions error:",e),this.screenWidth=1920,this.screenHeight=1080,this.scaledWidth=1728,this.scaledHeight=972,this.tileSize=120,this.tilesPerRow=Math.ceil(this.scaledWidth/this.tileSize),this.tilesPerColumn=Math.ceil(this.scaledHeight/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}}async captureFullScreen(){let e=this.robot.getScreenSize(),t=this.robot.screen.capture(0,0,e.width,e.height),i=Buffer.from(t.image);for(let c=0;c<i.length;c+=4){let l=i[c],p=i[c+2];i[c]=p,i[c+2]=l}let n=t.byteWidth/t.bytesPerPixel,a=i,r=n,o=t.height;if(this.scaleFactor<1){let c=Math.floor(n*this.scaleFactor),l=Math.floor(t.height*this.scaleFactor);a=await(0,ti.default)(i,{raw:{width:n,height:t.height,channels:t.bytesPerPixel}}).resize(c,l,{kernel:ti.default.kernel.lanczos3,fit:"fill"}).raw().toBuffer(),r=c,o=l,this.scaledWidth=c,this.scaledHeight=l,this.tilesPerRow=Math.ceil(c/this.tileSize),this.tilesPerColumn=Math.ceil(l/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}return{buffer:a,width:r,height:o,channels:t.bytesPerPixel}}async getSharedScreenCapture(){let e=Date.now();return this.sharedScreenCache&&e-this.lastCaptureTime<this.CACHE_TTL?this.sharedScreenCache:(this.sharedScreenCache=await this.captureFullScreen(),this.lastCaptureTime=e,this.sharedScreenCache)}clearScreenCache(){}async detectChangedTiles(){if(this.isProcessing)return[];this.isProcessing=!0;try{let e=await this.getSharedScreenCapture(),t=[],i=[];if(this.frameCount++,this.lastTileChecksums.size===0){let a=[];for(let o=0;o<this.totalTiles;o++)a.push(this.processTileAsync(e,o,!0));let r=await Promise.all(a);return t.push(...r),t}for(let a=0;a<this.totalTiles;a++){let r=await this.extractTile(e,a),o=this.calculateTileChecksum(r.buffer),c=this.lastTileChecksums.get(a);o!==c&&(i.push(a),this.lastTileChecksums.set(a,o))}if(i.length/this.totalTiles>this.changeThreshold){let a=[];for(let o=0;o<this.totalTiles;o++)a.push(this.processTileAsync(e,o,!0));let r=await Promise.all(a);t.push(...r.map(o=>({...o,fullRefresh:!0})))}else if(i.length>0){let a=i.map(o=>this.processTileAsync(e,o,!1)),r=await Promise.all(a);t.push(...r)}return t}finally{this.isProcessing=!1}}async processTileAsync(e,t){let i=await this.extractTile(e,t),n=this.calculateTileChecksum(i.buffer);this.lastTileChecksums.set(t,n),this.lastTileBuffers.set(t,i.buffer);let a=await this.compressTileImage(i.buffer,i.width,i.height),{row:r,col:o}=this.getTilePosition(t);return{type:"tile-update",tileIndex:t,x:o*this.tileSize,y:r*this.tileSize,width:i.width,height:i.height,imageBase64:a,size:Math.round(a.length*.75/1024),timestamp:Date.now(),frameCount:this.frameCount}}calculateTileChecksum(e){let t=0;for(let i=0;i<e.length;i+=64)t+=e[i]||0,t^=e[i+1]||0,t+=(e[i+2]||0)<<1,t^=(e[i+3]||0)<<2;return t>>>0}getTilePosition(e){return{row:Math.floor(e/this.tilesPerRow),col:e%this.tilesPerRow}}async extractTile(e,t){let{row:i,col:n}=this.getTilePosition(t),a=n*this.tileSize,r=i*this.tileSize,o=Math.min(a+this.tileSize,e.width),c=Math.min(r+this.tileSize,e.height),l=o-a,p=c-r,u=Buffer.alloc(l*p*e.channels);for(let d=0;d<p;d++)for(let h=0;h<l;h++){let m=((r+d)*e.width+(a+h))*e.channels,f=(d*l+h)*e.channels;for(let v=0;v<e.channels;v++)u[f+v]=e.buffer[m+v]}return{buffer:u,width:l,height:p,channels:e.channels,tileIndex:t,x:a,y:r}}async compressTileImage(e,t,i){return`data:image/webp;base64,${(await(0,ti.default)(e,{raw:{width:t,height:i,channels:4}}).webp({quality:85,effort:2,smartSubsample:!0}).toBuffer()).toString("base64")}`}async getScreenDimensions(){try{let e=await this.captureFullScreen();this.scaledWidth=e.width,this.scaledHeight=e.height,this.tilesPerRow=Math.ceil(e.width/this.tileSize),this.tilesPerColumn=Math.ceil(e.height/this.tileSize),this.totalTiles=this.tilesPerRow*this.tilesPerColumn}catch(e){console.error("Error getting dimensions:",e)}return{width:this.scaledWidth,height:this.scaledHeight,tileWidth:this.tileSize,tileHeight:this.tileSize,tileCount:this.totalTiles,scaleFactor:this.scaleFactor,originalWidth:this.screenWidth,originalHeight:this.screenHeight}}async compareClientTileHashes(e){if(this.isProcessing)return{tiles:[],currentHashes:[],changedIndices:[]};this.isProcessing=!0;try{let t=await this.getSharedScreenCapture(),i=[],n=[];this.frameCount++;let a=new Map;for(let o=0;o<this.totalTiles;o++){let c=await this.extractTile(t,o),l=this.calculateTileChecksum(c.buffer);a.set(o,l),this.lastTileChecksums.set(o,l)}if(!e||e.length===0){let o=[];for(let l=0;l<this.totalTiles;l++)o.push(this.processTileAsync(t,l,!0));let c=await Promise.all(o);return i.push(...c),{tiles:i,currentHashes:Array.from(a.values())}}for(let o=0;o<this.totalTiles;o++)e[o]!==a.get(o)&&n.push(o);if(n.length/this.totalTiles>this.changeThreshold){let o=[];for(let l=0;l<this.totalTiles;l++)o.push(this.processTileAsync(t,l,!0));let c=await Promise.all(o);i.push(...c.map(l=>({...l,fullRefresh:!0})))}else if(n.length>0){let o=n.map(l=>this.processTileAsync(t,l,!1)),c=await Promise.all(o);i.push(...c)}return{tiles:i,currentHashes:Array.from(a.values()),changedIndices:n}}finally{this.isProcessing=!1}}reset(){this.lastTileChecksums.clear(),this.lastTileBuffers.clear(),this.frameCount=0}cleanup(){try{kt.default.existsSync(this.tempDir)&&kt.default.readdirSync(this.tempDir).forEach(t=>kt.default.unlinkSync(si.default.join(this.tempDir,t)))}catch(e){console.warn("Cleanup error:",e)}}}});var K,Ht=Me(()=>{K={robotSettings:{mouseDelay:2,keyboardDelay:2},throttling:{mouseThrottle:8,keyThrottle:25,typeTextThrottle:100,maxTextLength:1e3},resourceManagement:{inactiveTimeout:12e4,memoryCheckInterval:6e4,memoryWarningThreshold:1e3,maxTimersPerClient:100,maxChunkTimersPerClient:50},streaming:{autoStreamingInterval:100,chunkSize:32,chunkDelay:5,updateDelayAfterAction:200}}});var Xc={};Qe(Xc,{ResourceManager:()=>Kn});var Kn,Jc=Me(()=>{Ht();Kn=class{constructor(){this.activeClients=new Map,this.activeTimers=new Map,this.chunkTimers=new Map,this.memoryCheckInterval=null}startResourceMonitoring(){this.memoryCheckInterval=setInterval(()=>{let e=process.memoryUsage(),t=Math.round(e.heapUsed/1024/1024);t>K.resourceManagement.memoryWarningThreshold&&(console.warn(`\u26A0\uFE0F High memory: ${t}MB`),this.cleanupInactiveClients())},K.resourceManagement.memoryCheckInterval)}stopResourceMonitoring(){this.memoryCheckInterval&&(clearInterval(this.memoryCheckInterval),this.memoryCheckInterval=null)}addClient(e,t){this.activeClients.set(e,{...t,lastActivity:Date.now()})}getClient(e){return this.activeClients.get(e)}updateClientActivity(e){let t=this.activeClients.get(e);t&&(t.lastActivity=Date.now())}cleanupInactiveClients(){let e=Date.now(),t=K.resourceManagement.inactiveTimeout;for(let[i,n]of this.activeClients.entries())e-n.lastActivity>t&&(console.log(`\u{1F9F9} Cleaning inactive client: ${i}`),this.cleanupClientResources(i,n),this.activeClients.delete(i))}cleanupClientResources(e,t){try{t?.screenInterval&&(clearInterval(t.screenInterval),t.screenInterval=null);let i=this.activeTimers.get(e);i&&(i.forEach(a=>clearTimeout(a)),this.activeTimers.delete(e));let n=this.chunkTimers.get(e);n&&(n.forEach(a=>clearTimeout(a)),this.chunkTimers.delete(e)),t?.tileManager&&(t.tileManager.cleanup(),t.tileManager.reset())}catch(i){console.error(`Error cleaning up ${e}:`,i.message)}}removeClient(e){let t=this.activeClients.get(e);t&&(this.cleanupClientResources(e,t),this.activeClients.delete(e))}getChunkTimers(e){return this.chunkTimers.has(e)||this.chunkTimers.set(e,new Set),this.chunkTimers.get(e)}cleanupAll(){this.stopResourceMonitoring();for(let[e,t]of this.activeClients.entries())this.cleanupClientResources(e,t);this.activeClients.clear(),this.activeTimers.clear(),this.chunkTimers.clear()}}});var Qc={};Qe(Qc,{ScreenUpdateHelper:()=>Yn});var Yn,Zc=Me(()=>{Ht();Yn=class{constructor(e){this.resourceManager=e}async sendTilesInChunks(e,t,i,n=!1){if(!t||t.length===0)return;let a=K.streaming.chunkSize,r=[];for(let c=0;c<t.length;c+=a)r.push(t.slice(c,c+a));let o=this.resourceManager.getChunkTimers(e.id);for(let c=0;c<r.length;c++){let l=r[c],p=c===r.length-1,u=setTimeout(()=>{o.delete(u),e.connected&&e.emit("tiles-data",{tiles:l,timestamp:i,forceRefresh:!1,userAction:n,chunkInfo:{chunkIndex:c,totalChunks:r.length,isLastChunk:p}})},c*K.streaming.chunkDelay);o.add(u)}}}});var el={};Qe(el,{MouseHandler:()=>Xn});var Xn,tl=Me(()=>{Ht();Xn=class{constructor(e,t){this.robot=e,this.resourceManager=t,this.lastMouseMove=0}setupMouseHandlers(e,t){let i=this.robot;e.on("mouse-move",t(n=>{let a=Date.now();if(!(a-this.lastMouseMove<K.throttling.mouseThrottle)){this.lastMouseMove=a;try{i.moveMouse(n.x,n.y),this.resourceManager.updateClientActivity(e.id)}catch(r){console.error("Mouse move error:",r.message)}}})),e.on("mouse-click",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseClick(n.button||"left",n.double||!1),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse click error:",a.message)}})),e.on("mouse-press",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseToggle("down",n.button||"left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse press error:",a.message)}})),e.on("mouse-release",t(async n=>{try{if(!this.resourceManager.getClient(e.id))return;let r=i.getScreenSize(),o=Math.round(n.x/100*r.width),c=Math.round(n.y/100*r.height),l=Math.max(0,Math.min(r.width-1,o)),p=Math.max(0,Math.min(r.height-1,c));i.moveMouse(l,p),i.mouseToggle("up",n.button||"left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Mouse release error:",a.message)}})),e.on("scroll",t(async n=>{try{let{direction:a,amount:r=60,horizontal:o=!1}=n;if(!this.resourceManager.getClient(e.id))return;let l=0,p=0;o||a==="left"||a==="right"?l=a==="right"?r:-r:p=a==="down"?-r:r,i.scrollMouse(l,p),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Scroll error:",a.message)}})),e.on("mouse-drag-select",t(n=>{try{let{startX:a,startY:r,endX:o,endY:c}=n,l=i.getScreenSize(),p=Math.round(a/100*l.width),u=Math.round(r/100*l.height),d=Math.round(o/100*l.width),h=Math.round(c/100*l.height),m=Math.max(0,Math.min(l.width-1,p)),f=Math.max(0,Math.min(l.height-1,u)),v=Math.max(0,Math.min(l.width-1,d)),y=Math.max(0,Math.min(l.height-1,h));i.moveMouse(m,f),i.mouseToggle("down","left"),i.dragMouse(v,y),i.mouseToggle("up","left"),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Drag selection error:",a.message)}}))}}});var sl={};Qe(sl,{KeyboardHandler:()=>Jn});var Jn,il=Me(()=>{Ht();Jn=class{constructor(e,t){this.robot=e,this.resourceManager=t,this.lastKeyPress=0,this.lastTypeText=0}setupKeyboardHandlers(e,t){let i=this.robot;e.on("key-press",t(n=>{let a=Date.now();if(!(a-this.lastKeyPress<K.throttling.keyThrottle)){this.lastKeyPress=a;try{if(!n.key||typeof n.key!="string")return;let r=n.key;if(r.length===1){i.keyTap(r,n.modifier||[]);for(let o of n.modifier||[])i.keyToggle(o,"up")}else switch(r.toLowerCase()){case"enter":case"return":i.keyTap("enter");break;case"space":i.keyTap(" ");break;case"backspace":i.keyTap("backspace");break;case"tab":i.keyTap("tab");break;case"escape":i.keyTap("escape");break;default:i.keyTap(r,n.modifier||[])}this.resourceManager.updateClientActivity(e.id)}catch(r){console.error("Key press error:",r.message)}}})),e.on("type-text",t(n=>{let a=Date.now();if(!(a-this.lastTypeText<K.throttling.typeTextThrottle)){this.lastTypeText=a;try{if(!n.text||typeof n.text!="string")return;let r=n.text;r.length>K.throttling.maxTextLength&&(r=r.substring(0,K.throttling.maxTextLength));let o=r.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"");setTimeout(()=>{try{i.typeString(o),this.resourceManager.updateClientActivity(e.id);let c=this.resourceManager.getClient(e.id);c?.tileManager&&c.tileManager.clearScreenCache()}catch(c){console.error("Robot typeString error:",c.message)}},10)}catch(r){console.error("Type text error:",r.message)}}}))}}});var nl={};Qe(nl,{ScreenHandler:()=>Qn});var Qn,al=Me(()=>{Qn=class{constructor(e,t){this.resourceManager=e,this.screenUpdateHelper=t}setupScreenHandlers(e,t){e.on("request-screen",t(async()=>{let i=this.resourceManager.getClient(e.id);if(i)try{let n=await i.tileManager.detectChangedTiles();n.length>0&&e.emit("tiles-data",{tiles:n,timestamp:Date.now()}),this.resourceManager.updateClientActivity(e.id)}catch(n){console.error("Tile capture error:",n),e.emit("screen-error",{error:n.message})}})),e.on("request-screen-with-hashes",t(async i=>{let n=this.resourceManager.getClient(e.id);if(n)try{let a=i.tileHashes||[],r=await n.tileManager.compareClientTileHashes(a);r?.tiles?.length>0?e.emit("tiles-data",{tiles:r.tiles,timestamp:Date.now(),currentHashes:r.currentHashes,changedIndices:r.changedIndices}):e.emit("tiles-data",{tiles:[],timestamp:Date.now(),currentHashes:r.currentHashes,changedIndices:[]}),this.resourceManager.updateClientActivity(e.id)}catch(a){console.error("Tile capture with hashes error:",a),e.emit("screen-error",{error:a.message})}})),e.on("start-streaming",t(()=>{let i=this.resourceManager.getClient(e.id);i&&(i.screenInterval&&(clearInterval(i.screenInterval),i.screenInterval=null),console.log("\u{1F680} Remote streaming started"),i.screenInterval=setInterval(async()=>{try{let n=await i.tileManager.detectChangedTiles();if(n.length>0){let a=Date.now();await this.screenUpdateHelper.sendTilesInChunks(e,n,a,!1)}}catch(n){console.error("Auto streaming error:",n)}},400))})),e.on("stop-streaming",()=>{let i=this.resourceManager.getClient(e.id);i&&(i.screenInterval&&(clearInterval(i.screenInterval),i.screenInterval=null),console.log("\u23F9\uFE0F Remote streaming stopped"))}),e.on("get-screen-dimensions",t(async()=>{let i=this.resourceManager.getClient(e.id);if(i)try{let n=await i.tileManager.getScreenDimensions();e.emit("screen-dimensions",n)}catch(n){console.error("Get dimensions error:",n),e.emit("screen-error",{error:n.message})}}))}}});var gl=x((bg,ta)=>{"use strict";var Xh=Object.prototype.hasOwnProperty,z="~";function Vt(){}Object.create&&(Vt.prototype=Object.create(null),new Vt().__proto__||(z=!1));function Jh(s,e,t){this.fn=s,this.context=e,this.once=t||!1}function vl(s,e,t,i,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var a=new Jh(t,i||s,n),r=z?z+e:e;return s._events[r]?s._events[r].fn?s._events[r]=[s._events[r],a]:s._events[r].push(a):(s._events[r]=a,s._eventsCount++),s}function ri(s,e){--s._eventsCount===0?s._events=new Vt:delete s._events[e]}function F(){this._events=new Vt,this._eventsCount=0}F.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)Xh.call(t,i)&&e.push(z?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};F.prototype.listeners=function(e){var t=z?z+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,a=i.length,r=new Array(a);n<a;n++)r[n]=i[n].fn;return r};F.prototype.listenerCount=function(e){var t=z?z+e:e,i=this._events[t];return i?i.fn?1:i.length:0};F.prototype.emit=function(e,t,i,n,a,r){var o=z?z+e:e;if(!this._events[o])return!1;var c=this._events[o],l=arguments.length,p,u;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,n),!0;case 5:return c.fn.call(c.context,t,i,n,a),!0;case 6:return c.fn.call(c.context,t,i,n,a,r),!0}for(u=1,p=new Array(l-1);u<l;u++)p[u-1]=arguments[u];c.fn.apply(c.context,p)}else{var d=c.length,h;for(u=0;u<d;u++)switch(c[u].once&&this.removeListener(e,c[u].fn,void 0,!0),l){case 1:c[u].fn.call(c[u].context);break;case 2:c[u].fn.call(c[u].context,t);break;case 3:c[u].fn.call(c[u].context,t,i);break;case 4:c[u].fn.call(c[u].context,t,i,n);break;default:if(!p)for(h=1,p=new Array(l-1);h<l;h++)p[h-1]=arguments[h];c[u].fn.apply(c[u].context,p)}}return!0};F.prototype.on=function(e,t,i){return vl(this,e,t,i,!1)};F.prototype.once=function(e,t,i){return vl(this,e,t,i,!0)};F.prototype.removeListener=function(e,t,i,n){var a=z?z+e:e;if(!this._events[a])return this;if(!t)return ri(this,a),this;var r=this._events[a];if(r.fn)r.fn===t&&(!n||r.once)&&(!i||r.context===i)&&ri(this,a);else{for(var o=0,c=[],l=r.length;o<l;o++)(r[o].fn!==t||n&&!r[o].once||i&&r[o].context!==i)&&c.push(r[o]);c.length?this._events[a]=c.length===1?c[0]:c:ri(this,a)}return this};F.prototype.removeAllListeners=function(e){var t;return e?(t=z?z+e:e,this._events[t]&&ri(this,t)):(this._events=new Vt,this._eventsCount=0),this};F.prototype.off=F.prototype.removeListener;F.prototype.addListener=F.prototype.on;F.prefixed=z;F.EventEmitter=F;typeof ta<"u"&&(ta.exports=F)});var yl=x((yg,bl)=>{"use strict";bl.exports=function(e,t){if(t=t.split(":")[0],e=+e,!e)return!1;switch(t){case"http":case"ws":return e!==80;case"https":case"wss":return e!==443;case"ftp":return e!==21;case"gopher":return e!==70;case"file":return!1}return e!==0}});var oi=x(_l=>{var Ce=_l,Qh=require("url"),wl=require("util")._extend,Zh=yl(),ex=/(^|,)\s*upgrade\s*($|,)/i,sa=/^https|wss/;Ce.isSSL=sa;Ce.setupOutgoing=function(s,e,t,i){s.port=e[i||"target"].port||(sa.test(e[i||"target"].protocol)?443:80),["host","hostname","socketPath","pfx","key","passphrase","cert","ca","ciphers","secureProtocol"].forEach(function(o){s[o]=e[i||"target"][o]}),s.method=e.method||t.method,s.headers=wl({},t.headers),e.headers&&wl(s.headers,e.headers),e.auth&&(s.auth=e.auth),e.ca&&(s.ca=e.ca),sa.test(e[i||"target"].protocol)&&(s.rejectUnauthorized=typeof e.secure>"u"?!0:e.secure),s.agent=e.agent||!1,s.localAddress=e.localAddress,s.agent||(s.headers=s.headers||{},(typeof s.headers.connection!="string"||!ex.test(s.headers.connection))&&(s.headers.connection="close"));var n=e[i||"target"],a=n&&e.prependPath!==!1&&n.path||"",r=e.toProxy?t.url:Qh.parse(t.url).path||"";return r=e.ignorePath?"":r,s.path=Ce.urlJoin(a,r),e.changeOrigin&&(s.headers.host=Zh(s.port,e[i||"target"].protocol)&&!tx(s.host)?s.host+":"+s.port:s.host),s};Ce.setupSocket=function(s){return s.setTimeout(0),s.setNoDelay(!0),s.setKeepAlive(!0,0),s};Ce.getPort=function(s){var e=s.headers.host?s.headers.host.match(/:(\d+)/):"";return e?e[1]:Ce.hasEncryptedConnection(s)?"443":"80"};Ce.hasEncryptedConnection=function(s){return!!(s.connection.encrypted||s.connection.pair)};Ce.urlJoin=function(){var s=Array.prototype.slice.call(arguments),e=s.length-1,t=s[e],i=t.split("?"),n;return s[e]=i.shift(),n=[s.filter(Boolean).join("/").replace(/\/+/g,"/").replace("http:/","http://").replace("https:/","https://")],n.push.apply(n,i),n.join("?")};Ce.rewriteCookieProperty=function s(e,t,i){return Array.isArray(e)?e.map(function(n){return s(n,t,i)}):e.replace(new RegExp("(;\\s*"+i+"=)([^;]+)","i"),function(n,a,r){var o;if(r in t)o=t[r];else if("*"in t)o=t["*"];else return n;return o?a+o:""})};function tx(s){return!!~s.indexOf(":")}});var Cl=x((_g,kl)=>{var Sl=require("url"),El=oi(),sx=/^201|30(1|2|7|8)$/;kl.exports={removeChunked:function(e,t,i){e.httpVersion==="1.0"&&delete i.headers["transfer-encoding"]},setConnection:function(e,t,i){e.httpVersion==="1.0"?i.headers.connection=e.headers.connection||"close":e.httpVersion!=="2.0"&&!i.headers.connection&&(i.headers.connection=e.headers.connection||"keep-alive")},setRedirectHostRewrite:function(e,t,i,n){if((n.hostRewrite||n.autoRewrite||n.protocolRewrite)&&i.headers.location&&sx.test(i.statusCode)){var a=Sl.parse(n.target),r=Sl.parse(i.headers.location);if(a.host!=r.host)return;n.hostRewrite?r.host=n.hostRewrite:n.autoRewrite&&(r.host=e.headers.host),n.protocolRewrite&&(r.protocol=n.protocolRewrite),i.headers.location=r.format()}},writeHeaders:function(e,t,i,n){var a=n.cookieDomainRewrite,r=n.cookiePathRewrite,o=n.preserveHeaderKeyCase,c,l=function(d,h){h!=null&&(a&&d.toLowerCase()==="set-cookie"&&(h=El.rewriteCookieProperty(h,a,"domain")),r&&d.toLowerCase()==="set-cookie"&&(h=El.rewriteCookieProperty(h,r,"path")),t.setHeader(String(d).trim(),h))};if(typeof a=="string"&&(a={"*":a}),typeof r=="string"&&(r={"*":r}),o&&i.rawHeaders!=null){c={};for(var p=0;p<i.rawHeaders.length;p+=2){var u=i.rawHeaders[p];c[u.toLowerCase()]=u}}Object.keys(i.headers).forEach(function(d){var h=i.headers[d];o&&c&&(d=c[d]||d),l(d,h)})},writeStatusCode:function(e,t,i){i.statusMessage?(t.statusCode=i.statusCode,t.statusMessage=i.statusMessage):t.statusCode=i.statusCode}}});var Ol=x((Sg,Tl)=>{var Gt;Tl.exports=function(){if(!Gt){try{Gt=R()("follow-redirects")}catch{}typeof Gt!="function"&&(Gt=function(){})}Gt.apply(null,arguments)}});var Il=x((Eg,ma)=>{var Yt=require("url"),Kt=Yt.URL,ix=require("http"),nx=require("https"),oa=require("stream").Writable,ca=require("assert"),Rl=Ol();(function(){var e=typeof process<"u",t=typeof window<"u"&&typeof document<"u",i=Xe(Error.captureStackTrace);!e&&(t||!i)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var la=!1;try{ca(new Kt(""))}catch(s){la=s.code==="ERR_INVALID_URL"}var ax=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],pa=["abort","aborted","connect","error","socket","timeout"],ua=Object.create(null);pa.forEach(function(s){ua[s]=function(e,t,i){this._redirectable.emit(s,e,t,i)}});var na=Xt("ERR_INVALID_URL","Invalid URL",TypeError),aa=Xt("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),rx=Xt("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",aa),ox=Xt("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),cx=Xt("ERR_STREAM_WRITE_AFTER_END","write after end"),lx=oa.prototype.destroy||Pl;function Y(s,e){oa.call(this),this._sanitizeOptions(s),this._options=s,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(i){try{t._processResponse(i)}catch(n){t.emit("error",n instanceof aa?n:new aa({cause:n}))}},this._performRequest()}Y.prototype=Object.create(oa.prototype);Y.prototype.abort=function(){fa(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Y.prototype.destroy=function(s){return fa(this._currentRequest,s),lx.call(this,s),this};Y.prototype.write=function(s,e,t){if(this._ending)throw new cx;if(!Ye(s)&&!dx(s))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Xe(e)&&(t=e,e=null),s.length===0){t&&t();return}this._requestBodyLength+s.length<=this._options.maxBodyLength?(this._requestBodyLength+=s.length,this._requestBodyBuffers.push({data:s,encoding:e}),this._currentRequest.write(s,e,t)):(this.emit("error",new ox),this.abort())};Y.prototype.end=function(s,e,t){if(Xe(s)?(t=s,s=e=null):Xe(e)&&(t=e,e=null),!s)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var i=this,n=this._currentRequest;this.write(s,e,function(){i._ended=!0,n.end(null,null,t)}),this._ending=!0}};Y.prototype.setHeader=function(s,e){this._options.headers[s]=e,this._currentRequest.setHeader(s,e)};Y.prototype.removeHeader=function(s){delete this._options.headers[s],this._currentRequest.removeHeader(s)};Y.prototype.setTimeout=function(s,e){var t=this;function i(r){r.setTimeout(s),r.removeListener("timeout",r.destroy),r.addListener("timeout",r.destroy)}function n(r){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),a()},s),i(r)}function a(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",a),t.removeListener("error",a),t.removeListener("response",a),t.removeListener("close",a),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",n)}return e&&this.on("timeout",e),this.socket?n(this.socket):this._currentRequest.once("socket",n),this.on("socket",i),this.on("abort",a),this.on("error",a),this.on("response",a),this.on("close",a),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(s){Y.prototype[s]=function(e,t){return this._currentRequest[s](e,t)}});["aborted","connection","socket"].forEach(function(s){Object.defineProperty(Y.prototype,s,{get:function(){return this._currentRequest[s]}})});Y.prototype._sanitizeOptions=function(s){if(s.headers||(s.headers={}),s.host&&(s.hostname||(s.hostname=s.host),delete s.host),!s.pathname&&s.path){var e=s.path.indexOf("?");e<0?s.pathname=s.path:(s.pathname=s.path.substring(0,e),s.search=s.path.substring(e))}};Y.prototype._performRequest=function(){var s=this._options.protocol,e=this._options.nativeProtocols[s];if(!e)throw new TypeError("Unsupported protocol "+s);if(this._options.agents){var t=s.slice(0,-1);this._options.agent=this._options.agents[t]}var i=this._currentRequest=e.request(this._options,this._onNativeResponse);i._redirectable=this;for(var n of pa)i.on(n,ua[n]);if(this._currentUrl=/^\//.test(this._options.path)?Yt.format(this._options):this._options.path,this._isRedirect){var a=0,r=this,o=this._requestBodyBuffers;(function c(l){if(i===r._currentRequest)if(l)r.emit("error",l);else if(a<o.length){var p=o[a++];i.finished||i.write(p.data,p.encoding,c)}else r._ended&&i.end()})()}};Y.prototype._processResponse=function(s){var e=s.statusCode;this._options.trackRedirects&&this._redirects.push({url:this._currentUrl,headers:s.headers,statusCode:e});var t=s.headers.location;if(!t||this._options.followRedirects===!1||e<300||e>=400){s.responseUrl=this._currentUrl,s.redirects=this._redirects,this.emit("response",s),this._requestBodyBuffers=[];return}if(fa(this._currentRequest),s.destroy(),++this._redirectCount>this._options.maxRedirects)throw new rx;var i,n=this._options.beforeRedirect;n&&(i=Object.assign({Host:s.req.getHeader("host")},this._options.headers));var a=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],ia(/^content-/i,this._options.headers));var r=ia(/^host$/i,this._options.headers),o=da(this._currentUrl),c=r||o.host,l=/^\w+:/.test(t)?this._currentUrl:Yt.format(Object.assign(o,{host:c})),p=px(t,l);if(Rl("redirecting to",p.href),this._isRedirect=!0,ra(p,this._options),(p.protocol!==o.protocol&&p.protocol!=="https:"||p.host!==c&&!ux(p.host,c))&&ia(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),Xe(n)){var u={headers:s.headers,statusCode:e},d={url:l,method:a,headers:i};n(this._options,u,d),this._sanitizeOptions(this._options)}this._performRequest()};function Al(s){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(s).forEach(function(i){var n=i+":",a=t[n]=s[i],r=e[i]=Object.create(a);function o(l,p,u){return fx(l)?l=ra(l):Ye(l)?l=ra(da(l)):(u=p,p=jl(l),l={protocol:n}),Xe(p)&&(u=p,p=null),p=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},l,p),p.nativeProtocols=t,!Ye(p.host)&&!Ye(p.hostname)&&(p.hostname="::1"),ca.equal(p.protocol,n,"protocol mismatch"),Rl("options",p),new Y(p,u)}function c(l,p,u){var d=r.request(l,p,u);return d.end(),d}Object.defineProperties(r,{request:{value:o,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),e}function Pl(){}function da(s){var e;if(la)e=new Kt(s);else if(e=jl(Yt.parse(s)),!Ye(e.protocol))throw new na({input:s});return e}function px(s,e){return la?new Kt(s,e):da(Yt.resolve(e,s))}function jl(s){if(/^\[/.test(s.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(s.hostname))throw new na({input:s.href||s});if(/^\[/.test(s.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(s.host))throw new na({input:s.href||s});return s}function ra(s,e){var t=e||{};for(var i of ax)t[i]=s[i];return t.hostname.startsWith("[")&&(t.hostname=t.hostname.slice(1,-1)),t.port!==""&&(t.port=Number(t.port)),t.path=t.search?t.pathname+t.search:t.pathname,t}function ia(s,e){var t;for(var i in e)s.test(i)&&(t=e[i],delete e[i]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Xt(s,e,t){function i(n){Xe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,n||{}),this.code=s,this.message=this.cause?e+": "+this.cause.message:e}return i.prototype=new(t||Error),Object.defineProperties(i.prototype,{constructor:{value:i,enumerable:!1},name:{value:"Error ["+s+"]",enumerable:!1}}),i}function fa(s,e){for(var t of pa)s.removeListener(t,ua[t]);s.on("error",Pl),s.destroy(e)}function ux(s,e){ca(Ye(s)&&Ye(e));var t=s.length-e.length-1;return t>0&&s[t]==="."&&s.endsWith(e)}function Ye(s){return typeof s=="string"||s instanceof String}function Xe(s){return typeof s=="function"}function dx(s){return typeof s=="object"&&"length"in s}function fx(s){return Kt&&s instanceof Kt}ma.exports=Al({http:ix,https:nx});ma.exports.wrap=Al});var Bl=x((kg,Nl)=>{var mx=require("http"),hx=require("https"),Jt=Cl(),ci=oi(),xx=Il();Jt=Object.keys(Jt).map(function(s){return Jt[s]});var vx={http:mx,https:hx};Nl.exports={deleteLength:function(e,t,i){(e.method==="DELETE"||e.method==="OPTIONS")&&!e.headers["content-length"]&&(e.headers["content-length"]="0",delete e.headers["transfer-encoding"])},timeout:function(e,t,i){i.timeout&&e.socket.setTimeout(i.timeout)},XHeaders:function(e,t,i){if(i.xfwd){var n=e.isSpdy||ci.hasEncryptedConnection(e),a={for:e.connection.remoteAddress||e.socket.remoteAddress,port:ci.getPort(e),proto:n?"https":"http"};["for","port","proto"].forEach(function(r){e.headers["x-forwarded-"+r]=(e.headers["x-forwarded-"+r]||"")+(e.headers["x-forwarded-"+r]?",":"")+a[r]}),e.headers["x-forwarded-host"]=e.headers["x-forwarded-host"]||e.headers.host||""}},stream:function(e,t,i,n,a,r){a.emit("start",e,t,i.target||i.forward);var o=i.followRedirects?xx:vx,c=o.http,l=o.https;if(i.forward){var p=(i.forward.protocol==="https:"?l:c).request(ci.setupOutgoing(i.ssl||{},i,e,"forward")),u=m(p,i.forward);if(e.on("error",u),p.on("error",u),(i.buffer||e).pipe(p),!i.target)return t.end()}var d=(i.target.protocol==="https:"?l:c).request(ci.setupOutgoing(i.ssl||{},i,e));d.on("socket",function(f){a&&!d.getHeader("expect")&&a.emit("proxyReq",d,e,t,i)}),i.proxyTimeout&&d.setTimeout(i.proxyTimeout,function(){d.abort()}),e.on("aborted",function(){d.abort()});var h=m(d,i.target);e.on("error",h),d.on("error",h);function m(f,v){return function(g){if(e.socket.destroyed&&g.code==="ECONNRESET")return a.emit("econnreset",g,e,t,v),f.abort();r?r(g,e,t,v):a.emit("error",g,e,t,v)}}(i.buffer||e).pipe(d),d.on("response",function(f){if(a&&a.emit("proxyRes",f,e,t),!t.headersSent&&!i.selfHandleResponse)for(var v=0;v<Jt.length&&!Jt[v](e,t,f,i);v++);t.finished?a&&a.emit("end",e,t,f):(f.on("end",function(){a&&a.emit("end",e,t,f)}),i.selfHandleResponse||f.pipe(t))})}}});var Ml=x((Cg,Ll)=>{var gx=require("http"),bx=require("https"),Ct=oi();Ll.exports={checkMethodAndHeader:function(e,t){if(e.method!=="GET"||!e.headers.upgrade||e.headers.upgrade.toLowerCase()!=="websocket")return t.destroy(),!0},XHeaders:function(e,t,i){if(i.xfwd){var n={for:e.connection.remoteAddress||e.socket.remoteAddress,port:Ct.getPort(e),proto:Ct.hasEncryptedConnection(e)?"wss":"ws"};["for","port","proto"].forEach(function(a){e.headers["x-forwarded-"+a]=(e.headers["x-forwarded-"+a]||"")+(e.headers["x-forwarded-"+a]?",":"")+n[a]})}},stream:function(e,t,i,n,a,r){var o=function(p,u){return Object.keys(u).reduce(function(d,h){var m=u[h];if(!Array.isArray(m))return d.push(h+": "+m),d;for(var f=0;f<m.length;f++)d.push(h+": "+m[f]);return d},[p]).join(`\r
19
19
  `)+`\r
20
20
  \r
21
21
  `};Ct.setupSocket(t),n&&n.length&&t.unshift(n);var c=(Ct.isSSL.test(i.target.protocol)?bx:gx).request(Ct.setupOutgoing(i.ssl||{},i,e));return a&&a.emit("proxyReqWs",c,e,t,i,n),c.on("error",l),c.on("response",function(p){p.upgrade||(t.write(o("HTTP/"+p.httpVersion+" "+p.statusCode+" "+p.statusMessage,p.headers)),p.pipe(t))}),c.on("upgrade",function(p,u,d){u.on("error",l),u.on("end",function(){a.emit("close",p,u,d)}),t.on("error",function(){u.end()}),Ct.setupSocket(u),d&&d.length&&u.unshift(d),t.write(o("HTTP/1.1 101 Switching Protocols",p.headers)),u.pipe(t).pipe(u),a.emit("open",u),a.emit("proxySocket",u)}),c.end();function l(p){r?r(p,e,t):a.emit("error",p,e,t),t.end()}}}});var Wl=x((Tg,zl)=>{var Ul=zl.exports,Dl=require("util")._extend,yx=require("url").parse,Hl=gl(),wx=require("http"),_x=require("https"),ql=Bl(),Fl=Ml();Ul.Server=Je;function ha(s){return function(e){return function(t,i){var n=s==="ws"?this.wsPasses:this.webPasses,a=[].slice.call(arguments),r=a.length-1,o,c;typeof a[r]=="function"&&(c=a[r],r--);var l=e;if(!(a[r]instanceof Buffer)&&a[r]!==i&&(l=Dl({},e),Dl(l,a[r]),r--),a[r]instanceof Buffer&&(o=a[r]),["target","forward"].forEach(function(u){typeof l[u]=="string"&&(l[u]=yx(l[u]))}),!l.target&&!l.forward)return this.emit("error",new Error("Must provide a proper URL as target"));for(var p=0;p<n.length&&!n[p](t,i,l,o,this,c);p++);}}}Ul.createRightProxy=ha;function Je(s){Hl.call(this),s=s||{},s.prependPath=s.prependPath!==!1,this.web=this.proxyRequest=ha("web")(s),this.ws=this.proxyWebsocketRequest=ha("ws")(s),this.options=s,this.webPasses=Object.keys(ql).map(function(e){return ql[e]}),this.wsPasses=Object.keys(Fl).map(function(e){return Fl[e]}),this.on("error",this.onError,this)}require("util").inherits(Je,Hl);Je.prototype.onError=function(s){if(this.listeners("error").length===1)throw s};Je.prototype.listen=function(s,e){var t=this,i=function(n,a){t.web(n,a)};return this._server=this.options.ssl?_x.createServer(this.options.ssl,i):wx.createServer(i),this.options.ws&&this._server.on("upgrade",function(n,a,r){t.ws(n,a,r)}),this._server.listen(s,e),this};Je.prototype.close=function(s){var e=this;this._server&&this._server.close(t);function t(){e._server=null,s&&s.apply(null,arguments)}};Je.prototype.before=function(s,e,t){if(s!=="ws"&&s!=="web")throw new Error("type must be `web` or `ws`");var i=s==="ws"?this.wsPasses:this.webPasses,n=!1;if(i.forEach(function(a,r){a.name===e&&(n=r)}),n===!1)throw new Error("No such pass");i.splice(n,0,t)};Je.prototype.after=function(s,e,t){if(s!=="ws"&&s!=="web")throw new Error("type must be `web` or `ws`");var i=s==="ws"?this.wsPasses:this.webPasses,n=!1;if(i.forEach(function(a,r){a.name===e&&(n=r)}),n===!1)throw new Error("No such pass");i.splice(n++,0,t)}});var Vl=x((Og,$l)=>{var Qt=Wl().Server;function xa(s){return new Qt(s)}Qt.createProxyServer=xa;Qt.createServer=xa;Qt.createProxy=xa;$l.exports=Qt});var Kl=x((Rg,Gl)=>{Gl.exports=Vl()});var vp=require("http"),gp=require("url"),pi=M(require("path"),1),bp=require("url"),yp=require("child_process");var $c=M(Wc(),1),{Server:Vc,Namespace:ag,Socket:rg}=$c.default;var ll=M(require("node-pty"),1),ni=M(require("os"),1);var Be=null;function zh(){return process.env.CODESPACES==="true"||process.env.GITPOD_WORKSPACE_ID||process.platform==="linux"&&!process.env.DISPLAY}async function rl(){if(Be!==null)return Be;if(zh())return Be=!1,console.log("\u2139\uFE0F Remote desktop not available (headless environment)"),Be;try{let s=await import("@hurdlegroup/robotjs");(s.default||s).getScreenSize(),Be=!0}catch{Be=!1,console.log("\u2139\uFE0F Remote desktop not available (no display or robotjs not installed)")}return Be}function ol(){return Be===!0}async function cl(s){let e=null,t=null,i=null,n=null,a=null,r=null,o=null,c=async()=>{if(e)return!0;try{let f=await import("@hurdlegroup/robotjs");e=f.default||f;let{TileManager:v}=await Promise.resolve().then(()=>(Yc(),Kc)),{ResourceManager:y}=await Promise.resolve().then(()=>(Jc(),Xc)),{ScreenUpdateHelper:g}=await Promise.resolve().then(()=>(Zc(),Qc)),{MouseHandler:L}=await Promise.resolve().then(()=>(tl(),el)),{KeyboardHandler:A}=await Promise.resolve().then(()=>(il(),sl)),{ScreenHandler:pe}=await Promise.resolve().then(()=>(al(),nl));return t=v,i=y,n=g,a=L,r=A,o=pe,e.setMouseDelay(2),e.setKeyboardDelay(2),!0}catch(f){return console.error("\u274C Failed to load remote modules:",f.message),!1}},l=s.of("/remote"),p=null,u=null,d=null,h=null,m=null;l.on("connection",async f=>{let v=f.handshake.auth?.apiKey;if(!v){console.log("\u274C Remote connection rejected: no apiKey"),f.disconnect();return}if(console.log("\u{1F5A5}\uFE0F Remote client connected:",f.id),!await c()){f.emit("error",{message:"Remote desktop not available"}),f.disconnect();return}p||(p=new i,u=new n(p),d=new a(e,p),h=new r(e,p),m=new o(p,u),p.startResourceMonitoring()),f.isAuthenticated=!0;let g=new t(e);p.addClient(f.id,{tileManager:g,screenInterval:null,authenticated:!0,apiKey:v});let L=A=>A;d.setupMouseHandlers(f,L),h.setupKeyboardHandlers(f,L),m.setupScreenHandlers(f,L),f.on("disconnect",()=>{console.log("\u{1F5A5}\uFE0F Remote client disconnected:",f.id),p.removeClient(f.id)})})}var xe=new Map,ii=0,zt=null,Wh=6e4;function Zn(){return process.env.CODESPACES==="true"}function $h(){return Zn()?{isCodespaces:!0,codespaceName:process.env.CODESPACE_NAME||"unknown"}:null}function Vh(){zt||(zt=setInterval(()=>{process.memoryUsage()},Wh))}function Gh(){zt&&(console.log("\u23F8\uFE0F Stopping Codespaces heartbeat"),clearInterval(zt),zt=null)}function pl(){return process.platform==="win32"?process.env.COMSPEC||"powershell.exe":process.env.SHELL||"/bin/zsh"}function Kh(){let s=ni.default.homedir(),e=ni.default.userInfo().username,t=pl(),i={...process.env};return Object.assign(i,{HOME:s,USER:e,LOGNAME:e,SHELL:t,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:"en_US.UTF-8",LC_ALL:"en_US.UTF-8",LC_CTYPE:"en_US.UTF-8",PWD:s,OLDPWD:s,TMPDIR:i.TMPDIR||(process.platform==="win32"?i.TEMP||i.TMP:"/tmp"),__CF_USER_TEXT_ENCODING:i.__CF_USER_TEXT_ENCODING,XPC_FLAGS:i.XPC_FLAGS,XPC_SERVICE_NAME:i.XPC_SERVICE_NAME,SSH_AUTH_SOCK:i.SSH_AUTH_SOCK,TERM_PROGRAM:"9Remote",TERM_PROGRAM_VERSION:"1.0.0",ITERM_SESSION_ID:`9remote-${Date.now()}`,SHLVL:"1"}),i}function ul(s){s.on("connection",e=>{console.log(`\u{1F4DF} Terminal client connected: ${e.id}`),ii++,Zn()&&ii===1&&Vh(),e.emit("serverInfo",{remoteAvailable:ol(),...$h()}),e.on("getSessions",t=>{let i=[];for(let[n,a]of xe)i.push({id:n,name:a.name,createdAt:a.createdAt});t(i)}),e.on("createSession",({name:t},i)=>{let n=`session-${Date.now()}`,a=pl(),r=Kh();try{let o=process.platform==="win32"?[]:["-l"],c=ll.default.spawn(a,o,{name:"xterm-256color",cols:80,rows:24,cwd:ni.default.homedir(),env:r,useConpty:!1}),l={pty:c,name:t||`Terminal ${xe.size+1}`,createdAt:Date.now(),buffer:[]},p=50*1024;c.onData(u=>{l.buffer.push(u);let d=l.buffer.reduce((h,m)=>h+m.length,0);for(;d>p&&l.buffer.length>1;){let h=l.buffer.shift();d-=h.length}s.emit("output",{sessionId:n,data:Buffer.from(u,"utf-8")})}),xe.set(n,l),console.log(`PTY created: sessionId=${n}, name=${t}`),c.onExit(({exitCode:u})=>{console.log(`PTY exited: sessionId=${n}, code=${u}`),xe.delete(n),s.emit("sessionClosed",n)}),i({success:!0,sessionId:n})}catch(o){console.error("Failed to create session:",o),i({success:!1,error:o.message})}}),e.on("joinSession",(t,i)=>{let n=xe.get(t);if(!n){i({success:!1,error:"Session not found"});return}if(n.buffer&&n.buffer.length>0){let a=n.buffer.join("");e.emit("output",{sessionId:t,data:Buffer.from(a,"utf-8")})}i({success:!0,name:n.name})}),e.on("input",({sessionId:t,data:i})=>{if(!t)return;let n=xe.get(t);if(n){let a=Buffer.isBuffer(i)?i.toString("utf-8"):i;n.pty.write(a)}}),e.on("resize",({sessionId:t,cols:i,rows:n})=>{if(!t)return;let a=xe.get(t);a&&a.pty.resize(i,n)}),e.on("deleteSession",(t,i)=>{let n=xe.get(t);n?(n.pty.kill(),xe.delete(t),i({success:!0})):i({success:!1,error:"Session not found"})}),e.on("renameSession",({sessionId:t,name:i},n)=>{let a=xe.get(t);a?(a.name=i,n({success:!0})):n({success:!1,error:"Session not found"})}),e.on("disconnect",()=>{console.log(`\u{1F4DF} Terminal client disconnected: ${e.id}`),ii--,Zn()&&ii===0&&Gh()})})}var _=M(require("fs"),1),ke=M(require("path"),1),Wt=M(require("os"),1),Le=require("child_process");var dl=["node_modules",".git","dist","build",".next","coverage","__pycache__",".cache",".vscode",".idea",".turbo",".vercel",".output"],fl=[".png",".jpg",".jpeg",".gif",".webp",".ico",".svg",".bmp",".pdf",".zip",".tar",".gz",".rar",".7z",".exe",".dll",".so",".dylib",".mp3",".mp4",".wav",".avi",".mov",".webm",".woff",".woff2",".ttf",".eot",".otf",".sqlite",".db"];function ml(s){return dl.includes(s)}function $t(s){let e=ke.default.extname(s).toLowerCase();return fl.includes(e)}function Yh(s,e){return s.isDirectory()?"folder":$t(e)?"binary":"file"}function ai(s){return s<1024?`${s}B`:s<1024*1024?`${(s/1024).toFixed(1)}KB`:`${(s/(1024*1024)).toFixed(1)}MB`}function hl(s,e,t,i=50){if(!(t.length>=i))try{let n=_.default.readdirSync(s);for(let a of n){if(t.length>=i)return;if(a.startsWith(".")||ml(a))continue;let r=ke.default.join(s,a);try{let o=_.default.statSync(r);o.isDirectory()?hl(r,e,t,i):a.toLowerCase().includes(e.toLowerCase())&&t.push({name:a,path:r,type:$t(a)?"binary":"file",size:o.size,sizeFormatted:ai(o.size)})}catch{}}}catch{}}function xl(s){s.on("connection",e=>{e.on("getFiles",({dirPath:t},i)=>{try{let n=t||Wt.default.homedir(),a=t?.startsWith("~")?t.replace("~",Wt.default.homedir()):n;if(!_.default.existsSync(a)){i({success:!1,error:"Directory not found"});return}let r=_.default.readdirSync(a),o=[];for(let c of r)if(!(c.startsWith(".")&&c!==".env"&&c!==".env.example")&&!ml(c))try{let l=ke.default.join(a,c),p=_.default.statSync(l);o.push({name:c,path:l,type:Yh(p,c),size:p.isFile()?p.size:null,sizeFormatted:p.isFile()?ai(p.size):null,modified:p.mtime.getTime()})}catch{}o.sort((c,l)=>c.type==="folder"&&l.type!=="folder"?-1:c.type!=="folder"&&l.type==="folder"?1:c.name.localeCompare(l.name)),i({success:!0,files:o,currentPath:a,parentPath:ke.default.dirname(a)})}catch(n){i({success:!1,error:n.message})}}),e.on("searchFiles",({workspace:t,query:i},n)=>{try{if(!i||i.length<2){n({success:!0,files:[]});return}let a=t?.startsWith("~")?t.replace("~",Wt.default.homedir()):t||Wt.default.homedir();if(!_.default.existsSync(a)){n({success:!1,error:"Workspace not found"});return}let r=[];hl(a,i,r,50),r.sort((o,c)=>{let l=o.name.toLowerCase()===i.toLowerCase(),p=c.name.toLowerCase()===i.toLowerCase();return l&&!p?-1:!l&&p?1:o.path.length-c.path.length}),n({success:!0,files:r})}catch(a){n({success:!1,error:a.message})}}),e.on("readFile",({filePath:t},i)=>{try{if(!_.default.existsSync(t)){i({success:!1,error:"File not found"});return}let n=_.default.statSync(t);if(n.size>204800){i({success:!1,error:`File too large (${ai(n.size)}). Max ${ai(204800)}`});return}if($t(t)){i({success:!1,error:"Cannot open binary file"});return}let a=_.default.readFileSync(t,"utf-8");i({success:!0,content:a})}catch(n){i({success:!1,error:n.message})}}),e.on("writeFile",({filePath:t,content:i},n)=>{try{_.default.writeFileSync(t,i,"utf-8"),n({success:!0})}catch(a){n({success:!1,error:a.message})}}),e.on("createItem",({itemPath:t,type:i},n)=>{try{if(_.default.existsSync(t)){n({success:!1,error:"Item already exists"});return}i==="folder"?_.default.mkdirSync(t,{recursive:!0}):_.default.writeFileSync(t,"","utf-8"),n({success:!0})}catch(a){n({success:!1,error:a.message})}}),e.on("deleteItem",({itemPath:t},i)=>{try{if(!_.default.existsSync(t)){i({success:!1,error:"Item not found"});return}_.default.statSync(t).isDirectory()?_.default.rmSync(t,{recursive:!0}):_.default.unlinkSync(t),i({success:!0})}catch(n){i({success:!1,error:n.message})}}),e.on("renameItem",({oldPath:t,newPath:i},n)=>{try{if(!_.default.existsSync(t)){n({success:!1,error:"Item not found"});return}if(_.default.existsSync(i)){n({success:!1,error:"Target already exists"});return}_.default.renameSync(t,i),n({success:!0})}catch(a){n({success:!1,error:a.message})}}),e.on("gitStatus",({repoPath:t},i)=>{try{let a=(0,Le.execSync)("git status --porcelain",{cwd:t,encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim().split(`
@@ -1 +1 @@
1
- 8lYelLN5FU1xeKQ5IW9Tr
1
+ niBV9uszI8DM_Av9_qyqt
@@ -7,8 +7,8 @@
7
7
  "static/chunks/a6dad97d9634a72d.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/8lYelLN5FU1xeKQ5IW9Tr/_ssgManifest.js",
11
- "static/8lYelLN5FU1xeKQ5IW9Tr/_buildManifest.js"
10
+ "static/niBV9uszI8DM_Av9_qyqt/_ssgManifest.js",
11
+ "static/niBV9uszI8DM_Av9_qyqt/_buildManifest.js"
12
12
  ],
13
13
  "rootMainFiles": [
14
14
  "static/chunks/d59f830a2b8e768c.js",