diff --git a/bin/executor b/bin/executor index 4e72dcf..a4d5187 100755 Binary files a/bin/executor and b/bin/executor differ diff --git a/dist/bundles/qualiteer-executor.js b/dist/bundles/qualiteer-executor.js index 230a0c5..c1c2b79 100644 --- a/dist/bundles/qualiteer-executor.js +++ b/dist/bundles/qualiteer-executor.js @@ -1,265 +1,4 @@ -"use strict"; -var e = require("fs"), - t = require("url"), - s = require("child_process"), - r = require("http"), - i = require("https"), - n = require("stream"), - o = require("zlib"), - a = require("net"), - h = require("tls"), - c = require("crypto"), - l = require("events"); -function d(e) { - return e && "object" == typeof e && "default" in e ? e : { default: e }; -} -function u(e, t) { - return ( - t.forEach(function (t) { - t && - "string" != typeof t && - !Array.isArray(t) && - Object.keys(t).forEach(function (s) { - if ("default" !== s && !(s in e)) { - var r = Object.getOwnPropertyDescriptor(t, s); - Object.defineProperty( - e, - s, - r.get - ? r - : { - enumerable: !0, - get: function () { - return t[s]; - }, - } - ); - } - }); - }), - Object.freeze(e) - ); -} -var p = d(e), - f = d(t), - _ = d(s), - y = d(r), - m = d(i), - g = d(n), - b = d(o), - v = d(a), - E = d(h), - w = d(c), - S = d(l); -const k = Object.create(null); -(k.open = "0"), - (k.close = "1"), - (k.ping = "2"), - (k.pong = "3"), - (k.message = "4"), - (k.upgrade = "5"), - (k.noop = "6"); -const x = Object.create(null); -Object.keys(k).forEach((e) => { - x[k[e]] = e; -}); -const O = { type: "error", data: "parser error" }, - T = ({ type: e, data: t }, s, r) => { - if (t instanceof ArrayBuffer || ArrayBuffer.isView(t)) { - const e = N(t); - return r(R(e, s)); - } - return r(k[e] + (t || "")); - }, - N = (e) => - Buffer.isBuffer(e) - ? e - : e instanceof ArrayBuffer - ? Buffer.from(e) - : Buffer.from(e.buffer, e.byteOffset, e.byteLength), - R = (e, t) => (t ? e : "b" + e.toString("base64")), - C = (e, t) => { - if ("string" != typeof e) return { type: "message", data: L(e, t) }; - const s = e.charAt(0); - if ("b" === s) { - const s = Buffer.from(e.substring(1), "base64"); - return { type: "message", data: L(s, t) }; - } - return x[s] - ? e.length > 1 - ? { type: x[s], data: e.substring(1) } - : { type: x[s] } - : O; - }, - L = (e, t) => { - const s = Buffer.isBuffer(e); - return "arraybuffer" === t && s ? A(e) : e; - }, - A = (e) => { - const t = new ArrayBuffer(e.length), - s = new Uint8Array(t); - for (let t = 0; t < e.length; t++) s[t] = e[t]; - return t; - }, - B = String.fromCharCode(30); -function P(e) { - if (e) - return (function (e) { - for (var t in P.prototype) e[t] = P.prototype[t]; - return e; - })(e); -} -(P.prototype.on = P.prototype.addEventListener = - function (e, t) { - return ( - (this._callbacks = this._callbacks || {}), - (this._callbacks["$" + e] = this._callbacks["$" + e] || []).push(t), - this - ); - }), - (P.prototype.once = function (e, t) { - function s() { - this.off(e, s), t.apply(this, arguments); - } - return (s.fn = t), this.on(e, s), this; - }), - (P.prototype.off = - P.prototype.removeListener = - P.prototype.removeAllListeners = - P.prototype.removeEventListener = - function (e, t) { - if (((this._callbacks = this._callbacks || {}), 0 == arguments.length)) - return (this._callbacks = {}), this; - var s, - r = this._callbacks["$" + e]; - if (!r) return this; - if (1 == arguments.length) return delete this._callbacks["$" + e], this; - for (var i = 0; i < r.length; i++) - if ((s = r[i]) === t || s.fn === t) { - r.splice(i, 1); - break; - } - return 0 === r.length && delete this._callbacks["$" + e], this; - }), - (P.prototype.emit = function (e) { - this._callbacks = this._callbacks || {}; - for ( - var t = new Array(arguments.length - 1), - s = this._callbacks["$" + e], - r = 1; - r < arguments.length; - r++ - ) - t[r - 1] = arguments[r]; - if (s) { - r = 0; - for (var i = (s = s.slice(0)).length; r < i; ++r) s[r].apply(this, t); - } - return this; - }), - (P.prototype.emitReserved = P.prototype.emit), - (P.prototype.listeners = function (e) { - return ( - (this._callbacks = this._callbacks || {}), this._callbacks["$" + e] || [] - ); - }), - (P.prototype.hasListeners = function (e) { - return !!this.listeners(e).length; - }); -const I = global; -function D(e, ...t) { - return t.reduce((t, s) => (e.hasOwnProperty(s) && (t[s] = e[s]), t), {}); -} -const U = setTimeout, - q = clearTimeout; -function j(e, t) { - t.useNativeTimers - ? ((e.setTimeoutFn = U.bind(I)), (e.clearTimeoutFn = q.bind(I))) - : ((e.setTimeoutFn = setTimeout.bind(I)), - (e.clearTimeoutFn = clearTimeout.bind(I))); -} -class F extends Error { - constructor(e, t, s) { - super(e), - (this.description = t), - (this.context = s), - (this.type = "TransportError"); - } -} -class M extends P { - constructor(e) { - super(), - (this.writable = !1), - j(this, e), - (this.opts = e), - (this.query = e.query), - (this.readyState = ""), - (this.socket = e.socket); - } - onError(e, t, s) { - return super.emitReserved("error", new F(e, t, s)), this; - } - open() { - return ( - ("closed" !== this.readyState && "" !== this.readyState) || - ((this.readyState = "opening"), this.doOpen()), - this - ); - } - close() { - return ( - ("opening" !== this.readyState && "open" !== this.readyState) || - (this.doClose(), this.onClose()), - this - ); - } - send(e) { - "open" === this.readyState && this.write(e); - } - onOpen() { - (this.readyState = "open"), - (this.writable = !0), - super.emitReserved("open"); - } - onData(e) { - const t = C(e, this.socket.binaryType); - this.onPacket(t); - } - onPacket(e) { - super.emitReserved("packet", e); - } - onClose(e) { - (this.readyState = "closed"), super.emitReserved("close", e); - } -} -const W = - "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split( - "" - ), - V = {}; -let $, - G = 0, - H = 0; -function z(e) { - let t = ""; - do { - (t = W[e % 64] + t), (e = Math.floor(e / 64)); - } while (e > 0); - return t; -} -function Y() { - const e = z(+new Date()); - return e !== $ ? ((G = 0), ($ = e)) : e + "." + z(G++); -} -for (; H < 64; H++) V[W[H]] = H; -function K(e) { - let t = ""; - for (let s in e) - e.hasOwnProperty(s) && - (t.length && (t += "&"), - (t += encodeURIComponent(s) + "=" + encodeURIComponent(e[s]))); - return t; -} +"use strict";var e=require("fs"),t=require("url"),s=require("child_process"),r=require("http"),i=require("https"),n=require("stream"),o=require("zlib"),a=require("net"),h=require("tls"),c=require("crypto"),l=require("events");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(s){if("default"!==s&&!(s in e)){var r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:function(){return t[s]}})}}))})),Object.freeze(e)}var p=d(e),f=d(t),_=d(s),y=d(r),m=d(i),g=d(n),b=d(o),v=d(a),E=d(h),w=d(c),S=d(l);const k=Object.create(null);k.open="0",k.close="1",k.ping="2",k.pong="3",k.message="4",k.upgrade="5",k.noop="6";const x=Object.create(null);Object.keys(k).forEach((e=>{x[k[e]]=e}));const O={type:"error",data:"parser error"},T=({type:e,data:t},s,r)=>{if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){const e=N(t);return r(R(e,s))}return r(k[e]+(t||""))},N=e=>Buffer.isBuffer(e)?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength),R=(e,t)=>t?e:"b"+e.toString("base64"),C=(e,t)=>{if("string"!=typeof e)return{type:"message",data:L(e,t)};const s=e.charAt(0);if("b"===s){const s=Buffer.from(e.substring(1),"base64");return{type:"message",data:L(s,t)}}return x[s]?e.length>1?{type:x[s],data:e.substring(1)}:{type:x[s]}:O},L=(e,t)=>{const s=Buffer.isBuffer(e);return"arraybuffer"===t&&s?A(e):e},A=e=>{const t=new ArrayBuffer(e.length),s=new Uint8Array(t);for(let t=0;t(e.hasOwnProperty(s)&&(t[s]=e[s]),t)),{})}const U=setTimeout,q=clearTimeout;function j(e,t){t.useNativeTimers?(e.setTimeoutFn=U.bind(I),e.clearTimeoutFn=q.bind(I)):(e.setTimeoutFn=setTimeout.bind(I),e.clearTimeoutFn=clearTimeout.bind(I))}class F extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class M extends P{constructor(e){super(),this.writable=!1,j(this,e),this.opts=e,this.query=e.query,this.readyState="",this.socket=e.socket}onError(e,t,s){return super.emitReserved("error",new F(e,t,s)),this}open(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=C(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}}const W="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),V={};let $,G=0,H=0;function z(e){let t="";do{t=W[e%64]+t,e=Math.floor(e/64)}while(e>0);return t}function Y(){const e=z(+new Date);return e!==$?(G=0,$=e):e+"."+z(G++)}for(;H<64;H++)V[W[H]]=H;function K(e){let t="";for(let s in e)e.hasOwnProperty(s)&&(t.length&&(t+="&"),t+=encodeURIComponent(s)+"="+encodeURIComponent(e[s]));return t} /** * Wrapper for built-in http.js to emulate the browser XMLHttpRequest object. * @@ -272,3721 +11,4 @@ function K(e) { * @contributor David Ellis * @license MIT */ -var X = p.default, - J = f.default, - Q = _.default.spawn, - Z = ee; -function ee(e) { - e = e || {}; - var t, - s, - r = this, - i = y.default, - n = m.default, - o = {}, - a = !1, - h = { "User-Agent": "node-XMLHttpRequest", Accept: "*/*" }, - c = Object.assign({}, h), - l = [ - "accept-charset", - "accept-encoding", - "access-control-request-headers", - "access-control-request-method", - "connection", - "content-length", - "content-transfer-encoding", - "cookie", - "cookie2", - "date", - "expect", - "host", - "keep-alive", - "origin", - "referer", - "te", - "trailer", - "transfer-encoding", - "upgrade", - "via", - ], - d = ["TRACE", "TRACK", "CONNECT"], - u = !1, - p = !1, - f = !1, - _ = {}; - (this.UNSENT = 0), - (this.OPENED = 1), - (this.HEADERS_RECEIVED = 2), - (this.LOADING = 3), - (this.DONE = 4), - (this.readyState = this.UNSENT), - (this.onreadystatechange = null), - (this.responseText = ""), - (this.responseXML = ""), - (this.status = null), - (this.statusText = null); - (this.open = function (e, t, s, r, i) { - if ( - (this.abort(), - (p = !1), - (f = !1), - !(function (e) { - return e && -1 === d.indexOf(e); - })(e)) - ) - throw new Error("SecurityError: Request method not allowed"); - (o = { - method: e, - url: t.toString(), - async: "boolean" != typeof s || s, - user: r || null, - password: i || null, - }), - g(this.OPENED); - }), - (this.setDisableHeaderCheck = function (e) { - a = e; - }), - (this.setRequestHeader = function (e, t) { - if (this.readyState != this.OPENED) - throw new Error( - "INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN" - ); - if ( - !(function (e) { - return a || (e && -1 === l.indexOf(e.toLowerCase())); - })(e) - ) - return console.warn('Refused to set unsafe header "' + e + '"'), !1; - if (u) throw new Error("INVALID_STATE_ERR: send flag is true"); - return (c[e] = t), !0; - }), - (this.getResponseHeader = function (e) { - return "string" == typeof e && - this.readyState > this.OPENED && - s.headers[e.toLowerCase()] && - !p - ? s.headers[e.toLowerCase()] - : null; - }), - (this.getAllResponseHeaders = function () { - if (this.readyState < this.HEADERS_RECEIVED || p) return ""; - var e = ""; - for (var t in s.headers) - "set-cookie" !== t && - "set-cookie2" !== t && - (e += t + ": " + s.headers[t] + "\r\n"); - return e.substr(0, e.length - 2); - }), - (this.getRequestHeader = function (e) { - return "string" == typeof e && c[e] ? c[e] : ""; - }), - (this.send = function (a) { - if (this.readyState != this.OPENED) - throw new Error( - "INVALID_STATE_ERR: connection must be opened before send() is called" - ); - if (u) throw new Error("INVALID_STATE_ERR: send has already been called"); - var h, - l = !1, - d = !1, - f = J.parse(o.url); - switch (f.protocol) { - case "https:": - l = !0; - case "http:": - h = f.hostname; - break; - case "file:": - d = !0; - break; - case void 0: - case "": - h = "localhost"; - break; - default: - throw new Error("Protocol not supported."); - } - if (d) { - if ("GET" !== o.method) - throw new Error("XMLHttpRequest: Only GET method is supported"); - if (o.async) - X.readFile(unescape(f.pathname), "utf8", function (e, t) { - e - ? r.handleError(e, e.errno || -1) - : ((r.status = 200), (r.responseText = t), g(r.DONE)); - }); - else - try { - (this.responseText = X.readFileSync(unescape(f.pathname), "utf8")), - (this.status = 200), - g(r.DONE); - } catch (e) { - this.handleError(e, e.errno || -1); - } - } else { - var _ = f.port || (l ? 443 : 80), - y = f.pathname + (f.search ? f.search : ""); - if ( - ((c.Host = h), - (l && 443 === _) || 80 === _ || (c.Host += ":" + f.port), - o.user) - ) { - void 0 === o.password && (o.password = ""); - var m = new Buffer(o.user + ":" + o.password); - c.Authorization = "Basic " + m.toString("base64"); - } - "GET" === o.method || "HEAD" === o.method - ? (a = null) - : a - ? ((c["Content-Length"] = Buffer.isBuffer(a) - ? a.length - : Buffer.byteLength(a)), - c["Content-Type"] || - (c["Content-Type"] = "text/plain;charset=UTF-8")) - : "POST" === o.method && (c["Content-Length"] = 0); - var b = e.agent || !1, - v = { - host: h, - port: _, - path: y, - method: o.method, - headers: c, - agent: b, - }; - if ( - (l && - ((v.pfx = e.pfx), - (v.key = e.key), - (v.passphrase = e.passphrase), - (v.cert = e.cert), - (v.ca = e.ca), - (v.ciphers = e.ciphers), - (v.rejectUnauthorized = !1 !== e.rejectUnauthorized)), - (p = !1), - o.async) - ) { - var E = l ? n.request : i.request; - (u = !0), r.dispatchEvent("readystatechange"); - var w = function (i) { - if ( - 302 === (s = i).statusCode || - 303 === s.statusCode || - 307 === s.statusCode - ) { - o.url = s.headers.location; - var n = J.parse(o.url); - h = n.hostname; - var a = { - hostname: n.hostname, - port: n.port, - path: n.path, - method: 303 === s.statusCode ? "GET" : o.method, - headers: c, - }; - return ( - l && - ((a.pfx = e.pfx), - (a.key = e.key), - (a.passphrase = e.passphrase), - (a.cert = e.cert), - (a.ca = e.ca), - (a.ciphers = e.ciphers), - (a.rejectUnauthorized = !1 !== e.rejectUnauthorized)), - void (t = E(a, w).on("error", S)).end() - ); - } - s && s.setEncoding && s.setEncoding("utf8"), - g(r.HEADERS_RECEIVED), - (r.status = s.statusCode), - s.on("data", function (e) { - e && (r.responseText += e), u && g(r.LOADING); - }), - s.on("end", function () { - u && ((u = !1), g(r.DONE)); - }), - s.on("error", function (e) { - r.handleError(e); - }); - }, - S = function (e) { - r.handleError(e); - }; - (t = E(v, w).on("error", S)), - e.autoUnref && - t.on("socket", (e) => { - e.unref(); - }), - a && t.write(a), - t.end(), - r.dispatchEvent("loadstart"); - } else { - var k = ".node-xmlhttprequest-content-" + process.pid, - x = ".node-xmlhttprequest-sync-" + process.pid; - X.writeFileSync(x, "", "utf8"); - for ( - var O = - "var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http" + - (l ? "s" : "") + - ".request;var options = " + - JSON.stringify(v) + - ";var responseText = '';var req = doRequest(options, function(response) {response.setEncoding('utf8');response.on('data', function(chunk) { responseText += chunk;});response.on('end', function() {fs.writeFileSync('" + - k + - "', 'NODE-XMLHTTPREQUEST-STATUS:' + response.statusCode + ',' + responseText, 'utf8');fs.unlinkSync('" + - x + - "');});response.on('error', function(error) {fs.writeFileSync('" + - k + - "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('" + - x + - "');});}).on('error', function(error) {fs.writeFileSync('" + - k + - "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('" + - x + - "');});" + - (a - ? "req.write('" + - JSON.stringify(a).slice(1, -1).replace(/'/g, "\\'") + - "');" - : "") + - "req.end();", - T = Q(process.argv[0], ["-e", O]); - X.existsSync(x); - - ); - if ( - ((r.responseText = X.readFileSync(k, "utf8")), - T.stdin.end(), - X.unlinkSync(k), - r.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)) - ) { - var N = r.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/, ""); - r.handleError(N, 503); - } else - (r.status = r.responseText.replace( - /^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/, - "$1" - )), - (r.responseText = r.responseText.replace( - /^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/, - "$1" - )), - g(r.DONE); - } - } - }), - (this.handleError = function (e, t) { - (this.status = t || 0), - (this.statusText = e), - (this.responseText = e.stack), - (p = !0), - g(this.DONE); - }), - (this.abort = function () { - t && (t.abort(), (t = null)), - (c = Object.assign({}, h)), - (this.responseText = ""), - (this.responseXML = ""), - (p = f = !0), - this.readyState === this.UNSENT || - (this.readyState === this.OPENED && !u) || - this.readyState === this.DONE || - ((u = !1), g(this.DONE)), - (this.readyState = this.UNSENT); - }), - (this.addEventListener = function (e, t) { - e in _ || (_[e] = []), _[e].push(t); - }), - (this.removeEventListener = function (e, t) { - e in _ && - (_[e] = _[e].filter(function (e) { - return e !== t; - })); - }), - (this.dispatchEvent = function (e) { - if ( - ("function" == typeof r["on" + e] && - (this.readyState === this.DONE - ? setImmediate(function () { - r["on" + e](); - }) - : r["on" + e]()), - e in _) - ) - for (let t = 0, s = _[e].length; t < s; t++) - this.readyState === this.DONE - ? setImmediate(function () { - _[e][t].call(r); - }) - : _[e][t].call(r); - }); - var g = function (e) { - if ( - !(r.readyState === e || (r.readyState === r.UNSENT && f)) && - ((r.readyState = e), - (o.async || r.readyState < r.OPENED || r.readyState === r.DONE) && - r.dispatchEvent("readystatechange"), - r.readyState === r.DONE) - ) { - let e; - (e = f ? "abort" : p ? "error" : "load"), - r.dispatchEvent(e), - r.dispatchEvent("loadend"); - } - }; -} -ee.XMLHttpRequest = ee; -const te = Z || u({ __proto__: null, default: Z }, [Z]); -function se() {} -const re = null != new te({ xdomain: !1 }).responseType; -class ie extends P { - constructor(e, t) { - super(), - j(this, t), - (this.opts = t), - (this.method = t.method || "GET"), - (this.uri = e), - (this.async = !1 !== t.async), - (this.data = void 0 !== t.data ? t.data : null), - this.create(); - } - create() { - const e = D( - this.opts, - "agent", - "pfx", - "key", - "passphrase", - "cert", - "ca", - "ciphers", - "rejectUnauthorized", - "autoUnref" - ); - (e.xdomain = !!this.opts.xd), (e.xscheme = !!this.opts.xs); - const t = (this.xhr = new te(e)); - try { - t.open(this.method, this.uri, this.async); - try { - if (this.opts.extraHeaders) { - t.setDisableHeaderCheck && t.setDisableHeaderCheck(!0); - for (let e in this.opts.extraHeaders) - this.opts.extraHeaders.hasOwnProperty(e) && - t.setRequestHeader(e, this.opts.extraHeaders[e]); - } - } catch (e) {} - if ("POST" === this.method) - try { - t.setRequestHeader("Content-type", "text/plain;charset=UTF-8"); - } catch (e) {} - try { - t.setRequestHeader("Accept", "*/*"); - } catch (e) {} - "withCredentials" in t && (t.withCredentials = this.opts.withCredentials), - this.opts.requestTimeout && (t.timeout = this.opts.requestTimeout), - (t.onreadystatechange = () => { - 4 === t.readyState && - (200 === t.status || 1223 === t.status - ? this.onLoad() - : this.setTimeoutFn(() => { - this.onError("number" == typeof t.status ? t.status : 0); - }, 0)); - }), - t.send(this.data); - } catch (e) { - return void this.setTimeoutFn(() => { - this.onError(e); - }, 0); - } - "undefined" != typeof document && - ((this.index = ie.requestsCount++), (ie.requests[this.index] = this)); - } - onError(e) { - this.emitReserved("error", e, this.xhr), this.cleanup(!0); - } - cleanup(e) { - if (void 0 !== this.xhr && null !== this.xhr) { - if (((this.xhr.onreadystatechange = se), e)) - try { - this.xhr.abort(); - } catch (e) {} - "undefined" != typeof document && delete ie.requests[this.index], - (this.xhr = null); - } - } - onLoad() { - const e = this.xhr.responseText; - null !== e && - (this.emitReserved("data", e), - this.emitReserved("success"), - this.cleanup()); - } - abort() { - this.cleanup(); - } -} -if ( - ((ie.requestsCount = 0), (ie.requests = {}), "undefined" != typeof document) -) - if ("function" == typeof attachEvent) attachEvent("onunload", ne); - else if ("function" == typeof addEventListener) { - addEventListener("onpagehide" in I ? "pagehide" : "unload", ne, !1); - } -function ne() { - for (let e in ie.requests) - ie.requests.hasOwnProperty(e) && ie.requests[e].abort(); -} -var oe = { exports: {} }, - ae = { - BINARY_TYPES: ["nodebuffer", "arraybuffer", "fragments"], - EMPTY_BUFFER: Buffer.alloc(0), - GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", - kForOnEventAttribute: Symbol("kIsForOnEventAttribute"), - kListener: Symbol("kListener"), - kStatusCode: Symbol("status-code"), - kWebSocket: Symbol("websocket"), - NOOP: () => {}, - }; -const { EMPTY_BUFFER: he } = ae; -function ce(e, t) { - if (0 === e.length) return he; - if (1 === e.length) return e[0]; - const s = Buffer.allocUnsafe(t); - let r = 0; - for (let t = 0; t < e.length; t++) { - const i = e[t]; - s.set(i, r), (r += i.length); - } - return r < t ? s.slice(0, r) : s; -} -function le(e, t, s, r, i) { - for (let n = 0; n < i; n++) s[r + n] = e[n] ^ t[3 & n]; -} -function de(e, t) { - for (let s = 0; s < e.length; s++) e[s] ^= t[3 & s]; -} -function ue(e) { - return e.byteLength === e.buffer.byteLength - ? e.buffer - : e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength); -} -function pe(e) { - if (((pe.readOnly = !0), Buffer.isBuffer(e))) return e; - let t; - return ( - e instanceof ArrayBuffer - ? (t = Buffer.from(e)) - : ArrayBuffer.isView(e) - ? (t = Buffer.from(e.buffer, e.byteOffset, e.byteLength)) - : ((t = Buffer.from(e)), (pe.readOnly = !1)), - t - ); -} -try { - const e = require("bufferutil"); - oe.exports = { - concat: ce, - mask(t, s, r, i, n) { - n < 48 ? le(t, s, r, i, n) : e.mask(t, s, r, i, n); - }, - toArrayBuffer: ue, - toBuffer: pe, - unmask(t, s) { - t.length < 32 ? de(t, s) : e.unmask(t, s); - }, - }; -} catch (e) { - oe.exports = { - concat: ce, - mask: le, - toArrayBuffer: ue, - toBuffer: pe, - unmask: de, - }; -} -const fe = Symbol("kDone"), - _e = Symbol("kRun"); -var ye = class { - constructor(e) { - (this[fe] = () => { - this.pending--, this[_e](); - }), - (this.concurrency = e || 1 / 0), - (this.jobs = []), - (this.pending = 0); - } - add(e) { - this.jobs.push(e), this[_e](); - } - [_e]() { - if (this.pending !== this.concurrency && this.jobs.length) { - const e = this.jobs.shift(); - this.pending++, e(this[fe]); - } - } -}; -const me = b.default, - ge = oe.exports, - be = ye, - { kStatusCode: ve } = ae, - Ee = Buffer.from([0, 0, 255, 255]), - we = Symbol("permessage-deflate"), - Se = Symbol("total-length"), - ke = Symbol("callback"), - xe = Symbol("buffers"), - Oe = Symbol("error"); -let Te; -var Ne = class { - constructor(e, t, s) { - if ( - ((this._maxPayload = 0 | s), - (this._options = e || {}), - (this._threshold = - void 0 !== this._options.threshold ? this._options.threshold : 1024), - (this._isServer = !!t), - (this._deflate = null), - (this._inflate = null), - (this.params = null), - !Te) - ) { - const e = - void 0 !== this._options.concurrencyLimit - ? this._options.concurrencyLimit - : 10; - Te = new be(e); - } - } - static get extensionName() { - return "permessage-deflate"; - } - offer() { - const e = {}; - return ( - this._options.serverNoContextTakeover && - (e.server_no_context_takeover = !0), - this._options.clientNoContextTakeover && - (e.client_no_context_takeover = !0), - this._options.serverMaxWindowBits && - (e.server_max_window_bits = this._options.serverMaxWindowBits), - this._options.clientMaxWindowBits - ? (e.client_max_window_bits = this._options.clientMaxWindowBits) - : null == this._options.clientMaxWindowBits && - (e.client_max_window_bits = !0), - e - ); - } - accept(e) { - return ( - (e = this.normalizeParams(e)), - (this.params = this._isServer - ? this.acceptAsServer(e) - : this.acceptAsClient(e)), - this.params - ); - } - cleanup() { - if ( - (this._inflate && (this._inflate.close(), (this._inflate = null)), - this._deflate) - ) { - const e = this._deflate[ke]; - this._deflate.close(), - (this._deflate = null), - e && - e( - new Error( - "The deflate stream was closed while data was being processed" - ) - ); - } - } - acceptAsServer(e) { - const t = this._options, - s = e.find( - (e) => - !( - (!1 === t.serverNoContextTakeover && - e.server_no_context_takeover) || - (e.server_max_window_bits && - (!1 === t.serverMaxWindowBits || - ("number" == typeof t.serverMaxWindowBits && - t.serverMaxWindowBits > e.server_max_window_bits))) || - ("number" == typeof t.clientMaxWindowBits && - !e.client_max_window_bits) - ) - ); - if (!s) throw new Error("None of the extension offers can be accepted"); - return ( - t.serverNoContextTakeover && (s.server_no_context_takeover = !0), - t.clientNoContextTakeover && (s.client_no_context_takeover = !0), - "number" == typeof t.serverMaxWindowBits && - (s.server_max_window_bits = t.serverMaxWindowBits), - "number" == typeof t.clientMaxWindowBits - ? (s.client_max_window_bits = t.clientMaxWindowBits) - : (!0 !== s.client_max_window_bits && !1 !== t.clientMaxWindowBits) || - delete s.client_max_window_bits, - s - ); - } - acceptAsClient(e) { - const t = e[0]; - if ( - !1 === this._options.clientNoContextTakeover && - t.client_no_context_takeover - ) - throw new Error('Unexpected parameter "client_no_context_takeover"'); - if (t.client_max_window_bits) { - if ( - !1 === this._options.clientMaxWindowBits || - ("number" == typeof this._options.clientMaxWindowBits && - t.client_max_window_bits > this._options.clientMaxWindowBits) - ) - throw new Error( - 'Unexpected or invalid parameter "client_max_window_bits"' - ); - } else - "number" == typeof this._options.clientMaxWindowBits && - (t.client_max_window_bits = this._options.clientMaxWindowBits); - return t; - } - normalizeParams(e) { - return ( - e.forEach((e) => { - Object.keys(e).forEach((t) => { - let s = e[t]; - if (s.length > 1) - throw new Error(`Parameter "${t}" must have only a single value`); - if (((s = s[0]), "client_max_window_bits" === t)) { - if (!0 !== s) { - const e = +s; - if (!Number.isInteger(e) || e < 8 || e > 15) - throw new TypeError(`Invalid value for parameter "${t}": ${s}`); - s = e; - } else if (!this._isServer) - throw new TypeError(`Invalid value for parameter "${t}": ${s}`); - } else if ("server_max_window_bits" === t) { - const e = +s; - if (!Number.isInteger(e) || e < 8 || e > 15) - throw new TypeError(`Invalid value for parameter "${t}": ${s}`); - s = e; - } else { - if ( - "client_no_context_takeover" !== t && - "server_no_context_takeover" !== t - ) - throw new Error(`Unknown parameter "${t}"`); - if (!0 !== s) - throw new TypeError(`Invalid value for parameter "${t}": ${s}`); - } - e[t] = s; - }); - }), - e - ); - } - decompress(e, t, s) { - Te.add((r) => { - this._decompress(e, t, (e, t) => { - r(), s(e, t); - }); - }); - } - compress(e, t, s) { - Te.add((r) => { - this._compress(e, t, (e, t) => { - r(), s(e, t); - }); - }); - } - _decompress(e, t, s) { - const r = this._isServer ? "client" : "server"; - if (!this._inflate) { - const e = `${r}_max_window_bits`, - t = - "number" != typeof this.params[e] - ? me.Z_DEFAULT_WINDOWBITS - : this.params[e]; - (this._inflate = me.createInflateRaw({ - ...this._options.zlibInflateOptions, - windowBits: t, - })), - (this._inflate[we] = this), - (this._inflate[Se] = 0), - (this._inflate[xe] = []), - this._inflate.on("error", Le), - this._inflate.on("data", Ce); - } - (this._inflate[ke] = s), - this._inflate.write(e), - t && this._inflate.write(Ee), - this._inflate.flush(() => { - const e = this._inflate[Oe]; - if (e) return this._inflate.close(), (this._inflate = null), void s(e); - const i = ge.concat(this._inflate[xe], this._inflate[Se]); - this._inflate._readableState.endEmitted - ? (this._inflate.close(), (this._inflate = null)) - : ((this._inflate[Se] = 0), - (this._inflate[xe] = []), - t && - this.params[`${r}_no_context_takeover`] && - this._inflate.reset()), - s(null, i); - }); - } - _compress(e, t, s) { - const r = this._isServer ? "server" : "client"; - if (!this._deflate) { - const e = `${r}_max_window_bits`, - t = - "number" != typeof this.params[e] - ? me.Z_DEFAULT_WINDOWBITS - : this.params[e]; - (this._deflate = me.createDeflateRaw({ - ...this._options.zlibDeflateOptions, - windowBits: t, - })), - (this._deflate[Se] = 0), - (this._deflate[xe] = []), - this._deflate.on("data", Re); - } - (this._deflate[ke] = s), - this._deflate.write(e), - this._deflate.flush(me.Z_SYNC_FLUSH, () => { - if (!this._deflate) return; - let e = ge.concat(this._deflate[xe], this._deflate[Se]); - t && (e = e.slice(0, e.length - 4)), - (this._deflate[ke] = null), - (this._deflate[Se] = 0), - (this._deflate[xe] = []), - t && this.params[`${r}_no_context_takeover`] && this._deflate.reset(), - s(null, e); - }); - } -}; -function Re(e) { - this[xe].push(e), (this[Se] += e.length); -} -function Ce(e) { - (this[Se] += e.length), - this[we]._maxPayload < 1 || this[Se] <= this[we]._maxPayload - ? this[xe].push(e) - : ((this[Oe] = new RangeError("Max payload size exceeded")), - (this[Oe].code = "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"), - (this[Oe][ve] = 1009), - this.removeListener("data", Ce), - this.reset()); -} -function Le(e) { - (this[we]._inflate = null), (e[ve] = 1007), this[ke](e); -} -var Ae = { exports: {} }; -const Be = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, -]; -function Pe(e) { - return ( - (e >= 1e3 && e <= 1014 && 1004 !== e && 1005 !== e && 1006 !== e) || - (e >= 3e3 && e <= 4999) - ); -} -function Ie(e) { - const t = e.length; - let s = 0; - for (; s < t; ) - if (0 == (128 & e[s])) s++; - else if (192 == (224 & e[s])) { - if (s + 1 === t || 128 != (192 & e[s + 1]) || 192 == (254 & e[s])) - return !1; - s += 2; - } else if (224 == (240 & e[s])) { - if ( - s + 2 >= t || - 128 != (192 & e[s + 1]) || - 128 != (192 & e[s + 2]) || - (224 === e[s] && 128 == (224 & e[s + 1])) || - (237 === e[s] && 160 == (224 & e[s + 1])) - ) - return !1; - s += 3; - } else { - if (240 != (248 & e[s])) return !1; - if ( - s + 3 >= t || - 128 != (192 & e[s + 1]) || - 128 != (192 & e[s + 2]) || - 128 != (192 & e[s + 3]) || - (240 === e[s] && 128 == (240 & e[s + 1])) || - (244 === e[s] && e[s + 1] > 143) || - e[s] > 244 - ) - return !1; - s += 4; - } - return !0; -} -try { - const e = require("utf-8-validate"); - Ae.exports = { - isValidStatusCode: Pe, - isValidUTF8: (t) => (t.length < 150 ? Ie(t) : e(t)), - tokenChars: Be, - }; -} catch (e) { - Ae.exports = { isValidStatusCode: Pe, isValidUTF8: Ie, tokenChars: Be }; -} -const { Writable: De } = g.default, - Ue = Ne, - { BINARY_TYPES: qe, EMPTY_BUFFER: je, kStatusCode: Fe, kWebSocket: Me } = ae, - { concat: We, toArrayBuffer: Ve, unmask: $e } = oe.exports, - { isValidStatusCode: Ge, isValidUTF8: He } = Ae.exports; -var ze = class extends De { - constructor(e = {}) { - super(), - (this._binaryType = e.binaryType || qe[0]), - (this._extensions = e.extensions || {}), - (this._isServer = !!e.isServer), - (this._maxPayload = 0 | e.maxPayload), - (this._skipUTF8Validation = !!e.skipUTF8Validation), - (this[Me] = void 0), - (this._bufferedBytes = 0), - (this._buffers = []), - (this._compressed = !1), - (this._payloadLength = 0), - (this._mask = void 0), - (this._fragmented = 0), - (this._masked = !1), - (this._fin = !1), - (this._opcode = 0), - (this._totalPayloadLength = 0), - (this._messageLength = 0), - (this._fragments = []), - (this._state = 0), - (this._loop = !1); - } - _write(e, t, s) { - if (8 === this._opcode && 0 == this._state) return s(); - (this._bufferedBytes += e.length), this._buffers.push(e), this.startLoop(s); - } - consume(e) { - if (((this._bufferedBytes -= e), e === this._buffers[0].length)) - return this._buffers.shift(); - if (e < this._buffers[0].length) { - const t = this._buffers[0]; - return (this._buffers[0] = t.slice(e)), t.slice(0, e); - } - const t = Buffer.allocUnsafe(e); - do { - const s = this._buffers[0], - r = t.length - e; - e >= s.length - ? t.set(this._buffers.shift(), r) - : (t.set(new Uint8Array(s.buffer, s.byteOffset, e), r), - (this._buffers[0] = s.slice(e))), - (e -= s.length); - } while (e > 0); - return t; - } - startLoop(e) { - let t; - this._loop = !0; - do { - switch (this._state) { - case 0: - t = this.getInfo(); - break; - case 1: - t = this.getPayloadLength16(); - break; - case 2: - t = this.getPayloadLength64(); - break; - case 3: - this.getMask(); - break; - case 4: - t = this.getData(e); - break; - default: - return void (this._loop = !1); - } - } while (this._loop); - e(t); - } - getInfo() { - if (this._bufferedBytes < 2) return void (this._loop = !1); - const e = this.consume(2); - if (0 != (48 & e[0])) - return ( - (this._loop = !1), - Ye( - RangeError, - "RSV2 and RSV3 must be clear", - !0, - 1002, - "WS_ERR_UNEXPECTED_RSV_2_3" - ) - ); - const t = 64 == (64 & e[0]); - if (t && !this._extensions[Ue.extensionName]) - return ( - (this._loop = !1), - Ye( - RangeError, - "RSV1 must be clear", - !0, - 1002, - "WS_ERR_UNEXPECTED_RSV_1" - ) - ); - if ( - ((this._fin = 128 == (128 & e[0])), - (this._opcode = 15 & e[0]), - (this._payloadLength = 127 & e[1]), - 0 === this._opcode) - ) { - if (t) - return ( - (this._loop = !1), - Ye( - RangeError, - "RSV1 must be clear", - !0, - 1002, - "WS_ERR_UNEXPECTED_RSV_1" - ) - ); - if (!this._fragmented) - return ( - (this._loop = !1), - Ye(RangeError, "invalid opcode 0", !0, 1002, "WS_ERR_INVALID_OPCODE") - ); - this._opcode = this._fragmented; - } else if (1 === this._opcode || 2 === this._opcode) { - if (this._fragmented) - return ( - (this._loop = !1), - Ye( - RangeError, - `invalid opcode ${this._opcode}`, - !0, - 1002, - "WS_ERR_INVALID_OPCODE" - ) - ); - this._compressed = t; - } else { - if (!(this._opcode > 7 && this._opcode < 11)) - return ( - (this._loop = !1), - Ye( - RangeError, - `invalid opcode ${this._opcode}`, - !0, - 1002, - "WS_ERR_INVALID_OPCODE" - ) - ); - if (!this._fin) - return ( - (this._loop = !1), - Ye(RangeError, "FIN must be set", !0, 1002, "WS_ERR_EXPECTED_FIN") - ); - if (t) - return ( - (this._loop = !1), - Ye( - RangeError, - "RSV1 must be clear", - !0, - 1002, - "WS_ERR_UNEXPECTED_RSV_1" - ) - ); - if (this._payloadLength > 125) - return ( - (this._loop = !1), - Ye( - RangeError, - `invalid payload length ${this._payloadLength}`, - !0, - 1002, - "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH" - ) - ); - } - if ( - (this._fin || this._fragmented || (this._fragmented = this._opcode), - (this._masked = 128 == (128 & e[1])), - this._isServer) - ) { - if (!this._masked) - return ( - (this._loop = !1), - Ye(RangeError, "MASK must be set", !0, 1002, "WS_ERR_EXPECTED_MASK") - ); - } else if (this._masked) - return ( - (this._loop = !1), - Ye(RangeError, "MASK must be clear", !0, 1002, "WS_ERR_UNEXPECTED_MASK") - ); - if (126 === this._payloadLength) this._state = 1; - else { - if (127 !== this._payloadLength) return this.haveLength(); - this._state = 2; - } - } - getPayloadLength16() { - if (!(this._bufferedBytes < 2)) - return ( - (this._payloadLength = this.consume(2).readUInt16BE(0)), - this.haveLength() - ); - this._loop = !1; - } - getPayloadLength64() { - if (this._bufferedBytes < 8) return void (this._loop = !1); - const e = this.consume(8), - t = e.readUInt32BE(0); - return t > Math.pow(2, 21) - 1 - ? ((this._loop = !1), - Ye( - RangeError, - "Unsupported WebSocket frame: payload length > 2^53 - 1", - !1, - 1009, - "WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH" - )) - : ((this._payloadLength = t * Math.pow(2, 32) + e.readUInt32BE(4)), - this.haveLength()); - } - haveLength() { - if ( - this._payloadLength && - this._opcode < 8 && - ((this._totalPayloadLength += this._payloadLength), - this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) - ) - return ( - (this._loop = !1), - Ye( - RangeError, - "Max payload size exceeded", - !1, - 1009, - "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" - ) - ); - this._masked ? (this._state = 3) : (this._state = 4); - } - getMask() { - this._bufferedBytes < 4 - ? (this._loop = !1) - : ((this._mask = this.consume(4)), (this._state = 4)); - } - getData(e) { - let t = je; - if (this._payloadLength) { - if (this._bufferedBytes < this._payloadLength) - return void (this._loop = !1); - (t = this.consume(this._payloadLength)), - this._masked && $e(t, this._mask); - } - return this._opcode > 7 - ? this.controlMessage(t) - : this._compressed - ? ((this._state = 5), void this.decompress(t, e)) - : (t.length && - ((this._messageLength = this._totalPayloadLength), - this._fragments.push(t)), - this.dataMessage()); - } - decompress(e, t) { - this._extensions[Ue.extensionName].decompress(e, this._fin, (e, s) => { - if (e) return t(e); - if (s.length) { - if ( - ((this._messageLength += s.length), - this._messageLength > this._maxPayload && this._maxPayload > 0) - ) - return t( - Ye( - RangeError, - "Max payload size exceeded", - !1, - 1009, - "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" - ) - ); - this._fragments.push(s); - } - const r = this.dataMessage(); - if (r) return t(r); - this.startLoop(t); - }); - } - dataMessage() { - if (this._fin) { - const e = this._messageLength, - t = this._fragments; - if ( - ((this._totalPayloadLength = 0), - (this._messageLength = 0), - (this._fragmented = 0), - (this._fragments = []), - 2 === this._opcode) - ) { - let s; - (s = - "nodebuffer" === this._binaryType - ? We(t, e) - : "arraybuffer" === this._binaryType - ? Ve(We(t, e)) - : t), - this.emit("message", s, !0); - } else { - const s = We(t, e); - if (!this._skipUTF8Validation && !He(s)) - return ( - (this._loop = !1), - Ye(Error, "invalid UTF-8 sequence", !0, 1007, "WS_ERR_INVALID_UTF8") - ); - this.emit("message", s, !1); - } - } - this._state = 0; - } - controlMessage(e) { - if (8 === this._opcode) - if (((this._loop = !1), 0 === e.length)) - this.emit("conclude", 1005, je), this.end(); - else { - if (1 === e.length) - return Ye( - RangeError, - "invalid payload length 1", - !0, - 1002, - "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH" - ); - { - const t = e.readUInt16BE(0); - if (!Ge(t)) - return Ye( - RangeError, - `invalid status code ${t}`, - !0, - 1002, - "WS_ERR_INVALID_CLOSE_CODE" - ); - const s = e.slice(2); - if (!this._skipUTF8Validation && !He(s)) - return Ye( - Error, - "invalid UTF-8 sequence", - !0, - 1007, - "WS_ERR_INVALID_UTF8" - ); - this.emit("conclude", t, s), this.end(); - } - } - else 9 === this._opcode ? this.emit("ping", e) : this.emit("pong", e); - this._state = 0; - } -}; -function Ye(e, t, s, r, i) { - const n = new e(s ? `Invalid WebSocket frame: ${t}` : t); - return Error.captureStackTrace(n, Ye), (n.code = i), (n[Fe] = r), n; -} -const { randomFillSync: Ke } = w.default, - Xe = Ne, - { EMPTY_BUFFER: Je } = ae, - { isValidStatusCode: Qe } = Ae.exports, - { mask: Ze, toBuffer: et } = oe.exports, - tt = Buffer.alloc(4); -class st { - constructor(e, t) { - (this._extensions = t || {}), - (this._socket = e), - (this._firstFragment = !0), - (this._compress = !1), - (this._bufferedBytes = 0), - (this._deflating = !1), - (this._queue = []); - } - static frame(e, t) { - const s = t.mask && t.readOnly; - let r = t.mask ? 6 : 2, - i = e.length; - e.length >= 65536 - ? ((r += 8), (i = 127)) - : e.length > 125 && ((r += 2), (i = 126)); - const n = Buffer.allocUnsafe(s ? e.length + r : r); - return ( - (n[0] = t.fin ? 128 | t.opcode : t.opcode), - t.rsv1 && (n[0] |= 64), - (n[1] = i), - 126 === i - ? n.writeUInt16BE(e.length, 2) - : 127 === i && (n.writeUInt32BE(0, 2), n.writeUInt32BE(e.length, 6)), - t.mask - ? (Ke(tt, 0, 4), - (n[1] |= 128), - (n[r - 4] = tt[0]), - (n[r - 3] = tt[1]), - (n[r - 2] = tt[2]), - (n[r - 1] = tt[3]), - s - ? (Ze(e, tt, n, r, e.length), [n]) - : (Ze(e, tt, e, 0, e.length), [n, e])) - : [n, e] - ); - } - close(e, t, s, r) { - let i; - if (void 0 === e) i = Je; - else { - if ("number" != typeof e || !Qe(e)) - throw new TypeError("First argument must be a valid error code number"); - if (void 0 !== t && t.length) { - const s = Buffer.byteLength(t); - if (s > 123) - throw new RangeError( - "The message must not be greater than 123 bytes" - ); - (i = Buffer.allocUnsafe(2 + s)), - i.writeUInt16BE(e, 0), - "string" == typeof t ? i.write(t, 2) : i.set(t, 2); - } else (i = Buffer.allocUnsafe(2)), i.writeUInt16BE(e, 0); - } - this._deflating - ? this.enqueue([this.doClose, i, s, r]) - : this.doClose(i, s, r); - } - doClose(e, t, s) { - this.sendFrame( - st.frame(e, { fin: !0, rsv1: !1, opcode: 8, mask: t, readOnly: !1 }), - s - ); - } - ping(e, t, s) { - const r = et(e); - if (r.length > 125) - throw new RangeError("The data size must not be greater than 125 bytes"); - this._deflating - ? this.enqueue([this.doPing, r, t, et.readOnly, s]) - : this.doPing(r, t, et.readOnly, s); - } - doPing(e, t, s, r) { - this.sendFrame( - st.frame(e, { fin: !0, rsv1: !1, opcode: 9, mask: t, readOnly: s }), - r - ); - } - pong(e, t, s) { - const r = et(e); - if (r.length > 125) - throw new RangeError("The data size must not be greater than 125 bytes"); - this._deflating - ? this.enqueue([this.doPong, r, t, et.readOnly, s]) - : this.doPong(r, t, et.readOnly, s); - } - doPong(e, t, s, r) { - this.sendFrame( - st.frame(e, { fin: !0, rsv1: !1, opcode: 10, mask: t, readOnly: s }), - r - ); - } - send(e, t, s) { - const r = et(e), - i = this._extensions[Xe.extensionName]; - let n = t.binary ? 2 : 1, - o = t.compress; - if ( - (this._firstFragment - ? ((this._firstFragment = !1), - o && - i && - i.params[ - i._isServer - ? "server_no_context_takeover" - : "client_no_context_takeover" - ] && - (o = r.length >= i._threshold), - (this._compress = o)) - : ((o = !1), (n = 0)), - t.fin && (this._firstFragment = !0), - i) - ) { - const e = { - fin: t.fin, - rsv1: o, - opcode: n, - mask: t.mask, - readOnly: et.readOnly, - }; - this._deflating - ? this.enqueue([this.dispatch, r, this._compress, e, s]) - : this.dispatch(r, this._compress, e, s); - } else - this.sendFrame( - st.frame(r, { - fin: t.fin, - rsv1: !1, - opcode: n, - mask: t.mask, - readOnly: et.readOnly, - }), - s - ); - } - dispatch(e, t, s, r) { - if (!t) return void this.sendFrame(st.frame(e, s), r); - const i = this._extensions[Xe.extensionName]; - (this._bufferedBytes += e.length), - (this._deflating = !0), - i.compress(e, s.fin, (t, i) => { - if (this._socket.destroyed) { - const e = new Error( - "The socket was closed while data was being compressed" - ); - "function" == typeof r && r(e); - for (let t = 0; t < this._queue.length; t++) { - const s = this._queue[t][4]; - "function" == typeof s && s(e); - } - } else - (this._bufferedBytes -= e.length), - (this._deflating = !1), - (s.readOnly = !1), - this.sendFrame(st.frame(i, s), r), - this.dequeue(); - }); - } - dequeue() { - for (; !this._deflating && this._queue.length; ) { - const e = this._queue.shift(); - (this._bufferedBytes -= e[1].length), - Reflect.apply(e[0], this, e.slice(1)); - } - } - enqueue(e) { - (this._bufferedBytes += e[1].length), this._queue.push(e); - } - sendFrame(e, t) { - 2 === e.length - ? (this._socket.cork(), - this._socket.write(e[0]), - this._socket.write(e[1], t), - this._socket.uncork()) - : this._socket.write(e[0], t); - } -} -var rt = st; -const { kForOnEventAttribute: it, kListener: nt } = ae, - ot = Symbol("kCode"), - at = Symbol("kData"), - ht = Symbol("kError"), - ct = Symbol("kMessage"), - lt = Symbol("kReason"), - dt = Symbol("kTarget"), - ut = Symbol("kType"), - pt = Symbol("kWasClean"); -class ft { - constructor(e) { - (this[dt] = null), (this[ut] = e); - } - get target() { - return this[dt]; - } - get type() { - return this[ut]; - } -} -Object.defineProperty(ft.prototype, "target", { enumerable: !0 }), - Object.defineProperty(ft.prototype, "type", { enumerable: !0 }); -class _t extends ft { - constructor(e, t = {}) { - super(e), - (this[ot] = void 0 === t.code ? 0 : t.code), - (this[lt] = void 0 === t.reason ? "" : t.reason), - (this[pt] = void 0 !== t.wasClean && t.wasClean); - } - get code() { - return this[ot]; - } - get reason() { - return this[lt]; - } - get wasClean() { - return this[pt]; - } -} -Object.defineProperty(_t.prototype, "code", { enumerable: !0 }), - Object.defineProperty(_t.prototype, "reason", { enumerable: !0 }), - Object.defineProperty(_t.prototype, "wasClean", { enumerable: !0 }); -class yt extends ft { - constructor(e, t = {}) { - super(e), - (this[ht] = void 0 === t.error ? null : t.error), - (this[ct] = void 0 === t.message ? "" : t.message); - } - get error() { - return this[ht]; - } - get message() { - return this[ct]; - } -} -Object.defineProperty(yt.prototype, "error", { enumerable: !0 }), - Object.defineProperty(yt.prototype, "message", { enumerable: !0 }); -class mt extends ft { - constructor(e, t = {}) { - super(e), (this[at] = void 0 === t.data ? null : t.data); - } - get data() { - return this[at]; - } -} -Object.defineProperty(mt.prototype, "data", { enumerable: !0 }); -const gt = { - addEventListener(e, t, s = {}) { - let r; - if ("message" === e) - r = function (e, s) { - const r = new mt("message", { data: s ? e : e.toString() }); - (r[dt] = this), t.call(this, r); - }; - else if ("close" === e) - r = function (e, s) { - const r = new _t("close", { - code: e, - reason: s.toString(), - wasClean: this._closeFrameReceived && this._closeFrameSent, - }); - (r[dt] = this), t.call(this, r); - }; - else if ("error" === e) - r = function (e) { - const s = new yt("error", { error: e, message: e.message }); - (s[dt] = this), t.call(this, s); - }; - else { - if ("open" !== e) return; - r = function () { - const e = new ft("open"); - (e[dt] = this), t.call(this, e); - }; - } - (r[it] = !!s[it]), (r[nt] = t), s.once ? this.once(e, r) : this.on(e, r); - }, - removeEventListener(e, t) { - for (const s of this.listeners(e)) - if (s[nt] === t && !s[it]) { - this.removeListener(e, s); - break; - } - }, -}; -var bt = { - CloseEvent: _t, - ErrorEvent: yt, - Event: ft, - EventTarget: gt, - MessageEvent: mt, -}; -const { tokenChars: vt } = Ae.exports; -function Et(e, t, s) { - void 0 === e[t] ? (e[t] = [s]) : e[t].push(s); -} -var wt = { - format: function (e) { - return Object.keys(e) - .map((t) => { - let s = e[t]; - return ( - Array.isArray(s) || (s = [s]), - s - .map((e) => - [t] - .concat( - Object.keys(e).map((t) => { - let s = e[t]; - return ( - Array.isArray(s) || (s = [s]), - s.map((e) => (!0 === e ? t : `${t}=${e}`)).join("; ") - ); - }) - ) - .join("; ") - ) - .join(", ") - ); - }) - .join(", "); - }, - parse: function (e) { - const t = Object.create(null); - let s, - r, - i = Object.create(null), - n = !1, - o = !1, - a = !1, - h = -1, - c = -1, - l = -1, - d = 0; - for (; d < e.length; d++) - if (((c = e.charCodeAt(d)), void 0 === s)) - if (-1 === l && 1 === vt[c]) -1 === h && (h = d); - else if (0 === d || (32 !== c && 9 !== c)) { - if (59 !== c && 44 !== c) - throw new SyntaxError(`Unexpected character at index ${d}`); - { - if (-1 === h) - throw new SyntaxError(`Unexpected character at index ${d}`); - -1 === l && (l = d); - const r = e.slice(h, l); - 44 === c ? (Et(t, r, i), (i = Object.create(null))) : (s = r), - (h = l = -1); - } - } else -1 === l && -1 !== h && (l = d); - else if (void 0 === r) - if (-1 === l && 1 === vt[c]) -1 === h && (h = d); - else if (32 === c || 9 === c) -1 === l && -1 !== h && (l = d); - else if (59 === c || 44 === c) { - if (-1 === h) - throw new SyntaxError(`Unexpected character at index ${d}`); - -1 === l && (l = d), - Et(i, e.slice(h, l), !0), - 44 === c && (Et(t, s, i), (i = Object.create(null)), (s = void 0)), - (h = l = -1); - } else { - if (61 !== c || -1 === h || -1 !== l) - throw new SyntaxError(`Unexpected character at index ${d}`); - (r = e.slice(h, d)), (h = l = -1); - } - else if (o) { - if (1 !== vt[c]) - throw new SyntaxError(`Unexpected character at index ${d}`); - -1 === h ? (h = d) : n || (n = !0), (o = !1); - } else if (a) - if (1 === vt[c]) -1 === h && (h = d); - else if (34 === c && -1 !== h) (a = !1), (l = d); - else { - if (92 !== c) - throw new SyntaxError(`Unexpected character at index ${d}`); - o = !0; - } - else if (34 === c && 61 === e.charCodeAt(d - 1)) a = !0; - else if (-1 === l && 1 === vt[c]) -1 === h && (h = d); - else if (-1 === h || (32 !== c && 9 !== c)) { - if (59 !== c && 44 !== c) - throw new SyntaxError(`Unexpected character at index ${d}`); - { - if (-1 === h) - throw new SyntaxError(`Unexpected character at index ${d}`); - -1 === l && (l = d); - let o = e.slice(h, l); - n && ((o = o.replace(/\\/g, "")), (n = !1)), - Et(i, r, o), - 44 === c && (Et(t, s, i), (i = Object.create(null)), (s = void 0)), - (r = void 0), - (h = l = -1); - } - } else -1 === l && (l = d); - if (-1 === h || a || 32 === c || 9 === c) - throw new SyntaxError("Unexpected end of input"); - -1 === l && (l = d); - const u = e.slice(h, l); - return ( - void 0 === s - ? Et(t, u, i) - : (void 0 === r ? Et(i, u, !0) : Et(i, r, n ? u.replace(/\\/g, "") : u), - Et(t, s, i)), - t - ); - }, -}; -const St = S.default, - kt = m.default, - xt = y.default, - Ot = v.default, - Tt = E.default, - { randomBytes: Nt, createHash: Rt } = w.default, - { URL: Ct } = f.default, - Lt = Ne, - At = ze, - Bt = rt, - { - BINARY_TYPES: Pt, - EMPTY_BUFFER: It, - GUID: Dt, - kForOnEventAttribute: Ut, - kListener: qt, - kStatusCode: jt, - kWebSocket: Ft, - NOOP: Mt, - } = ae, - { - EventTarget: { addEventListener: Wt, removeEventListener: Vt }, - } = bt, - { format: $t, parse: Gt } = wt, - { toBuffer: Ht } = oe.exports, - zt = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"], - Yt = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/, - Kt = [8, 13]; -class Xt extends St { - constructor(e, t, s) { - super(), - (this._binaryType = Pt[0]), - (this._closeCode = 1006), - (this._closeFrameReceived = !1), - (this._closeFrameSent = !1), - (this._closeMessage = It), - (this._closeTimer = null), - (this._extensions = {}), - (this._protocol = ""), - (this._readyState = Xt.CONNECTING), - (this._receiver = null), - (this._sender = null), - (this._socket = null), - null !== e - ? ((this._bufferedAmount = 0), - (this._isServer = !1), - (this._redirects = 0), - void 0 === t - ? (t = []) - : Array.isArray(t) || - ("object" == typeof t && null !== t - ? ((s = t), (t = [])) - : (t = [t])), - Jt(this, e, t, s)) - : (this._isServer = !0); - } - get binaryType() { - return this._binaryType; - } - set binaryType(e) { - Pt.includes(e) && - ((this._binaryType = e), - this._receiver && (this._receiver._binaryType = e)); - } - get bufferedAmount() { - return this._socket - ? this._socket._writableState.length + this._sender._bufferedBytes - : this._bufferedAmount; - } - get extensions() { - return Object.keys(this._extensions).join(); - } - get onclose() { - return null; - } - get onerror() { - return null; - } - get onopen() { - return null; - } - get onmessage() { - return null; - } - get protocol() { - return this._protocol; - } - get readyState() { - return this._readyState; - } - get url() { - return this._url; - } - setSocket(e, t, s) { - const r = new At({ - binaryType: this.binaryType, - extensions: this._extensions, - isServer: this._isServer, - maxPayload: s.maxPayload, - skipUTF8Validation: s.skipUTF8Validation, - }); - (this._sender = new Bt(e, this._extensions)), - (this._receiver = r), - (this._socket = e), - (r[Ft] = this), - (e[Ft] = this), - r.on("conclude", ss), - r.on("drain", rs), - r.on("error", is), - r.on("message", os), - r.on("ping", as), - r.on("pong", hs), - e.setTimeout(0), - e.setNoDelay(), - t.length > 0 && e.unshift(t), - e.on("close", ls), - e.on("data", ds), - e.on("end", us), - e.on("error", ps), - (this._readyState = Xt.OPEN), - this.emit("open"); - } - emitClose() { - if (!this._socket) - return ( - (this._readyState = Xt.CLOSED), - void this.emit("close", this._closeCode, this._closeMessage) - ); - this._extensions[Lt.extensionName] && - this._extensions[Lt.extensionName].cleanup(), - this._receiver.removeAllListeners(), - (this._readyState = Xt.CLOSED), - this.emit("close", this._closeCode, this._closeMessage); - } - close(e, t) { - if (this.readyState !== Xt.CLOSED) { - if (this.readyState === Xt.CONNECTING) { - const e = "WebSocket was closed before the connection was established"; - return es(this, this._req, e); - } - this.readyState !== Xt.CLOSING - ? ((this._readyState = Xt.CLOSING), - this._sender.close(e, t, !this._isServer, (e) => { - e || - ((this._closeFrameSent = !0), - (this._closeFrameReceived || - this._receiver._writableState.errorEmitted) && - this._socket.end()); - }), - (this._closeTimer = setTimeout( - this._socket.destroy.bind(this._socket), - 3e4 - ))) - : this._closeFrameSent && - (this._closeFrameReceived || - this._receiver._writableState.errorEmitted) && - this._socket.end(); - } - } - ping(e, t, s) { - if (this.readyState === Xt.CONNECTING) - throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); - "function" == typeof e - ? ((s = e), (e = t = void 0)) - : "function" == typeof t && ((s = t), (t = void 0)), - "number" == typeof e && (e = e.toString()), - this.readyState === Xt.OPEN - ? (void 0 === t && (t = !this._isServer), - this._sender.ping(e || It, t, s)) - : ts(this, e, s); - } - pong(e, t, s) { - if (this.readyState === Xt.CONNECTING) - throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); - "function" == typeof e - ? ((s = e), (e = t = void 0)) - : "function" == typeof t && ((s = t), (t = void 0)), - "number" == typeof e && (e = e.toString()), - this.readyState === Xt.OPEN - ? (void 0 === t && (t = !this._isServer), - this._sender.pong(e || It, t, s)) - : ts(this, e, s); - } - send(e, t, s) { - if (this.readyState === Xt.CONNECTING) - throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); - if ( - ("function" == typeof t && ((s = t), (t = {})), - "number" == typeof e && (e = e.toString()), - this.readyState !== Xt.OPEN) - ) - return void ts(this, e, s); - const r = { - binary: "string" != typeof e, - mask: !this._isServer, - compress: !0, - fin: !0, - ...t, - }; - this._extensions[Lt.extensionName] || (r.compress = !1), - this._sender.send(e || It, r, s); - } - terminate() { - if (this.readyState !== Xt.CLOSED) { - if (this.readyState === Xt.CONNECTING) { - const e = "WebSocket was closed before the connection was established"; - return es(this, this._req, e); - } - this._socket && ((this._readyState = Xt.CLOSING), this._socket.destroy()); - } - } -} -function Jt(e, t, s, r) { - const i = { - protocolVersion: Kt[1], - maxPayload: 104857600, - skipUTF8Validation: !1, - perMessageDeflate: !0, - followRedirects: !1, - maxRedirects: 10, - ...r, - createConnection: void 0, - socketPath: void 0, - hostname: void 0, - protocol: void 0, - timeout: void 0, - method: void 0, - host: void 0, - path: void 0, - port: void 0, - }; - if (!Kt.includes(i.protocolVersion)) - throw new RangeError( - `Unsupported protocol version: ${ - i.protocolVersion - } (supported versions: ${Kt.join(", ")})` - ); - let n; - if (t instanceof Ct) (n = t), (e._url = t.href); - else { - try { - n = new Ct(t); - } catch (e) { - throw new SyntaxError(`Invalid URL: ${t}`); - } - e._url = t; - } - const o = "wss:" === n.protocol, - a = "ws+unix:" === n.protocol; - if ("ws:" !== n.protocol && !o && !a) - throw new SyntaxError( - 'The URL\'s protocol must be one of "ws:", "wss:", or "ws+unix:"' - ); - if (a && !n.pathname) throw new SyntaxError("The URL's pathname is empty"); - if (n.hash) throw new SyntaxError("The URL contains a fragment identifier"); - const h = o ? 443 : 80, - c = Nt(16).toString("base64"), - l = o ? kt.get : xt.get, - d = new Set(); - let u; - if ( - ((i.createConnection = o ? Zt : Qt), - (i.defaultPort = i.defaultPort || h), - (i.port = n.port || h), - (i.host = n.hostname.startsWith("[") - ? n.hostname.slice(1, -1) - : n.hostname), - (i.headers = { - "Sec-WebSocket-Version": i.protocolVersion, - "Sec-WebSocket-Key": c, - Connection: "Upgrade", - Upgrade: "websocket", - ...i.headers, - }), - (i.path = n.pathname + n.search), - (i.timeout = i.handshakeTimeout), - i.perMessageDeflate && - ((u = new Lt( - !0 !== i.perMessageDeflate ? i.perMessageDeflate : {}, - !1, - i.maxPayload - )), - (i.headers["Sec-WebSocket-Extensions"] = $t({ - [Lt.extensionName]: u.offer(), - }))), - s.length) - ) { - for (const e of s) { - if ("string" != typeof e || !Yt.test(e) || d.has(e)) - throw new SyntaxError( - "An invalid or duplicated subprotocol was specified" - ); - d.add(e); - } - i.headers["Sec-WebSocket-Protocol"] = s.join(","); - } - if ( - (i.origin && - (i.protocolVersion < 13 - ? (i.headers["Sec-WebSocket-Origin"] = i.origin) - : (i.headers.Origin = i.origin)), - (n.username || n.password) && (i.auth = `${n.username}:${n.password}`), - a) - ) { - const e = i.path.split(":"); - (i.socketPath = e[0]), (i.path = e[1]); - } - let p = (e._req = l(i)); - i.timeout && - p.on("timeout", () => { - es(e, p, "Opening handshake has timed out"); - }), - p.on("error", (t) => { - null === p || - p.aborted || - ((p = e._req = null), - (e._readyState = Xt.CLOSING), - e.emit("error", t), - e.emitClose()); - }), - p.on("response", (n) => { - const o = n.headers.location, - a = n.statusCode; - if (o && i.followRedirects && a >= 300 && a < 400) { - if (++e._redirects > i.maxRedirects) - return void es(e, p, "Maximum redirects exceeded"); - p.abort(); - const n = new Ct(o, t); - Jt(e, n, s, r); - } else - e.emit("unexpected-response", p, n) || - es(e, p, `Unexpected server response: ${n.statusCode}`); - }), - p.on("upgrade", (t, s, r) => { - if ((e.emit("upgrade", t), e.readyState !== Xt.CONNECTING)) return; - p = e._req = null; - const n = Rt("sha1") - .update(c + Dt) - .digest("base64"); - if (t.headers["sec-websocket-accept"] !== n) - return void es(e, s, "Invalid Sec-WebSocket-Accept header"); - const o = t.headers["sec-websocket-protocol"]; - let a; - if ( - (void 0 !== o - ? d.size - ? d.has(o) || (a = "Server sent an invalid subprotocol") - : (a = "Server sent a subprotocol but none was requested") - : d.size && (a = "Server sent no subprotocol"), - a) - ) - return void es(e, s, a); - o && (e._protocol = o); - const h = t.headers["sec-websocket-extensions"]; - if (void 0 !== h) { - if (!u) { - return void es( - e, - s, - "Server sent a Sec-WebSocket-Extensions header but no extension was requested" - ); - } - let t; - try { - t = Gt(h); - } catch (t) { - return void es(e, s, "Invalid Sec-WebSocket-Extensions header"); - } - const r = Object.keys(t); - if (1 !== r.length || r[0] !== Lt.extensionName) { - return void es( - e, - s, - "Server indicated an extension that was not requested" - ); - } - try { - u.accept(t[Lt.extensionName]); - } catch (t) { - return void es(e, s, "Invalid Sec-WebSocket-Extensions header"); - } - e._extensions[Lt.extensionName] = u; - } - e.setSocket(s, r, { - maxPayload: i.maxPayload, - skipUTF8Validation: i.skipUTF8Validation, - }); - }); -} -function Qt(e) { - return (e.path = e.socketPath), Ot.connect(e); -} -function Zt(e) { - return ( - (e.path = void 0), - e.servername || - "" === e.servername || - (e.servername = Ot.isIP(e.host) ? "" : e.host), - Tt.connect(e) - ); -} -function es(e, t, s) { - e._readyState = Xt.CLOSING; - const r = new Error(s); - Error.captureStackTrace(r, es), - t.setHeader - ? (t.abort(), - t.socket && !t.socket.destroyed && t.socket.destroy(), - t.once("abort", e.emitClose.bind(e)), - e.emit("error", r)) - : (t.destroy(r), - t.once("error", e.emit.bind(e, "error")), - t.once("close", e.emitClose.bind(e))); -} -function ts(e, t, s) { - if (t) { - const s = Ht(t).length; - e._socket ? (e._sender._bufferedBytes += s) : (e._bufferedAmount += s); - } - if (s) { - s( - new Error( - `WebSocket is not open: readyState ${e.readyState} (${ - zt[e.readyState] - })` - ) - ); - } -} -function ss(e, t) { - const s = this[Ft]; - (s._closeFrameReceived = !0), - (s._closeMessage = t), - (s._closeCode = e), - void 0 !== s._socket[Ft] && - (s._socket.removeListener("data", ds), - process.nextTick(cs, s._socket), - 1005 === e ? s.close() : s.close(e, t)); -} -function rs() { - this[Ft]._socket.resume(); -} -function is(e) { - const t = this[Ft]; - void 0 !== t._socket[Ft] && - (t._socket.removeListener("data", ds), - process.nextTick(cs, t._socket), - t.close(e[jt])), - t.emit("error", e); -} -function ns() { - this[Ft].emitClose(); -} -function os(e, t) { - this[Ft].emit("message", e, t); -} -function as(e) { - const t = this[Ft]; - t.pong(e, !t._isServer, Mt), t.emit("ping", e); -} -function hs(e) { - this[Ft].emit("pong", e); -} -function cs(e) { - e.resume(); -} -function ls() { - const e = this[Ft]; - let t; - this.removeListener("close", ls), - this.removeListener("data", ds), - this.removeListener("end", us), - (e._readyState = Xt.CLOSING), - this._readableState.endEmitted || - e._closeFrameReceived || - e._receiver._writableState.errorEmitted || - null === (t = e._socket.read()) || - e._receiver.write(t), - e._receiver.end(), - (this[Ft] = void 0), - clearTimeout(e._closeTimer), - e._receiver._writableState.finished || - e._receiver._writableState.errorEmitted - ? e.emitClose() - : (e._receiver.on("error", ns), e._receiver.on("finish", ns)); -} -function ds(e) { - this[Ft]._receiver.write(e) || this.pause(); -} -function us() { - const e = this[Ft]; - (e._readyState = Xt.CLOSING), e._receiver.end(), this.end(); -} -function ps() { - const e = this[Ft]; - this.removeListener("error", ps), - this.on("error", Mt), - e && ((e._readyState = Xt.CLOSING), this.destroy()); -} -Object.defineProperty(Xt, "CONNECTING", { - enumerable: !0, - value: zt.indexOf("CONNECTING"), -}), - Object.defineProperty(Xt.prototype, "CONNECTING", { - enumerable: !0, - value: zt.indexOf("CONNECTING"), - }), - Object.defineProperty(Xt, "OPEN", { - enumerable: !0, - value: zt.indexOf("OPEN"), - }), - Object.defineProperty(Xt.prototype, "OPEN", { - enumerable: !0, - value: zt.indexOf("OPEN"), - }), - Object.defineProperty(Xt, "CLOSING", { - enumerable: !0, - value: zt.indexOf("CLOSING"), - }), - Object.defineProperty(Xt.prototype, "CLOSING", { - enumerable: !0, - value: zt.indexOf("CLOSING"), - }), - Object.defineProperty(Xt, "CLOSED", { - enumerable: !0, - value: zt.indexOf("CLOSED"), - }), - Object.defineProperty(Xt.prototype, "CLOSED", { - enumerable: !0, - value: zt.indexOf("CLOSED"), - }), - [ - "binaryType", - "bufferedAmount", - "extensions", - "protocol", - "readyState", - "url", - ].forEach((e) => { - Object.defineProperty(Xt.prototype, e, { enumerable: !0 }); - }), - ["open", "error", "close", "message"].forEach((e) => { - Object.defineProperty(Xt.prototype, `on${e}`, { - enumerable: !0, - get() { - for (const t of this.listeners(e)) if (t[Ut]) return t[qt]; - return null; - }, - set(t) { - for (const t of this.listeners(e)) - if (t[Ut]) { - this.removeListener(e, t); - break; - } - "function" == typeof t && this.addEventListener(e, t, { [Ut]: !0 }); - }, - }); - }), - (Xt.prototype.addEventListener = Wt), - (Xt.prototype.removeEventListener = Vt); -const fs = Xt, - _s = process.nextTick, - ys = - "undefined" != typeof navigator && - "string" == typeof navigator.product && - "reactnative" === navigator.product.toLowerCase(); -const ms = { - websocket: class extends M { - constructor(e) { - super(e), (this.supportsBinary = !e.forceBase64); - } - get name() { - return "websocket"; - } - doOpen() { - if (!this.check()) return; - const e = this.uri(), - t = this.opts.protocols, - s = ys - ? {} - : D( - 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 = new fs(e, t, s); - } catch (e) { - return this.emitReserved("error", e); - } - (this.ws.binaryType = this.socket.binaryType || "nodebuffer"), - 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], - r = t === e.length - 1; - T(s, this.supportsBinary, (e) => { - const t = {}; - if ( - (s.options && (t.compress = s.options.compress), - this.opts.perMessageDeflate) - ) { - ("string" == typeof e ? Buffer.byteLength(e) : e.length) < - this.opts.perMessageDeflate.threshold && (t.compress = !1); - } - try { - this.ws.send(e, t); - } catch (e) {} - r && - _s(() => { - (this.writable = !0), this.emitReserved("drain"); - }, this.setTimeoutFn); - }); - } - } - doClose() { - void 0 !== this.ws && (this.ws.close(), (this.ws = null)); - } - uri() { - let e = this.query || {}; - const t = this.opts.secure ? "wss" : "ws"; - let s = ""; - this.opts.port && - (("wss" === t && 443 !== Number(this.opts.port)) || - ("ws" === t && 80 !== Number(this.opts.port))) && - (s = ":" + this.opts.port), - this.opts.timestampRequests && (e[this.opts.timestampParam] = Y()), - this.supportsBinary || (e.b64 = 1); - const r = K(e); - return ( - t + - "://" + - (-1 !== this.opts.hostname.indexOf(":") - ? "[" + this.opts.hostname + "]" - : this.opts.hostname) + - s + - this.opts.path + - (r.length ? "?" + r : "") - ); - } - check() { - return !!fs; - } - }, - polling: class extends M { - constructor(e) { - if ((super(e), (this.polling = !1), "undefined" != typeof location)) { - const t = "https:" === location.protocol; - let s = location.port; - s || (s = t ? "443" : "80"), - (this.xd = - ("undefined" != typeof location && - e.hostname !== location.hostname) || - s !== e.port), - (this.xs = e.secure !== t); - } - const t = e && e.forceBase64; - this.supportsBinary = re && !t; - } - get name() { - return "polling"; - } - doOpen() { - this.poll(); - } - pause(e) { - this.readyState = "pausing"; - const t = () => { - (this.readyState = "paused"), e(); - }; - if (this.polling || !this.writable) { - let e = 0; - this.polling && - (e++, - this.once("pollComplete", function () { - --e || t(); - })), - this.writable || - (e++, - this.once("drain", function () { - --e || t(); - })); - } else t(); - } - poll() { - (this.polling = !0), this.doPoll(), this.emitReserved("poll"); - } - onData(e) { - ((e, t) => { - const s = e.split(B), - r = []; - for (let e = 0; e < s.length; e++) { - const i = C(s[e], t); - if ((r.push(i), "error" === i.type)) break; - } - return r; - })(e, this.socket.binaryType).forEach((e) => { - if ( - ("opening" === this.readyState && - "open" === e.type && - this.onOpen(), - "close" === e.type) - ) - return ( - this.onClose({ description: "transport closed by the server" }), - !1 - ); - this.onPacket(e); - }), - "closed" !== this.readyState && - ((this.polling = !1), - this.emitReserved("pollComplete"), - "open" === this.readyState && this.poll()); - } - doClose() { - const e = () => { - this.write([{ type: "close" }]); - }; - "open" === this.readyState ? e() : this.once("open", e); - } - write(e) { - (this.writable = !1), - ((e, t) => { - const s = e.length, - r = new Array(s); - let i = 0; - e.forEach((e, n) => { - T(e, !1, (e) => { - (r[n] = e), ++i === s && t(r.join(B)); - }); - }); - })(e, (e) => { - this.doWrite(e, () => { - (this.writable = !0), this.emitReserved("drain"); - }); - }); - } - uri() { - let e = this.query || {}; - const t = this.opts.secure ? "https" : "http"; - let s = ""; - !1 !== this.opts.timestampRequests && - (e[this.opts.timestampParam] = Y()), - this.supportsBinary || e.sid || (e.b64 = 1), - this.opts.port && - (("https" === t && 443 !== Number(this.opts.port)) || - ("http" === t && 80 !== Number(this.opts.port))) && - (s = ":" + this.opts.port); - const r = K(e); - return ( - t + - "://" + - (-1 !== this.opts.hostname.indexOf(":") - ? "[" + this.opts.hostname + "]" - : this.opts.hostname) + - s + - this.opts.path + - (r.length ? "?" + r : "") - ); - } - request(e = {}) { - return ( - Object.assign(e, { xd: this.xd, xs: this.xs }, this.opts), - new ie(this.uri(), e) - ); - } - doWrite(e, t) { - const s = this.request({ method: "POST", data: e }); - s.on("success", t), - s.on("error", (e, t) => { - this.onError("xhr post error", e, t); - }); - } - doPoll() { - const e = this.request(); - e.on("data", this.onData.bind(this)), - e.on("error", (e, t) => { - this.onError("xhr poll error", e, t); - }), - (this.pollXhr = e); - } - }, - }, - gs = - /^(?:(?![^:@]+:[^:@\/]*@)(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 vs(e) { - const t = e, - s = e.indexOf("["), - r = e.indexOf("]"); - -1 != s && - -1 != r && - (e = - e.substring(0, s) + - e.substring(s, r).replace(/:/g, ";") + - e.substring(r, e.length)); - let i = gs.exec(e || ""), - n = {}, - o = 14; - for (; o--; ) n[bs[o]] = i[o] || ""; - return ( - -1 != s && - -1 != r && - ((n.source = t), - (n.host = n.host.substring(1, n.host.length - 1).replace(/;/g, ":")), - (n.authority = n.authority - .replace("[", "") - .replace("]", "") - .replace(/;/g, ":")), - (n.ipv6uri = !0)), - (n.pathNames = (function (e, t) { - const s = /\/{2,9}/g, - r = t.replace(s, "/").split("/"); - ("/" != t.substr(0, 1) && 0 !== t.length) || r.splice(0, 1); - "/" == t.substr(t.length - 1, 1) && r.splice(r.length - 1, 1); - return r; - })(0, n.path)), - (n.queryKey = (function (e, t) { - const s = {}; - return ( - t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function (e, t, r) { - t && (s[t] = r); - }), - s - ); - })(0, n.query)), - n - ); -} -class Es extends P { - constructor(e, t = {}) { - super(), - e && "object" == typeof e && ((t = e), (e = null)), - e - ? ((e = vs(e)), - (t.hostname = e.host), - (t.secure = "https" === e.protocol || "wss" === e.protocol), - (t.port = e.port), - e.query && (t.query = e.query)) - : t.host && (t.hostname = vs(t.host).host), - j(this, t), - (this.secure = - null != t.secure - ? t.secure - : "undefined" != typeof location && "https:" === location.protocol), - t.hostname && !t.port && (t.port = this.secure ? "443" : "80"), - (this.hostname = - t.hostname || - ("undefined" != typeof location ? location.hostname : "localhost")), - (this.port = - t.port || - ("undefined" != typeof location && location.port - ? location.port - : this.secure - ? "443" - : "80")), - (this.transports = t.transports || ["polling", "websocket"]), - (this.readyState = ""), - (this.writeBuffer = []), - (this.prevBufferLen = 0), - (this.opts = Object.assign( - { - path: "/engine.io", - agent: !1, - withCredentials: !1, - upgrade: !0, - timestampParam: "t", - rememberUpgrade: !1, - rejectUnauthorized: !0, - perMessageDeflate: { threshold: 1024 }, - transportOptions: {}, - closeOnBeforeunload: !0, - }, - t - )), - (this.opts.path = this.opts.path.replace(/\/$/, "") + "/"), - "string" == typeof this.opts.query && - (this.opts.query = (function (e) { - let t = {}, - s = e.split("&"); - for (let e = 0, r = s.length; e < r; e++) { - let r = s[e].split("="); - t[decodeURIComponent(r[0])] = decodeURIComponent(r[1]); - } - return t; - })(this.opts.query)), - (this.id = null), - (this.upgrades = null), - (this.pingInterval = null), - (this.pingTimeout = null), - (this.pingTimeoutTimer = null), - "function" == typeof addEventListener && - (this.opts.closeOnBeforeunload && - addEventListener( - "beforeunload", - () => { - this.transport && - (this.transport.removeAllListeners(), this.transport.close()); - }, - !1 - ), - "localhost" !== this.hostname && - ((this.offlineEventListener = () => { - this.onClose("transport close", { - description: "network connection lost", - }); - }), - addEventListener("offline", this.offlineEventListener, !1))), - this.open(); - } - createTransport(e) { - const t = Object.assign({}, this.opts.query); - (t.EIO = 4), (t.transport = e), this.id && (t.sid = this.id); - const s = Object.assign({}, this.opts.transportOptions[e], this.opts, { - query: t, - socket: this, - hostname: this.hostname, - secure: this.secure, - port: this.port, - }); - return new ms[e](s); - } - open() { - let e; - if ( - this.opts.rememberUpgrade && - Es.priorWebsocketSuccess && - -1 !== this.transports.indexOf("websocket") - ) - e = "websocket"; - else { - if (0 === this.transports.length) - return void this.setTimeoutFn(() => { - this.emitReserved("error", "No transports available"); - }, 0); - e = this.transports[0]; - } - this.readyState = "opening"; - try { - e = this.createTransport(e); - } catch (e) { - return this.transports.shift(), void this.open(); - } - e.open(), this.setTransport(e); - } - 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", (e) => this.onClose("transport close", e)); - } - probe(e) { - let t = this.createTransport(e), - s = !1; - Es.priorWebsocketSuccess = !1; - const r = () => { - s || - (t.send([{ type: "ping", data: "probe" }]), - t.once("packet", (e) => { - if (!s) - if ("pong" === e.type && "probe" === e.data) { - if ( - ((this.upgrading = !0), this.emitReserved("upgrading", t), !t) - ) - return; - (Es.priorWebsocketSuccess = "websocket" === t.name), - this.transport.pause(() => { - s || - ("closed" !== this.readyState && - (c(), - this.setTransport(t), - t.send([{ type: "upgrade" }]), - this.emitReserved("upgrade", t), - (t = null), - (this.upgrading = !1), - this.flush())); - }); - } else { - const e = new Error("probe error"); - (e.transport = t.name), this.emitReserved("upgradeError", e); - } - })); - }; - function i() { - s || ((s = !0), c(), t.close(), (t = null)); - } - const n = (e) => { - const s = new Error("probe error: " + e); - (s.transport = t.name), i(), this.emitReserved("upgradeError", s); - }; - function o() { - n("transport closed"); - } - function a() { - n("socket closed"); - } - function h(e) { - t && e.name !== t.name && i(); - } - const c = () => { - t.removeListener("open", r), - t.removeListener("error", n), - t.removeListener("close", o), - this.off("close", a), - this.off("upgrading", h); - }; - t.once("open", r), - t.once("error", n), - t.once("close", o), - this.once("close", a), - this.once("upgrading", h), - t.open(); - } - onOpen() { - if ( - ((this.readyState = "open"), - (Es.priorWebsocketSuccess = "websocket" === this.transport.name), - this.emitReserved("open"), - this.flush(), - "open" === this.readyState && this.opts.upgrade && this.transport.pause) - ) { - let e = 0; - const t = this.upgrades.length; - for (; e < t; e++) this.probe(this.upgrades[e]); - } - } - onPacket(e) { - if ( - "opening" === this.readyState || - "open" === this.readyState || - "closing" === this.readyState - ) - switch ( - (this.emitReserved("packet", e), this.emitReserved("heartbeat"), e.type) - ) { - case "open": - this.onHandshake(JSON.parse(e.data)); - break; - case "ping": - this.resetPingTimeout(), - this.sendPacket("pong"), - this.emitReserved("ping"), - this.emitReserved("pong"); - 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); - } - } - onHandshake(e) { - this.emitReserved("handshake", e), - (this.id = e.sid), - (this.transport.query.sid = e.sid), - (this.upgrades = this.filterUpgrades(e.upgrades)), - (this.pingInterval = e.pingInterval), - (this.pingTimeout = e.pingTimeout), - (this.maxPayload = e.maxPayload), - this.onOpen(), - "closed" !== this.readyState && this.resetPingTimeout(); - } - resetPingTimeout() { - this.clearTimeoutFn(this.pingTimeoutTimer), - (this.pingTimeoutTimer = this.setTimeoutFn(() => { - this.onClose("ping timeout"); - }, this.pingInterval + this.pingTimeout)), - this.opts.autoUnref && this.pingTimeoutTimer.unref(); - } - onDrain() { - this.writeBuffer.splice(0, this.prevBufferLen), - (this.prevBufferLen = 0), - 0 === this.writeBuffer.length ? this.emitReserved("drain") : this.flush(); - } - flush() { - if ( - "closed" !== this.readyState && - 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 && - "polling" === this.transport.name && - this.writeBuffer.length > 1 - ) - ) - return this.writeBuffer; - let e = 1; - for (let s = 0; s < this.writeBuffer.length; s++) { - const r = this.writeBuffer[s].data; - if ( - (r && - (e += - "string" == typeof (t = r) - ? (function (e) { - let t = 0, - s = 0; - for (let r = 0, i = e.length; r < i; r++) - (t = e.charCodeAt(r)), - t < 128 - ? (s += 1) - : t < 2048 - ? (s += 2) - : t < 55296 || t >= 57344 - ? (s += 3) - : (r++, (s += 4)); - return s; - })(t) - : Math.ceil(1.33 * (t.byteLength || t.size))), - s > 0 && e > this.maxPayload) - ) - return this.writeBuffer.slice(0, s); - e += 2; - } - var t; - return this.writeBuffer; - } - 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, r) { - if ( - ("function" == typeof t && ((r = t), (t = void 0)), - "function" == typeof s && ((r = s), (s = null)), - "closing" === this.readyState || "closed" === this.readyState) - ) - return; - (s = s || {}).compress = !1 !== s.compress; - const i = { type: e, data: t, options: s }; - this.emitReserved("packetCreate", i), - this.writeBuffer.push(i), - r && this.once("flush", r), - 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 ( - ("opening" !== this.readyState && "open" !== this.readyState) || - ((this.readyState = "closing"), - this.writeBuffer.length - ? this.once("drain", () => { - this.upgrading ? s() : e(); - }) - : this.upgrading - ? s() - : e()), - this - ); - } - onError(e) { - (Es.priorWebsocketSuccess = !1), - this.emitReserved("error", e), - this.onClose("transport error", e); - } - onClose(e, t) { - ("opening" !== this.readyState && - "open" !== this.readyState && - "closing" !== this.readyState) || - (this.clearTimeoutFn(this.pingTimeoutTimer), - this.transport.removeAllListeners("close"), - this.transport.close(), - this.transport.removeAllListeners(), - "function" == typeof removeEventListener && - removeEventListener("offline", this.offlineEventListener, !1), - (this.readyState = "closed"), - (this.id = null), - this.emitReserved("close", e, t), - (this.writeBuffer = []), - (this.prevBufferLen = 0)); - } - filterUpgrades(e) { - const t = []; - let s = 0; - const r = e.length; - for (; s < r; s++) ~this.transports.indexOf(e[s]) && t.push(e[s]); - return t; - } -} -Es.protocol = 4; -const ws = "function" == typeof ArrayBuffer, - Ss = Object.prototype.toString, - ks = - "function" == typeof Blob || - ("undefined" != typeof Blob && - "[object BlobConstructor]" === Ss.call(Blob)), - xs = - "function" == typeof File || - ("undefined" != typeof File && - "[object FileConstructor]" === Ss.call(File)); -function Os(e) { - return ( - (ws && - (e instanceof ArrayBuffer || - ((e) => - "function" == typeof ArrayBuffer.isView - ? ArrayBuffer.isView(e) - : e.buffer instanceof ArrayBuffer)(e))) || - (ks && e instanceof Blob) || - (xs && e instanceof File) - ); -} -function Ts(e, t) { - if (!e || "object" != typeof e) return !1; - if (Array.isArray(e)) { - for (let t = 0, s = e.length; t < s; t++) if (Ts(e[t])) return !0; - return !1; - } - if (Os(e)) return !0; - if (e.toJSON && "function" == typeof e.toJSON && 1 === arguments.length) - return Ts(e.toJSON(), !0); - for (const t in e) - if (Object.prototype.hasOwnProperty.call(e, t) && Ts(e[t])) return !0; - return !1; -} -function Ns(e) { - const t = [], - s = e.data, - r = e; - return ( - (r.data = Rs(s, t)), (r.attachments = t.length), { packet: r, buffers: t } - ); -} -function Rs(e, t) { - if (!e) return e; - if (Os(e)) { - const s = { _placeholder: !0, num: t.length }; - return t.push(e), s; - } - if (Array.isArray(e)) { - const s = new Array(e.length); - for (let r = 0; r < e.length; r++) s[r] = Rs(e[r], t); - return s; - } - if ("object" == typeof e && !(e instanceof Date)) { - const s = {}; - for (const r in e) - Object.prototype.hasOwnProperty.call(e, r) && (s[r] = Rs(e[r], t)); - return s; - } - return e; -} -function Cs(e, t) { - return (e.data = Ls(e.data, t)), (e.attachments = void 0), e; -} -function Ls(e, t) { - if (!e) return e; - if (e && e._placeholder) return t[e.num]; - if (Array.isArray(e)) for (let s = 0; s < e.length; s++) e[s] = Ls(e[s], t); - else if ("object" == typeof e) - for (const s in e) - Object.prototype.hasOwnProperty.call(e, s) && (e[s] = Ls(e[s], t)); - return e; -} -var As; -!(function (e) { - (e[(e.CONNECT = 0)] = "CONNECT"), - (e[(e.DISCONNECT = 1)] = "DISCONNECT"), - (e[(e.EVENT = 2)] = "EVENT"), - (e[(e.ACK = 3)] = "ACK"), - (e[(e.CONNECT_ERROR = 4)] = "CONNECT_ERROR"), - (e[(e.BINARY_EVENT = 5)] = "BINARY_EVENT"), - (e[(e.BINARY_ACK = 6)] = "BINARY_ACK"); -})(As || (As = {})); -class Bs extends P { - constructor(e) { - super(), (this.reviver = e); - } - add(e) { - let t; - if ("string" == typeof e) - (t = this.decodeString(e)), - t.type === As.BINARY_EVENT || t.type === As.BINARY_ACK - ? ((this.reconstructor = new Ps(t)), - 0 === t.attachments && super.emitReserved("decoded", t)) - : super.emitReserved("decoded", t); - else { - if (!Os(e) && !e.base64) throw new Error("Unknown type: " + e); - if (!this.reconstructor) - throw new Error("got binary data when not reconstructing a packet"); - (t = this.reconstructor.takeBinaryData(e)), - t && ((this.reconstructor = null), super.emitReserved("decoded", t)); - } - } - decodeString(e) { - let t = 0; - const s = { type: Number(e.charAt(0)) }; - if (void 0 === As[s.type]) throw new Error("unknown packet type " + s.type); - if (s.type === As.BINARY_EVENT || s.type === As.BINARY_ACK) { - const r = t + 1; - for (; "-" !== e.charAt(++t) && t != e.length; ); - const i = e.substring(r, t); - if (i != Number(i) || "-" !== e.charAt(t)) - throw new Error("Illegal attachments"); - s.attachments = Number(i); - } - if ("/" === e.charAt(t + 1)) { - const r = t + 1; - for (; ++t; ) { - if ("," === e.charAt(t)) break; - if (t === e.length) break; - } - s.nsp = e.substring(r, t); - } else s.nsp = "/"; - const r = e.charAt(t + 1); - if ("" !== r && Number(r) == r) { - const r = t + 1; - for (; ++t; ) { - const s = e.charAt(t); - if (null == s || Number(s) != s) { - --t; - break; - } - if (t === e.length) break; - } - s.id = Number(e.substring(r, t + 1)); - } - if (e.charAt(++t)) { - const r = this.tryParse(e.substr(t)); - if (!Bs.isPayloadValid(s.type, r)) throw new Error("invalid payload"); - s.data = r; - } - return s; - } - tryParse(e) { - try { - return JSON.parse(e, this.reviver); - } catch (e) { - return !1; - } - } - static isPayloadValid(e, t) { - switch (e) { - case As.CONNECT: - return "object" == typeof t; - case As.DISCONNECT: - return void 0 === t; - case As.CONNECT_ERROR: - return "string" == typeof t || "object" == typeof t; - case As.EVENT: - case As.BINARY_EVENT: - return Array.isArray(t) && t.length > 0; - case As.ACK: - case As.BINARY_ACK: - return Array.isArray(t); - } - } - destroy() { - this.reconstructor && this.reconstructor.finishedReconstruction(); - } -} -class Ps { - constructor(e) { - (this.packet = e), (this.buffers = []), (this.reconPack = e); - } - takeBinaryData(e) { - if ( - (this.buffers.push(e), this.buffers.length === this.reconPack.attachments) - ) { - const e = Cs(this.reconPack, this.buffers); - return this.finishedReconstruction(), e; - } - return null; - } - finishedReconstruction() { - (this.reconPack = null), (this.buffers = []); - } -} -var Is = Object.freeze({ - __proto__: null, - protocol: 5, - get PacketType() { - return As; - }, - Encoder: class { - constructor(e) { - this.replacer = e; - } - encode(e) { - return (e.type !== As.EVENT && e.type !== As.ACK) || !Ts(e) - ? [this.encodeAsString(e)] - : ((e.type = e.type === As.EVENT ? As.BINARY_EVENT : As.BINARY_ACK), - this.encodeAsBinary(e)); - } - encodeAsString(e) { - let t = "" + e.type; - return ( - (e.type !== As.BINARY_EVENT && e.type !== As.BINARY_ACK) || - (t += e.attachments + "-"), - e.nsp && "/" !== e.nsp && (t += e.nsp + ","), - null != e.id && (t += e.id), - null != e.data && (t += JSON.stringify(e.data, this.replacer)), - t - ); - } - encodeAsBinary(e) { - const t = Ns(e), - s = this.encodeAsString(t.packet), - r = t.buffers; - return r.unshift(s), r; - } - }, - Decoder: Bs, -}); -function Ds(e, t, s) { - return ( - e.on(t, s), - function () { - e.off(t, s); - } - ); -} -const Us = Object.freeze({ - connect: 1, - connect_error: 1, - disconnect: 1, - disconnecting: 1, - newListener: 1, - removeListener: 1, -}); -class qs extends P { - constructor(e, t, s) { - super(), - (this.connected = !1), - (this.receiveBuffer = []), - (this.sendBuffer = []), - (this.ids = 0), - (this.acks = {}), - (this.flags = {}), - (this.io = e), - (this.nsp = t), - s && s.auth && (this.auth = s.auth), - this.io._autoConnect && this.open(); - } - get disconnected() { - return !this.connected; - } - subEvents() { - if (this.subs) return; - const e = this.io; - this.subs = [ - Ds(e, "open", this.onopen.bind(this)), - Ds(e, "packet", this.onpacket.bind(this)), - Ds(e, "error", this.onerror.bind(this)), - Ds(e, "close", this.onclose.bind(this)), - ]; - } - get active() { - return !!this.subs; - } - connect() { - return ( - this.connected || - (this.subEvents(), - this.io._reconnecting || this.io.open(), - "open" === this.io._readyState && this.onopen()), - this - ); - } - open() { - return this.connect(); - } - send(...e) { - return e.unshift("message"), this.emit.apply(this, e), this; - } - emit(e, ...t) { - if (Us.hasOwnProperty(e)) - throw new Error('"' + e + '" is a reserved event name'); - t.unshift(e); - const s = { type: As.EVENT, data: t, options: {} }; - if ( - ((s.options.compress = !1 !== this.flags.compress), - "function" == typeof t[t.length - 1]) - ) { - const e = this.ids++, - r = t.pop(); - this._registerAckCallback(e, r), (s.id = e); - } - const r = - this.io.engine && - this.io.engine.transport && - this.io.engine.transport.writable; - return ( - (this.flags.volatile && (!r || !this.connected)) || - (this.connected - ? (this.notifyOutgoingListeners(s), this.packet(s)) - : this.sendBuffer.push(s)), - (this.flags = {}), - this - ); - } - _registerAckCallback(e, t) { - const s = this.flags.timeout; - if (void 0 === s) return void (this.acks[e] = t); - const r = this.io.setTimeoutFn(() => { - delete this.acks[e]; - for (let t = 0; t < this.sendBuffer.length; t++) - this.sendBuffer[t].id === e && this.sendBuffer.splice(t, 1); - t.call(this, new Error("operation has timed out")); - }, s); - this.acks[e] = (...e) => { - this.io.clearTimeoutFn(r), t.apply(this, [null, ...e]); - }; - } - packet(e) { - (e.nsp = this.nsp), this.io._packet(e); - } - onopen() { - "function" == typeof this.auth - ? this.auth((e) => { - this.packet({ type: As.CONNECT, data: e }); - }) - : this.packet({ type: As.CONNECT, data: this.auth }); - } - onerror(e) { - this.connected || this.emitReserved("connect_error", e); - } - onclose(e, t) { - (this.connected = !1), - delete this.id, - this.emitReserved("disconnect", e, t); - } - onpacket(e) { - if (e.nsp === this.nsp) - switch (e.type) { - case As.CONNECT: - if (e.data && e.data.sid) { - const t = e.data.sid; - this.onconnect(t); - } else - 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 As.EVENT: - case As.BINARY_EVENT: - this.onevent(e); - break; - case As.ACK: - case As.BINARY_ACK: - this.onack(e); - break; - case As.DISCONNECT: - this.ondisconnect(); - break; - case As.CONNECT_ERROR: - this.destroy(); - const t = new Error(e.data.message); - (t.data = e.data.data), this.emitReserved("connect_error", t); - } - } - onevent(e) { - const t = e.data || []; - null != e.id && 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); - } - ack(e) { - const t = this; - let s = !1; - return function (...r) { - s || ((s = !0), t.packet({ type: As.ACK, id: e, data: r })); - }; - } - onack(e) { - const t = this.acks[e.id]; - "function" == typeof t && (t.apply(this, e.data), delete this.acks[e.id]); - } - onconnect(e) { - (this.id = e), - (this.connected = !0), - this.emitBuffered(), - this.emitReserved("connect"); - } - 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: As.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 js(e) { - (e = e || {}), - (this.ms = e.min || 100), - (this.max = e.max || 1e4), - (this.factor = e.factor || 2), - (this.jitter = e.jitter > 0 && e.jitter <= 1 ? e.jitter : 0), - (this.attempts = 0); -} -(js.prototype.duration = function () { - var e = this.ms * Math.pow(this.factor, this.attempts++); - if (this.jitter) { - var t = Math.random(), - s = Math.floor(t * this.jitter * e); - e = 0 == (1 & Math.floor(10 * t)) ? e - s : e + s; - } - return 0 | Math.min(e, this.max); -}), - (js.prototype.reset = function () { - this.attempts = 0; - }), - (js.prototype.setMin = function (e) { - this.ms = e; - }), - (js.prototype.setMax = function (e) { - this.max = e; - }), - (js.prototype.setJitter = function (e) { - this.jitter = e; - }); -class Fs extends P { - constructor(e, t) { - var s; - super(), - (this.nsps = {}), - (this.subs = []), - e && "object" == typeof e && ((t = e), (e = void 0)), - ((t = t || {}).path = t.path || "/socket.io"), - (this.opts = t), - j(this, t), - this.reconnection(!1 !== t.reconnection), - this.reconnectionAttempts(t.reconnectionAttempts || 1 / 0), - this.reconnectionDelay(t.reconnectionDelay || 1e3), - this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), - this.randomizationFactor( - null !== (s = t.randomizationFactor) && void 0 !== s ? s : 0.5 - ), - (this.backoff = new js({ - min: this.reconnectionDelay(), - max: this.reconnectionDelayMax(), - jitter: this.randomizationFactor(), - })), - this.timeout(null == t.timeout ? 2e4 : t.timeout), - (this._readyState = "closed"), - (this.uri = e); - const r = t.parser || Is; - (this.encoder = new r.Encoder()), - (this.decoder = new r.Decoder()), - (this._autoConnect = !1 !== t.autoConnect), - this._autoConnect && this.open(); - } - reconnection(e) { - return arguments.length - ? ((this._reconnection = !!e), this) - : this._reconnection; - } - reconnectionAttempts(e) { - return void 0 === e - ? this._reconnectionAttempts - : ((this._reconnectionAttempts = e), this); - } - reconnectionDelay(e) { - var t; - return void 0 === e - ? this._reconnectionDelay - : ((this._reconnectionDelay = e), - null === (t = this.backoff) || void 0 === t || t.setMin(e), - this); - } - randomizationFactor(e) { - var t; - return void 0 === e - ? this._randomizationFactor - : ((this._randomizationFactor = e), - null === (t = this.backoff) || void 0 === t || t.setJitter(e), - this); - } - reconnectionDelayMax(e) { - var t; - return void 0 === e - ? this._reconnectionDelayMax - : ((this._reconnectionDelayMax = e), - null === (t = this.backoff) || void 0 === t || t.setMax(e), - this); - } - timeout(e) { - return arguments.length ? ((this._timeout = e), this) : this._timeout; - } - maybeReconnectOnOpen() { - !this._reconnecting && - this._reconnection && - 0 === this.backoff.attempts && - this.reconnect(); - } - open(e) { - if (~this._readyState.indexOf("open")) return this; - this.engine = new Es(this.uri, this.opts); - const t = this.engine, - s = this; - (this._readyState = "opening"), (this.skipReconnect = !1); - const r = Ds(t, "open", function () { - s.onopen(), e && e(); - }), - i = Ds(t, "error", (t) => { - s.cleanup(), - (s._readyState = "closed"), - this.emitReserved("error", t), - e ? e(t) : s.maybeReconnectOnOpen(); - }); - if (!1 !== this._timeout) { - const e = this._timeout; - 0 === e && r(); - const s = this.setTimeoutFn(() => { - r(), t.close(), t.emit("error", new Error("timeout")); - }, e); - this.opts.autoUnref && s.unref(), - this.subs.push(function () { - clearTimeout(s); - }); - } - return this.subs.push(r), this.subs.push(i), this; - } - connect(e) { - return this.open(e); - } - onopen() { - this.cleanup(), (this._readyState = "open"), this.emitReserved("open"); - const e = this.engine; - this.subs.push( - Ds(e, "ping", this.onping.bind(this)), - Ds(e, "data", this.ondata.bind(this)), - Ds(e, "error", this.onerror.bind(this)), - Ds(e, "close", this.onclose.bind(this)), - Ds(this.decoder, "decoded", this.ondecoded.bind(this)) - ); - } - onping() { - this.emitReserved("ping"); - } - ondata(e) { - this.decoder.add(e); - } - ondecoded(e) { - this.emitReserved("packet", e); - } - onerror(e) { - this.emitReserved("error", e); - } - socket(e, t) { - let s = this.nsps[e]; - return s || ((s = new qs(this, e, t)), (this.nsps[e] = s)), s; - } - _destroy(e) { - const t = Object.keys(this.nsps); - for (const e of t) { - if (this.nsps[e].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"), - this.engine && this.engine.close(); - } - disconnect() { - return this._close(); - } - onclose(e, t) { - this.cleanup(), - 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((t) => { - t - ? ((e._reconnecting = !1), - e.reconnect(), - this.emitReserved("reconnect_error", t)) - : e.onreconnect(); - })); - }, t); - this.opts.autoUnref && s.unref(), - this.subs.push(function () { - clearTimeout(s); - }); - } - } - onreconnect() { - const e = this.backoff.attempts; - (this._reconnecting = !1), - this.backoff.reset(), - this.emitReserved("reconnect", e); - } -} -const Ms = {}; -function Ws(e, t) { - "object" == typeof e && ((t = e), (e = void 0)); - const s = (function (e, t = "", s) { - let r = e; - (s = s || ("undefined" != typeof location && location)), - null == e && (e = s.protocol + "//" + s.host), - "string" == typeof e && - ("/" === e.charAt(0) && - (e = "/" === e.charAt(1) ? s.protocol + e : s.host + e), - /^(https?|wss?):\/\//.test(e) || - (e = void 0 !== s ? s.protocol + "//" + e : "https://" + e), - (r = vs(e))), - r.port || - (/^(http|ws)$/.test(r.protocol) - ? (r.port = "80") - : /^(http|ws)s$/.test(r.protocol) && (r.port = "443")), - (r.path = r.path || "/"); - const i = -1 !== r.host.indexOf(":") ? "[" + r.host + "]" : r.host; - return ( - (r.id = r.protocol + "://" + i + ":" + r.port + t), - (r.href = - r.protocol + - "://" + - i + - (s && s.port === r.port ? "" : ":" + r.port)), - r - ); - })(e, (t = t || {}).path || "/socket.io"), - r = s.source, - i = s.id, - n = s.path, - o = Ms[i] && n in Ms[i].nsps; - let a; - return ( - t.forceNew || t["force new connection"] || !1 === t.multiplex || o - ? (a = new Fs(r, t)) - : (Ms[i] || (Ms[i] = new Fs(r, t)), (a = Ms[i])), - s.query && !t.query && (t.query = s.queryKey), - a.socket(s.path, t) - ); -} -Object.assign(Ws, { Manager: Fs, Socket: qs, io: Ws, connect: Ws }); -var Vs = "e"; -var $s = "jr", - Gs = "jc"; -const Hs = process.argv.slice(2), - zs = Hs[0], - Ys = Hs[1], - Ks = Hs.slice(2), - Xs = { id: Ys, command: Ks }, - Js = new (class { - constructor(e, t, s = {}) { - (this.url = e), - (this.job = t), - (this.mode = Vs), - (this.buf = {}), - (this.buf.e = ""), - (this.buf.o = ""), - (this.spawn = s.spawn ?? this.spawn.bind(this)), - (this.report = s.report ?? this.report.bind(this)), - (this.onProcClose = s.onProcClose ?? this.onProcClose.bind(this)), - (this.onClose = s.onClose ?? this.onClose.bind(this)); - } - spawn() { - const e = this.job.command, - t = e.shift(); - (this.proc = _.default.spawn(t, e)), - this.proc.stdout.setEncoding("utf8"), - this.proc.stderr.setEncoding("utf8"), - this.proc.stdout.on("data", (e) => this.report(e.toString(), "o")), - this.proc.stderr.on("data", (e) => this.report(e.toString(), "e")), - this.proc.on("close", this.onProcClose); - } - runJob() { - const e = new Fs(this.url, { - query: { mode: this.mode, jobId: this.job.id }, - }); - (this.socket = e.socket("/")), - this.socket.on("connect", this.spawn), - this.socket.on("disconnect", this.onClose); - } - onClose() { - console.log("Server disconnected, terminating process."), - this.proc.kill("SIGINT"); - } - onProcClose(e) { - this.socket.emit(Gs, e), - console.log(`Process finished with code ${e}`), - this.socket.disconnect(); - } - report(e, t) { - (this.buf[t] += e), - this.buf[t].includes("\n") && - (this.buf[t].endsWith("\n") && - (this.buf[t] = this.buf[t].slice(0, -1)), - this.socket.emit($s, this.buf[t]), - "e" === t - ? console.error(`err: ${this.buf[t]}`) - : console.log(`out: ${this.buf[t]}`), - (this.buf[t] = "")); - } - })(zs, Xs, Ks); -Js.runJob(); +var X=p.default,J=f.default,Q=_.default.spawn,Z=ee;function ee(e){e=e||{};var t,s,r=this,i=y.default,n=m.default,o={},a=!1,h={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},c=Object.assign({},h),l=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],d=["TRACE","TRACK","CONNECT"],u=!1,p=!1,f=!1,_={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.status=null,this.statusText=null;this.open=function(e,t,s,r,i){if(this.abort(),p=!1,f=!1,!function(e){return e&&-1===d.indexOf(e)}(e))throw new Error("SecurityError: Request method not allowed");o={method:e,url:t.toString(),async:"boolean"!=typeof s||s,user:r||null,password:i||null},g(this.OPENED)},this.setDisableHeaderCheck=function(e){a=e},this.setRequestHeader=function(e,t){if(this.readyState!=this.OPENED)throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(!function(e){return a||e&&-1===l.indexOf(e.toLowerCase())}(e))return console.warn('Refused to set unsafe header "'+e+'"'),!1;if(u)throw new Error("INVALID_STATE_ERR: send flag is true");return c[e]=t,!0},this.getResponseHeader=function(e){return"string"==typeof e&&this.readyState>this.OPENED&&s.headers[e.toLowerCase()]&&!p?s.headers[e.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState{e.unref()})),a&&t.write(a),t.end(),r.dispatchEvent("loadstart")}else{var k=".node-xmlhttprequest-content-"+process.pid,x=".node-xmlhttprequest-sync-"+process.pid;X.writeFileSync(x,"","utf8");for(var O="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(l?"s":"")+".request;var options = "+JSON.stringify(v)+";var responseText = '';var req = doRequest(options, function(response) {response.setEncoding('utf8');response.on('data', function(chunk) { responseText += chunk;});response.on('end', function() {fs.writeFileSync('"+k+"', 'NODE-XMLHTTPREQUEST-STATUS:' + response.statusCode + ',' + responseText, 'utf8');fs.unlinkSync('"+x+"');});response.on('error', function(error) {fs.writeFileSync('"+k+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+x+"');});}).on('error', function(error) {fs.writeFileSync('"+k+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+x+"');});"+(a?"req.write('"+JSON.stringify(a).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",T=Q(process.argv[0],["-e",O]);X.existsSync(x););if(r.responseText=X.readFileSync(k,"utf8"),T.stdin.end(),X.unlinkSync(k),r.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var N=r.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,"");r.handleError(N,503)}else r.status=r.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1"),r.responseText=r.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"),g(r.DONE)}}},this.handleError=function(e,t){this.status=t||0,this.statusText=e,this.responseText=e.stack,p=!0,g(this.DONE)},this.abort=function(){t&&(t.abort(),t=null),c=Object.assign({},h),this.responseText="",this.responseXML="",p=f=!0,this.readyState===this.UNSENT||this.readyState===this.OPENED&&!u||this.readyState===this.DONE||(u=!1,g(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(e,t){e in _||(_[e]=[]),_[e].push(t)},this.removeEventListener=function(e,t){e in _&&(_[e]=_[e].filter((function(e){return e!==t})))},this.dispatchEvent=function(e){if("function"==typeof r["on"+e]&&(this.readyState===this.DONE?setImmediate((function(){r["on"+e]()})):r["on"+e]()),e in _)for(let t=0,s=_[e].length;t{4===t.readyState&&(200===t.status||1223===t.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof t.status?t.status:0)}),0))},t.send(this.data)}catch(e){return void this.setTimeoutFn((()=>{this.onError(e)}),0)}"undefined"!=typeof document&&(this.index=ie.requestsCount++,ie.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=se,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete ie.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}if(ie.requestsCount=0,ie.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",ne);else if("function"==typeof addEventListener){addEventListener("onpagehide"in I?"pagehide":"unload",ne,!1)}function ne(){for(let e in ie.requests)ie.requests.hasOwnProperty(e)&&ie.requests[e].abort()}var oe={exports:{}},ae={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}};const{EMPTY_BUFFER:he}=ae;function ce(e,t){if(0===e.length)return he;if(1===e.length)return e[0];const s=Buffer.allocUnsafe(t);let r=0;for(let t=0;t{this.pending--,this[_e]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[_e]()}[_e](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[fe])}}};const me=b.default,ge=oe.exports,be=ye,{kStatusCode:ve}=ae,Ee=Buffer.from([0,0,255,255]),we=Symbol("permessage-deflate"),Se=Symbol("total-length"),ke=Symbol("callback"),xe=Symbol("buffers"),Oe=Symbol("error");let Te;var Ne=class{constructor(e,t,s){if(this._maxPayload=0|s,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!Te){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;Te=new be(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[ke];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,s=e.find((e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits)));if(!s)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(s.server_no_context_takeover=!0),t.clientNoContextTakeover&&(s.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(s.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?s.client_max_window_bits=t.clientMaxWindowBits:!0!==s.client_max_window_bits&&!1!==t.clientMaxWindowBits||delete s.client_max_window_bits,s}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((t=>{let s=e[t];if(s.length>1)throw new Error(`Parameter "${t}" must have only a single value`);if(s=s[0],"client_max_window_bits"===t){if(!0!==s){const e=+s;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}else if("server_max_window_bits"===t){const e=+s;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else{if("client_no_context_takeover"!==t&&"server_no_context_takeover"!==t)throw new Error(`Unknown parameter "${t}"`);if(!0!==s)throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}e[t]=s}))})),e}decompress(e,t,s){Te.add((r=>{this._decompress(e,t,((e,t)=>{r(),s(e,t)}))}))}compress(e,t,s){Te.add((r=>{this._compress(e,t,((e,t)=>{r(),s(e,t)}))}))}_decompress(e,t,s){const r=this._isServer?"client":"server";if(!this._inflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?me.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=me.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[we]=this,this._inflate[Se]=0,this._inflate[xe]=[],this._inflate.on("error",Le),this._inflate.on("data",Ce)}this._inflate[ke]=s,this._inflate.write(e),t&&this._inflate.write(Ee),this._inflate.flush((()=>{const e=this._inflate[Oe];if(e)return this._inflate.close(),this._inflate=null,void s(e);const i=ge.concat(this._inflate[xe],this._inflate[Se]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Se]=0,this._inflate[xe]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),s(null,i)}))}_compress(e,t,s){const r=this._isServer?"server":"client";if(!this._deflate){const e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?me.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=me.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[Se]=0,this._deflate[xe]=[],this._deflate.on("data",Re)}this._deflate[ke]=s,this._deflate.write(e),this._deflate.flush(me.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=ge.concat(this._deflate[xe],this._deflate[Se]);t&&(e=e.slice(0,e.length-4)),this._deflate[ke]=null,this._deflate[Se]=0,this._deflate[xe]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),s(null,e)}))}};function Re(e){this[xe].push(e),this[Se]+=e.length}function Ce(e){this[Se]+=e.length,this[we]._maxPayload<1||this[Se]<=this[we]._maxPayload?this[xe].push(e):(this[Oe]=new RangeError("Max payload size exceeded"),this[Oe].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[Oe][ve]=1009,this.removeListener("data",Ce),this.reset())}function Le(e){this[we]._inflate=null,e[ve]=1007,this[ke](e)}var Ae={exports:{}};const Be=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Pe(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999}function Ie(e){const t=e.length;let s=0;for(;s=t||128!=(192&e[s+1])||128!=(192&e[s+2])||224===e[s]&&128==(224&e[s+1])||237===e[s]&&160==(224&e[s+1]))return!1;s+=3}else{if(240!=(248&e[s]))return!1;if(s+3>=t||128!=(192&e[s+1])||128!=(192&e[s+2])||128!=(192&e[s+3])||240===e[s]&&128==(240&e[s+1])||244===e[s]&&e[s+1]>143||e[s]>244)return!1;s+=4}return!0}try{const e=require("utf-8-validate");Ae.exports={isValidStatusCode:Pe,isValidUTF8:t=>t.length<150?Ie(t):e(t),tokenChars:Be}}catch(e){Ae.exports={isValidStatusCode:Pe,isValidUTF8:Ie,tokenChars:Be}}const{Writable:De}=g.default,Ue=Ne,{BINARY_TYPES:qe,EMPTY_BUFFER:je,kStatusCode:Fe,kWebSocket:Me}=ae,{concat:We,toArrayBuffer:Ve,unmask:$e}=oe.exports,{isValidStatusCode:Ge,isValidUTF8:He}=Ae.exports;var ze=class extends De{constructor(e={}){super(),this._binaryType=e.binaryType||qe[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=0|e.maxPayload,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Me]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=0,this._loop=!1}_write(e,t,s){if(8===this._opcode&&0==this._state)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=s.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(s.buffer,s.byteOffset,e),r),this._buffers[0]=s.slice(e)),e-=s.length}while(e>0);return t}startLoop(e){let t;this._loop=!0;do{switch(this._state){case 0:t=this.getInfo();break;case 1:t=this.getPayloadLength16();break;case 2:t=this.getPayloadLength64();break;case 3:this.getMask();break;case 4:t=this.getData(e);break;default:return void(this._loop=!1)}}while(this._loop);e(t)}getInfo(){if(this._bufferedBytes<2)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,Ye(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");const t=64==(64&e[0]);if(t&&!this._extensions[Ue.extensionName])return this._loop=!1,Ye(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(t)return this._loop=!1,Ye(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(!this._fragmented)return this._loop=!1,Ye(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,Ye(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");this._compressed=t}else{if(!(this._opcode>7&&this._opcode<11))return this._loop=!1,Ye(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");if(!this._fin)return this._loop=!1,Ye(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");if(t)return this._loop=!1,Ye(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._payloadLength>125)return this._loop=!1,Ye(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=128==(128&e[1]),this._isServer){if(!this._masked)return this._loop=!1,Ye(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK")}else if(this._masked)return this._loop=!1,Ye(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");if(126===this._payloadLength)this._state=1;else{if(127!==this._payloadLength)return this.haveLength();this._state=2}}getPayloadLength16(){if(!(this._bufferedBytes<2))return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength();this._loop=!1}getPayloadLength64(){if(this._bufferedBytes<8)return void(this._loop=!1);const e=this.consume(8),t=e.readUInt32BE(0);return t>Math.pow(2,21)-1?(this._loop=!1,Ye(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=t*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Ye(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");this._masked?this._state=3:this._state=4}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=4)}getData(e){let t=je;if(this._payloadLength){if(this._bufferedBytes7?this.controlMessage(t):this._compressed?(this._state=5,void this.decompress(t,e)):(t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage())}decompress(e,t){this._extensions[Ue.extensionName].decompress(e,this._fin,((e,s)=>{if(e)return t(e);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return t(Ye(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(s)}const r=this.dataMessage();if(r)return t(r);this.startLoop(t)}))}dataMessage(){if(this._fin){const e=this._messageLength,t=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let s;s="nodebuffer"===this._binaryType?We(t,e):"arraybuffer"===this._binaryType?Ve(We(t,e)):t,this.emit("message",s,!0)}else{const s=We(t,e);if(!this._skipUTF8Validation&&!He(s))return this._loop=!1,Ye(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("message",s,!1)}}this._state=0}controlMessage(e){if(8===this._opcode)if(this._loop=!1,0===e.length)this.emit("conclude",1005,je),this.end();else{if(1===e.length)return Ye(RangeError,"invalid payload length 1",!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");{const t=e.readUInt16BE(0);if(!Ge(t))return Ye(RangeError,`invalid status code ${t}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");const s=e.slice(2);if(!this._skipUTF8Validation&&!He(s))return Ye(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("conclude",t,s),this.end()}}else 9===this._opcode?this.emit("ping",e):this.emit("pong",e);this._state=0}};function Ye(e,t,s,r,i){const n=new e(s?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(n,Ye),n.code=i,n[Fe]=r,n}const{randomFillSync:Ke}=w.default,Xe=Ne,{EMPTY_BUFFER:Je}=ae,{isValidStatusCode:Qe}=Ae.exports,{mask:Ze,toBuffer:et}=oe.exports,tt=Buffer.alloc(4);class st{constructor(e,t){this._extensions=t||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){const s=t.mask&&t.readOnly;let r=t.mask?6:2,i=e.length;e.length>=65536?(r+=8,i=127):e.length>125&&(r+=2,i=126);const n=Buffer.allocUnsafe(s?e.length+r:r);return n[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(n[0]|=64),n[1]=i,126===i?n.writeUInt16BE(e.length,2):127===i&&(n.writeUInt32BE(0,2),n.writeUInt32BE(e.length,6)),t.mask?(Ke(tt,0,4),n[1]|=128,n[r-4]=tt[0],n[r-3]=tt[1],n[r-2]=tt[2],n[r-1]=tt[3],s?(Ze(e,tt,n,r,e.length),[n]):(Ze(e,tt,e,0,e.length),[n,e])):[n,e]}close(e,t,s,r){let i;if(void 0===e)i=Je;else{if("number"!=typeof e||!Qe(e))throw new TypeError("First argument must be a valid error code number");if(void 0!==t&&t.length){const s=Buffer.byteLength(t);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");i=Buffer.allocUnsafe(2+s),i.writeUInt16BE(e,0),"string"==typeof t?i.write(t,2):i.set(t,2)}else i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0)}this._deflating?this.enqueue([this.doClose,i,s,r]):this.doClose(i,s,r)}doClose(e,t,s){this.sendFrame(st.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:t,readOnly:!1}),s)}ping(e,t,s){const r=et(e);if(r.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,r,t,et.readOnly,s]):this.doPing(r,t,et.readOnly,s)}doPing(e,t,s,r){this.sendFrame(st.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:t,readOnly:s}),r)}pong(e,t,s){const r=et(e);if(r.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,r,t,et.readOnly,s]):this.doPong(r,t,et.readOnly,s)}doPong(e,t,s,r){this.sendFrame(st.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:t,readOnly:s}),r)}send(e,t,s){const r=et(e),i=this._extensions[Xe.extensionName];let n=t.binary?2:1,o=t.compress;if(this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=r.length>=i._threshold),this._compress=o):(o=!1,n=0),t.fin&&(this._firstFragment=!0),i){const e={fin:t.fin,rsv1:o,opcode:n,mask:t.mask,readOnly:et.readOnly};this._deflating?this.enqueue([this.dispatch,r,this._compress,e,s]):this.dispatch(r,this._compress,e,s)}else this.sendFrame(st.frame(r,{fin:t.fin,rsv1:!1,opcode:n,mask:t.mask,readOnly:et.readOnly}),s)}dispatch(e,t,s,r){if(!t)return void this.sendFrame(st.frame(e,s),r);const i=this._extensions[Xe.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,i.compress(e,s.fin,((t,i)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof r&&r(e);for(let t=0;t{let s=e[t];return Array.isArray(s)||(s=[s]),s.map((e=>[t].concat(Object.keys(e).map((t=>{let s=e[t];return Array.isArray(s)||(s=[s]),s.map((e=>!0===e?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")},parse:function(e){const t=Object.create(null);let s,r,i=Object.create(null),n=!1,o=!1,a=!1,h=-1,c=-1,l=-1,d=0;for(;d0&&e.unshift(t),e.on("close",ls),e.on("data",ds),e.on("end",us),e.on("error",ps),this._readyState=Xt.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=Xt.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[Lt.extensionName]&&this._extensions[Lt.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=Xt.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==Xt.CLOSED){if(this.readyState===Xt.CONNECTING){const e="WebSocket was closed before the connection was established";return es(this,this._req,e)}this.readyState!==Xt.CLOSING?(this._readyState=Xt.CLOSING,this._sender.close(e,t,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end()}}ping(e,t,s){if(this.readyState===Xt.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===Xt.OPEN?(void 0===t&&(t=!this._isServer),this._sender.ping(e||It,t,s)):ts(this,e,s)}pong(e,t,s){if(this.readyState===Xt.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===Xt.OPEN?(void 0===t&&(t=!this._isServer),this._sender.pong(e||It,t,s)):ts(this,e,s)}send(e,t,s){if(this.readyState===Xt.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(s=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==Xt.OPEN)return void ts(this,e,s);const r={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[Lt.extensionName]||(r.compress=!1),this._sender.send(e||It,r,s)}terminate(){if(this.readyState!==Xt.CLOSED){if(this.readyState===Xt.CONNECTING){const e="WebSocket was closed before the connection was established";return es(this,this._req,e)}this._socket&&(this._readyState=Xt.CLOSING,this._socket.destroy())}}}function Jt(e,t,s,r){const i={protocolVersion:Kt[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,createConnection:void 0,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:void 0,host:void 0,path:void 0,port:void 0};if(!Kt.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Kt.join(", ")})`);let n;if(t instanceof Ct)n=t,e._url=t.href;else{try{n=new Ct(t)}catch(e){throw new SyntaxError(`Invalid URL: ${t}`)}e._url=t}const o="wss:"===n.protocol,a="ws+unix:"===n.protocol;if("ws:"!==n.protocol&&!o&&!a)throw new SyntaxError('The URL\'s protocol must be one of "ws:", "wss:", or "ws+unix:"');if(a&&!n.pathname)throw new SyntaxError("The URL's pathname is empty");if(n.hash)throw new SyntaxError("The URL contains a fragment identifier");const h=o?443:80,c=Nt(16).toString("base64"),l=o?kt.get:xt.get,d=new Set;let u;if(i.createConnection=o?Zt:Qt,i.defaultPort=i.defaultPort||h,i.port=n.port||h,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":c,Connection:"Upgrade",Upgrade:"websocket",...i.headers},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(u=new Lt(!0!==i.perMessageDeflate?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=$t({[Lt.extensionName]:u.offer()})),s.length){for(const e of s){if("string"!=typeof e||!Yt.test(e)||d.has(e))throw new SyntaxError("An invalid or duplicated subprotocol was specified");d.add(e)}i.headers["Sec-WebSocket-Protocol"]=s.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),a){const e=i.path.split(":");i.socketPath=e[0],i.path=e[1]}let p=e._req=l(i);i.timeout&&p.on("timeout",(()=>{es(e,p,"Opening handshake has timed out")})),p.on("error",(t=>{null===p||p.aborted||(p=e._req=null,e._readyState=Xt.CLOSING,e.emit("error",t),e.emitClose())})),p.on("response",(n=>{const o=n.headers.location,a=n.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects)return void es(e,p,"Maximum redirects exceeded");p.abort();const n=new Ct(o,t);Jt(e,n,s,r)}else e.emit("unexpected-response",p,n)||es(e,p,`Unexpected server response: ${n.statusCode}`)})),p.on("upgrade",((t,s,r)=>{if(e.emit("upgrade",t),e.readyState!==Xt.CONNECTING)return;p=e._req=null;const n=Rt("sha1").update(c+Dt).digest("base64");if(t.headers["sec-websocket-accept"]!==n)return void es(e,s,"Invalid Sec-WebSocket-Accept header");const o=t.headers["sec-websocket-protocol"];let a;if(void 0!==o?d.size?d.has(o)||(a="Server sent an invalid subprotocol"):a="Server sent a subprotocol but none was requested":d.size&&(a="Server sent no subprotocol"),a)return void es(e,s,a);o&&(e._protocol=o);const h=t.headers["sec-websocket-extensions"];if(void 0!==h){if(!u){return void es(e,s,"Server sent a Sec-WebSocket-Extensions header but no extension was requested")}let t;try{t=Gt(h)}catch(t){return void es(e,s,"Invalid Sec-WebSocket-Extensions header")}const r=Object.keys(t);if(1!==r.length||r[0]!==Lt.extensionName){return void es(e,s,"Server indicated an extension that was not requested")}try{u.accept(t[Lt.extensionName])}catch(t){return void es(e,s,"Invalid Sec-WebSocket-Extensions header")}e._extensions[Lt.extensionName]=u}e.setSocket(s,r,{maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}))}function Qt(e){return e.path=e.socketPath,Ot.connect(e)}function Zt(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=Ot.isIP(e.host)?"":e.host),Tt.connect(e)}function es(e,t,s){e._readyState=Xt.CLOSING;const r=new Error(s);Error.captureStackTrace(r,es),t.setHeader?(t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),t.once("abort",e.emitClose.bind(e)),e.emit("error",r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function ts(e,t,s){if(t){const s=Ht(t).length;e._socket?e._sender._bufferedBytes+=s:e._bufferedAmount+=s}if(s){s(new Error(`WebSocket is not open: readyState ${e.readyState} (${zt[e.readyState]})`))}}function ss(e,t){const s=this[Ft];s._closeFrameReceived=!0,s._closeMessage=t,s._closeCode=e,void 0!==s._socket[Ft]&&(s._socket.removeListener("data",ds),process.nextTick(cs,s._socket),1005===e?s.close():s.close(e,t))}function rs(){this[Ft]._socket.resume()}function is(e){const t=this[Ft];void 0!==t._socket[Ft]&&(t._socket.removeListener("data",ds),process.nextTick(cs,t._socket),t.close(e[jt])),t.emit("error",e)}function ns(){this[Ft].emitClose()}function os(e,t){this[Ft].emit("message",e,t)}function as(e){const t=this[Ft];t.pong(e,!t._isServer,Mt),t.emit("ping",e)}function hs(e){this[Ft].emit("pong",e)}function cs(e){e.resume()}function ls(){const e=this[Ft];let t;this.removeListener("close",ls),this.removeListener("data",ds),this.removeListener("end",us),e._readyState=Xt.CLOSING,this._readableState.endEmitted||e._closeFrameReceived||e._receiver._writableState.errorEmitted||null===(t=e._socket.read())||e._receiver.write(t),e._receiver.end(),this[Ft]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",ns),e._receiver.on("finish",ns))}function ds(e){this[Ft]._receiver.write(e)||this.pause()}function us(){const e=this[Ft];e._readyState=Xt.CLOSING,e._receiver.end(),this.end()}function ps(){const e=this[Ft];this.removeListener("error",ps),this.on("error",Mt),e&&(e._readyState=Xt.CLOSING,this.destroy())}Object.defineProperty(Xt,"CONNECTING",{enumerable:!0,value:zt.indexOf("CONNECTING")}),Object.defineProperty(Xt.prototype,"CONNECTING",{enumerable:!0,value:zt.indexOf("CONNECTING")}),Object.defineProperty(Xt,"OPEN",{enumerable:!0,value:zt.indexOf("OPEN")}),Object.defineProperty(Xt.prototype,"OPEN",{enumerable:!0,value:zt.indexOf("OPEN")}),Object.defineProperty(Xt,"CLOSING",{enumerable:!0,value:zt.indexOf("CLOSING")}),Object.defineProperty(Xt.prototype,"CLOSING",{enumerable:!0,value:zt.indexOf("CLOSING")}),Object.defineProperty(Xt,"CLOSED",{enumerable:!0,value:zt.indexOf("CLOSED")}),Object.defineProperty(Xt.prototype,"CLOSED",{enumerable:!0,value:zt.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach((e=>{Object.defineProperty(Xt.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(Xt.prototype,`on${e}`,{enumerable:!0,get(){for(const t of this.listeners(e))if(t[Ut])return t[qt];return null},set(t){for(const t of this.listeners(e))if(t[Ut]){this.removeListener(e,t);break}"function"==typeof t&&this.addEventListener(e,t,{[Ut]:!0})}})})),Xt.prototype.addEventListener=Wt,Xt.prototype.removeEventListener=Vt;const fs=Xt,_s=process.nextTick,ys="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();const ms={websocket:class extends M{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,s=ys?{}:D(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=new fs(e,t,s)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType||"nodebuffer",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{const t={};if(s.options&&(t.compress=s.options.compress),this.opts.perMessageDeflate){("string"==typeof e?Buffer.byteLength(e):e.length){this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){let e=this.query||{};const t=this.opts.secure?"wss":"ws";let s="";this.opts.port&&("wss"===t&&443!==Number(this.opts.port)||"ws"===t&&80!==Number(this.opts.port))&&(s=":"+this.opts.port),this.opts.timestampRequests&&(e[this.opts.timestampParam]=Y()),this.supportsBinary||(e.b64=1);const r=K(e);return t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+s+this.opts.path+(r.length?"?"+r:"")}check(){return!!fs}},polling:class extends M{constructor(e){if(super(e),this.polling=!1,"undefined"!=typeof location){const t="https:"===location.protocol;let s=location.port;s||(s=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||s!==e.port,this.xs=e.secure!==t}const t=e&&e.forceBase64;this.supportsBinary=re&&!t}get name(){return"polling"}doOpen(){this.poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this.polling||!this.writable){let e=0;this.polling&&(e++,this.once("pollComplete",(function(){--e||t()}))),this.writable||(e++,this.once("drain",(function(){--e||t()})))}else t()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){((e,t)=>{const s=e.split(B),r=[];for(let e=0;e{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};"open"===this.readyState?e():this.once("open",e)}write(e){this.writable=!1,((e,t)=>{const s=e.length,r=new Array(s);let i=0;e.forEach(((e,n)=>{T(e,!1,(e=>{r[n]=e,++i===s&&t(r.join(B))}))}))})(e,(e=>{this.doWrite(e,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){let e=this.query||{};const t=this.opts.secure?"https":"http";let s="";!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=Y()),this.supportsBinary||e.sid||(e.b64=1),this.opts.port&&("https"===t&&443!==Number(this.opts.port)||"http"===t&&80!==Number(this.opts.port))&&(s=":"+this.opts.port);const r=K(e);return t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+s+this.opts.path+(r.length?"?"+r:"")}request(e={}){return Object.assign(e,{xd:this.xd,xs:this.xs},this.opts),new ie(this.uri(),e)}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",((e,t)=>{this.onError("xhr post error",e,t)}))}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",((e,t)=>{this.onError("xhr poll error",e,t)})),this.pollXhr=e}}},gs=/^(?:(?![^:@]+:[^:@\/]*@)(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 vs(e){const t=e,s=e.indexOf("["),r=e.indexOf("]");-1!=s&&-1!=r&&(e=e.substring(0,s)+e.substring(s,r).replace(/:/g,";")+e.substring(r,e.length));let i=gs.exec(e||""),n={},o=14;for(;o--;)n[bs[o]]=i[o]||"";return-1!=s&&-1!=r&&(n.source=t,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=function(e,t){const s=/\/{2,9}/g,r=t.replace(s,"/").split("/");"/"!=t.substr(0,1)&&0!==t.length||r.splice(0,1);"/"==t.substr(t.length-1,1)&&r.splice(r.length-1,1);return r}(0,n.path),n.queryKey=function(e,t){const s={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,r){t&&(s[t]=r)})),s}(0,n.query),n}class Es extends P{constructor(e,t={}){super(),e&&"object"==typeof e&&(t=e,e=null),e?(e=vs(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=vs(t.host).host),j(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},t),this.opts.path=this.opts.path.replace(/\/$/,"")+"/","string"==typeof this.opts.query&&(this.opts.query=function(e){let t={},s=e.split("&");for(let e=0,r=s.length;e{this.transport&&(this.transport.removeAllListeners(),this.transport.close())}),!1),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts.transportOptions[e],this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new ms[e](s)}open(){let e;if(this.opts.rememberUpgrade&&Es.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}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",(e=>this.onClose("transport close",e)))}probe(e){let t=this.createTransport(e),s=!1;Es.priorWebsocketSuccess=!1;const r=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",(e=>{if(!s)if("pong"===e.type&&"probe"===e.data){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Es.priorWebsocketSuccess="websocket"===t.name,this.transport.pause((()=>{s||"closed"!==this.readyState&&(c(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())}))}else{const e=new Error("probe error");e.transport=t.name,this.emitReserved("upgradeError",e)}})))};function i(){s||(s=!0,c(),t.close(),t=null)}const n=e=>{const s=new Error("probe error: "+e);s.transport=t.name,i(),this.emitReserved("upgradeError",s)};function o(){n("transport closed")}function a(){n("socket closed")}function h(e){t&&e.name!==t.name&&i()}const c=()=>{t.removeListener("open",r),t.removeListener("error",n),t.removeListener("close",o),this.off("close",a),this.off("upgrading",h)};t.once("open",r),t.once("error",n),t.once("close",o),this.once("close",a),this.once("upgrading",h),t.open()}onOpen(){if(this.readyState="open",Es.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause){let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&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&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let s=0;s=57344?s+=3:(r++,s+=4);return s}(t):Math.ceil(1.33*(t.byteLength||t.size))),s>0&&e>this.maxPayload)return this.writeBuffer.slice(0,s);e+=2}var t;return this.writeBuffer}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,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof s&&(r=s,s=null),"closing"===this.readyState||"closed"===this.readyState)return;(s=s||{}).compress=!1!==s.compress;const i={type:e,data:t,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),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"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?s():e()})):this.upgrading?s():e()),this}onError(e){Es.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&removeEventListener("offline",this.offlineEventListener,!1),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let s=0;const r=e.length;for(;s"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer)(e))||ks&&e instanceof Blob||xs&&e instanceof File}function Ts(e,t){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e)){for(let t=0,s=e.length;t0;case As.ACK:case As.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&this.reconstructor.finishedReconstruction()}}class Ps{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=Cs(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}var Is=Object.freeze({__proto__:null,protocol:5,get PacketType(){return As},Encoder:class{constructor(e){this.replacer=e}encode(e){return e.type!==As.EVENT&&e.type!==As.ACK||!Ts(e)?[this.encodeAsString(e)]:(e.type=e.type===As.EVENT?As.BINARY_EVENT:As.BINARY_ACK,this.encodeAsBinary(e))}encodeAsString(e){let t=""+e.type;return e.type!==As.BINARY_EVENT&&e.type!==As.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=Ns(e),s=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(s),r}},Decoder:Bs});function Ds(e,t,s){return e.on(t,s),function(){e.off(t,s)}}const Us=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class qs extends P{constructor(e,t,s){super(),this.connected=!1,this.receiveBuffer=[],this.sendBuffer=[],this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[Ds(e,"open",this.onopen.bind(this)),Ds(e,"packet",this.onpacket.bind(this)),Ds(e,"error",this.onerror.bind(this)),Ds(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){if(Us.hasOwnProperty(e))throw new Error('"'+e+'" is a reserved event name');t.unshift(e);const s={type:As.EVENT,data:t,options:{}};if(s.options.compress=!1!==this.flags.compress,"function"==typeof t[t.length-1]){const e=this.ids++,r=t.pop();this._registerAckCallback(e,r),s.id=e}const r=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!r||!this.connected)||(this.connected?(this.notifyOutgoingListeners(s),this.packet(s)):this.sendBuffer.push(s)),this.flags={},this}_registerAckCallback(e,t){const s=this.flags.timeout;if(void 0===s)return void(this.acks[e]=t);const r=this.io.setTimeoutFn((()=>{delete this.acks[e];for(let t=0;t{this.io.clearTimeoutFn(r),t.apply(this,[null,...e])}}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){"function"==typeof this.auth?this.auth((e=>{this.packet({type:As.CONNECT,data:e})})):this.packet({type:As.CONNECT,data:this.auth})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case As.CONNECT:if(e.data&&e.data.sid){const t=e.data.sid;this.onconnect(t)}else 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 As.EVENT:case As.BINARY_EVENT:this.onevent(e);break;case As.ACK:case As.BINARY_ACK:this.onack(e);break;case As.DISCONNECT:this.ondisconnect();break;case As.CONNECT_ERROR:this.destroy();const t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}onevent(e){const t=e.data||[];null!=e.id&&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)}ack(e){const t=this;let s=!1;return function(...r){s||(s=!0,t.packet({type:As.ACK,id:e,data:r}))}}onack(e){const t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}onconnect(e){this.id=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect")}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:As.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;s0&&e.jitter<=1?e.jitter:0,this.attempts=0}js.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),s=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-s:e+s}return 0|Math.min(e,this.max)},js.prototype.reset=function(){this.attempts=0},js.prototype.setMin=function(e){this.ms=e},js.prototype.setMax=function(e){this.max=e},js.prototype.setJitter=function(e){this.jitter=e};class Fs extends P{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,j(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(s=t.randomizationFactor)&&void 0!==s?s:.5),this.backoff=new js({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const r=t.parser||Is;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Es(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const r=Ds(t,"open",(function(){s.onopen(),e&&e()})),i=Ds(t,"error",(t=>{s.cleanup(),s._readyState="closed",this.emitReserved("error",t),e?e(t):s.maybeReconnectOnOpen()}));if(!1!==this._timeout){const e=this._timeout;0===e&&r();const s=this.setTimeoutFn((()=>{r(),t.close(),t.emit("error",new Error("timeout"))}),e);this.opts.autoUnref&&s.unref(),this.subs.push((function(){clearTimeout(s)}))}return this.subs.push(r),this.subs.push(i),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(Ds(e,"ping",this.onping.bind(this)),Ds(e,"data",this.ondata.bind(this)),Ds(e,"error",this.onerror.bind(this)),Ds(e,"close",this.onclose.bind(this)),Ds(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){this.decoder.add(e)}ondecoded(e){this.emitReserved("packet",e)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s||(s=new qs(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const e of t){if(this.nsps[e].active)return}this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;se())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,t){this.cleanup(),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((t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):e.onreconnect()})))}),t);this.opts.autoUnref&&s.unref(),this.subs.push((function(){clearTimeout(s)}))}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const Ms={};function Ws(e,t){"object"==typeof e&&(t=e,e=void 0);const s=function(e,t="",s){let r=e;s=s||"undefined"!=typeof location&&location,null==e&&(e=s.protocol+"//"+s.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?s.protocol+e:s.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==s?s.protocol+"//"+e:"https://"+e),r=vs(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+t,r.href=r.protocol+"://"+i+(s&&s.port===r.port?"":":"+r.port),r}(e,(t=t||{}).path||"/socket.io"),r=s.source,i=s.id,n=s.path,o=Ms[i]&&n in Ms[i].nsps;let a;return t.forceNew||t["force new connection"]||!1===t.multiplex||o?a=new Fs(r,t):(Ms[i]||(Ms[i]=new Fs(r,t)),a=Ms[i]),s.query&&!t.query&&(t.query=s.queryKey),a.socket(s.path,t)}Object.assign(Ws,{Manager:Fs,Socket:qs,io:Ws,connect:Ws});var Vs="e";var $s="jr",Gs="jc";const Hs=process.argv.slice(2),zs=Hs[0],Ys=Hs[1],Ks=Hs.slice(2),Xs={id:Ys,command:Ks},Js=new class{constructor(e,t,s={}){this.url=e,this.job=t,this.mode=Vs,this.buf={},this.buf.e="",this.buf.o="",this.spawn=s.spawn??this.spawn.bind(this),this.report=s.report??this.report.bind(this),this.onProcClose=s.onProcClose??this.onProcClose.bind(this),this.onClose=s.onClose??this.onClose.bind(this)}spawn(){const e=this.job.command,t=e.shift();this.proc=_.default.spawn(t,e),this.proc.stdout.setEncoding("utf8"),this.proc.stderr.setEncoding("utf8"),this.proc.stdout.on("data",(e=>this.report(e.toString(),"o"))),this.proc.stderr.on("data",(e=>this.report(e.toString(),"e"))),this.proc.on("close",this.onProcClose)}runJob(){const e=new Fs(this.url,{query:{mode:this.mode,jobId:this.job.id}});this.socket=e.socket("/"),this.socket.on("connect",this.spawn),this.socket.on("disconnect",this.onClose)}onClose(){console.log("Server disconnected, terminating process."),this.proc.kill("SIGKILL")}onProcClose(e){this.socket.emit(Gs,e),console.log(`Process finished with code ${e}`),this.socket.disconnect()}report(e,t){this.buf[t]+=e,this.buf[t].includes("\n")&&(this.buf[t].endsWith("\n")&&(this.buf[t]=this.buf[t].slice(0,-1)),this.socket.emit($s,this.buf[t]),"e"===t?console.error(`err: ${this.buf[t]}`):console.log(`out: ${this.buf[t]}`),this.buf[t]="")}}(zs,Xs,Ks);Js.runJob(); diff --git a/lib/sockets/clients/Executor.js b/lib/sockets/clients/Executor.js index b1db3ca..181bf6f 100644 --- a/lib/sockets/clients/Executor.js +++ b/lib/sockets/clients/Executor.js @@ -55,7 +55,7 @@ export default class Executor { onClose() { console.log("Server disconnected, terminating process."); - this.proc.kill("SIGINT"); + this.proc.kill("SIGKILL"); } onProcClose(code) { diff --git a/rollup.config.js b/rollup.config.js index 412c6d0..617b7ec 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,7 +3,7 @@ import commonjs from "@rollup/plugin-commonjs"; import { terser } from "rollup-plugin-terser"; export default { - input: "lib/core/executor.js", + input: "lib/jobs/job-executor.js", output: { file: "dist/bundles/qualiteer-executor.js", format: "cjs", diff --git a/tests/assets/suite/runner.js b/tests/assets/suite/runner.js index 458547d..87772ab 100644 --- a/tests/assets/suite/runner.js +++ b/tests/assets/suite/runner.js @@ -5,7 +5,7 @@ import single from "./single.js"; import failing from "./failing.js"; // Constants -const endLiveCount = 2; +const endLiveCount = 5; const reportingUrl = `${process.env.QUALITEER_URL}/api/dev/rabbit/TestResults`; // Pull args const args = process.argv.slice(2); diff --git a/tests/index.js b/tests/index.js index 6b40b3f..cd24216 100644 --- a/tests/index.js +++ b/tests/index.js @@ -18,6 +18,8 @@ const job = { name: "testing", image: "node", }; -await primary.newPipelineJob(job, null, () => + +const launchJob = () => primary.newPipelineJob(job, null, () => console.log("Primary Job Concluded") ); +launchJob();