ssap_app/node_modules/@expo/ws-tunnel/build/index.js

1 line
88 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(()=>{var __webpack_modules__={6110:(e,t,s)=>{t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.storage=localstorage();t.destroy=(()=>{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}let e;return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const s="color: "+this.color;t.splice(1,0,s,"color: inherit");let r=0;let n=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}r++;if(e==="%c"){n=r}}));t.splice(n,0,s)}t.log=console.debug||console.log||(()=>{});function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=s(897)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},897:(e,t,s)=>{function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=s(744);createDebug.destroy=destroy;Object.keys(e).forEach((t=>{createDebug[t]=e[t]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let t=0;for(let s=0;s<e.length;s++){t=(t<<5)-t+e.charCodeAt(s);t|=0}return createDebug.colors[Math.abs(t)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(e){let t;let s=null;let r;let n;function debug(...e){if(!debug.enabled){return}const s=debug;const r=Number(new Date);const n=r-(t||r);s.diff=n;s.prev=t;s.curr=r;t=r;e[0]=createDebug.coerce(e[0]);if(typeof e[0]!=="string"){e.unshift("%O")}let o=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((t,r)=>{if(t==="%%"){return"%"}o++;const n=createDebug.formatters[r];if(typeof n==="function"){const r=e[o];t=n.call(s,r);e.splice(o,1);o--}return t}));createDebug.formatArgs.call(s,e);const i=s.log||createDebug.log;i.apply(s,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(s!==null){return s}if(r!==createDebug.namespaces){r=createDebug.namespaces;n=createDebug.enabled(e)}return n},set:e=>{s=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,t){const s=createDebug(this.namespace+(typeof t==="undefined"?":":t)+e);s.log=this.log;return s}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];const t=(typeof e==="string"?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of t){if(e[0]==="-"){createDebug.skips.push(e.slice(1))}else{createDebug.names.push(e)}}}function matchesTemplate(e,t){let s=0;let r=0;let n=-1;let o=0;while(s<e.length){if(r<t.length&&(t[r]===e[s]||t[r]==="*")){if(t[r]==="*"){n=r;o=s;r++}else{s++;r++}}else if(n!==-1){r=n+1;o++;s=o}else{return false}}while(r<t.length&&t[r]==="*"){r++}return r===t.length}function disable(){const e=[...createDebug.names,...createDebug.skips.map((e=>"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){for(const t of createDebug.skips){if(matchesTemplate(e,t)){return false}}for(const t of createDebug.names){if(matchesTemplate(e,t)){return true}}return false}function coerce(e){if(e instanceof Error){return e.stack||e.message}return e}function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}createDebug.enable(createDebug.load());return createDebug}e.exports=setup},2830:(e,t,s)=>{if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=s(6110)}else{e.exports=s(5108)}},5108:(e,t,s)=>{const r=s(2018);const n=s(9023);t.init=init;t.log=log;t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.destroy=n.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");t.colors=[6,2,3,4,5,1];try{const e=s(1450);if(e&&(e.stderr||e).level>=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const s=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let r=process.env[t];if(/^(yes|on|true|enabled)$/i.test(r)){r=true}else if(/^(no|off|false|disabled)$/i.test(r)){r=false}else if(r==="null"){r=null}else{r=Number(r)}e[s]=r;return e}),{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):r.isatty(process.stderr.fd)}function formatArgs(t){const{namespace:s,useColors:r}=this;if(r){const r=this.color;const n="[3"+(r<8?r:"8;5;"+r);const o=` ${n};1m${s} `;t[0]=o+t[0].split("\n").join("\n"+o);t.push(n+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+s+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(n.formatWithOptions(t.inspectOpts,...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const s=Object.keys(t.inspectOpts);for(let r=0;r<s.length;r++){e.inspectOpts[s[r]]=t.inspectOpts[s[r]]}}e.exports=s(897)(t);const{formatters:o}=e.exports;o.o=function(e){this.inspectOpts.colors=this.useColors;return n.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")};o.O=function(e){this.inspectOpts.colors=this.useColors;return n.inspect(e,this.inspectOpts)}},9802:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=s(7075);var n=s(4708);var o=s(7067);var i=s(3136);var a=s(3429);var c=s(7598);var l=s(8522);var u=s(4573);function _interopNamespaceDefault(e){var t=Object.create(null);if(e){Object.keys(e).forEach((function(s){if("default"!==s){var r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:function(){return e[s]}})}}))}t.default=e;return t}var f=_interopNamespaceDefault(n);var d=_interopNamespaceDefault(o);var h=_interopNamespaceDefault(i);var p=_interopNamespaceDefault(l);var _=_interopNamespaceDefault(u);var y="\r\n";var b="-".repeat(2);var isBlob=e=>{if("object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor){var t=e[Symbol.toStringTag];return t.startsWith("Blob")||t.startsWith("File")}else{return!1}};var getFormHeader=(e,t,s)=>{var r=`${b}${e}${y}`;r+=`Content-Disposition: form-data; name="${t}"`;if(isBlob(s)){r+=`; filename="${s.name??"blob"}"${y}`;r+=`Content-Type: ${s.type||"application/octet-stream"}`}return`${r}${y}${y}`};var getFormFooter=e=>`${b}${e}${b}${y}${y}`;var g=new TextEncoder;var extractBody=e=>{var t=null;var s;var n=null;if(null==e){s=null;n=0}else if("string"==typeof e){var o=g.encode(`${e}`);t="text/plain;charset=UTF-8";n=o.byteLength;s=o}else if((e=>"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&"function"==typeof e.sort&&"URLSearchParams"===e[Symbol.toStringTag])(e)){var i=g.encode(e.toString());s=i;n=i.byteLength;t="application/x-www-form-urlencoded;charset=UTF-8"}else if(isBlob(e)){n=e.size;t=e.type||null;s=e.stream()}else if(e instanceof Uint8Array){s=e;n=e.byteLength}else if(a.isAnyArrayBuffer(e)){var l=new Uint8Array(e);s=l;n=l.byteLength}else if(ArrayBuffer.isView(e)){var u=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);s=u;n=u.byteLength}else if((e=>"object"==typeof e&&"function"==typeof e.getReader&&"function"==typeof e.cancel&&"function"==typeof e.tee)(e)){s=e}else if((e=>"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.set&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.delete&&"function"==typeof e.keys&&"function"==typeof e.values&&"function"==typeof e.entries&&"function"==typeof e.constructor&&"FormData"===e[Symbol.toStringTag])(e)){var f=`formdata-${c.randomBytes(8).toString("hex")}`;t=`multipart/form-data; boundary=${f}`;n=((e,t)=>{var s=Buffer.byteLength(getFormFooter(t));for(var[r,n]of e){s+=Buffer.byteLength(getFormHeader(t,r,n))+(isBlob(n)?n.size:Buffer.byteLength(`${n}`))+2}return s})(e,f);s=r.Readable.from(async function*generatorOfFormData(e,t){var s=new TextEncoder;for(var[r,n]of e){if(isBlob(n)){yield s.encode(getFormHeader(t,r,n));yield*n.stream();yield s.encode(y)}else{yield s.encode(getFormHeader(t,r,n)+n+y)}}yield s.encode(getFormFooter(t))}(e,f))}else if((e=>"function"==typeof e.getBoundary&&"function"==typeof e.hasKnownLength&&"function"==typeof e.getLengthSync&&r.Readable.isReadable(e))(e)){t=`multipart/form-data; boundary=${e.getBoundary()}`;n=e.hasKnownLength()?e.getLengthSync():null;s=e}else if((e=>r.Readable.isReadable(e))(e)){s=e}else if((e=>"function"==typeof e[Symbol.asyncIterator]||"function"==typeof e[Symbol.iterator])(e)){s=r.Readable.from(e)}else{var d=g.encode(`${e}`);t="text/plain;charset=UTF-8";s=d;n=d.byteLength}return{contentLength:n,contentType:t,body:s}};class InflateStream extends r.Transform{constructor(e){super();this._opts=e}_transform(e,t,s){if(!this._inflate){if(0===e.length){s();return}this._inflate=8==(15&e[0])?p.createInflate(this._opts):p.createInflateRaw(this._opts);this._inflate.on("data",this.push.bind(this));this._inflate.on("end",(()=>this.push(null)));this._inflate.on("error",(e=>this.destroy(e)))}this._inflate.write(e,t,s)}_final(e){if(this._inflate){this._inflate.end();this._inflate=void 0}e()}}var m=globalThis.File||_.File;if(void 0===globalThis.File){globalThis.File=m}var v=Blob;var S=URLSearchParams;var w=URL;var k=Request;var C=Response;var E=Headers;var x=FormData;var headersOfRawHeaders=e=>{var t=new Headers;for(var s=0;s<e.length;s+=2){t.set(e[s],e[s+1])}return t};var methodToHttpOption=e=>{switch(e){case"CONNECT":case"TRACE":case"TRACK":throw new TypeError(`Failed to construct 'Request': '${e}' HTTP method is unsupported.`);default:return e?e.toUpperCase():"GET"}};var urlToHttpOptions=e=>{var t=new w(e);switch(t.protocol){case"http:":case"https:":return h.urlToHttpOptions(t);default:throw new TypeError(`URL scheme "${t.protocol}" is not supported.`)}};async function _fetch(e,t){var s=(e=>null!=e&&"object"==typeof e&&"body"in e)(e);var n=s?e.url:e;var o=s?e.body:t?.body||null;var i=s?e.signal:t?.signal||void 0;var a=(e=>{switch(e){case"follow":case"manual":case"error":return e;case void 0:return"follow";default:throw new TypeError(`Request constructor: ${e} is not an accepted type. Expected one of follow, manual, error.`)}})(s?e.redirect:t?.redirect);var c=new w(n);var l=extractBody(o);var u=0;var h=new Headers(t?.headers||(s?e.headers:void 0));var _={...urlToHttpOptions(c),method:methodToHttpOption(s?e.method:t?.method),signal:i};return await new Promise((function _call(e,t){var s=_.method;var n=("https:"===_.protocol?f:d).request(_);n.on("response",(n=>{n.setTimeout(0);var f={status:n.statusCode,statusText:n.statusMessage,headers:headersOfRawHeaders(n.rawHeaders)};if(301===(b=f.status)||302===b||303===b||307===b||308===b){var d=f.headers.get("Location");var y=null!=d?new w(d,c):null;if("error"===a){t(new Error("URI requested responds with a redirect, redirect mode is set to error"));return}else if("manual"===a&&null!==y){f.headers.set("Location",y.toString())}else if("follow"===a&&null!==y){if(++u>20){t(new Error(`maximum redirect reached at: ${c}`));return}else if("http:"!==y.protocol&&"https:"!==y.protocol){t(new Error("URL scheme must be a HTTP(S) scheme"));return}if(303===f.status||(301===f.status||302===f.status)&&"POST"===s){l=extractBody(null);_.method="GET";h.delete("Content-Length")}else if(null!=l.body&&null==l.contentLength){t(new Error("Cannot follow redirect with a streamed body"));return}else{l=extractBody(o)}Object.assign(_,urlToHttpOptions(c=y));return _call(e,t)}}var b;var destroy=e=>{i?.removeEventListener("abort",destroy);if(e){n.destroy(i?.aborted?i.reason:e);t(i?.aborted?i.reason:e)}};i?.addEventListener("abort",destroy);var g=n;var m=f.headers.get("Content-Encoding")?.toLowerCase();if("HEAD"===s||204===f.status||304===f.status){g=null}else if(null!=m){f.headers.set("Content-Encoding",m);g=r.pipeline(g,(e=>{switch(e){case"br":return p.createBrotliDecompress({flush:p.constants.BROTLI_OPERATION_FLUSH,finishFlush:p.constants.BROTLI_OPERATION_FLUSH});case"gzip":case"x-gzip":return p.createGunzip({flush:p.constants.Z_SYNC_FLUSH,finishFlush:p.constants.Z_SYNC_FLUSH});case"deflate":case"x-deflate":return new InflateStream({flush:p.constants.Z_SYNC_FLUSH,finishFlush:p.constants.Z_SYNC_FLUSH});default:return new r.PassThrough}})(m),destroy)}e(function createResponse(e,t,s){var r=new C(e,t);Object.defineProperty(r,"url",{value:s.url});if("default"!==s.type){Object.defineProperty(r,"type",{value:s.type})}if(s.redirected){Object.defineProperty(r,"redirected",{value:s.redirected})}return r}(g,f,{type:"default",url:c.toString(),redirected:u>0}))}));n.on("error",t);if(!h.has("Accept")){h.set("Accept","*/*")}if(l.contentType){h.set("Content-Type",l.contentType)}if(null==l.body&&("POST"===s||"PUT"===s)){h.set("Content-Length","0")}else if(null!=l.body&&null!=l.contentLength){h.set("Content-Length",`${l.contentLength}`)}((e,t)=>{if("function"==typeof e.setHeaders){e.setHeaders(t)}else{for(var[s,r]of t){e.setHeader(s,r)}}})(n,h);if(null==l.body){n.end()}else if(l.body instanceof Uint8Array){n.write(l.body);n.end()}else{var y=l.body instanceof r.Stream?l.body:r.Readable.fromWeb(l.body);r.pipeline(y,n,(e=>{if(e){t(e)}}))}}))}t.Blob=v;t.File=m;t.FormData=x;t.Headers=E;t.Request=k;t.Response=C;t.URL=w;t.URLSearchParams=S;t["default"]=_fetch;t.fetch=_fetch},3813:e=>{"use strict";e.exports=(e,t=process.argv)=>{const s=e.startsWith("-")?"":e.length===1?"-":"--";const r=t.indexOf(s+e);const n=t.indexOf("--");return r!==-1&&(n===-1||r<n)}},744:e=>{var t=1e3;var s=t*60;var r=s*60;var n=r*24;var o=n*7;var i=n*365.25;e.exports=function(e,t){t=t||{};var s=typeof e;if(s==="string"&&e.length>0){return parse(e)}else if(s==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!a){return}var c=parseFloat(a[1]);var l=(a[2]||"ms").toLowerCase();switch(l){case"years":case"year":case"yrs":case"yr":case"y":return c*i;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*n;case"hours":case"hour":case"hrs":case"hr":case"h":return c*r;case"minutes":case"minute":case"mins":case"min":case"m":return c*s;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return undefined}}function fmtShort(e){var o=Math.abs(e);if(o>=n){return Math.round(e/n)+"d"}if(o>=r){return Math.round(e/r)+"h"}if(o>=s){return Math.round(e/s)+"m"}if(o>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var o=Math.abs(e);if(o>=n){return plural(e,o,n,"day")}if(o>=r){return plural(e,o,r,"hour")}if(o>=s){return plural(e,o,s,"minute")}if(o>=t){return plural(e,o,t,"second")}return e+" ms"}function plural(e,t,s,r){var n=t>=s*1.5;return Math.round(e/s)+" "+r+(n?"s":"")}},1450:(e,t,s)=>{"use strict";const r=s(857);const n=s(2018);const o=s(3813);const{env:i}=process;let a;if(o("no-color")||o("no-colors")||o("color=false")||o("color=never")){a=0}else if(o("color")||o("colors")||o("color=true")||o("color=always")){a=1}if("FORCE_COLOR"in i){if(i.FORCE_COLOR==="true"){a=1}else if(i.FORCE_COLOR==="false"){a=0}else{a=i.FORCE_COLOR.length===0?1:Math.min(parseInt(i.FORCE_COLOR,10),3)}}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e,t){if(a===0){return 0}if(o("color=16m")||o("color=full")||o("color=truecolor")){return 3}if(o("color=256")){return 2}if(e&&!t&&a===undefined){return 0}const s=a||0;if(i.TERM==="dumb"){return s}if(process.platform==="win32"){const e=r.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in i){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in i))||i.CI_NAME==="codeship"){return 1}return s}if("TEAMCITY_VERSION"in i){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(i.TEAMCITY_VERSION)?1:0}if(i.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in i){const e=parseInt((i.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(i.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(i.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(i.TERM)){return 1}if("COLORTERM"in i){return 1}return s}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,n.isatty(1))),stderr:translateLevel(supportsColor(true,n.isatty(2)))}},1354:(e,t,s)=>{"use strict";const r=s(6681);r.createWebSocketStream=s(6412);r.Server=s(129);r.Receiver=s(893);r.Sender=s(7389);r.WebSocket=r;r.WebSocketServer=r.Server;e.exports=r},5803:(e,t,s)=>{"use strict";const{EMPTY_BUFFER:r}=s(1791);const n=Buffer[Symbol.species];function concat(e,t){if(e.length===0)return r;if(e.length===1)return e[0];const s=Buffer.allocUnsafe(t);let o=0;for(let t=0;t<e.length;t++){const r=e[t];s.set(r,o);o+=r.length}if(o<t){return new n(s.buffer,s.byteOffset,o)}return s}function _mask(e,t,s,r,n){for(let o=0;o<n;o++){s[r+o]=e[o]^t[o&3]}}function _unmask(e,t){for(let s=0;s<e.length;s++){e[s]^=t[s&3]}}function toArrayBuffer(e){if(e.length===e.buffer.byteLength){return e.buffer}return e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function toBuffer(e){toBuffer.readOnly=true;if(Buffer.isBuffer(e))return e;let t;if(e instanceof ArrayBuffer){t=new n(e)}else if(ArrayBuffer.isView(e)){t=new n(e.buffer,e.byteOffset,e.byteLength)}else{t=Buffer.from(e);toBuffer.readOnly=false}return t}e.exports={concat:concat,mask:_mask,toArrayBuffer:toArrayBuffer,toBuffer:toBuffer,unmask:_unmask};if(!process.env.WS_NO_BUFFER_UTIL){try{const t=s(8327);e.exports.mask=function(e,s,r,n,o){if(o<48)_mask(e,s,r,n,o);else t.mask(e,s,r,n,o)};e.exports.unmask=function(e,s){if(e.length<32)_unmask(e,s);else t.unmask(e,s)}}catch(e){}}},1791:e=>{"use strict";const t=["nodebuffer","arraybuffer","fragments"];const s=typeof Blob!=="undefined";if(s)t.push("blob");e.exports={BINARY_TYPES:t,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:s,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},4634:(e,t,s)=>{"use strict";const{kForOnEventAttribute:r,kListener:n}=s(1791);const o=Symbol("kCode");const i=Symbol("kData");const a=Symbol("kError");const c=Symbol("kMessage");const l=Symbol("kReason");const u=Symbol("kTarget");const f=Symbol("kType");const d=Symbol("kWasClean");class Event{constructor(e){this[u]=null;this[f]=e}get target(){return this[u]}get type(){return this[f]}}Object.defineProperty(Event.prototype,"target",{enumerable:true});Object.defineProperty(Event.prototype,"type",{enumerable:true});class CloseEvent extends Event{constructor(e,t={}){super(e);this[o]=t.code===undefined?0:t.code;this[l]=t.reason===undefined?"":t.reason;this[d]=t.wasClean===undefined?false:t.wasClean}get code(){return this[o]}get reason(){return this[l]}get wasClean(){return this[d]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:true});class ErrorEvent extends Event{constructor(e,t={}){super(e);this[a]=t.error===undefined?null:t.error;this[c]=t.message===undefined?"":t.message}get error(){return this[a]}get message(){return this[c]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:true});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:true});class MessageEvent extends Event{constructor(e,t={}){super(e);this[i]=t.data===undefined?null:t.data}get data(){return this[i]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:true});const h={addEventListener(e,t,s={}){for(const o of this.listeners(e)){if(!s[r]&&o[n]===t&&!o[r]){return}}let o;if(e==="message"){o=function onMessage(e,s){const r=new MessageEvent("message",{data:s?e:e.toString()});r[u]=this;callListener(t,this,r)}}else if(e==="close"){o=function onClose(e,s){const r=new CloseEvent("close",{code:e,reason:s.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[u]=this;callListener(t,this,r)}}else if(e==="error"){o=function onError(e){const s=new ErrorEvent("error",{error:e,message:e.message});s[u]=this;callListener(t,this,s)}}else if(e==="open"){o=function onOpen(){const e=new Event("open");e[u]=this;callListener(t,this,e)}}else{return}o[r]=!!s[r];o[n]=t;if(s.once){this.once(e,o)}else{this.on(e,o)}},removeEventListener(e,t){for(const s of this.listeners(e)){if(s[n]===t&&!s[r]){this.removeListener(e,s);break}}}};e.exports={CloseEvent:CloseEvent,ErrorEvent:ErrorEvent,Event:Event,EventTarget:h,MessageEvent:MessageEvent};function callListener(e,t,s){if(typeof e==="object"&&e.handleEvent){e.handleEvent.call(e,s)}else{e.call(t,s)}}},1335:(e,t,s)=>{"use strict";const{tokenChars:r}=s(6615);function push(e,t,s){if(e[t]===undefined)e[t]=[s];else e[t].push(s)}function parse(e){const t=Object.create(null);let s=Object.create(null);let n=false;let o=false;let i=false;let a;let c;let l=-1;let u=-1;let f=-1;let d=0;for(;d<e.length;d++){u=e.charCodeAt(d);if(a===undefined){if(f===-1&&r[u]===1){if(l===-1)l=d}else if(d!==0&&(u===32||u===9)){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;const r=e.slice(l,f);if(u===44){push(t,r,s);s=Object.create(null)}else{a=r}l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(c===undefined){if(f===-1&&r[u]===1){if(l===-1)l=d}else if(u===32||u===9){if(f===-1&&l!==-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;push(s,e.slice(l,f),true);if(u===44){push(t,a,s);s=Object.create(null);a=undefined}l=f=-1}else if(u===61&&l!==-1&&f===-1){c=e.slice(l,d);l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else{if(o){if(r[u]!==1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(l===-1)l=d;else if(!n)n=true;o=false}else if(i){if(r[u]===1){if(l===-1)l=d}else if(u===34&&l!==-1){i=false;f=d}else if(u===92){o=true}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}else if(u===34&&e.charCodeAt(d-1)===61){i=true}else if(f===-1&&r[u]===1){if(l===-1)l=d}else if(l!==-1&&(u===32||u===9)){if(f===-1)f=d}else if(u===59||u===44){if(l===-1){throw new SyntaxError(`Unexpected character at index ${d}`)}if(f===-1)f=d;let r=e.slice(l,f);if(n){r=r.replace(/\\/g,"");n=false}push(s,c,r);if(u===44){push(t,a,s);s=Object.create(null);a=undefined}c=undefined;l=f=-1}else{throw new SyntaxError(`Unexpected character at index ${d}`)}}}if(l===-1||i||u===32||u===9){throw new SyntaxError("Unexpected end of input")}if(f===-1)f=d;const h=e.slice(l,f);if(a===undefined){push(t,h,s)}else{if(c===undefined){push(s,h,true)}else if(n){push(s,c,h.replace(/\\/g,""))}else{push(s,c,h)}push(t,a,s)}return t}function format(e){return Object.keys(e).map((t=>{let s=e[t];if(!Array.isArray(s))s=[s];return s.map((e=>[t].concat(Object.keys(e).map((t=>{let s=e[t];if(!Array.isArray(s))s=[s];return s.map((e=>e===true?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}e.exports={format:format,parse:parse}},958:e=>{"use strict";const t=Symbol("kDone");const s=Symbol("kRun");class Limiter{constructor(e){this[t]=()=>{this.pending--;this[s]()};this.concurrency=e||Infinity;this.jobs=[];this.pending=0}add(e){this.jobs.push(e);this[s]()}[s](){if(this.pending===this.concurrency)return;if(this.jobs.length){const e=this.jobs.shift();this.pending++;e(this[t])}}}e.exports=Limiter},4376:(e,t,s)=>{"use strict";const r=s(3106);const n=s(5803);const o=s(958);const{kStatusCode:i}=s(1791);const a=Buffer[Symbol.species];const c=Buffer.from([0,0,255,255]);const l=Symbol("permessage-deflate");const u=Symbol("total-length");const f=Symbol("callback");const d=Symbol("buffers");const h=Symbol("error");let p;class PerMessageDeflate{constructor(e,t,s){this._maxPayload=s|0;this._options=e||{};this._threshold=this._options.threshold!==undefined?this._options.threshold:1024;this._isServer=!!t;this._deflate=null;this._inflate=null;this.params=null;if(!p){const e=this._options.concurrencyLimit!==undefined?this._options.concurrencyLimit:10;p=new o(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};if(this._options.serverNoContextTakeover){e.server_no_context_takeover=true}if(this._options.clientNoContextTakeover){e.client_no_context_takeover=true}if(this._options.serverMaxWindowBits){e.server_max_window_bits=this._options.serverMaxWindowBits}if(this._options.clientMaxWindowBits){e.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits==null){e.client_max_window_bits=true}return e}accept(e){e=this.normalizeParams(e);this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e);return this.params}cleanup(){if(this._inflate){this._inflate.close();this._inflate=null}if(this._deflate){const e=this._deflate[f];this._deflate.close();this._deflate=null;if(e){e(new Error("The deflate stream was closed while data was being processed"))}}}acceptAsServer(e){const t=this._options;const s=e.find((e=>{if(t.serverNoContextTakeover===false&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===false||typeof t.serverMaxWindowBits==="number"&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==="number"&&!e.client_max_window_bits){return false}return true}));if(!s){throw new Error("None of the extension offers can be accepted")}if(t.serverNoContextTakeover){s.server_no_context_takeover=true}if(t.clientNoContextTakeover){s.client_no_context_takeover=true}if(typeof t.serverMaxWindowBits==="number"){s.server_max_window_bits=t.serverMaxWindowBits}if(typeof t.clientMaxWindowBits==="number"){s.client_max_window_bits=t.clientMaxWindowBits}else if(s.client_max_window_bits===true||t.clientMaxWindowBits===false){delete s.client_max_window_bits}return s}acceptAsClient(e){const t=e[0];if(this._options.clientNoContextTakeover===false&&t.client_no_context_takeover){throw new Error('Unexpected parameter "client_no_context_takeover"')}if(!t.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number"){t.client_max_window_bits=this._options.clientMaxWindowBits}}else if(this._options.clientMaxWindowBits===false||typeof this._options.clientMaxWindowBits==="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits){throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}return t}normalizeParams(e){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`)}s=s[0];if(t==="client_max_window_bits"){if(s!==true){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(t==="server_max_window_bits"){const e=+s;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}s=e}else if(t==="client_no_context_takeover"||t==="server_no_context_takeover"){if(s!==true){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}}else{throw new Error(`Unknown parameter "${t}"`)}e[t]=s}))}));return e}decompress(e,t,s){p.add((r=>{this._decompress(e,t,((e,t)=>{r();s(e,t)}))}))}compress(e,t,s){p.add((r=>{this._compress(e,t,((e,t)=>{r();s(e,t)}))}))}_decompress(e,t,s){const o=this._isServer?"client":"server";if(!this._inflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t});this._inflate[l]=this;this._inflate[u]=0;this._inflate[d]=[];this._inflate.on("error",inflateOnError);this._inflate.on("data",inflateOnData)}this._inflate[f]=s;this._inflate.write(e);if(t)this._inflate.write(c);this._inflate.flush((()=>{const e=this._inflate[h];if(e){this._inflate.close();this._inflate=null;s(e);return}const r=n.concat(this._inflate[d],this._inflate[u]);if(this._inflate._readableState.endEmitted){this._inflate.close();this._inflate=null}else{this._inflate[u]=0;this._inflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._inflate.reset()}}s(null,r)}))}_compress(e,t,s){const o=this._isServer?"server":"client";if(!this._deflate){const e=`${o}_max_window_bits`;const t=typeof this.params[e]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t});this._deflate[u]=0;this._deflate[d]=[];this._deflate.on("data",deflateOnData)}this._deflate[f]=s;this._deflate.write(e);this._deflate.flush(r.Z_SYNC_FLUSH,(()=>{if(!this._deflate){return}let e=n.concat(this._deflate[d],this._deflate[u]);if(t){e=new a(e.buffer,e.byteOffset,e.length-4)}this._deflate[f]=null;this._deflate[u]=0;this._deflate[d]=[];if(t&&this.params[`${o}_no_context_takeover`]){this._deflate.reset()}s(null,e)}))}}e.exports=PerMessageDeflate;function deflateOnData(e){this[d].push(e);this[u]+=e.length}function inflateOnData(e){this[u]+=e.length;if(this[l]._maxPayload<1||this[u]<=this[l]._maxPayload){this[d].push(e);return}this[h]=new RangeError("Max payload size exceeded");this[h].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";this[h][i]=1009;this.removeListener("data",inflateOnData);this.reset()}function inflateOnError(e){this[l]._inflate=null;e[i]=1007;this[f](e)}},893:(e,t,s)=>{"use strict";const{Writable:r}=s(2203);const n=s(4376);const{BINARY_TYPES:o,EMPTY_BUFFER:i,kStatusCode:a,kWebSocket:c}=s(1791);const{concat:l,toArrayBuffer:u,unmask:f}=s(5803);const{isValidStatusCode:d,isValidUTF8:h}=s(6615);const p=Buffer[Symbol.species];const _=0;const y=1;const b=2;const g=3;const m=4;const v=5;const S=6;class Receiver extends r{constructor(e={}){super();this._allowSynchronousEvents=e.allowSynchronousEvents!==undefined?e.allowSynchronousEvents:true;this._binaryType=e.binaryType||o[0];this._extensions=e.extensions||{};this._isServer=!!e.isServer;this._maxPayload=e.maxPayload|0;this._skipUTF8Validation=!!e.skipUTF8Validation;this[c]=undefined;this._bufferedBytes=0;this._buffers=[];this._compressed=false;this._payloadLength=0;this._mask=undefined;this._fragmented=0;this._masked=false;this._fin=false;this._opcode=0;this._totalPayloadLength=0;this._messageLength=0;this._fragments=[];this._errored=false;this._loop=false;this._state=_}_write(e,t,s){if(this._opcode===8&&this._state==_)return s();this._bufferedBytes+=e.length;this._buffers.push(e);this.startLoop(s)}consume(e){this._bufferedBytes-=e;if(e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){const t=this._buffers[0];this._buffers[0]=new p(t.buffer,t.byteOffset+e,t.length-e);return new p(t.buffer,t.byteOffset,e)}const t=Buffer.allocUnsafe(e);do{const s=this._buffers[0];const r=t.length-e;if(e>=s.length){t.set(this._buffers.shift(),r)}else{t.set(new Uint8Array(s.buffer,s.byteOffset,e),r);this._buffers[0]=new p(s.buffer,s.byteOffset+e,s.length-e)}e-=s.length}while(e>0);return t}startLoop(e){this._loop=true;do{switch(this._state){case _:this.getInfo(e);break;case y:this.getPayloadLength16(e);break;case b:this.getPayloadLength64(e);break;case g:this.getMask();break;case m:this.getData(e);break;case v:case S:this._loop=false;return}}while(this._loop);if(!this._errored)e()}getInfo(e){if(this._bufferedBytes<2){this._loop=false;return}const t=this.consume(2);if((t[0]&48)!==0){const t=this.createError(RangeError,"RSV2 and RSV3 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(t);return}const s=(t[0]&64)===64;if(s&&!this._extensions[n.extensionName]){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}this._fin=(t[0]&128)===128;this._opcode=t[0]&15;this._payloadLength=t[1]&127;if(this._opcode===0){if(s){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(!this._fragmented){const t=this.createError(RangeError,"invalid opcode 0",true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){const t=this.createError(RangeError,"FIN must be set",true,1002,"WS_ERR_EXPECTED_FIN");e(t);return}if(s){const t=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");e(t);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){const t=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(t);return}}else{const t=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");e(t);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;this._masked=(t[1]&128)===128;if(this._isServer){if(!this._masked){const t=this.createError(RangeError,"MASK must be set",true,1002,"WS_ERR_EXPECTED_MASK");e(t);return}}else if(this._masked){const t=this.createError(RangeError,"MASK must be clear",true,1002,"WS_ERR_UNEXPECTED_MASK");e(t);return}if(this._payloadLength===126)this._state=y;else if(this._payloadLength===127)this._state=b;else this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=false;return}this._payloadLength=this.consume(2).readUInt16BE(0);this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=false;return}const t=this.consume(8);const s=t.readUInt32BE(0);if(s>Math.pow(2,53-32)-1){const t=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",false,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(t);return}this._payloadLength=s*Math.pow(2,32)+t.readUInt32BE(4);this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8){this._totalPayloadLength+=this._payloadLength;if(this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){const t=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}}if(this._masked)this._state=g;else this._state=m}getMask(){if(this._bufferedBytes<4){this._loop=false;return}this._mask=this.consume(4);this._state=m}getData(e){let t=i;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=false;return}t=this.consume(this._payloadLength);if(this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0){f(t,this._mask)}}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=v;this.decompress(t,e);return}if(t.length){this._messageLength=this._totalPayloadLength;this._fragments.push(t)}this.dataMessage(e)}decompress(e,t){const s=this._extensions[n.extensionName];s.decompress(e,this._fin,((e,s)=>{if(e)return t(e);if(s.length){this._messageLength+=s.length;if(this._messageLength>this._maxPayload&&this._maxPayload>0){const e=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(e);return}this._fragments.push(s)}this.dataMessage(t);if(this._state===_)this.startLoop(t)}))}dataMessage(e){if(!this._fin){this._state=_;return}const t=this._messageLength;const s=this._fragments;this._totalPayloadLength=0;this._messageLength=0;this._fragmented=0;this._fragments=[];if(this._opcode===2){let r;if(this._binaryType==="nodebuffer"){r=l(s,t)}else if(this._binaryType==="arraybuffer"){r=u(l(s,t))}else if(this._binaryType==="blob"){r=new Blob(s)}else{r=s}if(this._allowSynchronousEvents){this.emit("message",r,true);this._state=_}else{this._state=S;setImmediate((()=>{this.emit("message",r,true);this._state=_;this.startLoop(e)}))}}else{const r=l(s,t);if(!this._skipUTF8Validation&&!h(r)){const t=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");e(t);return}if(this._state===v||this._allowSynchronousEvents){this.emit("message",r,false);this._state=_}else{this._state=S;setImmediate((()=>{this.emit("message",r,false);this._state=_;this.startLoop(e)}))}}}controlMessage(e,t){if(this._opcode===8){if(e.length===0){this._loop=false;this.emit("conclude",1005,i);this.end()}else{const s=e.readUInt16BE(0);if(!d(s)){const e=this.createError(RangeError,`invalid status code ${s}`,true,1002,"WS_ERR_INVALID_CLOSE_CODE");t(e);return}const r=new p(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!h(r)){const e=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");t(e);return}this._loop=false;this.emit("conclude",s,r);this.end()}this._state=_;return}if(this._allowSynchronousEvents){this.emit(this._opcode===9?"ping":"pong",e);this._state=_}else{this._state=S;setImmediate((()=>{this.emit(this._opcode===9?"ping":"pong",e);this._state=_;this.startLoop(t)}))}}createError(e,t,s,r,n){this._loop=false;this._errored=true;const o=new e(s?`Invalid WebSocket frame: ${t}`:t);Error.captureStackTrace(o,this.createError);o.code=n;o[a]=r;return o}}e.exports=Receiver},7389:(e,t,s)=>{"use strict";const{Duplex:r}=s(2203);const{randomFillSync:n}=s(6982);const o=s(4376);const{EMPTY_BUFFER:i,kWebSocket:a,NOOP:c}=s(1791);const{isBlob:l,isValidStatusCode:u}=s(6615);const{mask:f,toBuffer:d}=s(5803);const h=Symbol("kByteLength");const p=Buffer.alloc(4);const _=8*1024;let y;let b=_;const g=0;const m=1;const v=2;class Sender{constructor(e,t,s){this._extensions=t||{};if(s){this._generateMask=s;this._maskBuffer=Buffer.alloc(4)}this._socket=e;this._firstFragment=true;this._compress=false;this._bufferedBytes=0;this._queue=[];this._state=g;this.onerror=c;this[a]=undefined}static frame(e,t){let s;let r=false;let o=2;let i=false;if(t.mask){s=t.maskBuffer||p;if(t.generateMask){t.generateMask(s)}else{if(b===_){if(y===undefined){y=Buffer.alloc(_)}n(y,0,_);b=0}s[0]=y[b++];s[1]=y[b++];s[2]=y[b++];s[3]=y[b++]}i=(s[0]|s[1]|s[2]|s[3])===0;o=6}let a;if(typeof e==="string"){if((!t.mask||i)&&t[h]!==undefined){a=t[h]}else{e=Buffer.from(e);a=e.length}}else{a=e.length;r=t.mask&&t.readOnly&&!i}let c=a;if(a>=65536){o+=8;c=127}else if(a>125){o+=2;c=126}const l=Buffer.allocUnsafe(r?a+o:o);l[0]=t.fin?t.opcode|128:t.opcode;if(t.rsv1)l[0]|=64;l[1]=c;if(c===126){l.writeUInt16BE(a,2)}else if(c===127){l[2]=l[3]=0;l.writeUIntBE(a,4,6)}if(!t.mask)return[l,e];l[1]|=128;l[o-4]=s[0];l[o-3]=s[1];l[o-2]=s[2];l[o-1]=s[3];if(i)return[l,e];if(r){f(e,s,l,o,a);return[l]}f(e,s,e,0,a);return[l,e]}close(e,t,s,r){let n;if(e===undefined){n=i}else if(typeof e!=="number"||!u(e)){throw new TypeError("First argument must be a valid error code number")}else if(t===undefined||!t.length){n=Buffer.allocUnsafe(2);n.writeUInt16BE(e,0)}else{const s=Buffer.byteLength(t);if(s>123){throw new RangeError("The message must not be greater than 123 bytes")}n=Buffer.allocUnsafe(2+s);n.writeUInt16BE(e,0);if(typeof t==="string"){n.write(t,2)}else{n.set(t,2)}}const o={[h]:n.length,fin:true,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:false,rsv1:false};if(this._state!==g){this.enqueue([this.dispatch,n,false,o,r])}else{this.sendFrame(Sender.frame(n,o),r)}}ping(e,t,s){let r;let n;if(typeof e==="string"){r=Buffer.byteLength(e);n=false}else if(l(e)){r=e.size;n=false}else{e=d(e);r=e.length;n=d.readOnly}if(r>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:r,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:false};if(l(e)){if(this._state!==g){this.enqueue([this.getBlobData,e,false,o,s])}else{this.getBlobData(e,false,o,s)}}else if(this._state!==g){this.enqueue([this.dispatch,e,false,o,s])}else{this.sendFrame(Sender.frame(e,o),s)}}pong(e,t,s){let r;let n;if(typeof e==="string"){r=Buffer.byteLength(e);n=false}else if(l(e)){r=e.size;n=false}else{e=d(e);r=e.length;n=d.readOnly}if(r>125){throw new RangeError("The data size must not be greater than 125 bytes")}const o={[h]:r,fin:true,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:false};if(l(e)){if(this._state!==g){this.enqueue([this.getBlobData,e,false,o,s])}else{this.getBlobData(e,false,o,s)}}else if(this._state!==g){this.enqueue([this.dispatch,e,false,o,s])}else{this.sendFrame(Sender.frame(e,o),s)}}send(e,t,s){const r=this._extensions[o.extensionName];let n=t.binary?2:1;let i=t.compress;let a;let c;if(typeof e==="string"){a=Buffer.byteLength(e);c=false}else if(l(e)){a=e.size;c=false}else{e=d(e);a=e.length;c=d.readOnly}if(this._firstFragment){this._firstFragment=false;if(i&&r&&r.params[r._isServer?"server_no_context_takeover":"client_no_context_takeover"]){i=a>=r._threshold}this._compress=i}else{i=false;n=0}if(t.fin)this._firstFragment=true;const u={[h]:a,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:i};if(l(e)){if(this._state!==g){this.enqueue([this.getBlobData,e,this._compress,u,s])}else{this.getBlobData(e,this._compress,u,s)}}else if(this._state!==g){this.enqueue([this.dispatch,e,this._compress,u,s])}else{this.dispatch(e,this._compress,u,s)}}getBlobData(e,t,s,r){this._bufferedBytes+=s[h];this._state=v;e.arrayBuffer().then((e=>{if(this._socket.destroyed){const e=new Error("The socket was closed while the blob was being read");process.nextTick(callCallbacks,this,e,r);return}this._bufferedBytes-=s[h];const n=d(e);if(!t){this._state=g;this.sendFrame(Sender.frame(n,s),r);this.dequeue()}else{this.dispatch(n,t,s,r)}})).catch((e=>{process.nextTick(onError,this,e,r)}))}dispatch(e,t,s,r){if(!t){this.sendFrame(Sender.frame(e,s),r);return}const n=this._extensions[o.extensionName];this._bufferedBytes+=s[h];this._state=m;n.compress(e,s.fin,((e,t)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");callCallbacks(this,e,r);return}this._bufferedBytes-=s[h];this._state=g;s.readOnly=false;this.sendFrame(Sender.frame(t,s),r);this.dequeue()}))}dequeue(){while(this._state===g&&this._queue.length){const e=this._queue.shift();this._bufferedBytes-=e[3][h];Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][h];this._queue.push(e)}sendFrame(e,t){if(e.length===2){this._socket.cork();this._socket.write(e[0]);this._socket.write(e[1],t);this._socket.uncork()}else{this._socket.write(e[0],t)}}}e.exports=Sender;function callCallbacks(e,t,s){if(typeof s==="function")s(t);for(let s=0;s<e._queue.length;s++){const r=e._queue[s];const n=r[r.length-1];if(typeof n==="function")n(t)}}function onError(e,t,s){callCallbacks(e,t,s);e.onerror(t)}},6412:(e,t,s)=>{"use strict";const{Duplex:r}=s(2203);function emitClose(e){e.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished){this.destroy()}}function duplexOnError(e){this.removeListener("error",duplexOnError);this.destroy();if(this.listenerCount("error")===0){this.emit("error",e)}}function createWebSocketStream(e,t){let s=true;const n=new r({...t,autoDestroy:false,emitClose:false,objectMode:false,writableObjectMode:false});e.on("message",(function message(t,s){const r=!s&&n._readableState.objectMode?t.toString():t;if(!n.push(r))e.pause()}));e.once("error",(function error(e){if(n.destroyed)return;s=false;n.destroy(e)}));e.once("close",(function close(){if(n.destroyed)return;n.push(null)}));n._destroy=function(t,r){if(e.readyState===e.CLOSED){r(t);process.nextTick(emitClose,n);return}let o=false;e.once("error",(function error(e){o=true;r(e)}));e.once("close",(function close(){if(!o)r(t);process.nextTick(emitClose,n)}));if(s)e.terminate()};n._final=function(t){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._final(t)}));return}if(e._socket===null)return;if(e._socket._writableState.finished){t();if(n._readableState.endEmitted)n.destroy()}else{e._socket.once("finish",(function finish(){t()}));e.close()}};n._read=function(){if(e.isPaused)e.resume()};n._write=function(t,s,r){if(e.readyState===e.CONNECTING){e.once("open",(function open(){n._write(t,s,r)}));return}e.send(t,r)};n.on("end",duplexOnEnd);n.on("error",duplexOnError);return n}e.exports=createWebSocketStream},3332:(e,t,s)=>{"use strict";const{tokenChars:r}=s(6615);function parse(e){const t=new Set;let s=-1;let n=-1;let o=0;for(o;o<e.length;o++){const i=e.charCodeAt(o);if(n===-1&&r[i]===1){if(s===-1)s=o}else if(o!==0&&(i===32||i===9)){if(n===-1&&s!==-1)n=o}else if(i===44){if(s===-1){throw new SyntaxError(`Unexpected character at index ${o}`)}if(n===-1)n=o;const r=e.slice(s,n);if(t.has(r)){throw new SyntaxError(`The "${r}" subprotocol is duplicated`)}t.add(r);s=n=-1}else{throw new SyntaxError(`Unexpected character at index ${o}`)}}if(s===-1||n!==-1){throw new SyntaxError("Unexpected end of input")}const i=e.slice(s,o);if(t.has(i)){throw new SyntaxError(`The "${i}" subprotocol is duplicated`)}t.add(i);return t}e.exports={parse:parse}},6615:(e,t,s)=>{"use strict";const{isUtf8:r}=s(181);const{hasBlob:n}=s(1791);const o=[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 isValidStatusCode(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function _isValidUTF8(e){const t=e.length;let s=0;while(s<t){if((e[s]&128)===0){s++}else if((e[s]&224)===192){if(s+1===t||(e[s+1]&192)!==128||(e[s]&254)===192){return false}s+=2}else if((e[s]&240)===224){if(s+2>=t||(e[s+1]&192)!==128||(e[s+2]&192)!==128||e[s]===224&&(e[s+1]&224)===128||e[s]===237&&(e[s+1]&224)===160){return false}s+=3}else if((e[s]&248)===240){if(s+3>=t||(e[s+1]&192)!==128||(e[s+2]&192)!==128||(e[s+3]&192)!==128||e[s]===240&&(e[s+1]&240)===128||e[s]===244&&e[s+1]>143||e[s]>244){return false}s+=4}else{return false}}return true}function isBlob(e){return n&&typeof e==="object"&&typeof e.arrayBuffer==="function"&&typeof e.type==="string"&&typeof e.stream==="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}e.exports={isBlob:isBlob,isValidStatusCode:isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars:o};if(r){e.exports.isValidUTF8=function(e){return e.length<24?_isValidUTF8(e):r(e)}}else if(!process.env.WS_NO_UTF_8_VALIDATE){try{const t=s(2414);e.exports.isValidUTF8=function(e){return e.length<32?_isValidUTF8(e):t(e)}}catch(e){}}},129:(e,t,s)=>{"use strict";const r=s(4434);const n=s(8611);const{Duplex:o}=s(2203);const{createHash:i}=s(6982);const a=s(1335);const c=s(4376);const l=s(3332);const u=s(6681);const{GUID:f,kWebSocket:d}=s(1791);const h=/^[+/0-9A-Za-z]{22}==$/;const p=0;const _=1;const y=2;class WebSocketServer extends r{constructor(e,t){super();e={allowSynchronousEvents:true,autoPong:true,maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:false,handleProtocols:null,clientTracking:true,verifyClient:null,noServer:false,backlog:null,server:null,host:null,path:null,port:null,WebSocket:u,...e};if(e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer){throw new TypeError('One and only one of the "port", "server", or "noServer" options '+"must be specified")}if(e.port!=null){this._server=n.createServer(((e,t)=>{const s=n.STATUS_CODES[426];t.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"});t.end(s)}));this._server.listen(e.port,e.host,e.backlog,t)}else if(e.server){this._server=e.server}if(this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,s,r)=>{this.handleUpgrade(t,s,r,e)}})}if(e.perMessageDeflate===true)e.perMessageDeflate={};if(e.clientTracking){this.clients=new Set;this._shouldEmitClose=false}this.options=e;this._state=p}address(){if(this.options.noServer){throw new Error('The server is operating in "noServer" mode')}if(!this._server)return null;return this._server.address()}close(e){if(this._state===y){if(e){this.once("close",(()=>{e(new Error("The server is not running"))}))}process.nextTick(emitClose,this);return}if(e)this.once("close",e);if(this._state===_)return;this._state=_;if(this.options.noServer||this.options.server){if(this._server){this._removeListeners();this._removeListeners=this._server=null}if(this.clients){if(!this.clients.size){process.nextTick(emitClose,this)}else{this._shouldEmitClose=true}}else{process.nextTick(emitClose,this)}}else{const e=this._server;this._removeListeners();this._removeListeners=this._server=null;e.close((()=>{emitClose(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");const s=t!==-1?e.url.slice(0,t):e.url;if(s!==this.options.path)return false}return true}handleUpgrade(e,t,s,r){t.on("error",socketOnError);const n=e.headers["sec-websocket-key"];const o=e.headers.upgrade;const i=+e.headers["sec-websocket-version"];if(e.method!=="GET"){const s="Invalid HTTP method";abortHandshakeOrEmitwsClientError(this,e,t,405,s);return}if(o===undefined||o.toLowerCase()!=="websocket"){const s="Invalid Upgrade header";abortHandshakeOrEmitwsClientError(this,e,t,400,s);return}if(n===undefined||!h.test(n)){const s="Missing or invalid Sec-WebSocket-Key header";abortHandshakeOrEmitwsClientError(this,e,t,400,s);return}if(i!==8&&i!==13){const s="Missing or invalid Sec-WebSocket-Version header";abortHandshakeOrEmitwsClientError(this,e,t,400,s);return}if(!this.shouldHandle(e)){abortHandshake(t,400);return}const u=e.headers["sec-websocket-protocol"];let f=new Set;if(u!==undefined){try{f=l.parse(u)}catch(s){const r="Invalid Sec-WebSocket-Protocol header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}}const d=e.headers["sec-websocket-extensions"];const p={};if(this.options.perMessageDeflate&&d!==undefined){const s=new c(this.options.perMessageDeflate,true,this.options.maxPayload);try{const e=a.parse(d);if(e[c.extensionName]){s.accept(e[c.extensionName]);p[c.extensionName]=s}}catch(s){const r="Invalid or unacceptable Sec-WebSocket-Extensions header";abortHandshakeOrEmitwsClientError(this,e,t,400,r);return}}if(this.options.verifyClient){const o={origin:e.headers[`${i===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(o,((o,i,a,c)=>{if(!o){return abortHandshake(t,i||401,a,c)}this.completeUpgrade(p,n,f,e,t,s,r)}));return}if(!this.options.verifyClient(o))return abortHandshake(t,401)}this.completeUpgrade(p,n,f,e,t,s,r)}completeUpgrade(e,t,s,r,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[d]){throw new Error("server.handleUpgrade() was called more than once with the same "+"socket, possibly due to a misconfiguration")}if(this._state>p)return abortHandshake(n,503);const u=i("sha1").update(t+f).digest("base64");const h=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${u}`];const _=new this.options.WebSocket(null,undefined,this.options);if(s.size){const e=this.options.handleProtocols?this.options.handleProtocols(s,r):s.values().next().value;if(e){h.push(`Sec-WebSocket-Protocol: ${e}`);_._protocol=e}}if(e[c.extensionName]){const t=e[c.extensionName].params;const s=a.format({[c.extensionName]:[t]});h.push(`Sec-WebSocket-Extensions: ${s}`);_._extensions=e}this.emit("headers",h,r);n.write(h.concat("\r\n").join("\r\n"));n.removeListener("error",socketOnError);_.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation});if(this.clients){this.clients.add(_);_.on("close",(()=>{this.clients.delete(_);if(this._shouldEmitClose&&!this.clients.size){process.nextTick(emitClose,this)}}))}l(_,r)}}e.exports=WebSocketServer;function addListeners(e,t){for(const s of Object.keys(t))e.on(s,t[s]);return function removeListeners(){for(const s of Object.keys(t)){e.removeListener(s,t[s])}}}function emitClose(e){e._state=y;e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,t,s,r){s=s||n.STATUS_CODES[t];r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...r};e.once("finish",e.destroy);e.end(`HTTP/1.1 ${t} ${n.STATUS_CODES[t]}\r\n`+Object.keys(r).map((e=>`${e}: ${r[e]}`)).join("\r\n")+"\r\n\r\n"+s)}function abortHandshakeOrEmitwsClientError(e,t,s,r,n){if(e.listenerCount("wsClientError")){const r=new Error(n);Error.captureStackTrace(r,abortHandshakeOrEmitwsClientError);e.emit("wsClientError",r,s,t)}else{abortHandshake(s,r,n)}}},6681:(e,t,s)=>{"use strict";const r=s(4434);const n=s(5692);const o=s(8611);const i=s(9278);const a=s(4756);const{randomBytes:c,createHash:l}=s(6982);const{Duplex:u,Readable:f}=s(2203);const{URL:d}=s(7016);const h=s(4376);const p=s(893);const _=s(7389);const{isBlob:y}=s(6615);const{BINARY_TYPES:b,EMPTY_BUFFER:g,GUID:m,kForOnEventAttribute:v,kListener:S,kStatusCode:w,kWebSocket:k,NOOP:C}=s(1791);const{EventTarget:{addEventListener:E,removeEventListener:x}}=s(4634);const{format:O,parse:T}=s(1335);const{toBuffer:L}=s(5803);const R=30*1e3;const P=Symbol("kAborted");const M=[8,13];const D=["CONNECTING","OPEN","CLOSING","CLOSED"];const B=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends r{constructor(e,t,s){super();this._binaryType=b[0];this._closeCode=1006;this._closeFrameReceived=false;this._closeFrameSent=false;this._closeMessage=g;this._closeTimer=null;this._errorEmitted=false;this._extensions={};this._paused=false;this._protocol="";this._readyState=WebSocket.CONNECTING;this._receiver=null;this._sender=null;this._socket=null;if(e!==null){this._bufferedAmount=0;this._isServer=false;this._redirects=0;if(t===undefined){t=[]}else if(!Array.isArray(t)){if(typeof t==="object"&&t!==null){s=t;t=[]}else{t=[t]}}initAsClient(this,e,t,s)}else{this._autoPong=s.autoPong;this._isServer=true}}get binaryType(){return this._binaryType}set binaryType(e){if(!b.includes(e))return;this._binaryType=e;if(this._receiver)this._receiver._binaryType=e}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}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 p({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation});const n=new _(e,this._extensions,s.generateMask);this._receiver=r;this._sender=n;this._socket=e;r[k]=this;n[k]=this;e[k]=this;r.on("conclude",receiverOnConclude);r.on("drain",receiverOnDrain);r.on("error",receiverOnError);r.on("message",receiverOnMessage);r.on("ping",receiverOnPing);r.on("pong",receiverOnPong);n.onerror=senderOnError;if(e.setTimeout)e.setTimeout(0);if(e.setNoDelay)e.setNoDelay();if(t.length>0)e.unshift(t);e.on("close",socketOnClose);e.on("data",socketOnData);e.on("end",socketOnEnd);e.on("error",socketOnError);this._readyState=WebSocket.OPEN;this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[h.extensionName]){this._extensions[h.extensionName].cleanup()}this._receiver.removeAllListeners();this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)){this._socket.end()}return}this._readyState=WebSocket.CLOSING;this._sender.close(e,t,!this._isServer,(e=>{if(e)return;this._closeFrameSent=true;if(this._closeFrameReceived||this._receiver._writableState.errorEmitted){this._socket.end()}}));setCloseTimer(this)}pause(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=true;this._socket.pause()}ping(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){s=e;e=t=undefined}else if(typeof t==="function"){s=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}if(t===undefined)t=!this._isServer;this._sender.ping(e||g,t,s)}pong(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){s=e;e=t=undefined}else if(typeof t==="function"){s=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}if(t===undefined)t=!this._isServer;this._sender.pong(e||g,t,s)}resume(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=false;if(!this._receiver._writableState.needDrain)this._socket.resume()}send(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof t==="function"){s=t;t={}}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}const r={binary:typeof e!=="string",mask:!this._isServer,compress:true,fin:true,...t};if(!this._extensions[h.extensionName]){r.compress=false}this._sender.send(e||g,r,s)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";abortHandshake(this,this._req,e);return}if(this._socket){this._readyState=WebSocket.CLOSING;this._socket.destroy()}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:true,value:D.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:true,value:D.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:true,value:D.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:true,value:D.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:true,value:D.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:true,value:D.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:true,value:D.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:true,value:D.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:true})}));["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:true,get(){for(const t of this.listeners(e)){if(t[v])return t[S]}return null},set(t){for(const t of this.listeners(e)){if(t[v]){this.removeListener(e,t);break}}if(typeof t!=="function")return;this.addEventListener(e,t,{[v]:true})}})}));WebSocket.prototype.addEventListener=E;WebSocket.prototype.removeEventListener=x;e.exports=WebSocket;function initAsClient(e,t,s,r){const i={allowSynchronousEvents:true,autoPong:true,protocolVersion:M[1],maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:true,followRedirects:false,maxRedirects:10,...r,socketPath:undefined,hostname:undefined,protocol:undefined,timeout:undefined,method:"GET",host:undefined,path:undefined,port:undefined};e._autoPong=i.autoPong;if(!M.includes(i.protocolVersion)){throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} `+`(supported versions: ${M.join(", ")})`)}let a;if(t instanceof d){a=t}else{try{a=new d(t)}catch(e){throw new SyntaxError(`Invalid URL: ${t}`)}}if(a.protocol==="http:"){a.protocol="ws:"}else if(a.protocol==="https:"){a.protocol="wss:"}e._url=a.href;const u=a.protocol==="wss:";const f=a.protocol==="ws+unix:";let p;if(a.protocol!=="ws:"&&!u&&!f){p='The URL\'s protocol must be one of "ws:", "wss:", '+'"http:", "https", or "ws+unix:"'}else if(f&&!a.pathname){p="The URL's pathname is empty"}else if(a.hash){p="The URL contains a fragment identifier"}if(p){const t=new SyntaxError(p);if(e._redirects===0){throw t}else{emitErrorAndClose(e,t);return}}const _=u?443:80;const y=c(16).toString("base64");const b=u?n.request:o.request;const g=new Set;let v;i.createConnection=i.createConnection||(u?tlsConnect:netConnect);i.defaultPort=i.defaultPort||_;i.port=a.port||_;i.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname;i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":y,Connection:"Upgrade",Upgrade:"websocket"};i.path=a.pathname+a.search;i.timeout=i.handshakeTimeout;if(i.perMessageDeflate){v=new h(i.perMessageDeflate!==true?i.perMessageDeflate:{},false,i.maxPayload);i.headers["Sec-WebSocket-Extensions"]=O({[h.extensionName]:v.offer()})}if(s.length){for(const e of s){if(typeof e!=="string"||!B.test(e)||g.has(e)){throw new SyntaxError("An invalid or duplicated subprotocol was specified")}g.add(e)}i.headers["Sec-WebSocket-Protocol"]=s.join(",")}if(i.origin){if(i.protocolVersion<13){i.headers["Sec-WebSocket-Origin"]=i.origin}else{i.headers.Origin=i.origin}}if(a.username||a.password){i.auth=`${a.username}:${a.password}`}if(f){const e=i.path.split(":");i.socketPath=e[0];i.path=e[1]}let S;if(i.followRedirects){if(e._redirects===0){e._originalIpc=f;e._originalSecure=u;e._originalHostOrSocketPath=f?i.socketPath:a.host;const t=r&&r.headers;r={...r,headers:{}};if(t){for(const[e,s]of Object.entries(t)){r.headers[e.toLowerCase()]=s}}}else if(e.listenerCount("redirect")===0){const t=f?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:false:e._originalIpc?false:a.host===e._originalHostOrSocketPath;if(!t||e._originalSecure&&!u){delete i.headers.authorization;delete i.headers.cookie;if(!t)delete i.headers.host;i.auth=undefined}}if(i.auth&&!r.headers.authorization){r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")}S=e._req=b(i);if(e._redirects){e.emit("redirect",e.url,S)}}else{S=e._req=b(i)}if(i.timeout){S.on("timeout",(()=>{abortHandshake(e,S,"Opening handshake has timed out")}))}S.on("error",(t=>{if(S===null||S[P])return;S=e._req=null;emitErrorAndClose(e,t)}));S.on("response",(n=>{const o=n.headers.location;const a=n.statusCode;if(o&&i.followRedirects&&a>=300&&a<400){if(++e._redirects>i.maxRedirects){abortHandshake(e,S,"Maximum redirects exceeded");return}S.abort();let n;try{n=new d(o,t)}catch(t){const s=new SyntaxError(`Invalid URL: ${o}`);emitErrorAndClose(e,s);return}initAsClient(e,n,s,r)}else if(!e.emit("unexpected-response",S,n)){abortHandshake(e,S,`Unexpected server response: ${n.statusCode}`)}}));S.on("upgrade",((t,s,r)=>{e.emit("upgrade",t);if(e.readyState!==WebSocket.CONNECTING)return;S=e._req=null;const n=t.headers.upgrade;if(n===undefined||n.toLowerCase()!=="websocket"){abortHandshake(e,s,"Invalid Upgrade header");return}const o=l("sha1").update(y+m).digest("base64");if(t.headers["sec-websocket-accept"]!==o){abortHandshake(e,s,"Invalid Sec-WebSocket-Accept header");return}const a=t.headers["sec-websocket-protocol"];let c;if(a!==undefined){if(!g.size){c="Server sent a subprotocol but none was requested"}else if(!g.has(a)){c="Server sent an invalid subprotocol"}}else if(g.size){c="Server sent no subprotocol"}if(c){abortHandshake(e,s,c);return}if(a)e._protocol=a;const u=t.headers["sec-websocket-extensions"];if(u!==undefined){if(!v){const t="Server sent a Sec-WebSocket-Extensions header but no extension "+"was requested";abortHandshake(e,s,t);return}let t;try{t=T(u)}catch(t){const r="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,s,r);return}const r=Object.keys(t);if(r.length!==1||r[0]!==h.extensionName){const t="Server indicated an extension that was not requested";abortHandshake(e,s,t);return}try{v.accept(t[h.extensionName])}catch(t){const r="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,s,r);return}e._extensions[h.extensionName]=v}e.setSocket(s,r,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}));if(i.finishRequest){i.finishRequest(S,e)}else{S.end()}}function emitErrorAndClose(e,t){e._readyState=WebSocket.CLOSING;e._errorEmitted=true;e.emit("error",t);e.emitClose()}function netConnect(e){e.path=e.socketPath;return i.connect(e)}function tlsConnect(e){e.path=undefined;if(!e.servername&&e.servername!==""){e.servername=i.isIP(e.host)?"":e.host}return a.connect(e)}function abortHandshake(e,t,s){e._readyState=WebSocket.CLOSING;const r=new Error(s);Error.captureStackTrace(r,abortHandshake);if(t.setHeader){t[P]=true;t.abort();if(t.socket&&!t.socket.destroyed){t.socket.destroy()}process.nextTick(emitErrorAndClose,e,r)}else{t.destroy(r);t.once("error",e.emit.bind(e,"error"));t.once("close",e.emitClose.bind(e))}}function sendAfterClose(e,t,s){if(t){const s=y(t)?t.size:L(t).length;if(e._socket)e._sender._bufferedBytes+=s;else e._bufferedAmount+=s}if(s){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${D[e.readyState]})`);process.nextTick(s,t)}}function receiverOnConclude(e,t){const s=this[k];s._closeFrameReceived=true;s._closeMessage=t;s._closeCode=e;if(s._socket[k]===undefined)return;s._socket.removeListener("data",socketOnData);process.nextTick(resume,s._socket);if(e===1005)s.close();else s.close(e,t)}function receiverOnDrain(){const e=this[k];if(!e.isPaused)e._socket.resume()}function receiverOnError(e){const t=this[k];if(t._socket[k]!==undefined){t._socket.removeListener("data",socketOnData);process.nextTick(resume,t._socket);t.close(e[w])}if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function receiverOnFinish(){this[k].emitClose()}function receiverOnMessage(e,t){this[k].emit("message",e,t)}function receiverOnPing(e){const t=this[k];if(t._autoPong)t.pong(e,!this._isServer,C);t.emit("ping",e)}function receiverOnPong(e){this[k].emit("pong",e)}function resume(e){e.resume()}function senderOnError(e){const t=this[k];if(t.readyState===WebSocket.CLOSED)return;if(t.readyState===WebSocket.OPEN){t._readyState=WebSocket.CLOSING;setCloseTimer(t)}this._socket.end();if(!t._errorEmitted){t._errorEmitted=true;t.emit("error",e)}}function setCloseTimer(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),R)}function socketOnClose(){const e=this[k];this.removeListener("close",socketOnClose);this.removeListener("data",socketOnData);this.removeListener("end",socketOnEnd);e._readyState=WebSocket.CLOSING;let t;if(!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&(t=e._socket.read())!==null){e._receiver.write(t)}e._receiver.end();this[k]=undefined;clearTimeout(e._closeTimer);if(e._receiver._writableState.finished||e._receiver._writableState.errorEmitted){e.emitClose()}else{e._receiver.on("error",receiverOnFinish);e._receiver.on("finish",receiverOnFinish)}}function socketOnData(e){if(!this[k]._receiver.write(e)){this.pause()}}function socketOnEnd(){const e=this[k];e._readyState=WebSocket.CLOSING;e._receiver.end();this.end()}function socketOnError(){const e=this[k];this.removeListener("error",socketOnError);this.on("error",C);if(e){e._readyState=WebSocket.CLOSING;this.destroy()}}},6939:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.decodeMessage=void 0;const r=s(2773);const n=s(785);const o=new TextDecoder;const i=new Uint8Array(0);let a=i;let c=0;const decodeRequestMethod=e=>{switch(e){case 1:return"GET";case 2:return"HEAD";case 3:return"POST";case 4:return"PUT";case 5:return"PATCH";case 6:return"DELETE";case 7:return"OPTIONS"}};const readUint8=()=>{const e=a[c];c+=4;return e};const readSmi=()=>{const e=a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3];c+=4;return e};const readString=()=>{c+=(0,n.alignBytes)(c);let e=c;for(;e<a.byteLength&&a[e]!==0;e++);const t=o.decode(a.slice(c,e));c=e+1;return t};const readHeaders=()=>{let e=c+=(0,n.alignBytes)(c);let t=0;const s=new Headers;while(e<a.byteLength&&a[e]!==0){for(t=e;t<a.byteLength&&a[t]!==0;t++);const r=o.decode(a.slice(e,t));e=t+1;if(e<a.byteLength){for(t=e;t<a.byteLength&&a[t]!==0;t++);const n=o.decode(a.slice(e,t));s.set(r,n);e=t+1}}c=t+1;return s};const readRestString=()=>{c+=(0,n.alignBytes)(c);if(c>=a.byteLength){return null}else{const e=o.decode(a.slice(c));c=a.byteLength;return e}};const readRestBytes=()=>{c+=(0,n.alignBytes)(c);if(c>=a.byteLength){return null}else{const e=a.slice(c);c=a.byteLength;return e}};const readRequestMessage=e=>({type:r.MessageType.Request,id:e,method:decodeRequestMethod(readUint8()),hasContent:readUint8()!==0,url:readString(),headers:readHeaders()});const readRequestAbortMessage=e=>({type:r.MessageType.RequestAbort,id:e,errored:readUint8()!==0});const readRequestBodyChunkMessage=e=>({type:r.MessageType.RequestBodyChunk,id:e,end:readUint8()!==0,data:readRestBytes()});const readResponseMessage=e=>({type:r.MessageType.Response,id:e,status:readSmi(),hasContent:readUint8()!==0,headers:readHeaders()});const readResponseAbortMessage=e=>({type:r.MessageType.ResponseAbort,id:e,errored:readUint8()!==0});const readResponseBodyChunkMessage=e=>({type:r.MessageType.ResponseBodyChunk,id:e,end:readUint8()!==0,data:readRestBytes()});const readWebSocketConnectMessage=e=>({type:r.MessageType.WebSocketConnect,id:e,url:readString()});const readWebSocketMessageMessage=e=>({type:r.MessageType.WebSocketMessage,id:e,data:readUint8()!==0?readRestString():readRestBytes()});const readWebSocketCloseMessage=e=>({type:r.MessageType.WebSocketClose,id:e});const readMessage=()=>{const e=readUint8();const t=readSmi();switch(e){case r.MessageType.Request:return readRequestMessage(t);case r.MessageType.RequestAbort:return readRequestAbortMessage(t);case r.MessageType.RequestBodyChunk:return readRequestBodyChunkMessage(t);case r.MessageType.Response:return readResponseMessage(t);case r.MessageType.ResponseAbort:return readResponseAbortMessage(t);case r.MessageType.ResponseBodyChunk:return readResponseBodyChunkMessage(t);case r.MessageType.WebSocketConnect:return readWebSocketConnectMessage(t);case r.MessageType.WebSocketMessage:return readWebSocketMessageMessage(t);case r.MessageType.WebSocketClose:return readWebSocketCloseMessage(t);default:throw new TypeError(`Received unknown message type: ${e}`)}};const decodeMessage=e=>{c=0;a=e;const t=readMessage();a=i;return t};t.decodeMessage=decodeMessage},4991:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.encodeMessage=void 0;const r=s(2773);const n=s(785);const o=new TextEncoder;const i=new Uint8Array(0);const a="\0";const c=(1<<8)-1;const l=8;let u=i;let f=0;const encodeRequestMethod=e=>{switch(e){case"GET":return 1;case"HEAD":return 2;case"POST":return 3;case"PUT":return 4;case"PATCH":return 5;case"DELETE":return 6;case"OPTIONS":return 7;default:return 1}};const encodeString=e=>o.encode(e+a);const encodeRestString=e=>e.length?o.encode(e):i;const encodeHeaders=e=>{let t="";for(const[s,r]of e)t+=s+a+r+a;return o.encode((t||a)+a)};const writeUint8=e=>{u[f]=e;f+=4};const writeSmi=e=>{u[f]=e>>>24&c;u[f+1]=e>>>16&c;u[f+2]=e>>>8&c;u[f+3]=e&c;f+=4};const writeBytes=e=>{f+=(0,n.alignBytes)(f);u.set(e,f);f+=e.byteLength};const writeRest=e=>{if(e?.byteLength){f+=(0,n.alignBytes)(f);u.set(e,f);f+=e.byteLength}};const writeMessageBase=e=>{writeUint8(e.type);writeSmi(e.id)};const encodeRequestMessage=e=>{const t=encodeRequestMethod(e.method);const s=e.hasContent?1:0;const r=encodeString(e.url);const o=encodeHeaders(e.headers);let a=l;a+=8;a+=(0,n.alignBytes)(a);a+=r.byteLength;a+=(0,n.alignBytes)(a);a+=o.byteLength;u=new Uint8Array(a);f=0;writeMessageBase(e);writeUint8(t);writeUint8(s);writeBytes(r);writeBytes(o);const c=u;u=i;return c};const encodeRequestAbortMessage=e=>{const t=e.errored?1:0;u=new Uint8Array(l+4);f=0;writeMessageBase(e);writeUint8(t);const s=u;u=i;return s};const encodeRequestBodyChunkMessage=e=>{const t=e.end?1:0;let s=l;s+=4;if(e.data?.byteLength){s+=(0,n.alignBytes)(s);s+=e.data.byteLength}u=new Uint8Array(s);f=0;writeMessageBase(e);writeUint8(t);writeRest(e.data);const r=u;u=i;return r};const encodeResponseMessage=e=>{const t=e.status;const s=e.hasContent?1:0;const r=encodeHeaders(e.headers);let o=l;o+=8;o+=(0,n.alignBytes)(o);o+=r.byteLength;u=new Uint8Array(o);f=0;writeMessageBase(e);writeSmi(t);writeUint8(s);writeBytes(r);const a=u;u=i;return a};const encodeResponseAbortMessage=e=>{const t=e.errored?1:0;u=new Uint8Array(l+4);f=0;writeMessageBase(e);writeUint8(t);const s=u;u=i;return s};const encodeResponseBodyChunkMessage=e=>{const t=e.end?1:0;let s=l;s+=4;if(e.data?.byteLength){s+=(0,n.alignBytes)(s);s+=e.data.byteLength}u=new Uint8Array(s);f=0;writeMessageBase(e);writeUint8(t);writeRest(e.data);const r=u;u=i;return r};const encodeWebSocketConnectMessage=e=>{const t=encodeString(e.url);f=0;u=new Uint8Array(l+(0,n.alignBytes)(l)+t.byteLength);writeMessageBase(e);writeBytes(t);const s=u;u=i;return s};const encodeWebSocketMessageMessage=e=>{const t=typeof e.data==="string"?1:0;const s=typeof e.data==="string"?encodeRestString(e.data):e.data;let r=l;r+=4;if(s?.byteLength){r+=(0,n.alignBytes)(r);r+=s.byteLength}u=new Uint8Array(r);f=0;writeMessageBase(e);writeUint8(t);writeRest(s);const o=u;u=i;return o};const encodeWebSocketCloseMessage=e=>{f=0;u=new Uint8Array(l);writeMessageBase(e);const t=u;u=i;return t};const encodeMessage=e=>{switch(e.type){case r.MessageType.Request:return encodeRequestMessage(e);case r.MessageType.RequestAbort:return encodeRequestAbortMessage(e);case r.MessageType.RequestBodyChunk:return encodeRequestBodyChunkMessage(e);case r.MessageType.Response:return encodeResponseMessage(e);case r.MessageType.ResponseAbort:return encodeResponseAbortMessage(e);case r.MessageType.ResponseBodyChunk:return encodeResponseBodyChunkMessage(e);case r.MessageType.WebSocketConnect:return encodeWebSocketConnectMessage(e);case r.MessageType.WebSocketMessage:return encodeWebSocketMessageMessage(e);case r.MessageType.WebSocketClose:return encodeWebSocketCloseMessage(e)}};t.encodeMessage=encodeMessage},1780:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.nextRequestID=void 0;const s=2**32;const phash=(e,t)=>{let s=(t||5381)|0;s=(s<<5)+s+e;return s|0};const nextRequestID=e=>{if(e==null){const e=typeof crypto==="undefined"?(Math.random()*2-1)*s&s-1:crypto.getRandomValues(new Int32Array(1))[0];return phash(e)}else{const t=phash(Date.now()%s);return phash(t,e)}};t.nextRequestID=nextRequestID},9236:function(e,t,s){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,s,r){if(r===undefined)r=s;var n=Object.getOwnPropertyDescriptor(t,s);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[s]}}}Object.defineProperty(e,r,n)}:function(e,t,s,r){if(r===undefined)r=s;e[r]=t[s]});var n=this&&this.__exportStar||function(e,t){for(var s in e)if(s!=="default"&&!Object.prototype.hasOwnProperty.call(t,s))r(t,e,s)};Object.defineProperty(t,"__esModule",{value:true});t.nextRequestID=void 0;n(s(2773),t);n(s(4991),t);n(s(6939),t);n(s(2845),t);var o=s(1780);Object.defineProperty(t,"nextRequestID",{enumerable:true,get:function(){return o.nextRequestID}})},2845:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.bodyToChunks=bodyToChunks;const s=1021*1024;function createChunkStream(){return new TransformStream({transform(e,t){if(e.byteLength<s){t.enqueue(e)}else{for(let r=0;r<e.byteLength;r+=s){t.enqueue(e.slice(r,r+s))}}}})}async function*bodyToChunks(e,t){const s=e.pipeThrough(createChunkStream(),t).getReader();try{let e;do{yield e=await s.read()}while(!e.done)}catch(e){if(t?.signal?.aborted){return}else{throw e}}finally{s.releaseLock()}}},2773:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MessageType=void 0;var s;(function(e){e[e["Request"]=1]="Request";e[e["RequestAbort"]=2]="RequestAbort";e[e["RequestBodyChunk"]=3]="RequestBodyChunk";e[e["Response"]=4]="Response";e[e["ResponseAbort"]=5]="ResponseAbort";e[e["ResponseBodyChunk"]=6]="ResponseBodyChunk";e[e["WebSocketConnect"]=7]="WebSocketConnect";e[e["WebSocketMessage"]=8]="WebSocketMessage";e[e["WebSocketClose"]=9]="WebSocketClose"})(s||(t.MessageType=s={}))},785:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.alignBytes=void 0;const s=8;const alignBytes=e=>(s-e%s)%s;t.alignBytes=alignBytes},5712:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.handleProxiedRequest=handleProxiedRequest;t.pushProxiedRequestBodyChunk=pushProxiedRequestBodyChunk;t.abortProxiedRequest=abortProxiedRequest;const r=s(9802);const n=s(9236);const o=s(4430);const i=(0,o.createDebug)("http");const a=new Map;const c=new Map;async function handleProxiedRequest(e,t,s){const o=new Headers(s.headers);o.delete("origin");o.set("accept-encoding","gzip, deflate, br");o.set("X-Forwarded-Proto",t.protocol.replace(/:$/,""));o.set("X-Forwarded-Host",t.hostname);i("Executing proxied request with pending request body stream");const l=new AbortController;const u=l.signal;c.set(s.id,l);const f=s.hasContent?new ReadableStream({start(e){a.set(s.id,e)}}):null;let d;try{d=await(0,r.fetch)(s.url,{signal:l.signal,method:s.method,headers:o,body:f})}catch{a.delete(s.id);if(!u.aborted){e.send((0,n.encodeMessage)({type:n.MessageType.ResponseAbort,id:s.id,errored:true}))}return}try{for await(const t of encodeResponse(s.id,d,u))e.send(t)}finally{c.delete(s.id);a.delete(s.id)}}async function pushProxiedRequestBodyChunk(e){i("Streaming proxied request body chunk");const t=a.get(e.id);if(t){if(e.data)t.enqueue(e.data);if(e.end){t.close();a.delete(e.id)}}else{i("No active request stream found for message ID",e.id)}}async function abortProxiedRequest(e){i("Aborting proxied request");const t=c.get(e.id);if(t){t.abort(e.errored?new Error("Remote closed request stream"):undefined);c.delete(e.id)}const s=a.get(e.id);if(s&&e.errored){s.error(new Error("Remote closed request stream"))}else if(s){s.close()}if(!s&&!t){i("No active request to abort found for message ID",e.id)}}async function*encodeResponse(e,t,s){if(s.aborted)return;yield(0,n.encodeMessage)({type:n.MessageType.Response,id:e,hasContent:!!t.body,status:t.status,headers:t.headers});if(s.aborted){yield(0,n.encodeMessage)({type:n.MessageType.ResponseAbort,id:e,errored:false})}else if(t.body){try{for await(const r of(0,n.bodyToChunks)(t.body,{signal:s})){if(s.aborted)break;yield(0,n.encodeMessage)({type:n.MessageType.ResponseBodyChunk,id:e,end:r.done,data:r.value||null})}}catch(t){if(!s.aborted){i("Broken response body stream for request ID",e,t);yield(0,n.encodeMessage)({type:n.MessageType.ResponseAbort,id:e,errored:true})}}finally{if(s.aborted){yield(0,n.encodeMessage)({type:n.MessageType.RequestAbort,id:e,errored:false})}}}}},4450:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createTunnel=createTunnel;const r=s(9236);const n=s(5712);const o=s(4917);const i=s(2244);const a=s(4430);const c=s(7104);const l=s(5096);const u=s(363);const f=(0,a.createDebug)("tunnel");function createTunnel(){let e=null;let t="created";let s=0;return{async start({apiUrl:r="wss://boltexpo.dev",session:n,maxReconnect:o=10,onStatusChange:i=()=>{}}){if(e&&e.readyState===e.OPEN){return(0,l.createTunnelUrl)(e.url).href}const{promise:a,resolve:d,reject:h}=(0,c.withResolvers)();const onSocketClose=()=>{if(t!=="started")return;if(s>o){f("Tunnel exceeded maximum reconnect attepts:",o);return i("disconnected")}f("Tunnel is reconnecting, attempt",s,"of",o);i("reconnecting");s+=1;this.stop();this.start({apiUrl:r,session:n,maxReconnect:o,onStatusChange:i})};try{i("connecting");e=(0,u.createWebSocket)((0,l.createSocketUrl)(r,n));e.addEventListener("error",h);e.addEventListener("open",d);e.addEventListener("close",onSocketClose);const t=(0,l.createTunnelUrl)(e.url);e.on("message",(s=>{try{if(e)handleTunnelMessage(e,t,s)}catch(e){f(e)}}));await a;i("connected");return t.href}catch(e){this.stop();throw e}finally{e?.removeEventListener("error",h);e?.addEventListener("error",(()=>{}))}},stop(){t="stopped";e?.close();e=null}}}function handleTunnelMessage(e,t,s){const a=(0,r.decodeMessage)((0,i.toUint8Array)(s));if(a.type===r.MessageType.Request){return(0,n.handleProxiedRequest)(e,t,a)}else if(a.type===r.MessageType.RequestAbort){return(0,n.abortProxiedRequest)(a)}else if(a.type===r.MessageType.RequestBodyChunk){return(0,n.pushProxiedRequestBodyChunk)(a)}else if(a.type===r.MessageType.WebSocketConnect){return(0,o.createProxiedWebsocket)(e,a)}else if(a.type===r.MessageType.WebSocketMessage){return(0,o.sendToProxiedWebsocket)(a)}else if(a.type===r.MessageType.WebSocketClose){return(0,o.closeProxiedWebsocket)(a)}else{f("Received unexpected message type",a);return Promise.reject(new Error(`Received unexpected message type: ${a.type}`))}}},4917:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.sendToProxiedWebsocket=sendToProxiedWebsocket;t.createProxiedWebsocket=createProxiedWebsocket;t.closeProxiedWebsocket=closeProxiedWebsocket;const r=s(9236);const n=s(2244);const o=s(4430);const i=s(363);const a=(0,o.createDebug)("websocket");const c=new Map;const l=new Map;async function sendToProxiedWebsocket(e){const t=c.get(e.id);if(t&&t.readyState===t.OPEN){t.send(e.data)}else if(t&&t.readyState===t.CONNECTING){let t=l.get(e.id);if(!t)l.set(e.id,t=[]);t.push(e)}else if(t){a("Proxied socket ID",e.id,"is in a bad state to forward messages to:",t.readyState)}else{a("Proxied socket ID",e.id,"requested, bt no socket is available")}}async function createProxiedWebsocket(e,t){let s=c.get(t.id);if(s)closeSocket(t.id,s);s=(0,i.createWebSocket)(t.url);c.set(t.id,s);s.addEventListener("close",(()=>{a("Proxied websocket closed");e.send((0,r.encodeMessage)({type:r.MessageType.WebSocketClose,id:t.id}));if(c.get(t.id)===s)c.delete(t.id)}));s.addEventListener("error",(e=>{a("Proxied websocket threw an error",e.error)}));s.on("message",((s,o)=>{a("Proxied websocket emitted message for websocket ID",t.id);if(o){const o=(0,n.toUint8Array)(s);e.send((0,r.encodeMessage)({type:r.MessageType.WebSocketMessage,id:t.id,data:o}))}else{const o=(0,n.toString)(s);e.send((0,r.encodeMessage)({type:r.MessageType.WebSocketMessage,id:t.id,data:o}))}}));s.on("open",(()=>{a("Proxied websocket opened to",t.url,"for websocket ID",t.id);l.get(t.id)?.forEach((e=>e.data&&s.send(e.data)));l.delete(t.id)}))}function closeSocket(e,t){t.close();c.delete(e);l.delete(e)}async function closeProxiedWebsocket(e){const t=c.get(e.id);if(t){a("Closing proxied websocket ID",e.id);closeSocket(e.id,t)}else{a("Close of socket ID",e.id,"requested, but no socket is available")}}},2244:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toUint8Array=toUint8Array;t.toString=toString;const r=s(4430);const n=(0,r.createDebug)("tunnel");const o=new TextDecoder;function toUint8Array(e){if(Buffer.isBuffer(e)){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}else if(e instanceof ArrayBuffer){return new Uint8Array(e)}else if(Array.isArray(e)){return new Uint8Array(Buffer.concat(e))}else{n("Invalid tunnel ws message received",e);throw new TypeError("Invalid tunnel ws message received")}}function toString(e){if(typeof e==="string"){return e}else if(Buffer.isBuffer(e)){return e.toString()}else if(e instanceof ArrayBuffer){return o.decode(e)}else if(Array.isArray(e)){return o.decode(Buffer.concat(e))}else{n("Invalid proxy ws message received",e);throw new TypeError("Invalid proxy ws message received")}}},4430:function(e,t,s){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.createDebug=createDebug;const n=r(s(2830));function createDebug(e){return(0,n.default)("tunnel").extend(e)}},7104:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.withResolvers=withResolvers;function withResolvers(){if(typeof Promise.withResolvers==="function"){return Promise.withResolvers()}let e;let t;const s=new Promise(((s,r)=>{e=s;t=r}));return{resolve:e,reject:t,promise:s}}},5096:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createSocketUrl=createSocketUrl;t.createTunnelUrl=createTunnelUrl;function createSocketUrl(e,t){const s=new URL(e);s.searchParams.set("_tunnel","true");if(t){s.hostname=`${santizeSubdomainCharacters(t)}.${s.hostname}`}return s}function createTunnelUrl(e){const t=new URL(e);t.searchParams.delete("_tunnel");if(t.protocol==="wss:")t.protocol="https:";if(t.protocol==="ws:")t.protocol="http:";return t}function santizeSubdomainCharacters(e){return e.replace(/^[^A-Za-z0-9]|[^A-Za-z0-9]$/g,"a")}},363:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createWebSocket=createWebSocket;const r=s(1354);function createWebSocket(e){const t=new r.WebSocket(e,{skipUTF8Validation:true,maxPayload:1024*1024,perMessageDeflate:false});t.binaryType="arraybuffer";return t}},8327:module=>{module.exports=eval("require")("bufferutil")},2414:module=>{module.exports=eval("require")("utf-8-validate")},181:e=>{"use strict";e.exports=require("buffer")},6982:e=>{"use strict";e.exports=require("crypto")},4434:e=>{"use strict";e.exports=require("events")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},9278:e=>{"use strict";e.exports=require("net")},4573:e=>{"use strict";e.exports=require("node:buffer")},7598:e=>{"use strict";e.exports=require("node:crypto")},7067:e=>{"use strict";e.exports=require("node:http")},4708:e=>{"use strict";e.exports=require("node:https")},7075:e=>{"use strict";e.exports=require("node:stream")},3136:e=>{"use strict";e.exports=require("node:url")},3429:e=>{"use strict";e.exports=require("node:util/types")},8522:e=>{"use strict";e.exports=require("node:zlib")},857:e=>{"use strict";e.exports=require("os")},2203:e=>{"use strict";e.exports=require("stream")},4756:e=>{"use strict";e.exports=require("tls")},2018:e=>{"use strict";e.exports=require("tty")},7016:e=>{"use strict";e.exports=require("url")},9023:e=>{"use strict";e.exports=require("util")},3106:e=>{"use strict";e.exports=require("zlib")}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e].call(s.exports,s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});e.startAsync=startAsync;e.stopAsync=stopAsync;const t=__nccwpck_require__(4450);const s=(0,t.createTunnel)();async function startAsync(e){s.stop();return await s.start(e)}async function stopAsync(){s.stop()}})();module.exports=__webpack_exports__})();