Files
zsglpt/static/app/assets/AccountsPage-Bcis23qR.js

2 lines
57 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{f as Nt,b as Ie,a as De,c as Vt,s as Lt,d as Pt,t as qt,e as Ut,g as It,u as Dt,h as Ft}from"./accounts-DI7tHfNj.js";import{p as Mt,_ as $t,n as zt,a as U,r as Y,c as $,q as Ht,o as Kt,m as Wt,b as I,d as c,h as G,i as pe,w as h,e as E,f as R,g as p,t as T,k as g,s as Yt,F as Z,v as me,E as y,x as J}from"./index-BstQMnWL.js";async function Jt(){const{data:n}=await Mt.get("/run_stats");return n}const q=Object.create(null);q.open="0";q.close="1";q.ping="2";q.pong="3";q.message="4";q.upgrade="5";q.noop="6";const ne=Object.create(null);Object.keys(q).forEach(n=>{ne[q[n]]=n});const ve={type:"error",data:"parser error"},Ke=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",We=typeof ArrayBuffer=="function",Ye=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,Te=({type:n,data:e},t,s)=>Ke&&e instanceof Blob?t?s(e):Fe(e,s):We&&(e instanceof ArrayBuffer||Ye(e))?t?s(e):Fe(new Blob([e]),s):s(q[n]+(e||"")),Fe=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function Me(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let ye;function Xt(n,e){if(Ke&&n.data instanceof Blob)return n.data.arrayBuffer().then(Me).then(e);if(We&&(n.data instanceof ArrayBuffer||Ye(n.data)))return e(Me(n.data));Te(n,!1,t=>{ye||(ye=new TextEncoder),e(ye.encode(t))})}const $e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Q=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<$e.length;n++)Q[$e.charCodeAt(n)]=n;const Qt=n=>{let e=n.length*.75,t=n.length,s,i=0,o,u,d,f;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const x=new ArrayBuffer(e),A=new Uint8Array(x);for(s=0;s<t;s+=4)o=Q[n.charCodeAt(s)],u=Q[n.charCodeAt(s+1)],d=Q[n.charCodeAt(s+2)],f=Q[n.charCodeAt(s+3)],A[i++]=o<<2|u>>4,A[i++]=(u&15)<<4|d>>2,A[i++]=(d&3)<<6|f&63;return x},jt=typeof ArrayBuffer=="function",xe=(n,e)=>{if(typeof n!="string")return{type:"message",data:Je(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Gt(n.substring(1),e)}:ne[t]?n.length>1?{type:ne[t],data:n.substring(1)}:{type:ne[t]}:ve},Gt=(n,e)=>{if(jt){const t=Qt(n);return Je(t,e)}else return{base64:!0,data:n}},Je=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},Xe="",Zt=(n,e)=>{const t=n.length,s=new Array(t);let i=0;n.forEach((o,u)=>{Te(o,!1,d=>{s[u]=d,++i===t&&e(s.join(Xe))})})},es=(n,e)=>{const t=n.split(Xe),s=[];for(let i=0;i<t.length;i++){const o=xe(t[i],e);if(s.push(o),o.type==="error")break}return s};function ts(){return new TransformStream({transform(n,e){Xt(n,t=>{const s=t.length;let i;if(s<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,s);else if(s<65536){i=new Uint8Array(3);const o=new DataView(i.buffer);o.setUint8(0,126),o.setUint16(1,s)}else{i=new Uint8Array(9);const o=new DataView(i.buffer);o.setUint8(0,127),o.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let _e;function ee(n){return n.reduce((e,t)=>e+t.length,0)}function te(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let i=0;i<e;i++)t[i]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function ss(n,e){_e||(_e=new TextDecoder);const t=[];let s=0,i=-1,o=!1;return new TransformStream({transform(u,d){for(t.push(u);;){if(s===0){if(ee(t)<1)break;const f=te(t,1);o=(f[0]&128)===128,i=f[0]&127,i<126?s=3:i===126?s=1:s=2}else if(s===1){if(ee(t)<2)break;const f=te(t,2);i=new DataView(f.buffer,f.byteOffset,f.length).getUint16(0),s=3}else if(s===2){if(ee(t)<8)break;const f=te(t,8),x=new DataView(f.buffer,f.byteOffset,f.length),A=x.getUint32(0);if(A>Math.pow(2,21)-1){d.enqueue(ve);break}i=A*Math.pow(2,32)+x.getUint32(4),s=3}else{if(ee(t)<i)break;const f=te(t,i);d.enqueue(xe(o?f:_e.decode(f),e)),s=0}if(i===0||i>n){d.enqueue(ve);break}}}})}const Qe=4;function w(n){if(n)return ns(n)}function ns(n){for(var e in w.prototype)n[e]=w.prototype[e];return n}w.prototype.on=w.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};w.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};w.prototype.off=w.prototype.removeListener=w.prototype.removeAllListeners=w.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,i=0;i<t.length;i++)if(s=t[i],s===e||s.fn===e){t.splice(i,1);break}return t.length===0&&delete this._callbacks["$"+n],this};w.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,i=t.length;s<i;++s)t[s].apply(this,e)}return this};w.prototype.emitReserved=w.prototype.emit;w.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};w.prototype.hasListeners=function(n){return!!this.listeners(n).length};const ae=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),O=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),rs="arraybuffer";function je(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const is=O.setTimeout,os=O.clearTimeout;function ce(n,e){e.useNativeTimers?(n.setTimeoutFn=is.bind(O),n.clearTimeoutFn=os.bind(O)):(n.setTimeoutFn=O.setTimeout.bind(O),n.clearTimeoutFn=O.clearTimeout.bind(O))}const as=1.33;function cs(n){return typeof n=="string"?ls(n):Math.ceil((n.byteLength||n.size)*as)}function ls(n){let e=0,t=0;for(let s=0,i=n.length;s<i;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function Ge(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function us(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function hs(n){let e={},t=n.split("&");for(let s=0,i=t.length;s<i;s++){let o=t[s].split("=");e[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return e}class ds extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Ce extends w{constructor(e){super(),this.writable=!1,ce(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new ds(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=xe(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=us(e);return t.length?"?"+t:""}}class fs extends Ce{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};es(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Zt(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=Ge()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let Ze=!1;try{Ze=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ps=Ze;function ms(){}class ys extends fs{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(i,o)=>{this.onError("xhr post error",i,o)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class P extends w{constructor(e,t,s){super(),this.createRequest=e,ce(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=je(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&s.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var i;s.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=P.requestsCount++,P.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ms,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete P.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}P.requestsCount=0;P.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",ze);else if(typeof addEventListener=="function"){const n="onpagehide"in O?"pagehide":"unload";addEventListener(n,ze,!1)}}function ze(){for(let n in P.requests)P.requests.hasOwnProperty(n)&&P.requests[n].abort()}const _s=(function(){const n=et({xdomain:!1});return n&&n.responseType!==null})();class gs extends ys{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=_s&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new P(et,this.uri(),e)}}function et(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ps))return new XMLHttpRequest}catch{}if(!e)try{return new O[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const tt=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vs extends Ce{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=tt?{}:je(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;Te(s,this.supportsBinary,o=>{try{this.doWrite(s,o)}catch{}i&&ae(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Ge()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const ge=O.WebSocket||O.MozWebSocket;class ws extends vs{createSocket(e,t,s){return tt?new ge(e,t,s):t?new ge(e,t):new ge(e)}doWrite(e,t){this.ws.send(t)}}class bs extends Ce{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=ss(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),i=ts();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const o=()=>{s.read().then(({done:d,value:f})=>{d||(this.onPacket(f),o())}).catch(d=>{})};o();const u={type:"open"};this.query.sid&&(u.data=`{"sid":"${this.query.sid}"}`),this._writer.write(u).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;this._writer.write(s).then(()=>{i&&ae(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const ks={websocket:ws,webtransport:bs,polling:gs},Es=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,As=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function we(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let i=Es.exec(n||""),o={},u=14;for(;u--;)o[As[u]]=i[u]||"";return t!=-1&&s!=-1&&(o.source=e,o.host=o.host.substring(1,o.host.length-1).replace(/;/g,":"),o.authority=o.authority.replace("[","").replace("]","").replace(/;/g,":"),o.ipv6uri=!0),o.pathNames=Ts(o,o.path),o.queryKey=xs(o,o.query),o}function Ts(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function xs(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,i,o){i&&(t[i]=o)}),t}const be=typeof addEventListener=="function"&&typeof removeEventListener=="function",re=[];be&&addEventListener("offline",()=>{re.forEach(n=>n())},!1);class D extends w{constructor(e,t){if(super(),this.binaryType=rs,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=we(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=we(t.host).host);ce(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const i=s.prototype.name;this.transports.push(i),this._transportsByName[i]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=hs(this.opts.query)),be&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},re.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=Qe,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&D.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",D.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const i=this.writeBuffer[s].data;if(i&&(t+=cs(i)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,ae(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,i){if(typeof t=="function"&&(i=t,t=void 0),typeof s=="function"&&(i=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const o={type:e,data:t,options:s};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(D.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),be&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=re.indexOf(this._offlineEventListener);s!==-1&&re.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}D.protocol=Qe;class Cs extends D{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;D.priorWebsocketSuccess=!1;const i=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",C=>{if(!s)if(C.type==="pong"&&C.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;D.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(A(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const N=new Error("probe error");N.transport=t.name,this.emitReserved("upgradeError",N)}}))};function o(){s||(s=!0,A(),t.close(),t=null)}const u=C=>{const N=new Error("probe error: "+C);N.transport=t.name,o(),this.emitReserved("upgradeError",N)};function d(){u("transport closed")}function f(){u("socket closed")}function x(C){t&&C.name!==t.name&&o()}const A=()=>{t.removeListener("open",i),t.removeListener("error",u),t.removeListener("close",d),this.off("close",f),this.off("upgrading",x)};t.once("open",i),t.once("error",u),t.once("close",d),this.once("close",f),this.once("upgrading",x),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let Ss=class extends Cs{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(i=>ks[i]).filter(i=>!!i)),super(e,s)}};function Bs(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=we(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const o=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+o+":"+s.port+e,s.href=s.protocol+"://"+o+(t&&t.port===s.port?"":":"+s.port),s}const Rs=typeof ArrayBuffer=="function",Os=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,st=Object.prototype.toString,Ns=typeof Blob=="function"||typeof Blob<"u"&&st.call(Blob)==="[object BlobConstructor]",Vs=typeof File=="function"||typeof File<"u"&&st.call(File)==="[object FileConstructor]";function Se(n){return Rs&&(n instanceof ArrayBuffer||Os(n))||Ns&&n instanceof Blob||Vs&&n instanceof File}function ie(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(ie(n[t]))return!0;return!1}if(Se(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return ie(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&ie(n[t]))return!0;return!1}function Ls(n){const e=[],t=n.data,s=n;return s.data=ke(t,e),s.attachments=e.length,{packet:s,buffers:e}}function ke(n,e){if(!n)return n;if(Se(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=ke(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=ke(n[s],e));return t}return n}function Ps(n,e){return n.data=Ee(n.data,e),delete n.attachments,n}function Ee(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=Ee(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Ee(n[t],e));return n}const qs=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],Us=5;var m;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(m||(m={}));class Is{constructor(e){this.replacer=e}encode(e){return(e.type===m.EVENT||e.type===m.ACK)&&ie(e)?this.encodeAsBinary({type:e.type===m.EVENT?m.BINARY_EVENT:m.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===m.BINARY_EVENT||e.type===m.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)),t}encodeAsBinary(e){const t=Ls(e),s=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(s),i}}function He(n){return Object.prototype.toString.call(n)==="[object Object]"}class Be extends w{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);const s=t.type===m.BINARY_EVENT;s||t.type===m.BINARY_ACK?(t.type=s?m.EVENT:m.ACK,this.reconstructor=new Ds(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Se(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;const s={type:Number(e.charAt(0))};if(m[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===m.BINARY_EVENT||s.type===m.BINARY_ACK){const o=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const u=e.substring(o,t);if(u!=Number(u)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(u)}if(e.charAt(t+1)==="/"){const o=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(o,t)}else s.nsp="/";const i=e.charAt(t+1);if(i!==""&&Number(i)==i){const o=t+1;for(;++t;){const u=e.charAt(t);if(u==null||Number(u)!=u){--t;break}if(t===e.length)break}s.id=Number(e.substring(o,t+1))}if(e.charAt(++t)){const o=this.tryParse(e.substr(t));if(Be.isPayloadValid(s.type,o))s.data=o;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case m.CONNECT:return He(t);case m.DISCONNECT:return t===void 0;case m.CONNECT_ERROR:return typeof t=="string"||He(t);case m.EVENT:case m.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&qs.indexOf(t[0])===-1);case m.ACK:case m.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Ds{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=Ps(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Fs=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Be,Encoder:Is,get PacketType(){return m},protocol:Us},Symbol.toStringTag,{value:"Module"}));function L(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const Ms=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class nt extends w{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[L(e,"open",this.onopen.bind(this)),L(e,"packet",this.onpacket.bind(this)),L(e,"error",this.onerror.bind(this)),L(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,i,o;if(Ms.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const u={type:m.EVENT,data:t};if(u.options={},u.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const A=this.ids++,C=t.pop();this._registerAckCallback(A,C),u.id=A}const d=(i=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||i===void 0?void 0:i.writable,f=this.connected&&!(!((o=this.io.engine)===null||o===void 0)&&o._hasPingExpired());return this.flags.volatile&&!d||(f?(this.notifyOutgoingListeners(u),this.packet(u)):this.sendBuffer.push(u)),this.flags={},this}_registerAckCallback(e,t){var s;const i=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(i===void 0){this.acks[e]=t;return}const o=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let d=0;d<this.sendBuffer.length;d++)this.sendBuffer[d].id===e&&this.sendBuffer.splice(d,1);t.call(this,new Error("operation has timed out"))},i),u=(...d)=>{this.io.clearTimeoutFn(o),t.apply(this,d)};u.withError=!0,this.acks[e]=u}emitWithAck(e,...t){return new Promise((s,i)=>{const o=(u,d)=>u?i(u):s(d);o.withError=!0,t.push(o),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...o)=>s!==this._queue[0]?void 0:(i!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...o)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:m.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case m.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case m.EVENT:case m.BINARY_EVENT:this.onevent(e);break;case m.ACK:case m.BINARY_ACK:this.onack(e);break;case m.DISCONNECT:this.ondisconnect();break;case m.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...i){s||(s=!0,t.packet({type:m.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:m.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function z(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}z.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=(Math.floor(e*10)&1)==0?n-t:n+t}return Math.min(n,this.max)|0};z.prototype.reset=function(){this.attempts=0};z.prototype.setMin=function(n){this.ms=n};z.prototype.setMax=function(n){this.max=n};z.prototype.setJitter=function(n){this.jitter=n};class Ae extends w{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,ce(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new z({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||Fs;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Ss(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const i=L(t,"open",function(){s.onopen(),e&&e()}),o=d=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",d),e?e(d):this.maybeReconnectOnOpen()},u=L(t,"error",o);if(this._timeout!==!1){const d=this._timeout,f=this.setTimeoutFn(()=>{i(),o(new Error("timeout")),t.close()},d);this.opts.autoUnref&&f.unref(),this.subs.push(()=>{this.clearTimeoutFn(f)})}return this.subs.push(i),this.subs.push(u),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(L(e,"ping",this.onping.bind(this)),L(e,"data",this.ondata.bind(this)),L(e,"error",this.onerror.bind(this)),L(e,"close",this.onclose.bind(this)),L(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){ae(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new nt(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const X={};function oe(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=Bs(n,e.path||"/socket.io"),s=t.source,i=t.id,o=t.path,u=X[i]&&o in X[i].nsps,d=e.forceNew||e["force new connection"]||e.multiplex===!1||u;let f;return d?f=new Ae(s,e):(X[i]||(X[i]=new Ae(s,e)),f=X[i]),t.query&&!e.query&&(e.query=t.queryKey),f.socket(t.path,e)}Object.assign(oe,{Manager:Ae,Socket:nt,io:oe,connect:oe});let se=null;function $s(){return se||(se=oe({transports:["websocket","polling"],withCredentials:!0}),se)}const zs={class:"page"},Hs={class:"stat-value"},Ks={class:"stat-value"},Ws={class:"stat-value"},Ys={class:"stat-value"},Js={class:"stat-value"},Xs={class:"stat-value"},Qs={class:"stat-suffix app-muted"},js={class:"upgrade-actions"},Gs={class:"panel-head"},Zs={class:"panel-actions"},en={class:"toolbar"},tn={class:"toolbar-left"},sn={class:"app-muted"},nn={class:"toolbar-middle"},rn={class:"toolbar-right"},on={key:1,class:"grid"},an={class:"card-top"},cn={class:"card-main"},ln={class:"card-title"},un={class:"card-name"},hn={class:"card-sub app-muted"},dn={key:0},fn={key:1},pn={class:"progress"},mn={class:"progress-meta app-muted"},yn={class:"card-controls"},_n={class:"card-buttons"},gn={__name:"AccountsPage",setup(n){const e=zt(),t=$s(),s=U(!1),i=U(!1),o=Y({today_completed:0,today_failed:0,current_running:0,today_items:0,today_attachments:0}),u=Y({}),d=U([]),f=Y({}),x=U("应读"),A=U(!0),C=U(!1),N=U(!1),H=U(!1),S=Y({username:"",password:"",remark:""}),b=Y({id:"",username:"",password:"",remark:"",originalRemark:""}),Re=[{label:"应读",value:"应读"},{label:"未读",value:"未读"},{label:"注册前未读",value:"注册前未读"}],V=$(()=>Object.values(u).sort((a,r)=>String(a.username||"").localeCompare(String(r.username||""),"zh-CN"))),le=$(()=>V.value.length),rt=$(()=>e.isVip?999:3),Oe=$(()=>d.value.length),it=$(()=>le.value>0&&Oe.value===le.value),ot=$(()=>!e.isVip);function K(a){const r=u[a.id]||{};u[a.id]={...r,...a}}function ue(a){for(const r of Object.keys(u))delete u[r];for(const r of a||[])K(r)}function at(){for(const a of V.value)f[a.id]||(f[a.id]="应读")}Ht(V,at,{immediate:!0});function ct(a){a?d.value=V.value.map(r=>r.id):d.value=[]}function j(a){return e.isVip?!0:(y.warning(`${a}是VIP专属功能`),H.value=!0,!1)}function lt(a){const r=Number(a.total_items||0),_=Number(a.progress_items||0);return r?Math.max(0,Math.min(100,Math.round(_/r*100))):0}function ut(a=""){const r=String(a);return r.includes("已完成")||r.includes("完成")?"success":r.includes("失败")||r.includes("错误")||r.includes("异常")||r.includes("登录失败")?"danger":r.includes("排队")||r.includes("运行")||r.includes("截图")?"warning":"info"}async function W(){i.value=!0;try{const a=await Jt();o.today_completed=Number(a?.today_completed||0),o.today_failed=Number(a?.today_failed||0),o.current_running=Number(a?.current_running||0),o.today_items=Number(a?.today_items||0),o.today_attachments=Number(a?.today_attachments||0)}catch(a){a?.response?.status===401&&(window.location.href="/login")}finally{i.value=!1}}async function Ne(){s.value=!0;try{const a=await Nt({refresh:!0});ue(a)}catch(a){a?.response?.status===401&&(window.location.href="/login")}finally{s.value=!1}}async function ht(a){try{await Lt(a.id,{browse_type:f[a.id]||"应读",enable_screenshot:!0})}catch(r){const _=r?.response?.data;y.error(_?.error||"启动失败")}}async function dt(a){try{await Pt(a.id)}catch(r){const _=r?.response?.data;y.error(_?.error||"停止失败")}}async function ft(a){try{await qt(a.id,{browse_type:f[a.id]||"应读"}),y.success("已提交截图")}catch(r){const _=r?.response?.data;y.error(_?.error||"截图失败")}}async function pt(a){try{await J.confirm(`确定要删除账号「${a.username}」吗?`,"删除账号",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const r=await Ut(a.id);r?.success?(delete u[a.id],d.value=d.value.filter(_=>_!==a.id),y.success("已删除"),await W()):y.error(r?.error||"删除失败")}catch(r){const _=r?.response?.data;y.error(_?.error||"删除失败")}}function mt(){S.username="",S.password="",S.remark="",C.value=!0}async function yt(){const a=S.username.trim();if(!a||!S.password.trim()){y.error("用户名和密码不能为空");return}try{await It({username:a,password:S.password,remember:!0,remark:S.remark.trim()}),y.success("添加成功"),C.value=!1,await W()}catch(r){const _=r?.response?.data;y.error(_?.error||"添加失败")}}function _t(a){b.id=a.id,b.username=a.username,b.password="",b.remark=String(a.remark||""),b.originalRemark=String(a.remark||""),N.value=!0}async function gt(){if(b.id){if(!b.password.trim()){y.error("请输入新密码");return}try{const a=await Dt(b.id,{password:b.password,remember:!0});a?.account&&K(a.account);const r=b.remark.trim();r!==b.originalRemark&&(await Ft(b.id,{remark:r}),K({id:b.id,remark:r})),y.success("已更新"),N.value=!1}catch(a){const r=a?.response?.data;y.error(r?.error||"更新失败")}}}async function vt(){if(j("批量操作")){if(d.value.length===0){y.warning("请先选择账号");return}try{const a=await Ie({account_ids:d.value,browse_type:x.value,enable_screenshot:A.value});y.success(`已启动 ${a?.started_count||0} 个账号`)}catch(a){const r=a?.response?.data;y.error(r?.error||"操作失败")}}}async function wt(){if(j("批量操作")){if(d.value.length===0){y.warning("请先选择账号");return}try{const a=await De({account_ids:d.value});y.success(`已停止 ${a?.stopped_count||0} 个账号`)}catch(a){const r=a?.response?.data;y.error(r?.error||"操作失败")}}}async function bt(){if(j("全部启动")){if(V.value.length===0){y.warning("没有账号");return}try{await J.confirm("确定要启动全部账号吗?","全部启动",{confirmButtonText:"启动",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await Ie({account_ids:V.value.map(r=>r.id),browse_type:x.value,enable_screenshot:A.value});y.success(`已启动 ${a?.started_count||0} 个账号`)}catch(a){const r=a?.response?.data;y.error(r?.error||"操作失败")}}}async function kt(){if(j("全部停止")){if(V.value.length===0){y.warning("没有账号");return}try{await J.confirm("确定要停止全部账号吗?","全部停止",{confirmButtonText:"停止",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await De({account_ids:V.value.map(r=>r.id)});y.success(`已停止 ${a?.stopped_count||0} 个账号`)}catch(a){const r=a?.response?.data;y.error(r?.error||"操作失败")}}}async function Et(){if(V.value.length===0){y.warning("没有账号");return}try{await J.confirm("确定要清空所有账号吗?此操作不可恢复!","清空账号",{confirmButtonText:"继续",cancelButtonText:"取消",type:"warning"}),await J.confirm("再次确认:真的要删除所有账号吗?","二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await Vt();if(a?.success){ue([]),d.value=[],y.success("已清空所有账号"),await W();return}y.error(a?.error||"操作失败")}catch(a){const r=a?.response?.data;y.error(r?.error||"操作失败")}}function At(){const a=v=>{ue(v)},r=v=>{K(v)},_=v=>{v?.account_id&&K({id:v.account_id,detail_status:v.stage||"",total_items:v.total_items,progress_items:v.browsed_items,total_attachments:v.total_attachments,progress_attachments:v.viewed_attachments,elapsed_seconds:v.elapsed_seconds,elapsed_display:v.elapsed_display})};return t.on("accounts_list",a),t.on("account_update",r),t.on("task_progress",_),t.connected||t.connect(),()=>{t.off("accounts_list",a),t.off("account_update",r),t.off("task_progress",_)}}let he=null,de=null;return Kt(async()=>{e.vipInfo||e.refreshVipInfo().catch(()=>{window.location.href="/login"}),he=At(),await Ne(),await W(),de=window.setInterval(W,1e4)}),Wt(()=>{he&&he(),de&&window.clearInterval(de)}),(a,r)=>{const _=E("el-card"),v=E("el-col"),Tt=E("el-row"),k=E("el-button"),Ve=E("el-alert"),Le=E("el-checkbox"),Pe=E("el-option"),qe=E("el-select"),xt=E("el-switch"),Ct=E("el-skeleton"),St=E("el-empty"),Bt=E("el-checkbox-group"),Rt=E("el-tag"),Ot=E("el-progress"),F=E("el-input"),M=E("el-form-item"),Ue=E("el-form"),fe=E("el-dialog");return R(),I("div",zs,[c(Tt,{gutter:12,class:"stats-row"},{default:h(()=>[c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[16]||(r[16]=p("div",{class:"stat-label app-muted"},"今日完成",-1)),p("div",Hs,T(o.today_completed),1)]),_:1})]),_:1}),c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[17]||(r[17]=p("div",{class:"stat-label app-muted"},"今日失败",-1)),p("div",Ks,T(o.today_failed),1)]),_:1})]),_:1}),c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[18]||(r[18]=p("div",{class:"stat-label app-muted"},"运行中",-1)),p("div",Ws,T(o.current_running),1)]),_:1})]),_:1}),c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[19]||(r[19]=p("div",{class:"stat-label app-muted"},"浏览内容",-1)),p("div",Ys,T(o.today_items),1)]),_:1})]),_:1}),c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[20]||(r[20]=p("div",{class:"stat-label app-muted"},"查看附件",-1)),p("div",Js,T(o.today_attachments),1)]),_:1})]),_:1}),c(v,{xs:12,sm:8,md:4},{default:h(()=>[c(_,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[21]||(r[21]=p("div",{class:"stat-label app-muted"},"账号数",-1)),p("div",Xs,[g(T(le.value),1),p("span",Qs,"/ "+T(Yt(e).isVip?"∞":rt.value),1)])]),_:1})]),_:1})]),_:1}),ot.value?(R(),G(Ve,{key:0,type:"info","show-icon":"",closable:!1,class:"upgrade-banner",title:"升级 VIP解锁更多功能无限账号 · 优先排队 · 定时任务 · 批量操作"},{default:h(()=>[p("div",js,[c(k,{type:"primary",plain:"",onClick:r[0]||(r[0]=l=>H.value=!0)},{default:h(()=>[...r[22]||(r[22]=[g("了解VIP特权",-1)])]),_:1})])]),_:1})):pe("",!0),c(_,{shadow:"never",class:"panel","body-style":{padding:"14px"}},{default:h(()=>[p("div",Gs,[r[25]||(r[25]=p("div",{class:"panel-title"},"账号管理",-1)),p("div",Zs,[c(k,{loading:s.value,onClick:Ne},{default:h(()=>[...r[23]||(r[23]=[g("刷新",-1)])]),_:1},8,["loading"]),c(k,{type:"primary",onClick:mt},{default:h(()=>[...r[24]||(r[24]=[g("添加账号",-1)])]),_:1})])]),p("div",en,[p("div",tn,[c(Le,{"model-value":it.value,onChange:ct},{default:h(()=>[...r[26]||(r[26]=[g("全选",-1)])]),_:1},8,["model-value"]),p("span",sn,"已选 "+T(Oe.value)+" 个",1)]),p("div",nn,[c(qe,{modelValue:x.value,"onUpdate:modelValue":r[1]||(r[1]=l=>x.value=l),size:"small",style:{width:"120px"}},{default:h(()=>[(R(),I(Z,null,me(Re,l=>c(Pe,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),c(xt,{modelValue:A.value,"onUpdate:modelValue":r[2]||(r[2]=l=>A.value=l),"inline-prompt":"","active-text":"截图","inactive-text":"不截图"},null,8,["modelValue"])]),p("div",rn,[c(k,{type:"primary",onClick:vt},{default:h(()=>[...r[27]||(r[27]=[g("批量启动",-1)])]),_:1}),c(k,{onClick:wt},{default:h(()=>[...r[28]||(r[28]=[g("批量停止",-1)])]),_:1}),c(k,{type:"success",plain:"",onClick:bt},{default:h(()=>[...r[29]||(r[29]=[g("全部启动",-1)])]),_:1}),c(k,{type:"danger",plain:"",onClick:kt},{default:h(()=>[...r[30]||(r[30]=[g("全部停止",-1)])]),_:1}),c(k,{type:"danger",text:"",onClick:Et},{default:h(()=>[...r[31]||(r[31]=[g("清空",-1)])]),_:1})])]),s.value||i.value?(R(),G(Ct,{key:0,rows:5,animated:""})):(R(),I(Z,{key:1},[V.value.length===0?(R(),G(St,{key:0,description:"暂无账号,点击右上角添加"})):(R(),I("div",on,[(R(!0),I(Z,null,me(V.value,l=>(R(),G(_,{key:l.id,shadow:"never",class:"account-card","body-style":{padding:"14px"}},{default:h(()=>[p("div",an,[c(Bt,{modelValue:d.value,"onUpdate:modelValue":r[3]||(r[3]=B=>d.value=B),class:"card-check"},{default:h(()=>[c(Le,{value:l.id},null,8,["value"])]),_:2},1032,["modelValue"]),p("div",cn,[p("div",ln,[p("span",un,T(l.username),1),c(Rt,{size:"small",type:ut(l.status),effect:"light"},{default:h(()=>[g(T(l.status),1)]),_:2},1032,["type"])]),p("div",hn,[g(T(l.remark||"—")+" ",1),l.detail_status?(R(),I("span",dn," · "+T(l.detail_status),1)):pe("",!0),l.elapsed_display?(R(),I("span",fn," · "+T(l.elapsed_display),1)):pe("",!0)])])]),p("div",pn,[c(Ot,{percentage:lt(l),"stroke-width":10,"show-text":!1},null,8,["percentage"]),p("div",mn,[p("span",null,"内容 "+T(l.progress_items||0)+"/"+T(l.total_items||0),1),p("span",null,"附件 "+T(l.progress_attachments||0)+"/"+T(l.total_attachments||0),1)])]),p("div",yn,[c(qe,{modelValue:f[l.id],"onUpdate:modelValue":B=>f[l.id]=B,size:"small",style:{width:"130px"}},{default:h(()=>[(R(),I(Z,null,me(Re,B=>c(Pe,{key:B.value,label:B.label,value:B.value},null,8,["label","value"])),64))]),_:1},8,["modelValue","onUpdate:modelValue"]),p("div",_n,[c(k,{size:"small",type:"primary",disabled:l.is_running,onClick:B=>ht(l)},{default:h(()=>[...r[32]||(r[32]=[g("启动",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:!l.is_running,onClick:B=>dt(l)},{default:h(()=>[...r[33]||(r[33]=[g("停止",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:l.is_running,onClick:B=>ft(l)},{default:h(()=>[...r[34]||(r[34]=[g("截图",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:l.is_running,onClick:B=>_t(l)},{default:h(()=>[...r[35]||(r[35]=[g("编辑",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",type:"danger",text:"",onClick:B=>pt(l)},{default:h(()=>[...r[36]||(r[36]=[g("删除",-1)])]),_:1},8,["onClick"])])])]),_:2},1024))),128))]))],64))]),_:1}),c(fe,{modelValue:C.value,"onUpdate:modelValue":r[8]||(r[8]=l=>C.value=l),title:"添加账号",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{onClick:r[7]||(r[7]=l=>C.value=!1)},{default:h(()=>[...r[37]||(r[37]=[g("取消",-1)])]),_:1}),c(k,{type:"primary",onClick:yt},{default:h(()=>[...r[38]||(r[38]=[g("添加",-1)])]),_:1})]),default:h(()=>[c(Ue,{"label-position":"top"},{default:h(()=>[c(M,{label:"账号"},{default:h(()=>[c(F,{modelValue:S.username,"onUpdate:modelValue":r[4]||(r[4]=l=>S.username=l),placeholder:"请输入账号",autocomplete:"off"},null,8,["modelValue"])]),_:1}),c(M,{label:"密码"},{default:h(()=>[c(F,{modelValue:S.password,"onUpdate:modelValue":r[5]||(r[5]=l=>S.password=l),type:"password","show-password":"",placeholder:"请输入密码",autocomplete:"off"},null,8,["modelValue"])]),_:1}),c(M,{label:"备注可选最多200字"},{default:h(()=>[c(F,{modelValue:S.remark,"onUpdate:modelValue":r[6]||(r[6]=l=>S.remark=l),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"例如:部门/用途"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),c(fe,{modelValue:N.value,"onUpdate:modelValue":r[13]||(r[13]=l=>N.value=l),title:"编辑账号",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{onClick:r[12]||(r[12]=l=>N.value=!1)},{default:h(()=>[...r[39]||(r[39]=[g("取消",-1)])]),_:1}),c(k,{type:"primary",onClick:gt},{default:h(()=>[...r[40]||(r[40]=[g("保存",-1)])]),_:1})]),default:h(()=>[c(Ue,{"label-position":"top"},{default:h(()=>[c(M,{label:"账号"},{default:h(()=>[c(F,{modelValue:b.username,"onUpdate:modelValue":r[9]||(r[9]=l=>b.username=l),disabled:""},null,8,["modelValue"])]),_:1}),c(M,{label:"新密码(必填)"},{default:h(()=>[c(F,{modelValue:b.password,"onUpdate:modelValue":r[10]||(r[10]=l=>b.password=l),type:"password","show-password":"",placeholder:"请输入新密码",autocomplete:"off"},null,8,["modelValue"])]),_:1}),c(M,{label:"备注可选最多200字"},{default:h(()=>[c(F,{modelValue:b.remark,"onUpdate:modelValue":r[11]||(r[11]=l=>b.remark=l),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"例如:部门/用途"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),c(fe,{modelValue:H.value,"onUpdate:modelValue":r[15]||(r[15]=l=>H.value=l),title:"VIP 特权",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{type:"primary",onClick:r[14]||(r[14]=l=>H.value=!1)},{default:h(()=>[...r[41]||(r[41]=[g("我知道了",-1)])]),_:1})]),default:h(()=>[c(Ve,{type:"info",closable:!1,title:"升级 VIP 后可解锁:无限账号、优先排队、定时任务、批量操作。","show-icon":""}),r[42]||(r[42]=p("div",{class:"vip-body"},[p("div",{class:"vip-tip app-muted"},"升级方式:请通过“反馈”联系管理员开通(与后台一致)。")],-1))]),_:1},8,["modelValue"])])}}},kn=$t(gn,[["__scopeId","data-v-0cf21db0"]]);export{kn as default};