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

2 lines
58 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 Ut,b as $e,a as ze,c as Dt,s as Ft,d as Mt,t as $t,e as zt,g as Ht,u as Kt,h as Wt}from"./accounts-CDwCkd9q.js";import{p as Yt,_ as Jt,n as Xt,a as U,r as J,c as F,q as He,o as Qt,m as jt,b as I,d as c,h as Z,i as ee,w as h,e as E,f as B,g as y,t as T,k as w,s as Gt,F as te,v as ye,E as g,x as X}from"./index-BzB0auqv.js";async function Zt(){const{data:n}=await Yt.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 ie=Object.create(null);Object.keys(q).forEach(n=>{ie[q[n]]=n});const ve={type:"error",data:"parser error"},Qe=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",je=typeof ArrayBuffer=="function",Ge=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,xe=({type:n,data:e},t,s)=>Qe&&e instanceof Blob?t?s(e):Ke(e,s):je&&(e instanceof ArrayBuffer||Ge(e))?t?s(e):Ke(new Blob([e]),s):s(q[n]+(e||"")),Ke=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function We(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let ge;function es(n,e){if(Qe&&n.data instanceof Blob)return n.data.arrayBuffer().then(We).then(e);if(je&&(n.data instanceof ArrayBuffer||Ge(n.data)))return e(We(n.data));xe(n,!1,t=>{ge||(ge=new TextEncoder),e(ge.encode(t))})}const Ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<Ye.length;n++)j[Ye.charCodeAt(n)]=n;const ts=n=>{let e=n.length*.75,t=n.length,s,i=0,o,u,d,p;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=j[n.charCodeAt(s)],u=j[n.charCodeAt(s+1)],d=j[n.charCodeAt(s+2)],p=j[n.charCodeAt(s+3)],A[i++]=o<<2|u>>4,A[i++]=(u&15)<<4|d>>2,A[i++]=(d&3)<<6|p&63;return x},ss=typeof ArrayBuffer=="function",Se=(n,e)=>{if(typeof n!="string")return{type:"message",data:Ze(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:ns(n.substring(1),e)}:ie[t]?n.length>1?{type:ie[t],data:n.substring(1)}:{type:ie[t]}:ve},ns=(n,e)=>{if(ss){const t=ts(n);return Ze(t,e)}else return{base64:!0,data:n}},Ze=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},et="",rs=(n,e)=>{const t=n.length,s=new Array(t);let i=0;n.forEach((o,u)=>{xe(o,!1,d=>{s[u]=d,++i===t&&e(s.join(et))})})},is=(n,e)=>{const t=n.split(et),s=[];for(let i=0;i<t.length;i++){const o=Se(t[i],e);if(s.push(o),o.type==="error")break}return s};function os(){return new TransformStream({transform(n,e){es(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 se(n){return n.reduce((e,t)=>e+t.length,0)}function ne(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 as(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(se(t)<1)break;const p=ne(t,1);o=(p[0]&128)===128,i=p[0]&127,i<126?s=3:i===126?s=1:s=2}else if(s===1){if(se(t)<2)break;const p=ne(t,2);i=new DataView(p.buffer,p.byteOffset,p.length).getUint16(0),s=3}else if(s===2){if(se(t)<8)break;const p=ne(t,8),x=new DataView(p.buffer,p.byteOffset,p.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(se(t)<i)break;const p=ne(t,i);d.enqueue(Se(o?p:_e.decode(p),e)),s=0}if(i===0||i>n){d.enqueue(ve);break}}}})}const tt=4;function v(n){if(n)return cs(n)}function cs(n){for(var e in v.prototype)n[e]=v.prototype[e];return n}v.prototype.on=v.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};v.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};v.prototype.off=v.prototype.removeListener=v.prototype.removeAllListeners=v.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};v.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};v.prototype.emitReserved=v.prototype.emit;v.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};v.prototype.hasListeners=function(n){return!!this.listeners(n).length};const le=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),V=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),ls="arraybuffer";function st(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const us=V.setTimeout,hs=V.clearTimeout;function ue(n,e){e.useNativeTimers?(n.setTimeoutFn=us.bind(V),n.clearTimeoutFn=hs.bind(V)):(n.setTimeoutFn=V.setTimeout.bind(V),n.clearTimeoutFn=V.clearTimeout.bind(V))}const ds=1.33;function fs(n){return typeof n=="string"?ps(n):Math.ceil((n.byteLength||n.size)*ds)}function ps(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 nt(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function ms(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function ys(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 gs extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Ce extends v{constructor(e){super(),this.writable=!1,ue(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 gs(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=Se(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=ms(e);return t.length?"?"+t:""}}class _s 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)};is(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,rs(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]=nt()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let rt=!1;try{rt=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ws=rt;function vs(){}class bs extends _s{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 v{constructor(e,t,s){super(),this.createRequest=e,ue(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=st(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=vs,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",Je);else if(typeof addEventListener=="function"){const n="onpagehide"in V?"pagehide":"unload";addEventListener(n,Je,!1)}}function Je(){for(let n in P.requests)P.requests.hasOwnProperty(n)&&P.requests[n].abort()}const ks=(function(){const n=it({xdomain:!1});return n&&n.responseType!==null})();class Es extends bs{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=ks&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new P(it,this.uri(),e)}}function it(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ws))return new XMLHttpRequest}catch{}if(!e)try{return new V[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const ot=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class As extends Ce{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=ot?{}:st(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;xe(s,this.supportsBinary,o=>{try{this.doWrite(s,o)}catch{}i&&le(()=>{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]=nt()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const we=V.WebSocket||V.MozWebSocket;class Ts extends As{createSocket(e,t,s){return ot?new we(e,t,s):t?new we(e,t):new we(e)}doWrite(e,t){this.ws.send(t)}}class xs 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=as(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),i=os();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const o=()=>{s.read().then(({done:d,value:p})=>{d||(this.onPacket(p),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&&le(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const Ss={websocket:Ts,webtransport:xs,polling:Es},Cs=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Bs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function be(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=Cs.exec(n||""),o={},u=14;for(;u--;)o[Bs[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=Rs(o,o.path),o.queryKey=Os(o,o.query),o}function Rs(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 Os(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,i,o){i&&(t[i]=o)}),t}const ke=typeof addEventListener=="function"&&typeof removeEventListener=="function",oe=[];ke&&addEventListener("offline",()=>{oe.forEach(n=>n())},!1);class D extends v{constructor(e,t){if(super(),this.binaryType=ls,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=be(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=be(t.host).host);ue(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=ys(this.opts.query)),ke&&(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"})},oe.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=tt,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+=fs(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,le(()=>{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(),ke&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=oe.indexOf(this._offlineEventListener);s!==-1&&oe.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}D.protocol=tt;class Ns 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",S=>{if(!s)if(S.type==="pong"&&S.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 R=new Error("probe error");R.transport=t.name,this.emitReserved("upgradeError",R)}}))};function o(){s||(s=!0,A(),t.close(),t=null)}const u=S=>{const R=new Error("probe error: "+S);R.transport=t.name,o(),this.emitReserved("upgradeError",R)};function d(){u("transport closed")}function p(){u("socket closed")}function x(S){t&&S.name!==t.name&&o()}const A=()=>{t.removeListener("open",i),t.removeListener("error",u),t.removeListener("close",d),this.off("close",p),this.off("upgrading",x)};t.once("open",i),t.once("error",u),t.once("close",d),this.once("close",p),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 Vs=class extends Ns{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=>Ss[i]).filter(i=>!!i)),super(e,s)}};function Ls(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=be(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 Ps=typeof ArrayBuffer=="function",qs=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,at=Object.prototype.toString,Is=typeof Blob=="function"||typeof Blob<"u"&&at.call(Blob)==="[object BlobConstructor]",Us=typeof File=="function"||typeof File<"u"&&at.call(File)==="[object FileConstructor]";function Be(n){return Ps&&(n instanceof ArrayBuffer||qs(n))||Is&&n instanceof Blob||Us&&n instanceof File}function ae(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(ae(n[t]))return!0;return!1}if(Be(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return ae(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&ae(n[t]))return!0;return!1}function Ds(n){const e=[],t=n.data,s=n;return s.data=Ee(t,e),s.attachments=e.length,{packet:s,buffers:e}}function Ee(n,e){if(!n)return n;if(Be(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]=Ee(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]=Ee(n[s],e));return t}return n}function Fs(n,e){return n.data=Ae(n.data,e),delete n.attachments,n}function Ae(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]=Ae(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Ae(n[t],e));return n}const Ms=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],$s=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 zs{constructor(e){this.replacer=e}encode(e){return(e.type===m.EVENT||e.type===m.ACK)&&ae(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=Ds(e),s=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(s),i}}function Xe(n){return Object.prototype.toString.call(n)==="[object Object]"}class Re extends v{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 Hs(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Be(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(Re.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 Xe(t);case m.DISCONNECT:return t===void 0;case m.CONNECT_ERROR:return typeof t=="string"||Xe(t);case m.EVENT:case m.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&Ms.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 Hs{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=Fs(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Ks=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Re,Encoder:zs,get PacketType(){return m},protocol:$s},Symbol.toStringTag,{value:"Module"}));function L(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const Ws=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class ct extends v{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(Ws.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++,S=t.pop();this._registerAckCallback(A,S),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,p=this.connected&&!(!((o=this.io.engine)===null||o===void 0)&&o._hasPingExpired());return this.flags.volatile&&!d||(p?(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 H(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}H.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};H.prototype.reset=function(){this.attempts=0};H.prototype.setMin=function(n){this.ms=n};H.prototype.setMax=function(n){this.max=n};H.prototype.setJitter=function(n){this.jitter=n};class Te extends v{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,ue(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 H({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||Ks;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 Vs(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,p=this.setTimeoutFn(()=>{i(),o(new Error("timeout")),t.close()},d);this.opts.autoUnref&&p.unref(),this.subs.push(()=>{this.clearTimeoutFn(p)})}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){le(()=>{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 ct(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 Q={};function ce(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=Ls(n,e.path||"/socket.io"),s=t.source,i=t.id,o=t.path,u=Q[i]&&o in Q[i].nsps,d=e.forceNew||e["force new connection"]||e.multiplex===!1||u;let p;return d?p=new Te(s,e):(Q[i]||(Q[i]=new Te(s,e)),p=Q[i]),t.query&&!e.query&&(e.query=t.queryKey),p.socket(t.path,e)}Object.assign(ce,{Manager:Te,Socket:ct,io:ce,connect:ce});let re=null;function Ys(){return re||(re=ce({transports:["websocket","polling"],withCredentials:!0}),re)}const Js={class:"page"},Xs={class:"stat-value"},Qs={class:"stat-value"},js={class:"stat-value"},Gs={class:"stat-value"},Zs={class:"stat-value"},en={class:"stat-value"},tn={class:"stat-suffix app-muted"},sn={class:"upgrade-actions"},nn={class:"panel-head"},rn={class:"panel-actions"},on={class:"toolbar"},an={class:"toolbar-left"},cn={class:"app-muted"},ln={class:"toolbar-middle"},un={class:"toolbar-right"},hn={key:1,class:"grid"},dn={class:"card-top"},fn={class:"card-main"},pn={class:"card-title"},mn={class:"card-name"},yn={class:"card-sub app-muted"},gn={key:0},_n={key:1},wn={key:0,class:"progress"},vn={class:"progress-meta app-muted"},bn={class:"card-controls"},kn={class:"card-buttons"},En={__name:"AccountsPage",setup(n){const e=Xt(),t=Ys(),s=U(!1),i=U(!1),o=J({today_completed:0,today_failed:0,current_running:0,today_items:0,today_attachments:0}),u=J({}),d=U([]),p=J({}),x=U("应读"),A=U(!0),S=U(!1),R=U(!1),K=U(!1),C=J({username:"",password:"",remark:""}),b=J({id:"",username:"",password:"",remark:"",originalRemark:""}),Oe=[{label:"应读",value:"应读"},{label:"注册前未读",value:"注册前未读"}],O=F(()=>Object.values(u).sort((a,r)=>String(a.username||"").localeCompare(String(r.username||""),"zh-CN"))),he=F(()=>O.value.length),lt=F(()=>e.isVip?999:3),Ne=F(()=>d.value.length),ut=F(()=>he.value>0&&Ne.value===he.value),ht=F(()=>!e.isVip);function W(a){const r=u[a.id]||{};u[a.id]={...r,...a}}function de(a){const r=Array.isArray(a)?a:[],f=new Set(r.map(_=>String(_?.id||"")));for(const _ of Object.keys(u))f.has(_)||delete u[_];for(const _ of r)W(_)}function dt(){for(const a of O.value)p[a.id]||(p[a.id]="应读")}He(O,dt,{immediate:!0});function ft(a){a?d.value=O.value.map(r=>r.id):d.value=[]}function G(a){return e.isVip?!0:(g.warning(`${a}是VIP专属功能`),K.value=!0,!1)}function pt(a){const r=Number(a.total_items||0),f=Number(a.progress_items||0);return r?Math.max(0,Math.min(100,Math.round(f/r*100))):0}function mt(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"}function fe(a){if(!a?.is_running)return!1;const r=String(a.status||""),f=String(a.detail_status||"");return!(!r||r==="未开始"||!r.includes("运行")||r.includes("截图")||r.includes("等待截图")||f.includes("截图")||f.includes("等待截图")||f.includes("浏览完成")||f.includes("任务完成")||r.includes("已完成"))}async function M(a={}){const r=!!a?.silent;r||(i.value=!0);try{const f=await Zt();o.today_completed=Number(f?.today_completed||0),o.today_failed=Number(f?.today_failed||0),o.current_running=Number(f?.current_running||0),o.today_items=Number(f?.today_items||0),o.today_attachments=Number(f?.today_attachments||0)}catch(f){f?.response?.status===401&&(window.location.href="/login")}finally{r||(i.value=!1)}}async function Ve(){s.value=!0;try{const a=await Ut({refresh:!0});de(a)}catch(a){a?.response?.status===401&&(window.location.href="/login")}finally{s.value=!1}}async function yt(a){try{await Ft(a.id,{browse_type:p[a.id]||"应读",enable_screenshot:!0})}catch(r){const f=r?.response?.data;g.error(f?.error||"启动失败")}}async function gt(a){try{await Mt(a.id)}catch(r){const f=r?.response?.data;g.error(f?.error||"停止失败")}}async function _t(a){try{await $t(a.id,{browse_type:p[a.id]||"应读"}),g.success("已提交截图")}catch(r){const f=r?.response?.data;g.error(f?.error||"截图失败")}}async function wt(a){try{await X.confirm(`确定要删除账号「${a.username}」吗?`,"删除账号",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const r=await zt(a.id);r?.success?(delete u[a.id],d.value=d.value.filter(f=>f!==a.id),g.success("已删除"),await M()):g.error(r?.error||"删除失败")}catch(r){const f=r?.response?.data;g.error(f?.error||"删除失败")}}function vt(){C.username="",C.password="",C.remark="",S.value=!0}async function bt(){const a=C.username.trim();if(!a||!C.password.trim()){g.error("用户名和密码不能为空");return}try{await Ht({username:a,password:C.password,remember:!0,remark:C.remark.trim()}),g.success("添加成功"),S.value=!1,await M()}catch(r){const f=r?.response?.data;g.error(f?.error||"添加失败")}}function kt(a){b.id=a.id,b.username=a.username,b.password="",b.remark=String(a.remark||""),b.originalRemark=String(a.remark||""),R.value=!0}async function Et(){if(!b.id)return;const a=b.password.trim(),r=b.remark.trim();if(!a&&r===b.originalRemark){g.info("没有修改"),R.value=!1;return}try{if(a){const f=await Kt(b.id,{password:a,remember:!0});f?.account&&W(f.account)}r!==b.originalRemark&&(await Wt(b.id,{remark:r}),W({id:b.id,remark:r})),g.success("已更新"),R.value=!1}catch(f){const _=f?.response?.data;g.error(_?.error||"更新失败")}}async function At(){if(G("批量操作")){if(d.value.length===0){g.warning("请先选择账号");return}try{const a=await $e({account_ids:d.value,browse_type:x.value,enable_screenshot:A.value});g.success(`已启动 ${a?.started_count||0} 个账号`)}catch(a){const r=a?.response?.data;g.error(r?.error||"操作失败")}}}async function Tt(){if(G("批量操作")){if(d.value.length===0){g.warning("请先选择账号");return}try{const a=await ze({account_ids:d.value});g.success(`已停止 ${a?.stopped_count||0} 个账号`)}catch(a){const r=a?.response?.data;g.error(r?.error||"操作失败")}}}async function xt(){if(G("全部启动")){if(O.value.length===0){g.warning("没有账号");return}try{await X.confirm("确定要启动全部账号吗?","全部启动",{confirmButtonText:"启动",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await $e({account_ids:O.value.map(r=>r.id),browse_type:x.value,enable_screenshot:A.value});g.success(`已启动 ${a?.started_count||0} 个账号`)}catch(a){const r=a?.response?.data;g.error(r?.error||"操作失败")}}}async function St(){if(G("全部停止")){if(O.value.length===0){g.warning("没有账号");return}try{await X.confirm("确定要停止全部账号吗?","全部停止",{confirmButtonText:"停止",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await ze({account_ids:O.value.map(r=>r.id)});g.success(`已停止 ${a?.stopped_count||0} 个账号`)}catch(a){const r=a?.response?.data;g.error(r?.error||"操作失败")}}}async function Ct(){if(O.value.length===0){g.warning("没有账号");return}try{await X.confirm("确定要清空所有账号吗?此操作不可恢复!","清空账号",{confirmButtonText:"继续",cancelButtonText:"取消",type:"warning"}),await X.confirm("再次确认:真的要删除所有账号吗?","二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const a=await Dt();if(a?.success){de([]),d.value=[],g.success("已清空所有账号"),await M();return}g.error(a?.error||"操作失败")}catch(a){const r=a?.response?.data;g.error(r?.error||"操作失败")}}function Bt(){const a=_=>{de(_)},r=_=>{W(_)},f=_=>{_?.account_id&&W({id:_.account_id,detail_status:_.stage||"",total_items:_.total_items,progress_items:_.browsed_items,total_attachments:_.total_attachments,progress_attachments:_.viewed_attachments,elapsed_seconds:_.elapsed_seconds,elapsed_display:_.elapsed_display})};return t.on("accounts_list",a),t.on("account_update",r),t.on("task_progress",f),t.connected||t.connect(),()=>{t.off("accounts_list",a),t.off("account_update",r),t.off("task_progress",f)}}let pe=null,Y=null;const Le=F(()=>O.value.some(a=>!(!a?.is_running||String(a.status||"").includes("排队"))));function Pe(){Y&&(window.clearInterval(Y),Y=null)}function Rt(){Y||(Y=window.setInterval(()=>M({silent:!0}),1e4))}function qe(a=null){const r=Le.value;a===!0&&r===!1&&M({silent:!0}).catch(()=>{}),r?Rt():Pe()}return He(Le,(a,r)=>{qe(r)}),Qt(async()=>{e.vipInfo||e.refreshVipInfo().catch(()=>{window.location.href="/login"}),pe=Bt(),await Ve(),await M(),qe()}),jt(()=>{pe&&pe(),Pe()}),(a,r)=>{const f=E("el-card"),_=E("el-col"),Ot=E("el-row"),k=E("el-button"),Ie=E("el-alert"),Ue=E("el-checkbox"),De=E("el-option"),Fe=E("el-select"),Nt=E("el-switch"),Vt=E("el-skeleton"),Lt=E("el-empty"),Pt=E("el-checkbox-group"),qt=E("el-tag"),It=E("el-progress"),$=E("el-input"),z=E("el-form-item"),Me=E("el-form"),me=E("el-dialog");return B(),I("div",Js,[c(Ot,{gutter:12,class:"stats-row"},{default:h(()=>[c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[16]||(r[16]=y("div",{class:"stat-label app-muted"},"今日完成",-1)),y("div",Xs,T(o.today_completed),1)]),_:1})]),_:1}),c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[17]||(r[17]=y("div",{class:"stat-label app-muted"},"今日失败",-1)),y("div",Qs,T(o.today_failed),1)]),_:1})]),_:1}),c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[18]||(r[18]=y("div",{class:"stat-label app-muted"},"运行中",-1)),y("div",js,T(o.current_running),1)]),_:1})]),_:1}),c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[19]||(r[19]=y("div",{class:"stat-label app-muted"},"浏览内容",-1)),y("div",Gs,T(o.today_items),1)]),_:1})]),_:1}),c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[20]||(r[20]=y("div",{class:"stat-label app-muted"},"查看附件",-1)),y("div",Zs,T(o.today_attachments),1)]),_:1})]),_:1}),c(_,{xs:12,sm:8,md:4},{default:h(()=>[c(f,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:h(()=>[r[21]||(r[21]=y("div",{class:"stat-label app-muted"},"账号数",-1)),y("div",en,[w(T(he.value),1),y("span",tn,"/ "+T(Gt(e).isVip?"∞":lt.value),1)])]),_:1})]),_:1})]),_:1}),ht.value?(B(),Z(Ie,{key:0,type:"info","show-icon":"",closable:!1,class:"upgrade-banner",title:"升级 VIP解锁更多功能无限账号 · 优先排队 · 定时任务 · 批量操作"},{default:h(()=>[y("div",sn,[c(k,{type:"primary",plain:"",onClick:r[0]||(r[0]=l=>K.value=!0)},{default:h(()=>[...r[22]||(r[22]=[w("了解VIP特权",-1)])]),_:1})])]),_:1})):ee("",!0),c(f,{shadow:"never",class:"panel","body-style":{padding:"14px"}},{default:h(()=>[y("div",nn,[r[25]||(r[25]=y("div",{class:"panel-title"},"账号管理",-1)),y("div",rn,[c(k,{loading:s.value,onClick:Ve},{default:h(()=>[...r[23]||(r[23]=[w("刷新",-1)])]),_:1},8,["loading"]),c(k,{type:"primary",onClick:vt},{default:h(()=>[...r[24]||(r[24]=[w("添加账号",-1)])]),_:1})])]),y("div",on,[y("div",an,[c(Ue,{"model-value":ut.value,onChange:ft},{default:h(()=>[...r[26]||(r[26]=[w("全选",-1)])]),_:1},8,["model-value"]),y("span",cn,"已选 "+T(Ne.value)+" 个",1)]),y("div",ln,[c(Fe,{modelValue:x.value,"onUpdate:modelValue":r[1]||(r[1]=l=>x.value=l),size:"small",style:{width:"120px"}},{default:h(()=>[(B(),I(te,null,ye(Oe,l=>c(De,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),c(Nt,{modelValue:A.value,"onUpdate:modelValue":r[2]||(r[2]=l=>A.value=l),"inline-prompt":"","active-text":"截图","inactive-text":"不截图"},null,8,["modelValue"])]),y("div",un,[c(k,{type:"primary",onClick:At},{default:h(()=>[...r[27]||(r[27]=[w("批量启动",-1)])]),_:1}),c(k,{onClick:Tt},{default:h(()=>[...r[28]||(r[28]=[w("批量停止",-1)])]),_:1}),c(k,{type:"success",plain:"",onClick:xt},{default:h(()=>[...r[29]||(r[29]=[w("全部启动",-1)])]),_:1}),c(k,{type:"danger",plain:"",onClick:St},{default:h(()=>[...r[30]||(r[30]=[w("全部停止",-1)])]),_:1}),c(k,{type:"danger",text:"",onClick:Ct},{default:h(()=>[...r[31]||(r[31]=[w("清空",-1)])]),_:1})])]),s.value?(B(),Z(Vt,{key:0,rows:5,animated:""})):(B(),I(te,{key:1},[O.value.length===0?(B(),Z(Lt,{key:0,description:"暂无账号,点击右上角添加"})):(B(),I("div",hn,[(B(!0),I(te,null,ye(O.value,l=>(B(),Z(f,{key:l.id,shadow:"never",class:"account-card","body-style":{padding:"14px"}},{default:h(()=>[y("div",dn,[c(Pt,{modelValue:d.value,"onUpdate:modelValue":r[3]||(r[3]=N=>d.value=N),class:"card-check"},{default:h(()=>[c(Ue,{value:l.id},null,8,["value"])]),_:2},1032,["modelValue"]),y("div",fn,[y("div",pn,[y("span",mn,T(l.username),1),c(qt,{size:"small",type:mt(l.status),effect:"light"},{default:h(()=>[w(T(l.status),1)]),_:2},1032,["type"])]),y("div",yn,[w(T(l.remark||"—")+" ",1),fe(l)&&l.detail_status?(B(),I("span",gn," · "+T(l.detail_status),1)):ee("",!0),fe(l)&&l.elapsed_display?(B(),I("span",_n," · "+T(l.elapsed_display),1)):ee("",!0)])])]),fe(l)?(B(),I("div",wn,[c(It,{percentage:pt(l),"stroke-width":10,"show-text":!1},null,8,["percentage"]),y("div",vn,[y("span",null,"内容 "+T(l.progress_items||0)+"/"+T(l.total_items||0),1),y("span",null,"附件 "+T(l.progress_attachments||0)+"/"+T(l.total_attachments||0),1)])])):ee("",!0),y("div",bn,[c(Fe,{modelValue:p[l.id],"onUpdate:modelValue":N=>p[l.id]=N,size:"small",style:{width:"130px"}},{default:h(()=>[(B(),I(te,null,ye(Oe,N=>c(De,{key:N.value,label:N.label,value:N.value},null,8,["label","value"])),64))]),_:1},8,["modelValue","onUpdate:modelValue"]),y("div",kn,[c(k,{size:"small",type:"primary",disabled:l.is_running,onClick:N=>yt(l)},{default:h(()=>[...r[32]||(r[32]=[w("启动",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:!l.is_running,onClick:N=>gt(l)},{default:h(()=>[...r[33]||(r[33]=[w("停止",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:l.is_running,onClick:N=>_t(l)},{default:h(()=>[...r[34]||(r[34]=[w("截图",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",disabled:l.is_running,onClick:N=>kt(l)},{default:h(()=>[...r[35]||(r[35]=[w("编辑",-1)])]),_:1},8,["disabled","onClick"]),c(k,{size:"small",type:"danger",text:"",onClick:N=>wt(l)},{default:h(()=>[...r[36]||(r[36]=[w("删除",-1)])]),_:1},8,["onClick"])])])]),_:2},1024))),128))]))],64))]),_:1}),c(me,{modelValue:S.value,"onUpdate:modelValue":r[8]||(r[8]=l=>S.value=l),title:"添加账号",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{onClick:r[7]||(r[7]=l=>S.value=!1)},{default:h(()=>[...r[37]||(r[37]=[w("取消",-1)])]),_:1}),c(k,{type:"primary",onClick:bt},{default:h(()=>[...r[38]||(r[38]=[w("添加",-1)])]),_:1})]),default:h(()=>[c(Me,{"label-position":"top"},{default:h(()=>[c(z,{label:"账号"},{default:h(()=>[c($,{modelValue:C.username,"onUpdate:modelValue":r[4]||(r[4]=l=>C.username=l),placeholder:"请输入账号",autocomplete:"off"},null,8,["modelValue"])]),_:1}),c(z,{label:"密码"},{default:h(()=>[c($,{modelValue:C.password,"onUpdate:modelValue":r[5]||(r[5]=l=>C.password=l),type:"password","show-password":"",placeholder:"请输入密码",autocomplete:"off"},null,8,["modelValue"])]),_:1}),c(z,{label:"备注可选最多200字"},{default:h(()=>[c($,{modelValue:C.remark,"onUpdate:modelValue":r[6]||(r[6]=l=>C.remark=l),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"例如:部门/用途"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),c(me,{modelValue:R.value,"onUpdate:modelValue":r[13]||(r[13]=l=>R.value=l),title:"编辑账号",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{onClick:r[12]||(r[12]=l=>R.value=!1)},{default:h(()=>[...r[39]||(r[39]=[w("取消",-1)])]),_:1}),c(k,{type:"primary",onClick:Et},{default:h(()=>[...r[40]||(r[40]=[w("保存",-1)])]),_:1})]),default:h(()=>[c(Me,{"label-position":"top"},{default:h(()=>[c(z,{label:"账号"},{default:h(()=>[c($,{modelValue:b.username,"onUpdate:modelValue":r[9]||(r[9]=l=>b.username=l),disabled:""},null,8,["modelValue"])]),_:1}),c(z,{label:"新密码(可选)"},{default:h(()=>[c($,{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(z,{label:"备注可选最多200字"},{default:h(()=>[c($,{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(me,{modelValue:K.value,"onUpdate:modelValue":r[15]||(r[15]=l=>K.value=l),title:"VIP 特权",width:"min(560px, 92vw)"},{footer:h(()=>[c(k,{type:"primary",onClick:r[14]||(r[14]=l=>K.value=!1)},{default:h(()=>[...r[41]||(r[41]=[w("我知道了",-1)])]),_:1})]),default:h(()=>[c(Ie,{type:"info",closable:!1,title:"升级 VIP 后可解锁:无限账号、优先排队、定时任务、批量操作。","show-icon":""}),r[42]||(r[42]=y("div",{class:"vip-body"},[y("div",{class:"vip-tip app-muted"},"升级方式:请通过“反馈”联系管理员开通(与后台一致)。")],-1))]),_:1},8,["modelValue"])])}}},Sn=Jt(En,[["__scopeId","data-v-374b34a5"]]);export{Sn as default};