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