@decentro-dev/polkadot-sufficient-assets 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +32 -2
- package/packages/client/dist/chain-specs/ksmcc3/index.js +63 -1
- package/packages/client/dist/chain-specs/ksmcc3/index.mjs +63 -1
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.js +45 -1
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.mjs +45 -1
- package/packages/client/dist/chain-specs/paseo/index.js +43 -1
- package/packages/client/dist/chain-specs/paseo/index.mjs +43 -1
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.js +25 -1
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.mjs +25 -1
- package/packages/client/dist/chain-specs/polkadot/index.js +62 -1
- package/packages/client/dist/chain-specs/polkadot/index.mjs +62 -1
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.js +46 -1
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.mjs +46 -1
- package/packages/client/dist/chain-specs/rococo_v2_2/index.js +31 -1
- package/packages/client/dist/chain-specs/rococo_v2_2/index.mjs +31 -1
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.js +26 -1
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.mjs +26 -1
- package/packages/client/dist/chain-specs/westend2/index.js +57 -1
- package/packages/client/dist/chain-specs/westend2/index.mjs +57 -1
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.js +45 -1
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.mjs +45 -1
- package/packages/client/dist/index.js +3 -1
- package/packages/client/dist/index.mjs +3 -1
- package/packages/client/dist/smoldot/from-node-worker/index.js +1 -1
- package/packages/client/dist/smoldot/from-node-worker/index.mjs +1 -1
- package/packages/client/dist/smoldot/from-worker/index.js +8 -1
- package/packages/client/dist/smoldot/from-worker/index.mjs +8 -1
- package/packages/client/dist/smoldot/index.js +8 -1
- package/packages/client/dist/smoldot/index.mjs +8 -1
- package/packages/client/dist/smoldot/worker/index.js +1 -1
- package/packages/client/dist/smoldot/worker/index.mjs +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var r=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},v=(e,t,a,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of u(t))!h.call(e,n)&&n!==a&&r(e,n,{get:()=>t[n],enumerable:!(c=l(t,n))||c.enumerable});return e};var R=e=>v(r({},"__esModule",{value:!0}),e);var x={};m(x,{startFromWorker:()=>f});module.exports=R(x);var y=new WeakMap,f=(e,t={})=>(e.setMaxListeners(0),i(e,{type:"start",value:t}),{async addChain(a){let{potentialRelayChains:c,...n}=a,s=await i(e,{type:"add-chain",value:{...n,potentialRelayChainIds:c?.map(o=>{let d=y.get(o);if(d==null)throw new Error("Only chains created with `addChain` can be used");return d})}}),p={jsonRpcResponses:{next:async()=>i(e,{type:"chain",value:{id:s,type:"receiveIterable"}}),[Symbol.asyncIterator](){return this}},nextJsonRpcResponse(){return i(e,{type:"chain",value:{id:s,type:"receive"}})},remove(){return i(e,{type:"chain",value:{id:s,type:"remove"}})},sendJsonRpc(o){return i(e,{type:"chain",value:{id:s,type:"send",value:o}})}};return y.set(p,s),p},async terminate(){await i(e,{type:"terminate"})}}),g=0;function i(e,t){let a=g++;return e.postMessage({...t,id:a}),new Promise(c=>{let n=s=>{s.id===a&&(c(s.value),e.off("message",n))};e.on("message",n)})}0&&(module.exports={startFromWorker});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
var d=new WeakMap,l=(e,i={})=>(e.setMaxListeners(0),n(e,{type:"start",value:i}),{async addChain(a){let{potentialRelayChains:c,...s}=a,t=await n(e,{type:"add-chain",value:{...s,potentialRelayChainIds:c?.map(o=>{let p=d.get(o);if(p==null)throw new Error("Only chains created with `addChain` can be used");return p})}}),r={jsonRpcResponses:{next:async()=>n(e,{type:"chain",value:{id:t,type:"receiveIterable"}}),[Symbol.asyncIterator](){return this}},nextJsonRpcResponse(){return n(e,{type:"chain",value:{id:t,type:"receive"}})},remove(){return n(e,{type:"chain",value:{id:t,type:"remove"}})},sendJsonRpc(o){return n(e,{type:"chain",value:{id:t,type:"send",value:o}})}};return d.set(r,t),r},async terminate(){await n(e,{type:"terminate"})}}),y=0;function n(e,i){let a=y++;return e.postMessage({...i,id:a}),new Promise(c=>{let s=t=>{t.id===a&&(c(t.value),e.off("message",s))};e.on("message",s)})}export{l as startFromWorker};
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
"use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(r,o,f,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of c(o))!d.call(r,e)&&e!==f&&a(r,e,{get:()=>o[e],enumerable:!(x=b(o,e))||x.enumerable});return r},t=(r,o,f)=>(p(r,o,"default"),f&&p(f,o,"default"));var g=r=>p(a({},"__esModule",{value:!0}),r);var m={};module.exports=g(m);t(m,require("@polkadot-api/smoldot/from-worker"),module.exports);0&&(module.exports={...require("@polkadot-api/smoldot/from-worker")});
|
|
2
|
+
"use strict";var gs=Object.create;var le=Object.defineProperty;var xs=Object.getOwnPropertyDescriptor;var bs=Object.getOwnPropertyNames;var ws=Object.getPrototypeOf,Ss=Object.prototype.hasOwnProperty;var b=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Es=(t,e)=>{for(var s in e)le(t,s,{get:e[s],enumerable:!0})},et=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of bs(e))!Ss.call(t,i)&&i!==s&&le(t,i,{get:()=>e[i],enumerable:!(n=xs(e,i))||n.enumerable});return t};var K=(t,e,s)=>(s=t!=null?gs(ws(t)):{},et(e||!t||!t.__esModule?le(s,"default",{value:t,enumerable:!0}):s,t)),Is=t=>et(le({},"__esModule",{value:!0}),t);var ut=b((nr,ht)=>{"use strict";var{Duplex:Rs}=require("stream");function ft(t){t.emit("close")}function Ts(){!this.destroyed&&this._writableState.finished&&this.destroy()}function lt(t){this.removeListener("error",lt),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Cs(t,e){let s=!0,n=new Rs({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(r,f){let a=!f&&n._readableState.objectMode?r.toString():r;n.push(a)||t.pause()}),t.once("error",function(r){n.destroyed||(s=!1,n.destroy(r))}),t.once("close",function(){n.destroyed||n.push(null)}),n._destroy=function(i,r){if(t.readyState===t.CLOSED){r(i),process.nextTick(ft,n);return}let f=!1;t.once("error",function(o){f=!0,r(o)}),t.once("close",function(){f||r(i),process.nextTick(ft,n)}),s&&t.terminate()},n._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){n._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),n._readableState.endEmitted&&n.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},n._read=function(){t.isPaused&&t.resume()},n._write=function(i,r,f){if(t.readyState===t.CONNECTING){t.once("open",function(){n._write(i,r,f)});return}t.send(i,f)},n.on("end",Ts),n.on("error",lt),n}ht.exports=Cs});var R=b((rr,pt)=>{"use strict";var dt=["nodebuffer","arraybuffer","fragments"],mt=typeof Blob<"u";mt&&dt.push("blob");pt.exports={BINARY_TYPES:dt,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:mt,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var te=b((ir,ue)=>{"use strict";var{EMPTY_BUFFER:Os}=R(),Te=Buffer[Symbol.species];function Ls(t,e){if(t.length===0)return Os;if(t.length===1)return t[0];let s=Buffer.allocUnsafe(e),n=0;for(let i=0;i<t.length;i++){let r=t[i];s.set(r,n),n+=r.length}return n<e?new Te(s.buffer,s.byteOffset,n):s}function _t(t,e,s,n,i){for(let r=0;r<i;r++)s[n+r]=t[r]^e[r&3]}function yt(t,e){for(let s=0;s<t.length;s++)t[s]^=e[s&3]}function Ns(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Ce(t){if(Ce.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Te(t):ArrayBuffer.isView(t)?e=new Te(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Ce.readOnly=!1),e}ue.exports={concat:Ls,mask:_t,toArrayBuffer:Ns,toBuffer:Ce,unmask:yt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");ue.exports.mask=function(e,s,n,i,r){r<48?_t(e,s,n,i,r):t.mask(e,s,n,i,r)},ue.exports.unmask=function(e,s){e.length<32?yt(e,s):t.unmask(e,s)}}catch{}});var bt=b((or,xt)=>{"use strict";var gt=Symbol("kDone"),Oe=Symbol("kRun"),Le=class{constructor(e){this[gt]=()=>{this.pending--,this[Oe]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Oe]()}[Oe](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[gt])}}};xt.exports=Le});var re=b((ar,It)=>{"use strict";var se=require("zlib"),wt=te(),Bs=bt(),{kStatusCode:St}=R(),Ps=Buffer[Symbol.species],Ws=Buffer.from([0,0,255,255]),pe=Symbol("permessage-deflate"),T=Symbol("total-length"),ne=Symbol("callback"),B=Symbol("buffers"),me=Symbol("error"),de,Ne=class{constructor(e,s,n){if(this._maxPayload=n|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!s,this._deflate=null,this._inflate=null,this.params=null,!de){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;de=new Bs(i)}}static get extensionName(){return"permessage-deflate"}offer(){let 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:this._options.clientMaxWindowBits==null&&(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){let e=this._deflate[ne];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let s=this._options,n=e.find(i=>!(s.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(s.serverMaxWindowBits===!1||typeof s.serverMaxWindowBits=="number"&&s.serverMaxWindowBits>i.server_max_window_bits)||typeof s.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!n)throw new Error("None of the extension offers can be accepted");return s.serverNoContextTakeover&&(n.server_no_context_takeover=!0),s.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof s.serverMaxWindowBits=="number"&&(n.server_max_window_bits=s.serverMaxWindowBits),typeof s.clientMaxWindowBits=="number"?n.client_max_window_bits=s.clientMaxWindowBits:(n.client_max_window_bits===!0||s.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let s=e[0];if(this._options.clientNoContextTakeover===!1&&s.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!s.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(s.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&s.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return s}normalizeParams(e){return e.forEach(s=>{Object.keys(s).forEach(n=>{let i=s[n];if(i.length>1)throw new Error(`Parameter "${n}" must have only a single value`);if(i=i[0],n==="client_max_window_bits"){if(i!==!0){let r=+i;if(!Number.isInteger(r)||r<8||r>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=r}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else if(n==="server_max_window_bits"){let r=+i;if(!Number.isInteger(r)||r<8||r>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=r}else if(n==="client_no_context_takeover"||n==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else throw new Error(`Unknown parameter "${n}"`);s[n]=i})}),e}decompress(e,s,n){de.add(i=>{this._decompress(e,s,(r,f)=>{i(),n(r,f)})})}compress(e,s,n){de.add(i=>{this._compress(e,s,(r,f)=>{i(),n(r,f)})})}_decompress(e,s,n){let i=this._isServer?"client":"server";if(!this._inflate){let r=`${i}_max_window_bits`,f=typeof this.params[r]!="number"?se.Z_DEFAULT_WINDOWBITS:this.params[r];this._inflate=se.createInflateRaw({...this._options.zlibInflateOptions,windowBits:f}),this._inflate[pe]=this,this._inflate[T]=0,this._inflate[B]=[],this._inflate.on("error",Ms),this._inflate.on("data",Et)}this._inflate[ne]=n,this._inflate.write(e),s&&this._inflate.write(Ws),this._inflate.flush(()=>{let r=this._inflate[me];if(r){this._inflate.close(),this._inflate=null,n(r);return}let f=wt.concat(this._inflate[B],this._inflate[T]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[T]=0,this._inflate[B]=[],s&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),n(null,f)})}_compress(e,s,n){let i=this._isServer?"server":"client";if(!this._deflate){let r=`${i}_max_window_bits`,f=typeof this.params[r]!="number"?se.Z_DEFAULT_WINDOWBITS:this.params[r];this._deflate=se.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:f}),this._deflate[T]=0,this._deflate[B]=[],this._deflate.on("data",Us)}this._deflate[ne]=n,this._deflate.write(e),this._deflate.flush(se.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let r=wt.concat(this._deflate[B],this._deflate[T]);s&&(r=new Ps(r.buffer,r.byteOffset,r.length-4)),this._deflate[ne]=null,this._deflate[T]=0,this._deflate[B]=[],s&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),n(null,r)})}};It.exports=Ne;function Us(t){this[B].push(t),this[T]+=t.length}function Et(t){if(this[T]+=t.length,this[pe]._maxPayload<1||this[T]<=this[pe]._maxPayload){this[B].push(t);return}this[me]=new RangeError("Max payload size exceeded"),this[me].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[me][St]=1009,this.removeListener("data",Et),this.reset()}function Ms(t){this[pe]._inflate=null,t[St]=1007,this[ne](t)}});var V=b((cr,_e)=>{"use strict";var{isUtf8:kt}=require("buffer"),{hasBlob:As}=R(),Ds=[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 js(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Be(t){let e=t.length,s=0;for(;s<e;)if(!(t[s]&128))s++;else if((t[s]&224)===192){if(s+1===e||(t[s+1]&192)!==128||(t[s]&254)===192)return!1;s+=2}else if((t[s]&240)===224){if(s+2>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||t[s]===224&&(t[s+1]&224)===128||t[s]===237&&(t[s+1]&224)===160)return!1;s+=3}else if((t[s]&248)===240){if(s+3>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||(t[s+3]&192)!==128||t[s]===240&&(t[s+1]&240)===128||t[s]===244&&t[s+1]>143||t[s]>244)return!1;s+=4}else return!1;return!0}function qs(t){return As&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}_e.exports={isBlob:qs,isValidStatusCode:js,isValidUTF8:Be,tokenChars:Ds};if(kt)_e.exports.isValidUTF8=function(t){return t.length<24?Be(t):kt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");_e.exports.isValidUTF8=function(e){return e.length<32?Be(e):t(e)}}catch{}});var Ae=b((fr,Nt)=>{"use strict";var{Writable:Fs}=require("stream"),vt=re(),{BINARY_TYPES:Gs,EMPTY_BUFFER:Rt,kStatusCode:Vs,kWebSocket:$s}=R(),{concat:Pe,toArrayBuffer:Hs,unmask:zs}=te(),{isValidStatusCode:Js,isValidUTF8:Tt}=V(),ye=Buffer[Symbol.species],E=0,Ct=1,Ot=2,Lt=3,We=4,Ue=5,ge=6,Me=class extends Fs{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Gs[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[$s]=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._errored=!1,this._loop=!1,this._state=E}_write(e,s,n){if(this._opcode===8&&this._state==E)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let n=this._buffers[0];return this._buffers[0]=new ye(n.buffer,n.byteOffset+e,n.length-e),new ye(n.buffer,n.byteOffset,e)}let s=Buffer.allocUnsafe(e);do{let n=this._buffers[0],i=s.length-e;e>=n.length?s.set(this._buffers.shift(),i):(s.set(new Uint8Array(n.buffer,n.byteOffset,e),i),this._buffers[0]=new ye(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return s}startLoop(e){this._loop=!0;do switch(this._state){case E:this.getInfo(e);break;case Ct:this.getPayloadLength16(e);break;case Ot:this.getPayloadLength64(e);break;case Lt:this.getMask();break;case We:this.getData(e);break;case Ue:case ge:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if(s[0]&48){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let n=(s[0]&64)===64;if(n&&!this._extensions[vt.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(n){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(n){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=Ct:this._payloadLength===127?this._state=Ot:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),n=s.readUInt32BE(0);if(n>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=n*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let s=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(s);return}this._masked?this._state=Lt:this._state=We}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=We}getData(e){let s=Rt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}s=this.consume(this._payloadLength),this._masked&&this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3]&&zs(s,this._mask)}if(this._opcode>7){this.controlMessage(s,e);return}if(this._compressed){this._state=Ue,this.decompress(s,e);return}s.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(s)),this.dataMessage(e)}decompress(e,s){this._extensions[vt.extensionName].decompress(e,this._fin,(i,r)=>{if(i)return s(i);if(r.length){if(this._messageLength+=r.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let f=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(f);return}this._fragments.push(r)}this.dataMessage(s),this._state===E&&this.startLoop(s)})}dataMessage(e){if(!this._fin){this._state=E;return}let s=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Pe(n,s):this._binaryType==="arraybuffer"?i=Hs(Pe(n,s)):this._binaryType==="blob"?i=new Blob(n):i=n,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=E):(this._state=ge,setImmediate(()=>{this.emit("message",i,!0),this._state=E,this.startLoop(e)}))}else{let i=Pe(n,s);if(!this._skipUTF8Validation&&!Tt(i)){let r=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(r);return}this._state===Ue||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=E):(this._state=ge,setImmediate(()=>{this.emit("message",i,!1),this._state=E,this.startLoop(e)}))}}controlMessage(e,s){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,Rt),this.end();else{let n=e.readUInt16BE(0);if(!Js(n)){let r=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(r);return}let i=new ye(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Tt(i)){let r=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(r);return}this._loop=!1,this.emit("conclude",n,i),this.end()}this._state=E;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=E):(this._state=ge,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=E,this.startLoop(s)}))}createError(e,s,n,i,r){this._loop=!1,this._errored=!0;let f=new e(n?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(f,this.createError),f.code=r,f[Vs]=i,f}};Nt.exports=Me});var qe=b((hr,Wt)=>{"use strict";var{Duplex:lr}=require("stream"),{randomFillSync:Ys}=require("crypto"),Bt=re(),{EMPTY_BUFFER:Xs,kWebSocket:Ks,NOOP:Zs}=R(),{isBlob:$,isValidStatusCode:Qs}=V(),{mask:Pt,toBuffer:U}=te(),I=Symbol("kByteLength"),en=Buffer.alloc(4),xe=8*1024,M,H=xe,k=0,tn=1,sn=2,De=class t{constructor(e,s,n){this._extensions=s||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=k,this.onerror=Zs,this[Ks]=void 0}static frame(e,s){let n,i=!1,r=2,f=!1;s.mask&&(n=s.maskBuffer||en,s.generateMask?s.generateMask(n):(H===xe&&(M===void 0&&(M=Buffer.alloc(xe)),Ys(M,0,xe),H=0),n[0]=M[H++],n[1]=M[H++],n[2]=M[H++],n[3]=M[H++]),f=(n[0]|n[1]|n[2]|n[3])===0,r=6);let a;typeof e=="string"?(!s.mask||f)&&s[I]!==void 0?a=s[I]:(e=Buffer.from(e),a=e.length):(a=e.length,i=s.mask&&s.readOnly&&!f);let o=a;a>=65536?(r+=8,o=127):a>125&&(r+=2,o=126);let c=Buffer.allocUnsafe(i?a+r:r);return c[0]=s.fin?s.opcode|128:s.opcode,s.rsv1&&(c[0]|=64),c[1]=o,o===126?c.writeUInt16BE(a,2):o===127&&(c[2]=c[3]=0,c.writeUIntBE(a,4,6)),s.mask?(c[1]|=128,c[r-4]=n[0],c[r-3]=n[1],c[r-2]=n[2],c[r-1]=n[3],f?[c,e]:i?(Pt(e,n,c,r,a),[c]):(Pt(e,n,e,0,a),[c,e])):[c,e]}close(e,s,n,i){let r;if(e===void 0)r=Xs;else{if(typeof e!="number"||!Qs(e))throw new TypeError("First argument must be a valid error code number");if(s===void 0||!s.length)r=Buffer.allocUnsafe(2),r.writeUInt16BE(e,0);else{let a=Buffer.byteLength(s);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");r=Buffer.allocUnsafe(2+a),r.writeUInt16BE(e,0),typeof s=="string"?r.write(s,2):r.set(s,2)}}let f={[I]:r.length,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==k?this.enqueue([this.dispatch,r,!1,f,i]):this.sendFrame(t.frame(r,f),i)}ping(e,s,n){let i,r;if(typeof e=="string"?(i=Buffer.byteLength(e),r=!1):$(e)?(i=e.size,r=!1):(e=U(e),i=e.length,r=U.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let f={[I]:i,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:9,readOnly:r,rsv1:!1};$(e)?this._state!==k?this.enqueue([this.getBlobData,e,!1,f,n]):this.getBlobData(e,!1,f,n):this._state!==k?this.enqueue([this.dispatch,e,!1,f,n]):this.sendFrame(t.frame(e,f),n)}pong(e,s,n){let i,r;if(typeof e=="string"?(i=Buffer.byteLength(e),r=!1):$(e)?(i=e.size,r=!1):(e=U(e),i=e.length,r=U.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let f={[I]:i,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:10,readOnly:r,rsv1:!1};$(e)?this._state!==k?this.enqueue([this.getBlobData,e,!1,f,n]):this.getBlobData(e,!1,f,n):this._state!==k?this.enqueue([this.dispatch,e,!1,f,n]):this.sendFrame(t.frame(e,f),n)}send(e,s,n){let i=this._extensions[Bt.extensionName],r=s.binary?2:1,f=s.compress,a,o;typeof e=="string"?(a=Buffer.byteLength(e),o=!1):$(e)?(a=e.size,o=!1):(e=U(e),a=e.length,o=U.readOnly),this._firstFragment?(this._firstFragment=!1,f&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(f=a>=i._threshold),this._compress=f):(f=!1,r=0),s.fin&&(this._firstFragment=!0);let c={[I]:a,fin:s.fin,generateMask:this._generateMask,mask:s.mask,maskBuffer:this._maskBuffer,opcode:r,readOnly:o,rsv1:f};$(e)?this._state!==k?this.enqueue([this.getBlobData,e,this._compress,c,n]):this.getBlobData(e,this._compress,c,n):this._state!==k?this.enqueue([this.dispatch,e,this._compress,c,n]):this.dispatch(e,this._compress,c,n)}getBlobData(e,s,n,i){this._bufferedBytes+=n[I],this._state=sn,e.arrayBuffer().then(r=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(je,this,a,i);return}this._bufferedBytes-=n[I];let f=U(r);s?this.dispatch(f,s,n,i):(this._state=k,this.sendFrame(t.frame(f,n),i),this.dequeue())}).catch(r=>{process.nextTick(nn,this,r,i)})}dispatch(e,s,n,i){if(!s){this.sendFrame(t.frame(e,n),i);return}let r=this._extensions[Bt.extensionName];this._bufferedBytes+=n[I],this._state=tn,r.compress(e,n.fin,(f,a)=>{if(this._socket.destroyed){let o=new Error("The socket was closed while data was being compressed");je(this,o,i);return}this._bufferedBytes-=n[I],this._state=k,n.readOnly=!1,this.sendFrame(t.frame(a,n),i),this.dequeue()})}dequeue(){for(;this._state===k&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][I],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][I],this._queue.push(e)}sendFrame(e,s){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],s),this._socket.uncork()):this._socket.write(e[0],s)}};Wt.exports=De;function je(t,e,s){typeof s=="function"&&s(e);for(let n=0;n<t._queue.length;n++){let i=t._queue[n],r=i[i.length-1];typeof r=="function"&&r(e)}}function nn(t,e,s){je(t,e,s),t.onerror(e)}});var Vt=b((ur,Gt)=>{"use strict";var{kForOnEventAttribute:ie,kListener:Fe}=R(),Ut=Symbol("kCode"),Mt=Symbol("kData"),At=Symbol("kError"),Dt=Symbol("kMessage"),jt=Symbol("kReason"),z=Symbol("kTarget"),qt=Symbol("kType"),Ft=Symbol("kWasClean"),C=class{constructor(e){this[z]=null,this[qt]=e}get target(){return this[z]}get type(){return this[qt]}};Object.defineProperty(C.prototype,"target",{enumerable:!0});Object.defineProperty(C.prototype,"type",{enumerable:!0});var A=class extends C{constructor(e,s={}){super(e),this[Ut]=s.code===void 0?0:s.code,this[jt]=s.reason===void 0?"":s.reason,this[Ft]=s.wasClean===void 0?!1:s.wasClean}get code(){return this[Ut]}get reason(){return this[jt]}get wasClean(){return this[Ft]}};Object.defineProperty(A.prototype,"code",{enumerable:!0});Object.defineProperty(A.prototype,"reason",{enumerable:!0});Object.defineProperty(A.prototype,"wasClean",{enumerable:!0});var J=class extends C{constructor(e,s={}){super(e),this[At]=s.error===void 0?null:s.error,this[Dt]=s.message===void 0?"":s.message}get error(){return this[At]}get message(){return this[Dt]}};Object.defineProperty(J.prototype,"error",{enumerable:!0});Object.defineProperty(J.prototype,"message",{enumerable:!0});var oe=class extends C{constructor(e,s={}){super(e),this[Mt]=s.data===void 0?null:s.data}get data(){return this[Mt]}};Object.defineProperty(oe.prototype,"data",{enumerable:!0});var rn={addEventListener(t,e,s={}){for(let i of this.listeners(t))if(!s[ie]&&i[Fe]===e&&!i[ie])return;let n;if(t==="message")n=function(r,f){let a=new oe("message",{data:f?r:r.toString()});a[z]=this,be(e,this,a)};else if(t==="close")n=function(r,f){let a=new A("close",{code:r,reason:f.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[z]=this,be(e,this,a)};else if(t==="error")n=function(r){let f=new J("error",{error:r,message:r.message});f[z]=this,be(e,this,f)};else if(t==="open")n=function(){let r=new C("open");r[z]=this,be(e,this,r)};else return;n[ie]=!!s[ie],n[Fe]=e,s.once?this.once(t,n):this.on(t,n)},removeEventListener(t,e){for(let s of this.listeners(t))if(s[Fe]===e&&!s[ie]){this.removeListener(t,s);break}}};Gt.exports={CloseEvent:A,ErrorEvent:J,Event:C,EventTarget:rn,MessageEvent:oe};function be(t,e,s){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,s):t.call(e,s)}});var Ge=b((dr,$t)=>{"use strict";var{tokenChars:ae}=V();function v(t,e,s){t[e]===void 0?t[e]=[s]:t[e].push(s)}function on(t){let e=Object.create(null),s=Object.create(null),n=!1,i=!1,r=!1,f,a,o=-1,c=-1,l=-1,h=0;for(;h<t.length;h++)if(c=t.charCodeAt(h),f===void 0)if(l===-1&&ae[c]===1)o===-1&&(o=h);else if(h!==0&&(c===32||c===9))l===-1&&o!==-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h);let p=t.slice(o,l);c===44?(v(e,p,s),s=Object.create(null)):f=p,o=l=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);else if(a===void 0)if(l===-1&&ae[c]===1)o===-1&&(o=h);else if(c===32||c===9)l===-1&&o!==-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h),v(s,t.slice(o,l),!0),c===44&&(v(e,f,s),s=Object.create(null),f=void 0),o=l=-1}else if(c===61&&o!==-1&&l===-1)a=t.slice(o,h),o=l=-1;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(i){if(ae[c]!==1)throw new SyntaxError(`Unexpected character at index ${h}`);o===-1?o=h:n||(n=!0),i=!1}else if(r)if(ae[c]===1)o===-1&&(o=h);else if(c===34&&o!==-1)r=!1,l=h;else if(c===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(c===34&&t.charCodeAt(h-1)===61)r=!0;else if(l===-1&&ae[c]===1)o===-1&&(o=h);else if(o!==-1&&(c===32||c===9))l===-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h);let p=t.slice(o,l);n&&(p=p.replace(/\\/g,""),n=!1),v(s,a,p),c===44&&(v(e,f,s),s=Object.create(null),f=void 0),a=void 0,o=l=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);if(o===-1||r||c===32||c===9)throw new SyntaxError("Unexpected end of input");l===-1&&(l=h);let m=t.slice(o,l);return f===void 0?v(e,m,s):(a===void 0?v(s,m,!0):n?v(s,a,m.replace(/\\/g,"")):v(s,a,m),v(e,f,s)),e}function an(t){return Object.keys(t).map(e=>{let s=t[e];return Array.isArray(s)||(s=[s]),s.map(n=>[e].concat(Object.keys(n).map(i=>{let r=n[i];return Array.isArray(r)||(r=[r]),r.map(f=>f===!0?i:`${i}=${f}`).join("; ")})).join("; ")).join(", ")}).join(", ")}$t.exports={format:an,parse:on}});var Je=b((_r,ns)=>{"use strict";var cn=require("events"),fn=require("https"),ln=require("http"),Jt=require("net"),hn=require("tls"),{randomBytes:un,createHash:dn}=require("crypto"),{Duplex:mr,Readable:pr}=require("stream"),{URL:Ve}=require("url"),P=re(),mn=Ae(),pn=qe(),{isBlob:_n}=V(),{BINARY_TYPES:Ht,EMPTY_BUFFER:we,GUID:yn,kForOnEventAttribute:$e,kListener:gn,kStatusCode:xn,kWebSocket:g,NOOP:Yt}=R(),{EventTarget:{addEventListener:bn,removeEventListener:wn}}=Vt(),{format:Sn,parse:En}=Ge(),{toBuffer:In}=te(),kn=30*1e3,Xt=Symbol("kAborted"),He=[8,13],O=["CONNECTING","OPEN","CLOSING","CLOSED"],vn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,y=class t extends cn{constructor(e,s,n){super(),this._binaryType=Ht[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=we,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,s===void 0?s=[]:Array.isArray(s)||(typeof s=="object"&&s!==null?(n=s,s=[]):s=[s]),Kt(this,e,s,n)):(this._autoPong=n.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ht.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 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,s,n){let i=new mn({allowSynchronousEvents:n.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation}),r=new pn(e,this._extensions,n.generateMask);this._receiver=i,this._sender=r,this._socket=e,i[g]=this,r[g]=this,e[g]=this,i.on("conclude",Cn),i.on("drain",On),i.on("error",Ln),i.on("message",Nn),i.on("ping",Bn),i.on("pong",Pn),r.onerror=Wn,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),s.length>0&&e.unshift(s),e.on("close",es),e.on("data",Ee),e.on("end",ts),e.on("error",ss),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[P.extensionName]&&this._extensions[P.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,s){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){S(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,s,!this._isServer,n=>{n||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Qt(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=s=void 0):typeof s=="function"&&(n=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}s===void 0&&(s=!this._isServer),this._sender.ping(e||we,s,n)}pong(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=s=void 0):typeof s=="function"&&(n=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}s===void 0&&(s=!this._isServer),this._sender.pong(e||we,s,n)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof s=="function"&&(n=s,s={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...s};this._extensions[P.extensionName]||(i.compress=!1),this._sender.send(e||we,i,n)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){S(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(y,"CONNECTING",{enumerable:!0,value:O.indexOf("CONNECTING")});Object.defineProperty(y.prototype,"CONNECTING",{enumerable:!0,value:O.indexOf("CONNECTING")});Object.defineProperty(y,"OPEN",{enumerable:!0,value:O.indexOf("OPEN")});Object.defineProperty(y.prototype,"OPEN",{enumerable:!0,value:O.indexOf("OPEN")});Object.defineProperty(y,"CLOSING",{enumerable:!0,value:O.indexOf("CLOSING")});Object.defineProperty(y.prototype,"CLOSING",{enumerable:!0,value:O.indexOf("CLOSING")});Object.defineProperty(y,"CLOSED",{enumerable:!0,value:O.indexOf("CLOSED")});Object.defineProperty(y.prototype,"CLOSED",{enumerable:!0,value:O.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(y.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(y.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[$e])return e[gn];return null},set(e){for(let s of this.listeners(t))if(s[$e]){this.removeListener(t,s);break}typeof e=="function"&&this.addEventListener(t,e,{[$e]:!0})}})});y.prototype.addEventListener=bn;y.prototype.removeEventListener=wn;ns.exports=y;function Kt(t,e,s,n){let i={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:He[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...n,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,!He.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${He.join(", ")})`);let r;if(e instanceof Ve)r=e;else try{r=new Ve(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}r.protocol==="http:"?r.protocol="ws:":r.protocol==="https:"&&(r.protocol="wss:"),t._url=r.href;let f=r.protocol==="wss:",a=r.protocol==="ws+unix:",o;if(r.protocol!=="ws:"&&!f&&!a?o=`The URL's protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"`:a&&!r.pathname?o="The URL's pathname is empty":r.hash&&(o="The URL contains a fragment identifier"),o){let u=new SyntaxError(o);if(t._redirects===0)throw u;Se(t,u);return}let c=f?443:80,l=un(16).toString("base64"),h=f?fn.request:ln.request,m=new Set,p;if(i.createConnection=i.createConnection||(f?Tn:Rn),i.defaultPort=i.defaultPort||c,i.port=r.port||c,i.host=r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=r.pathname+r.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new P(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=Sn({[P.extensionName]:p.offer()})),s.length){for(let u of s){if(typeof u!="string"||!vn.test(u)||m.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(u)}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),(r.username||r.password)&&(i.auth=`${r.username}:${r.password}`),a){let u=i.path.split(":");i.socketPath=u[0],i.path=u[1]}let d;if(i.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=f,t._originalHostOrSocketPath=a?i.socketPath:r.host;let u=n&&n.headers;if(n={...n,headers:{}},u)for(let[_,x]of Object.entries(u))n.headers[_.toLowerCase()]=x}else if(t.listenerCount("redirect")===0){let u=a?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:r.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!f)&&(delete i.headers.authorization,delete i.headers.cookie,u||delete i.headers.host,i.auth=void 0)}i.auth&&!n.headers.authorization&&(n.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),d=t._req=h(i),t._redirects&&t.emit("redirect",t.url,d)}else d=t._req=h(i);i.timeout&&d.on("timeout",()=>{S(t,d,"Opening handshake has timed out")}),d.on("error",u=>{d===null||d[Xt]||(d=t._req=null,Se(t,u))}),d.on("response",u=>{let _=u.headers.location,x=u.statusCode;if(_&&i.followRedirects&&x>=300&&x<400){if(++t._redirects>i.maxRedirects){S(t,d,"Maximum redirects exceeded");return}d.abort();let Y;try{Y=new Ve(_,e)}catch{let q=new SyntaxError(`Invalid URL: ${_}`);Se(t,q);return}Kt(t,Y,s,n)}else t.emit("unexpected-response",d,u)||S(t,d,`Unexpected server response: ${u.statusCode}`)}),d.on("upgrade",(u,_,x)=>{if(t.emit("upgrade",u),t.readyState!==y.CONNECTING)return;d=t._req=null;let Y=u.headers.upgrade;if(Y===void 0||Y.toLowerCase()!=="websocket"){S(t,_,"Invalid Upgrade header");return}let Ke=dn("sha1").update(l+yn).digest("base64");if(u.headers["sec-websocket-accept"]!==Ke){S(t,_,"Invalid Sec-WebSocket-Accept header");return}let q=u.headers["sec-websocket-protocol"],X;if(q!==void 0?m.size?m.has(q)||(X="Server sent an invalid subprotocol"):X="Server sent a subprotocol but none was requested":m.size&&(X="Server sent no subprotocol"),X){S(t,_,X);return}q&&(t._protocol=q);let Ze=u.headers["sec-websocket-extensions"];if(Ze!==void 0){if(!p){S(t,_,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let ke;try{ke=En(Ze)}catch{S(t,_,"Invalid Sec-WebSocket-Extensions header");return}let Qe=Object.keys(ke);if(Qe.length!==1||Qe[0]!==P.extensionName){S(t,_,"Server indicated an extension that was not requested");return}try{p.accept(ke[P.extensionName])}catch{S(t,_,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[P.extensionName]=p}t.setSocket(_,x,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(d,t):d.end()}function Se(t,e){t._readyState=y.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function Rn(t){return t.path=t.socketPath,Jt.connect(t)}function Tn(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Jt.isIP(t.host)?"":t.host),hn.connect(t)}function S(t,e,s){t._readyState=y.CLOSING;let n=new Error(s);Error.captureStackTrace(n,S),e.setHeader?(e[Xt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Se,t,n)):(e.destroy(n),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function ze(t,e,s){if(e){let n=_n(e)?e.size:In(e).length;t._socket?t._sender._bufferedBytes+=n:t._bufferedAmount+=n}if(s){let n=new Error(`WebSocket is not open: readyState ${t.readyState} (${O[t.readyState]})`);process.nextTick(s,n)}}function Cn(t,e){let s=this[g];s._closeFrameReceived=!0,s._closeMessage=e,s._closeCode=t,s._socket[g]!==void 0&&(s._socket.removeListener("data",Ee),process.nextTick(Zt,s._socket),t===1005?s.close():s.close(t,e))}function On(){let t=this[g];t.isPaused||t._socket.resume()}function Ln(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",Ee),process.nextTick(Zt,e._socket),e.close(t[xn])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function zt(){this[g].emitClose()}function Nn(t,e){this[g].emit("message",t,e)}function Bn(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Yt),e.emit("ping",t)}function Pn(t){this[g].emit("pong",t)}function Zt(t){t.resume()}function Wn(t){let e=this[g];e.readyState!==y.CLOSED&&(e.readyState===y.OPEN&&(e._readyState=y.CLOSING,Qt(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Qt(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),kn)}function es(){let t=this[g];this.removeListener("close",es),this.removeListener("data",Ee),this.removeListener("end",ts),t._readyState=y.CLOSING;let e;!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&(e=t._socket.read())!==null&&t._receiver.write(e),t._receiver.end(),this[g]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",zt),t._receiver.on("finish",zt))}function Ee(t){this[g]._receiver.write(t)||this.pause()}function ts(){let t=this[g];t._readyState=y.CLOSING,t._receiver.end(),this.end()}function ss(){let t=this[g];this.removeListener("error",ss),this.on("error",Yt),t&&(t._readyState=y.CLOSING,this.destroy())}});var is=b((yr,rs)=>{"use strict";var{tokenChars:Un}=V();function Mn(t){let e=new Set,s=-1,n=-1,i=0;for(i;i<t.length;i++){let f=t.charCodeAt(i);if(n===-1&&Un[f]===1)s===-1&&(s=i);else if(i!==0&&(f===32||f===9))n===-1&&s!==-1&&(n=i);else if(f===44){if(s===-1)throw new SyntaxError(`Unexpected character at index ${i}`);n===-1&&(n=i);let a=t.slice(s,n);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),s=n=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(s===-1||n!==-1)throw new SyntaxError("Unexpected end of input");let r=t.slice(s,i);if(e.has(r))throw new SyntaxError(`The "${r}" subprotocol is duplicated`);return e.add(r),e}rs.exports={parse:Mn}});var us=b((xr,hs)=>{"use strict";var An=require("events"),Ie=require("http"),{Duplex:gr}=require("stream"),{createHash:Dn}=require("crypto"),os=Ge(),D=re(),jn=is(),qn=Je(),{GUID:Fn,kWebSocket:Gn}=R(),Vn=/^[+/0-9A-Za-z]{22}==$/,as=0,cs=1,ls=2,Ye=class extends An{constructor(e,s){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:qn,...e},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=Ie.createServer((n,i)=>{let r=Ie.STATUS_CODES[426];i.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"}),i.end(r)}),this._server.listen(e.port,e.host,e.backlog,s)):e.server&&(this._server=e.server),this._server){let n=this.emit.bind(this,"connection");this._removeListeners=$n(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,r,f)=>{this.handleUpgrade(i,r,f,n)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=as}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===ls){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(ce,this);return}if(e&&this.once("close",e),this._state!==cs)if(this._state=cs,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(ce,this):process.nextTick(ce,this);else{let s=this._server;this._removeListeners(),this._removeListeners=this._server=null,s.close(()=>{ce(this)})}}shouldHandle(e){if(this.options.path){let s=e.url.indexOf("?");if((s!==-1?e.url.slice(0,s):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,s,n,i){s.on("error",fs);let r=e.headers["sec-websocket-key"],f=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){j(this,e,s,405,"Invalid HTTP method");return}if(f===void 0||f.toLowerCase()!=="websocket"){j(this,e,s,400,"Invalid Upgrade header");return}if(r===void 0||!Vn.test(r)){j(this,e,s,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==8&&a!==13){j(this,e,s,400,"Missing or invalid Sec-WebSocket-Version header");return}if(!this.shouldHandle(e)){fe(s,400);return}let o=e.headers["sec-websocket-protocol"],c=new Set;if(o!==void 0)try{c=jn.parse(o)}catch{j(this,e,s,400,"Invalid Sec-WebSocket-Protocol header");return}let l=e.headers["sec-websocket-extensions"],h={};if(this.options.perMessageDeflate&&l!==void 0){let m=new D(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let p=os.parse(l);p[D.extensionName]&&(m.accept(p[D.extensionName]),h[D.extensionName]=m)}catch{j(this,e,s,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(p,d,u,_)=>{if(!p)return fe(s,d||401,u,_);this.completeUpgrade(h,r,c,e,s,n,i)});return}if(!this.options.verifyClient(m))return fe(s,401)}this.completeUpgrade(h,r,c,e,s,n,i)}completeUpgrade(e,s,n,i,r,f,a){if(!r.readable||!r.writable)return r.destroy();if(r[Gn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>as)return fe(r,503);let c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Dn("sha1").update(s+Fn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(n.size){let h=this.options.handleProtocols?this.options.handleProtocols(n,i):n.values().next().value;h&&(c.push(`Sec-WebSocket-Protocol: ${h}`),l._protocol=h)}if(e[D.extensionName]){let h=e[D.extensionName].params,m=os.format({[D.extensionName]:[h]});c.push(`Sec-WebSocket-Extensions: ${m}`),l._extensions=e}this.emit("headers",c,i),r.write(c.concat(`\r
|
|
3
|
+
`).join(`\r
|
|
4
|
+
`)),r.removeListener("error",fs),l.setSocket(r,f,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(ce,this)})),a(l,i)}};hs.exports=Ye;function $n(t,e){for(let s of Object.keys(e))t.on(s,e[s]);return function(){for(let n of Object.keys(e))t.removeListener(n,e[n])}}function ce(t){t._state=ls,t.emit("close")}function fs(){this.destroy()}function fe(t,e,s,n){s=s||Ie.STATUS_CODES[e],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...n},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${Ie.STATUS_CODES[e]}\r
|
|
5
|
+
`+Object.keys(n).map(i=>`${i}: ${n[i]}`).join(`\r
|
|
6
|
+
`)+`\r
|
|
7
|
+
\r
|
|
8
|
+
`+s)}function j(t,e,s,n,i){if(t.listenerCount("wsClientError")){let r=new Error(i);Error.captureStackTrace(r,j),t.emit("wsClientError",r,s,e)}else fe(s,n,i)}});var Zn={};Es(Zn,{startFromWorker:()=>Kn});module.exports=Is(Zn);var L=class extends Error{constructor(e){super(e),this.name="AddChainError"}},N=class extends Error{constructor(){super(),this.name="AlreadyDestroyedError"}},F=class extends Error{constructor(){super(),this.name="JsonRpcDisabledError"}},Z=class extends Error{constructor(e){super(e)}},Q=class extends Error{constructor(){super("JSON-RPC requests queue is full")}};function w(t,e,s){return G(t,e,s),new TextDecoder().decode(t.slice(e,e+s))}function tt(t,e){return G(t,e,1),t[e]}function W(t,e){return G(t,e,2),t[e]<<8|t[e+1]}function ee(t,e){return G(t,e,4),(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function st(t,e,s){G(t,e,1),t[e]=s&255}function nt(t,e,s){G(t,e,4),t[e+3]=s>>>24&255,t[e+2]=s>>>16&255,t[e+1]=s>>>8&255,t[e]=s&255}function G(t,e,s){if(!Number.isInteger(e)||e<0)throw new RangeError;if(e+s>t.length)throw new RangeError}var rt=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function Re(t,e,s){return rt(this,void 0,void 0,function*(){let n={instance:null,currentTask:null,bufferIndices:new Array,advanceExecutionPromise:null,onShutdownExecutorOrWasmPanic:()=>{}},i={panic:(a,o)=>{let c=n.instance;n.instance=null,a>>>=0,o>>>=0;let l=w(new Uint8Array(c.exports.memory.buffer),a,o);throw s({ty:"wasm-panic",message:l,currentTask:n.currentTask}),n.onShutdownExecutorOrWasmPanic(),n.onShutdownExecutorOrWasmPanic=()=>{},new Error},chain_initialized:(a,o,c)=>{let l=n.instance,h=new Uint8Array(l.exports.memory.buffer);if(o>>>=0,c>>>=0,o===0)s({ty:"add-chain-result",chainId:a,success:!0});else{let m=w(h,o,c);s({ty:"add-chain-result",chainId:a,success:!1,error:m})}},random_get:(a,o)=>{let c=n.instance;a>>>=0,o>>>=0;let l=new Uint8Array(c.exports.memory.buffer).subarray(a,a+o);for(let h=0;h<o;h+=65536)t.getRandomValues(l.subarray(h,h+65536))},unix_timestamp_us:()=>{let a=Math.floor(Date.now());if(a<0)throw new Error("UNIX timestamp inferior to 0");return BigInt(a)*BigInt(1e3)},monotonic_clock_us:()=>{let a=t.performanceNow(),o=Math.floor(a);return BigInt(o)*BigInt(1e3)+BigInt(Math.floor((a-o)*1e3))},buffer_size:a=>n.bufferIndices[a].byteLength,buffer_copy:(a,o)=>{let c=n.instance;o=o>>>0;let l=n.bufferIndices[a];new Uint8Array(c.exports.memory.buffer).set(l,o)},advance_execution_ready:()=>{n.advanceExecutionPromise&&n.advanceExecutionPromise(),n.advanceExecutionPromise=null},json_rpc_responses_non_empty:a=>{s({ty:"json-rpc-responses-non-empty",chainId:a})},log:(a,o,c,l,h)=>{let m=n.instance;o>>>=0,c>>>=0,l>>>=0,h>>>=0;let p=new Uint8Array(m.exports.memory.buffer),d=w(p,o,c),u=w(p,l,h);s({ty:"log",level:a,message:u,target:d})},start_timer:a=>{let o=n.instance;a>2147483647&&(a=2147483647),a<1&&typeof setImmediate=="function"?setImmediate(()=>{if(n.instance)try{o.exports.timer_finished()}catch{}}):setTimeout(()=>{if(n.instance)try{o.exports.timer_finished()}catch{}},a)},connection_type_supported:a=>{switch(a){case 0:case 1:case 2:return t.forbidTcp?0:1;case 4:case 5:case 6:return t.forbidWs||t.forbidNonLocalWs?0:1;case 7:return t.forbidWs?0:1;case 14:return t.forbidWss?0:1;case 16:case 17:return t.forbidWebRtc?0:1;default:throw new Error("Invalid connection type passed to `connection_type_supported`")}},connection_new:(a,o,c)=>{let l=n.instance,h=new Uint8Array(l.exports.memory.buffer);o>>>=0,c>>>=0;let m;switch(tt(h,o)){case 0:case 1:case 2:{let p=W(h,o+1),d=w(h,o+3,c-3);m={ty:"tcp",port:p,hostname:d};break}case 4:case 6:{let p=W(h,o+1);m={ty:"websocket",url:"ws://"+w(h,o+3,c-3)+":"+p};break}case 5:{let p=W(h,o+1);m={ty:"websocket",url:"ws://["+w(h,o+3,c-3)+"]:"+p};break}case 14:{let p=W(h,o+1);m={ty:"websocket",url:"wss://"+w(h,o+3,c-3)+":"+p};break}case 16:{let p=W(h,o+1),d=h.slice(o+3,o+35),u=w(h,o+35,c-35);m={ty:"webrtc",ipVersion:"4",remoteTlsCertificateSha256:d,targetIp:u,targetPort:p};break}case 17:{let p=W(h,o+1),d=h.slice(o+3,o+35),u=w(h,o+35,c-35);m={ty:"webrtc",ipVersion:"6",remoteTlsCertificateSha256:d,targetIp:u,targetPort:p};break}default:throw new Error("Invalid encoded address passed to `connection_new`")}s({ty:"new-connection",connectionId:a,address:m})},reset_connection:a=>{s({ty:"connection-reset",connectionId:a})},connection_stream_open:a=>{s({ty:"connection-stream-open",connectionId:a})},connection_stream_reset:(a,o)=>{s({ty:"connection-stream-reset",connectionId:a,streamId:o})},stream_send:(a,o,c,l)=>{let h=n.instance,m=new Uint8Array(h.exports.memory.buffer);c>>>=0,l>>>=0;let p=new Array;for(let d=0;d<l;++d){let u=ee(m,c+8*d),_=ee(m,c+8*d+4);p.push(m.slice(u,u+_))}s({ty:"stream-send",connectionId:a,streamId:o,data:p})},stream_send_close:(a,o)=>{s({ty:"stream-send-close",connectionId:a,streamId:o})},current_task_entered:(a,o)=>{a>>>=0,o>>>=0;let c=w(new Uint8Array(n.instance.exports.memory.buffer),a,o);n.currentTask=c},current_task_exit:()=>{n.currentTask=null}},r=yield WebAssembly.instantiate(e,{smoldot:i});n.instance=r,n.instance.exports.init(t.maxLogLevel);let f=new Promise(a=>n.onShutdownExecutorOrWasmPanic=()=>a("stop"));return rt(this,void 0,void 0,function*(){let a=t.cpuRateLimit,o=0,c=t.performanceNow();for(;;){let l=new Promise(u=>n.advanceExecutionPromise=()=>u("ready"));if(!n.instance)break;n.instance.exports.advance_execution();let h=t.performanceNow(),m=h-c;c=h;let p=m*(1/a-1);if(o+=p,o>5){o>2147483646&&(o=2147483646);let u=new Promise(_=>setTimeout(()=>_("timeout"),o));if((yield Promise.race([u,f]))==="stop")break}if((yield Promise.race([l,f]))==="stop")break;let d=t.performanceNow();o-=d-c,o<-1e4&&(o=-1e4),c=d}n.instance&&s({ty:"executor-shutdown"})}),{request:(a,o)=>n.instance?(n.bufferIndices[0]=new TextEncoder().encode(a),n.instance.exports.json_rpc_send(0,o)>>>0):1,peekJsonRpcResponse:a=>{if(!n.instance)return null;let o=n.instance.exports.json_rpc_responses_peek(a)>>>0,c=new Uint8Array(n.instance.exports.memory.buffer),l=ee(c,o)>>>0,h=ee(c,o+4)>>>0;if(h!==0){let m=w(c,l,h);return n.instance.exports.json_rpc_responses_pop(a),m}else return null},addChain:(a,o,c,l,h,m)=>{if(!n.instance){s({ty:"add-chain-id-allocated",chainId:0}),s({ty:"add-chain-result",chainId:0,success:!1,error:"Smoldot has crashed"});return}console.assert(l||h!=0,"invalid jsonRpcMaxPendingRequests value passed to local-instance::addChain"),n.bufferIndices[0]=new TextEncoder().encode(a),n.bufferIndices[1]=new TextEncoder().encode(o);let p=new Uint8Array(c.length*4);for(let u=0;u<c.length;++u)nt(p,u*4,c[u]);n.bufferIndices[2]=p;let d=n.instance.exports.add_chain(0,1,l?0:h,m,2);delete n.bufferIndices[0],delete n.bufferIndices[1],delete n.bufferIndices[2],s({ty:"add-chain-id-allocated",chainId:d})},removeChain:a=>{n.instance&&n.instance.exports.remove_chain(a)},shutdownExecutor:()=>{if(!n.instance)return;let a=n.onShutdownExecutorOrWasmPanic;n.onShutdownExecutorOrWasmPanic=()=>{},a()},connectionMultiStreamSetHandshakeInfo:(a,o)=>{if(!n.instance)return;let c=new Uint8Array(1+o.localTlsCertificateSha256.length);st(c,0,0),c.set(o.localTlsCertificateSha256,1),n.bufferIndices[0]=c,n.instance.exports.connection_multi_stream_set_handshake_info(a,0),delete n.bufferIndices[0]},connectionReset:(a,o)=>{n.instance&&(n.bufferIndices[0]=new TextEncoder().encode(o),n.instance.exports.connection_reset(a,0),delete n.bufferIndices[0])},streamWritableBytes:(a,o,c)=>{n.instance&&n.instance.exports.stream_writable_bytes(a,c||0,o)},streamMessage:(a,o,c)=>{n.instance&&(n.bufferIndices[0]=o,n.instance.exports.stream_message(a,c||0,0),delete n.bufferIndices[0])},streamOpened:(a,o,c)=>{n.instance&&n.instance.exports.connection_stream_opened(a,o,c==="outbound"?1:0)},streamReset:(a,o,c)=>{n.instance&&(n.bufferIndices[0]=new TextEncoder().encode(c),n.instance.exports.stream_reset(a,o,0),delete n.bufferIndices[0])}}})}var ot=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function at(t){return ot(this,void 0,void 0,function*(){let{port1:e,port2:s}=new MessageChannel,n=t.portToServer,i={wasmModule:yield t.wasmModule,serverToClient:s,maxLogLevel:t.maxLogLevel,cpuRateLimit:t.cpuRateLimit,forbidWs:t.forbidWs,forbidWss:t.forbidWss,forbidNonLocalWs:t.forbidNonLocalWs,forbidTcp:t.forbidTcp,forbidWebRtc:t.forbidWebRtc};n.postMessage(i,[s]);let r={jsonRpcResponses:new Map,connections:new Map};return e.onmessage=f=>{let a=f.data;switch(a.ty){case"wasm-panic":case"executor-shutdown":{e.close(),n.close();break}case"add-chain-result":{if(a.success){r.jsonRpcResponses.set(a.chainId,new Array);let o={ty:"accept-more-json-rpc-answers",chainId:a.chainId};for(let c=0;c<10;++c)e.postMessage(o)}break}case"new-connection":{r.connections.set(a.connectionId,new Set);break}case"connection-reset":{if(!r.connections.has(a.connectionId))return;r.connections.delete(a.connectionId);break}case"connection-stream-open":{if(!r.connections.has(a.connectionId))return;break}case"connection-stream-reset":{if(!r.connections.has(a.connectionId)||!r.connections.get(a.connectionId).has(a.streamId))return;break}case"stream-send":{if(!r.connections.has(a.connectionId)||a.streamId&&!r.connections.get(a.connectionId).has(a.streamId))return;break}case"stream-send-close":{if(!r.connections.has(a.connectionId)||a.streamId&&!r.connections.get(a.connectionId).has(a.streamId))return;break}case"json-rpc-response":{let o=r.jsonRpcResponses.get(a.chainId);o&&(o.push(a.response),t.eventCallback({ty:"json-rpc-responses-non-empty",chainId:a.chainId}));return}}t.eventCallback(a)},{addChain(f,a,o,c,l,h){return ot(this,void 0,void 0,function*(){let m={ty:"add-chain",chainSpec:f,databaseContent:a,potentialRelayChains:o,disableJsonRpc:c,jsonRpcMaxPendingRequests:l,jsonRpcMaxSubscriptions:h};e.postMessage(m)})},removeChain(f){r.jsonRpcResponses.delete(f);let a={ty:"remove-chain",chainId:f};e.postMessage(a)},request(f,a){let o={ty:"request",chainId:a,request:f};return e.postMessage(o),0},peekJsonRpcResponse(f){let a=r.jsonRpcResponses.get(f).shift();if(!a)return null;let o={ty:"accept-more-json-rpc-answers",chainId:f};return e.postMessage(o),a},shutdownExecutor(){let f={ty:"shutdown"};e.postMessage(f)},connectionReset(f,a){r.connections.delete(f);let o={ty:"connection-reset",connectionId:f,message:a};e.postMessage(o)},connectionMultiStreamSetHandshakeInfo(f,a){let o={ty:"connection-multistream-set-info",connectionId:f,info:a};e.postMessage(o)},streamMessage(f,a,o){let c={ty:"stream-message",connectionId:f,message:a,streamId:o};e.postMessage(c)},streamOpened(f,a,o){r.connections.get(f).add(a);let c={ty:"stream-opened",connectionId:f,streamId:a,direction:o};e.postMessage(c)},streamWritableBytes(f,a,o){let c={ty:"stream-writable-bytes",connectionId:f,numExtra:a,streamId:o};e.postMessage(c)},streamReset(f,a,o){r.connections.get(f).delete(a);let c={ty:"stream-reset",connectionId:f,streamId:a,message:o};e.postMessage(c)}}})}var he=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function ct(t,e,s){let n=t.logCallback||((o,c,l)=>{o<=1?console.error("[%s] %s",c,l):o==2?console.warn("[%s] %s",c,l):o==3?console.info("[%s] %s",c,l):o==4?console.debug("[%s] %s",c,l):console.trace("[%s] %s",c,l)});e instanceof Promise||(e=Promise.resolve(e));let i=t.cpuRateLimit||1;isNaN(i)&&(i=1),i>1&&(i=1),i<0&&(i=0);let r={instance:{status:"not-created"},chainIds:new WeakMap,connections:new Map,addChainIdAllocations:[],addChainResults:new Map,onExecutorShutdownOrWasmPanic:()=>{},chains:new Map},f=o=>{switch(o.ty){case"wasm-panic":{console.error("Smoldot has panicked"+(o.currentTask?" while executing task `"+o.currentTask+"`":"")+`. This is a bug in smoldot. Please open an issue at https://github.com/smol-dot/smoldot/issues with the following message:
|
|
9
|
+
`+o.message),r.instance={status:"destroyed",error:new Z(o.message)},r.connections.forEach(l=>l.reset()),r.connections.clear();for(let l of r.addChainIdAllocations)l({success:!1,error:"Smoldot has crashed"});r.addChainIdAllocations=[],r.addChainResults.forEach(l=>{l({success:!1,error:"Smoldot has crashed"})}),r.addChainResults.clear();for(let l of Array.from(r.chains.values())){for(let h of l.jsonRpcResponsesPromises)h();l.jsonRpcResponsesPromises=[]}r.chains.clear();let c=r.onExecutorShutdownOrWasmPanic;r.onExecutorShutdownOrWasmPanic=()=>{},c();break}case"executor-shutdown":{let c=r.onExecutorShutdownOrWasmPanic;r.onExecutorShutdownOrWasmPanic=()=>{},c();break}case"log":{n(o.level,o.target,o.message);break}case"add-chain-id-allocated":{let c=r.addChainIdAllocations.shift();r.addChainResults.set(o.chainId,c);break}case"add-chain-result":{r.addChainResults.get(o.chainId)(o),r.addChainResults.delete(o.chainId);break}case"json-rpc-responses-non-empty":{let c=r.chains.get(o.chainId).jsonRpcResponsesPromises;for(;c.length!==0;)c.shift()();break}case"new-connection":{let c=o.connectionId;r.connections.set(c,s.connect({address:o.address,onConnectionReset(l){if(r.instance.status!=="ready")throw new Error;r.connections.delete(c),r.instance.instance.connectionReset(c,l)},onMessage(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamMessage(c,l,h)},onStreamOpened(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamOpened(c,l,h)},onMultistreamHandshakeInfo(l){if(r.instance.status!=="ready")throw new Error;r.instance.instance.connectionMultiStreamSetHandshakeInfo(c,l)},onWritableBytes(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamWritableBytes(c,l,h)},onStreamReset(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamReset(c,l,h)}}));break}case"connection-reset":{r.connections.get(o.connectionId).reset(),r.connections.delete(o.connectionId);break}case"connection-stream-open":{r.connections.get(o.connectionId).openOutSubstream();break}case"connection-stream-reset":{r.connections.get(o.connectionId).reset(o.streamId);break}case"stream-send":{r.connections.get(o.connectionId).send(o.data,o.streamId);break}case"stream-send-close":{r.connections.get(o.connectionId).closeSend(o.streamId);break}}},a=t.portToWorker;return a?r.instance={status:"not-ready",whenReady:at({wasmModule:e.then(o=>o.wasm),forbidTcp:t.forbidTcp||!1,forbidWs:t.forbidWs||!1,forbidNonLocalWs:t.forbidNonLocalWs||!1,forbidWss:t.forbidWss||!1,forbidWebRtc:t.forbidWebRtc||!1,maxLogLevel:t.maxLogLevel||3,cpuRateLimit:i,portToServer:a,eventCallback:f}).then(o=>{r.instance.status!=="destroyed"&&(r.instance={status:"ready",instance:o})})}:r.instance={status:"not-ready",whenReady:e.then(o=>Re({forbidTcp:t.forbidTcp||!1,forbidWs:t.forbidWs||!1,forbidNonLocalWs:t.forbidNonLocalWs||!1,forbidWss:t.forbidWss||!1,forbidWebRtc:t.forbidWebRtc||!1,maxLogLevel:t.maxLogLevel||3,cpuRateLimit:i,envVars:[],performanceNow:s.performanceNow,getRandomValues:s.getRandomValues},o.wasm,f)).then(o=>{r.instance.status!=="destroyed"&&(r.instance={status:"ready",instance:o})})},{addChain:o=>he(this,void 0,void 0,function*(){if(r.instance.status==="not-ready"&&(yield r.instance.whenReady),r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status==="not-created"||r.instance.status==="not-ready")throw new Error;if(typeof o.chainSpec!="string")throw new Error("Chain specification must be a string");let c=[];if(o.potentialRelayChains)for(let _ of o.potentialRelayChains){let x=r.chainIds.get(_);x!==void 0&&c.push(x)}let l=o.jsonRpcMaxPendingRequests===void 0?1/0:o.jsonRpcMaxPendingRequests;if(l=Math.floor(l),l<=0||isNaN(l))throw new L("Invalid value for `jsonRpcMaxPendingRequests`");l>4294967295&&(l=4294967295);let h=o.jsonRpcMaxSubscriptions===void 0?1/0:o.jsonRpcMaxSubscriptions;if(h=Math.floor(h),h<0||isNaN(h))throw new L("Invalid value for `jsonRpcMaxSubscriptions`");if(h>4294967295&&(h=4294967295),o.databaseContent!==void 0&&typeof o.databaseContent!="string")throw new L("`databaseContent` is not a string");let m=new Promise(_=>r.addChainIdAllocations.push(_));r.instance.instance.addChain(o.chainSpec,o.databaseContent||"",c,!!o.disableJsonRpc,l,h);let p=yield m;if(!p.success)throw new L(p.error);let d=p.chainId;r.chains.set(d,{jsonRpcResponsesPromises:new Array});let u={sendJsonRpc:_=>{if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;if(!r.chains.has(d))throw new N;if(o.disableJsonRpc)throw new F;let x=r.instance.instance.request(_,d);switch(x){case 0:break;case 1:throw new Q;default:throw new Error("Internal error: unknown json_rpc_send error code: "+x)}},jsonRpcResponses:{next:()=>he(this,void 0,void 0,function*(){for(;;){if(!r.chains.has(d))return{done:!0,value:void 0};if(o.disableJsonRpc)throw new F;if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;let _=r.instance.instance.peekJsonRpcResponse(d);if(_)return{done:!1,value:_};yield new Promise(x=>{r.chains.get(d).jsonRpcResponsesPromises.push(x)})}}),[Symbol.asyncIterator](){return this}},nextJsonRpcResponse:()=>he(this,void 0,void 0,function*(){let _=yield u.jsonRpcResponses.next();if(_.done)throw new N;return _.value}),remove:()=>{if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;if(!r.chains.has(d))throw new N;console.assert(r.chainIds.has(u)),r.chainIds.delete(u);for(let _ of r.chains.get(d).jsonRpcResponsesPromises)_();r.chains.delete(d),r.instance.instance.removeChain(d)}};return r.chainIds.set(u,d),u}),terminate:()=>he(this,void 0,void 0,function*(){if(r.instance.status==="not-ready"&&(yield r.instance.whenReady),r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;r.instance.instance.shutdownExecutor(),yield new Promise(o=>r.onExecutorShutdownOrWasmPanic=o),r.instance.status==="ready"&&(r.instance={status:"destroyed",error:new N}),r.connections.forEach(o=>o.reset()),r.connections.clear();for(let o of r.addChainIdAllocations)o({success:!1,error:"Client.terminate() has been called"});r.addChainIdAllocations=[],r.addChainResults.forEach(o=>{o({success:!1,error:"Client.terminate() has been called"})}),r.addChainResults.clear();for(let o of Array.from(r.chains.values())){for(let c of o.jsonRpcResponsesPromises)c();o.jsonRpcResponsesPromises=[]}r.chains.clear()})}}var Hn=K(ut(),1),zn=K(Ae(),1),Jn=K(qe(),1),Xe=K(Je(),1),Yn=K(us(),1);var ds=require("perf_hooks"),ms=require("net"),ps=require("crypto");function _s(t){return t.forbidWebRtc=!0,ct(t||{},t.bytecode,{performanceNow:()=>ds.performance.now(),getRandomValues:e=>{if(e.length>=1024*1024)throw new Error("getRandomValues buffer too large");(0,ps.randomFillSync)(e)},connect:e=>Xn(e)})}function Xn(t){if(t.address.ty==="websocket"){let e=new Xe.default(t.address.url);e.binaryType="arraybuffer";let s={quenedUnreportedBytes:0,nextTimeout:10},n=()=>{if(e.readyState!=1)return;let i=e.bufferedAmount,r=s.quenedUnreportedBytes-i;r<0&&(r=0),s.quenedUnreportedBytes-=r,s.quenedUnreportedBytes!=0&&(setTimeout(n,s.nextTimeout),s.nextTimeout*=2,s.nextTimeout>500&&(s.nextTimeout=500)),r!=0&&t.onWritableBytes(r)};return e.onopen=()=>{t.onWritableBytes(1024*1024)},e.onclose=i=>{let r="Error code "+i.code+(i.reason?": "+i.reason:"");t.onConnectionReset(r),e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{}},e.onerror=i=>{t.onConnectionReset(i.message),e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{}},e.onmessage=i=>{t.onMessage(new Uint8Array(i.data))},{reset:()=>{e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{},e.close()},send:i=>{s.quenedUnreportedBytes==0&&(s.nextTimeout=10,setTimeout(n,10));for(let r of i)e.send(r),s.quenedUnreportedBytes+=r.length},closeSend:()=>{throw new Error("Wrong connection type")},openOutSubstream:()=>{throw new Error("Wrong connection type")}}}else if(t.address.ty==="tcp"){let e=(0,ms.createConnection)({host:t.address.hostname,port:t.address.port}),s={num:0};return e.setNoDelay(),e.on("connect",()=>{e.destroyed||t.onWritableBytes(e.writableHighWaterMark)}),e.on("close",n=>{if(e.destroyed)return;let i=n?"Error":"Closed gracefully";t.onConnectionReset(i)}),e.on("error",()=>{}),e.on("data",n=>{e.destroyed||t.onMessage(new Uint8Array(n.buffer))}),e.on("drain",()=>{if(e.destroyed)return;let n=s.num;s.num=0,t.onWritableBytes(n)}),{reset:()=>{e.destroy()},send:n=>{for(let i of n){let r=i.length;e.write(i)?setImmediate(()=>{e.writable&&t.onWritableBytes(r)}):s.num+=r}},closeSend:()=>{e.end()},openOutSubstream:()=>{throw new Error("Wrong connection type")}}}else throw new Error}var Kn=(t,e={})=>{let s=new Promise(r=>{t.onmessage=f=>r(f.data)}),{port1:n,port2:i}=new MessageChannel;return t.postMessage(n,[n]),_s({bytecode:s,portToWorker:i,...e})};0&&(module.exports={startFromWorker});
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export*from"@polkadot-api/smoldot/from-worker";
|
|
2
|
+
var ps=Object.create;var et=Object.defineProperty;var _s=Object.getOwnPropertyDescriptor;var ys=Object.getOwnPropertyNames;var gs=Object.getPrototypeOf,xs=Object.prototype.hasOwnProperty;var g=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var bs=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ys(e))!xs.call(t,i)&&i!==s&&et(t,i,{get:()=>e[i],enumerable:!(n=_s(e,i))||n.enumerable});return t};var Z=(t,e,s)=>(s=t!=null?ps(gs(t)):{},bs(e||!t||!t.__esModule?et(s,"default",{value:t,enumerable:!0}):s,t));var ut=w((er,ht)=>{"use strict";var{Duplex:Es}=g("stream");function ft(t){t.emit("close")}function Is(){!this.destroyed&&this._writableState.finished&&this.destroy()}function lt(t){this.removeListener("error",lt),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function ks(t,e){let s=!0,n=new Es({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(r,f){let a=!f&&n._readableState.objectMode?r.toString():r;n.push(a)||t.pause()}),t.once("error",function(r){n.destroyed||(s=!1,n.destroy(r))}),t.once("close",function(){n.destroyed||n.push(null)}),n._destroy=function(i,r){if(t.readyState===t.CLOSED){r(i),process.nextTick(ft,n);return}let f=!1;t.once("error",function(o){f=!0,r(o)}),t.once("close",function(){f||r(i),process.nextTick(ft,n)}),s&&t.terminate()},n._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){n._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),n._readableState.endEmitted&&n.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},n._read=function(){t.isPaused&&t.resume()},n._write=function(i,r,f){if(t.readyState===t.CONNECTING){t.once("open",function(){n._write(i,r,f)});return}t.send(i,f)},n.on("end",Is),n.on("error",lt),n}ht.exports=ks});var T=w((tr,pt)=>{"use strict";var dt=["nodebuffer","arraybuffer","fragments"],mt=typeof Blob<"u";mt&&dt.push("blob");pt.exports={BINARY_TYPES:dt,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:mt,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var se=w((sr,ue)=>{"use strict";var{EMPTY_BUFFER:vs}=T(),Te=Buffer[Symbol.species];function Rs(t,e){if(t.length===0)return vs;if(t.length===1)return t[0];let s=Buffer.allocUnsafe(e),n=0;for(let i=0;i<t.length;i++){let r=t[i];s.set(r,n),n+=r.length}return n<e?new Te(s.buffer,s.byteOffset,n):s}function _t(t,e,s,n,i){for(let r=0;r<i;r++)s[n+r]=t[r]^e[r&3]}function yt(t,e){for(let s=0;s<t.length;s++)t[s]^=e[s&3]}function Ts(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Ce(t){if(Ce.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Te(t):ArrayBuffer.isView(t)?e=new Te(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Ce.readOnly=!1),e}ue.exports={concat:Rs,mask:_t,toArrayBuffer:Ts,toBuffer:Ce,unmask:yt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=g("bufferutil");ue.exports.mask=function(e,s,n,i,r){r<48?_t(e,s,n,i,r):t.mask(e,s,n,i,r)},ue.exports.unmask=function(e,s){e.length<32?yt(e,s):t.unmask(e,s)}}catch{}});var bt=w((nr,xt)=>{"use strict";var gt=Symbol("kDone"),Oe=Symbol("kRun"),Le=class{constructor(e){this[gt]=()=>{this.pending--,this[Oe]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Oe]()}[Oe](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[gt])}}};xt.exports=Le});var ie=w((rr,It)=>{"use strict";var ne=g("zlib"),wt=se(),Cs=bt(),{kStatusCode:St}=T(),Os=Buffer[Symbol.species],Ls=Buffer.from([0,0,255,255]),pe=Symbol("permessage-deflate"),C=Symbol("total-length"),re=Symbol("callback"),P=Symbol("buffers"),me=Symbol("error"),de,Ne=class{constructor(e,s,n){if(this._maxPayload=n|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!s,this._deflate=null,this._inflate=null,this.params=null,!de){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;de=new Cs(i)}}static get extensionName(){return"permessage-deflate"}offer(){let 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:this._options.clientMaxWindowBits==null&&(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){let e=this._deflate[re];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let s=this._options,n=e.find(i=>!(s.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(s.serverMaxWindowBits===!1||typeof s.serverMaxWindowBits=="number"&&s.serverMaxWindowBits>i.server_max_window_bits)||typeof s.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!n)throw new Error("None of the extension offers can be accepted");return s.serverNoContextTakeover&&(n.server_no_context_takeover=!0),s.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof s.serverMaxWindowBits=="number"&&(n.server_max_window_bits=s.serverMaxWindowBits),typeof s.clientMaxWindowBits=="number"?n.client_max_window_bits=s.clientMaxWindowBits:(n.client_max_window_bits===!0||s.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let s=e[0];if(this._options.clientNoContextTakeover===!1&&s.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!s.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(s.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&s.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return s}normalizeParams(e){return e.forEach(s=>{Object.keys(s).forEach(n=>{let i=s[n];if(i.length>1)throw new Error(`Parameter "${n}" must have only a single value`);if(i=i[0],n==="client_max_window_bits"){if(i!==!0){let r=+i;if(!Number.isInteger(r)||r<8||r>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=r}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else if(n==="server_max_window_bits"){let r=+i;if(!Number.isInteger(r)||r<8||r>15)throw new TypeError(`Invalid value for parameter "${n}": ${i}`);i=r}else if(n==="client_no_context_takeover"||n==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${n}": ${i}`)}else throw new Error(`Unknown parameter "${n}"`);s[n]=i})}),e}decompress(e,s,n){de.add(i=>{this._decompress(e,s,(r,f)=>{i(),n(r,f)})})}compress(e,s,n){de.add(i=>{this._compress(e,s,(r,f)=>{i(),n(r,f)})})}_decompress(e,s,n){let i=this._isServer?"client":"server";if(!this._inflate){let r=`${i}_max_window_bits`,f=typeof this.params[r]!="number"?ne.Z_DEFAULT_WINDOWBITS:this.params[r];this._inflate=ne.createInflateRaw({...this._options.zlibInflateOptions,windowBits:f}),this._inflate[pe]=this,this._inflate[C]=0,this._inflate[P]=[],this._inflate.on("error",Bs),this._inflate.on("data",Et)}this._inflate[re]=n,this._inflate.write(e),s&&this._inflate.write(Ls),this._inflate.flush(()=>{let r=this._inflate[me];if(r){this._inflate.close(),this._inflate=null,n(r);return}let f=wt.concat(this._inflate[P],this._inflate[C]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[C]=0,this._inflate[P]=[],s&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),n(null,f)})}_compress(e,s,n){let i=this._isServer?"server":"client";if(!this._deflate){let r=`${i}_max_window_bits`,f=typeof this.params[r]!="number"?ne.Z_DEFAULT_WINDOWBITS:this.params[r];this._deflate=ne.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:f}),this._deflate[C]=0,this._deflate[P]=[],this._deflate.on("data",Ns)}this._deflate[re]=n,this._deflate.write(e),this._deflate.flush(ne.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let r=wt.concat(this._deflate[P],this._deflate[C]);s&&(r=new Os(r.buffer,r.byteOffset,r.length-4)),this._deflate[re]=null,this._deflate[C]=0,this._deflate[P]=[],s&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),n(null,r)})}};It.exports=Ne;function Ns(t){this[P].push(t),this[C]+=t.length}function Et(t){if(this[C]+=t.length,this[pe]._maxPayload<1||this[C]<=this[pe]._maxPayload){this[P].push(t);return}this[me]=new RangeError("Max payload size exceeded"),this[me].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[me][St]=1009,this.removeListener("data",Et),this.reset()}function Bs(t){this[pe]._inflate=null,t[St]=1007,this[re](t)}});var $=w((ir,_e)=>{"use strict";var{isUtf8:kt}=g("buffer"),{hasBlob:Ps}=T(),Ws=[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 Us(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Be(t){let e=t.length,s=0;for(;s<e;)if(!(t[s]&128))s++;else if((t[s]&224)===192){if(s+1===e||(t[s+1]&192)!==128||(t[s]&254)===192)return!1;s+=2}else if((t[s]&240)===224){if(s+2>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||t[s]===224&&(t[s+1]&224)===128||t[s]===237&&(t[s+1]&224)===160)return!1;s+=3}else if((t[s]&248)===240){if(s+3>=e||(t[s+1]&192)!==128||(t[s+2]&192)!==128||(t[s+3]&192)!==128||t[s]===240&&(t[s+1]&240)===128||t[s]===244&&t[s+1]>143||t[s]>244)return!1;s+=4}else return!1;return!0}function Ms(t){return Ps&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}_e.exports={isBlob:Ms,isValidStatusCode:Us,isValidUTF8:Be,tokenChars:Ws};if(kt)_e.exports.isValidUTF8=function(t){return t.length<24?Be(t):kt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=g("utf-8-validate");_e.exports.isValidUTF8=function(e){return e.length<32?Be(e):t(e)}}catch{}});var Ae=w((or,Nt)=>{"use strict";var{Writable:As}=g("stream"),vt=ie(),{BINARY_TYPES:Ds,EMPTY_BUFFER:Rt,kStatusCode:js,kWebSocket:qs}=T(),{concat:Pe,toArrayBuffer:Fs,unmask:Gs}=se(),{isValidStatusCode:Vs,isValidUTF8:Tt}=$(),ye=Buffer[Symbol.species],I=0,Ct=1,Ot=2,Lt=3,We=4,Ue=5,ge=6,Me=class extends As{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Ds[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[qs]=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._errored=!1,this._loop=!1,this._state=I}_write(e,s,n){if(this._opcode===8&&this._state==I)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let n=this._buffers[0];return this._buffers[0]=new ye(n.buffer,n.byteOffset+e,n.length-e),new ye(n.buffer,n.byteOffset,e)}let s=Buffer.allocUnsafe(e);do{let n=this._buffers[0],i=s.length-e;e>=n.length?s.set(this._buffers.shift(),i):(s.set(new Uint8Array(n.buffer,n.byteOffset,e),i),this._buffers[0]=new ye(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return s}startLoop(e){this._loop=!0;do switch(this._state){case I:this.getInfo(e);break;case Ct:this.getPayloadLength16(e);break;case Ot:this.getPayloadLength64(e);break;case Lt:this.getMask();break;case We:this.getData(e);break;case Ue:case ge:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let s=this.consume(2);if(s[0]&48){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let n=(s[0]&64)===64;if(n&&!this._extensions[vt.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(s[0]&128)===128,this._opcode=s[0]&15,this._payloadLength=s[1]&127,this._opcode===0){if(n){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(n){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(s[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=Ct:this._payloadLength===127?this._state=Ot:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let s=this.consume(8),n=s.readUInt32BE(0);if(n>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=n*Math.pow(2,32)+s.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let s=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(s);return}this._masked?this._state=Lt:this._state=We}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=We}getData(e){let s=Rt;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}s=this.consume(this._payloadLength),this._masked&&this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3]&&Gs(s,this._mask)}if(this._opcode>7){this.controlMessage(s,e);return}if(this._compressed){this._state=Ue,this.decompress(s,e);return}s.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(s)),this.dataMessage(e)}decompress(e,s){this._extensions[vt.extensionName].decompress(e,this._fin,(i,r)=>{if(i)return s(i);if(r.length){if(this._messageLength+=r.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let f=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");s(f);return}this._fragments.push(r)}this.dataMessage(s),this._state===I&&this.startLoop(s)})}dataMessage(e){if(!this._fin){this._state=I;return}let s=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Pe(n,s):this._binaryType==="arraybuffer"?i=Fs(Pe(n,s)):this._binaryType==="blob"?i=new Blob(n):i=n,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=I):(this._state=ge,setImmediate(()=>{this.emit("message",i,!0),this._state=I,this.startLoop(e)}))}else{let i=Pe(n,s);if(!this._skipUTF8Validation&&!Tt(i)){let r=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(r);return}this._state===Ue||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=I):(this._state=ge,setImmediate(()=>{this.emit("message",i,!1),this._state=I,this.startLoop(e)}))}}controlMessage(e,s){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,Rt),this.end();else{let n=e.readUInt16BE(0);if(!Vs(n)){let r=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");s(r);return}let i=new ye(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Tt(i)){let r=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");s(r);return}this._loop=!1,this.emit("conclude",n,i),this.end()}this._state=I;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=I):(this._state=ge,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=I,this.startLoop(s)}))}createError(e,s,n,i,r){this._loop=!1,this._errored=!0;let f=new e(n?`Invalid WebSocket frame: ${s}`:s);return Error.captureStackTrace(f,this.createError),f.code=r,f[js]=i,f}};Nt.exports=Me});var qe=w((cr,Wt)=>{"use strict";var{Duplex:ar}=g("stream"),{randomFillSync:$s}=g("crypto"),Bt=ie(),{EMPTY_BUFFER:Hs,kWebSocket:zs,NOOP:Js}=T(),{isBlob:H,isValidStatusCode:Ys}=$(),{mask:Pt,toBuffer:M}=se(),k=Symbol("kByteLength"),Xs=Buffer.alloc(4),xe=8*1024,A,z=xe,v=0,Ks=1,Zs=2,De=class t{constructor(e,s,n){this._extensions=s||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=v,this.onerror=Js,this[zs]=void 0}static frame(e,s){let n,i=!1,r=2,f=!1;s.mask&&(n=s.maskBuffer||Xs,s.generateMask?s.generateMask(n):(z===xe&&(A===void 0&&(A=Buffer.alloc(xe)),$s(A,0,xe),z=0),n[0]=A[z++],n[1]=A[z++],n[2]=A[z++],n[3]=A[z++]),f=(n[0]|n[1]|n[2]|n[3])===0,r=6);let a;typeof e=="string"?(!s.mask||f)&&s[k]!==void 0?a=s[k]:(e=Buffer.from(e),a=e.length):(a=e.length,i=s.mask&&s.readOnly&&!f);let o=a;a>=65536?(r+=8,o=127):a>125&&(r+=2,o=126);let c=Buffer.allocUnsafe(i?a+r:r);return c[0]=s.fin?s.opcode|128:s.opcode,s.rsv1&&(c[0]|=64),c[1]=o,o===126?c.writeUInt16BE(a,2):o===127&&(c[2]=c[3]=0,c.writeUIntBE(a,4,6)),s.mask?(c[1]|=128,c[r-4]=n[0],c[r-3]=n[1],c[r-2]=n[2],c[r-1]=n[3],f?[c,e]:i?(Pt(e,n,c,r,a),[c]):(Pt(e,n,e,0,a),[c,e])):[c,e]}close(e,s,n,i){let r;if(e===void 0)r=Hs;else{if(typeof e!="number"||!Ys(e))throw new TypeError("First argument must be a valid error code number");if(s===void 0||!s.length)r=Buffer.allocUnsafe(2),r.writeUInt16BE(e,0);else{let a=Buffer.byteLength(s);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");r=Buffer.allocUnsafe(2+a),r.writeUInt16BE(e,0),typeof s=="string"?r.write(s,2):r.set(s,2)}}let f={[k]:r.length,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==v?this.enqueue([this.dispatch,r,!1,f,i]):this.sendFrame(t.frame(r,f),i)}ping(e,s,n){let i,r;if(typeof e=="string"?(i=Buffer.byteLength(e),r=!1):H(e)?(i=e.size,r=!1):(e=M(e),i=e.length,r=M.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let f={[k]:i,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:9,readOnly:r,rsv1:!1};H(e)?this._state!==v?this.enqueue([this.getBlobData,e,!1,f,n]):this.getBlobData(e,!1,f,n):this._state!==v?this.enqueue([this.dispatch,e,!1,f,n]):this.sendFrame(t.frame(e,f),n)}pong(e,s,n){let i,r;if(typeof e=="string"?(i=Buffer.byteLength(e),r=!1):H(e)?(i=e.size,r=!1):(e=M(e),i=e.length,r=M.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let f={[k]:i,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:10,readOnly:r,rsv1:!1};H(e)?this._state!==v?this.enqueue([this.getBlobData,e,!1,f,n]):this.getBlobData(e,!1,f,n):this._state!==v?this.enqueue([this.dispatch,e,!1,f,n]):this.sendFrame(t.frame(e,f),n)}send(e,s,n){let i=this._extensions[Bt.extensionName],r=s.binary?2:1,f=s.compress,a,o;typeof e=="string"?(a=Buffer.byteLength(e),o=!1):H(e)?(a=e.size,o=!1):(e=M(e),a=e.length,o=M.readOnly),this._firstFragment?(this._firstFragment=!1,f&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(f=a>=i._threshold),this._compress=f):(f=!1,r=0),s.fin&&(this._firstFragment=!0);let c={[k]:a,fin:s.fin,generateMask:this._generateMask,mask:s.mask,maskBuffer:this._maskBuffer,opcode:r,readOnly:o,rsv1:f};H(e)?this._state!==v?this.enqueue([this.getBlobData,e,this._compress,c,n]):this.getBlobData(e,this._compress,c,n):this._state!==v?this.enqueue([this.dispatch,e,this._compress,c,n]):this.dispatch(e,this._compress,c,n)}getBlobData(e,s,n,i){this._bufferedBytes+=n[k],this._state=Zs,e.arrayBuffer().then(r=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(je,this,a,i);return}this._bufferedBytes-=n[k];let f=M(r);s?this.dispatch(f,s,n,i):(this._state=v,this.sendFrame(t.frame(f,n),i),this.dequeue())}).catch(r=>{process.nextTick(Qs,this,r,i)})}dispatch(e,s,n,i){if(!s){this.sendFrame(t.frame(e,n),i);return}let r=this._extensions[Bt.extensionName];this._bufferedBytes+=n[k],this._state=Ks,r.compress(e,n.fin,(f,a)=>{if(this._socket.destroyed){let o=new Error("The socket was closed while data was being compressed");je(this,o,i);return}this._bufferedBytes-=n[k],this._state=v,n.readOnly=!1,this.sendFrame(t.frame(a,n),i),this.dequeue()})}dequeue(){for(;this._state===v&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][k],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][k],this._queue.push(e)}sendFrame(e,s){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],s),this._socket.uncork()):this._socket.write(e[0],s)}};Wt.exports=De;function je(t,e,s){typeof s=="function"&&s(e);for(let n=0;n<t._queue.length;n++){let i=t._queue[n],r=i[i.length-1];typeof r=="function"&&r(e)}}function Qs(t,e,s){je(t,e,s),t.onerror(e)}});var Vt=w((fr,Gt)=>{"use strict";var{kForOnEventAttribute:oe,kListener:Fe}=T(),Ut=Symbol("kCode"),Mt=Symbol("kData"),At=Symbol("kError"),Dt=Symbol("kMessage"),jt=Symbol("kReason"),J=Symbol("kTarget"),qt=Symbol("kType"),Ft=Symbol("kWasClean"),O=class{constructor(e){this[J]=null,this[qt]=e}get target(){return this[J]}get type(){return this[qt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var D=class extends O{constructor(e,s={}){super(e),this[Ut]=s.code===void 0?0:s.code,this[jt]=s.reason===void 0?"":s.reason,this[Ft]=s.wasClean===void 0?!1:s.wasClean}get code(){return this[Ut]}get reason(){return this[jt]}get wasClean(){return this[Ft]}};Object.defineProperty(D.prototype,"code",{enumerable:!0});Object.defineProperty(D.prototype,"reason",{enumerable:!0});Object.defineProperty(D.prototype,"wasClean",{enumerable:!0});var Y=class extends O{constructor(e,s={}){super(e),this[At]=s.error===void 0?null:s.error,this[Dt]=s.message===void 0?"":s.message}get error(){return this[At]}get message(){return this[Dt]}};Object.defineProperty(Y.prototype,"error",{enumerable:!0});Object.defineProperty(Y.prototype,"message",{enumerable:!0});var ae=class extends O{constructor(e,s={}){super(e),this[Mt]=s.data===void 0?null:s.data}get data(){return this[Mt]}};Object.defineProperty(ae.prototype,"data",{enumerable:!0});var en={addEventListener(t,e,s={}){for(let i of this.listeners(t))if(!s[oe]&&i[Fe]===e&&!i[oe])return;let n;if(t==="message")n=function(r,f){let a=new ae("message",{data:f?r:r.toString()});a[J]=this,be(e,this,a)};else if(t==="close")n=function(r,f){let a=new D("close",{code:r,reason:f.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[J]=this,be(e,this,a)};else if(t==="error")n=function(r){let f=new Y("error",{error:r,message:r.message});f[J]=this,be(e,this,f)};else if(t==="open")n=function(){let r=new O("open");r[J]=this,be(e,this,r)};else return;n[oe]=!!s[oe],n[Fe]=e,s.once?this.once(t,n):this.on(t,n)},removeEventListener(t,e){for(let s of this.listeners(t))if(s[Fe]===e&&!s[oe]){this.removeListener(t,s);break}}};Gt.exports={CloseEvent:D,ErrorEvent:Y,Event:O,EventTarget:en,MessageEvent:ae};function be(t,e,s){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,s):t.call(e,s)}});var Ge=w((lr,$t)=>{"use strict";var{tokenChars:ce}=$();function R(t,e,s){t[e]===void 0?t[e]=[s]:t[e].push(s)}function tn(t){let e=Object.create(null),s=Object.create(null),n=!1,i=!1,r=!1,f,a,o=-1,c=-1,l=-1,h=0;for(;h<t.length;h++)if(c=t.charCodeAt(h),f===void 0)if(l===-1&&ce[c]===1)o===-1&&(o=h);else if(h!==0&&(c===32||c===9))l===-1&&o!==-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h);let p=t.slice(o,l);c===44?(R(e,p,s),s=Object.create(null)):f=p,o=l=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);else if(a===void 0)if(l===-1&&ce[c]===1)o===-1&&(o=h);else if(c===32||c===9)l===-1&&o!==-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h),R(s,t.slice(o,l),!0),c===44&&(R(e,f,s),s=Object.create(null),f=void 0),o=l=-1}else if(c===61&&o!==-1&&l===-1)a=t.slice(o,h),o=l=-1;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(i){if(ce[c]!==1)throw new SyntaxError(`Unexpected character at index ${h}`);o===-1?o=h:n||(n=!0),i=!1}else if(r)if(ce[c]===1)o===-1&&(o=h);else if(c===34&&o!==-1)r=!1,l=h;else if(c===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${h}`);else if(c===34&&t.charCodeAt(h-1)===61)r=!0;else if(l===-1&&ce[c]===1)o===-1&&(o=h);else if(o!==-1&&(c===32||c===9))l===-1&&(l=h);else if(c===59||c===44){if(o===-1)throw new SyntaxError(`Unexpected character at index ${h}`);l===-1&&(l=h);let p=t.slice(o,l);n&&(p=p.replace(/\\/g,""),n=!1),R(s,a,p),c===44&&(R(e,f,s),s=Object.create(null),f=void 0),a=void 0,o=l=-1}else throw new SyntaxError(`Unexpected character at index ${h}`);if(o===-1||r||c===32||c===9)throw new SyntaxError("Unexpected end of input");l===-1&&(l=h);let m=t.slice(o,l);return f===void 0?R(e,m,s):(a===void 0?R(s,m,!0):n?R(s,a,m.replace(/\\/g,"")):R(s,a,m),R(e,f,s)),e}function sn(t){return Object.keys(t).map(e=>{let s=t[e];return Array.isArray(s)||(s=[s]),s.map(n=>[e].concat(Object.keys(n).map(i=>{let r=n[i];return Array.isArray(r)||(r=[r]),r.map(f=>f===!0?i:`${i}=${f}`).join("; ")})).join("; ")).join(", ")}).join(", ")}$t.exports={format:sn,parse:tn}});var Je=w((dr,ns)=>{"use strict";var nn=g("events"),rn=g("https"),on=g("http"),Jt=g("net"),an=g("tls"),{randomBytes:cn,createHash:fn}=g("crypto"),{Duplex:hr,Readable:ur}=g("stream"),{URL:Ve}=g("url"),W=ie(),ln=Ae(),hn=qe(),{isBlob:un}=$(),{BINARY_TYPES:Ht,EMPTY_BUFFER:we,GUID:dn,kForOnEventAttribute:$e,kListener:mn,kStatusCode:pn,kWebSocket:x,NOOP:Yt}=T(),{EventTarget:{addEventListener:_n,removeEventListener:yn}}=Vt(),{format:gn,parse:xn}=Ge(),{toBuffer:bn}=se(),wn=30*1e3,Xt=Symbol("kAborted"),He=[8,13],L=["CONNECTING","OPEN","CLOSING","CLOSED"],Sn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,y=class t extends nn{constructor(e,s,n){super(),this._binaryType=Ht[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=we,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,s===void 0?s=[]:Array.isArray(s)||(typeof s=="object"&&s!==null?(n=s,s=[]):s=[s]),Kt(this,e,s,n)):(this._autoPong=n.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ht.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 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,s,n){let i=new ln({allowSynchronousEvents:n.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation}),r=new hn(e,this._extensions,n.generateMask);this._receiver=i,this._sender=r,this._socket=e,i[x]=this,r[x]=this,e[x]=this,i.on("conclude",kn),i.on("drain",vn),i.on("error",Rn),i.on("message",Tn),i.on("ping",Cn),i.on("pong",On),r.onerror=Ln,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),s.length>0&&e.unshift(s),e.on("close",es),e.on("data",Ee),e.on("end",ts),e.on("error",ss),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[W.extensionName]&&this._extensions[W.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,s){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){E(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,s,!this._isServer,n=>{n||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Qt(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=s=void 0):typeof s=="function"&&(n=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}s===void 0&&(s=!this._isServer),this._sender.ping(e||we,s,n)}pong(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=s=void 0):typeof s=="function"&&(n=s,s=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}s===void 0&&(s=!this._isServer),this._sender.pong(e||we,s,n)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,s,n){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof s=="function"&&(n=s,s={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){ze(this,e,n);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...s};this._extensions[W.extensionName]||(i.compress=!1),this._sender.send(e||we,i,n)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){E(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(y,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(y.prototype,"CONNECTING",{enumerable:!0,value:L.indexOf("CONNECTING")});Object.defineProperty(y,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(y.prototype,"OPEN",{enumerable:!0,value:L.indexOf("OPEN")});Object.defineProperty(y,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(y.prototype,"CLOSING",{enumerable:!0,value:L.indexOf("CLOSING")});Object.defineProperty(y,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});Object.defineProperty(y.prototype,"CLOSED",{enumerable:!0,value:L.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(y.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(y.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[$e])return e[mn];return null},set(e){for(let s of this.listeners(t))if(s[$e]){this.removeListener(t,s);break}typeof e=="function"&&this.addEventListener(t,e,{[$e]:!0})}})});y.prototype.addEventListener=_n;y.prototype.removeEventListener=yn;ns.exports=y;function Kt(t,e,s,n){let i={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:He[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...n,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,!He.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${He.join(", ")})`);let r;if(e instanceof Ve)r=e;else try{r=new Ve(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}r.protocol==="http:"?r.protocol="ws:":r.protocol==="https:"&&(r.protocol="wss:"),t._url=r.href;let f=r.protocol==="wss:",a=r.protocol==="ws+unix:",o;if(r.protocol!=="ws:"&&!f&&!a?o=`The URL's protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"`:a&&!r.pathname?o="The URL's pathname is empty":r.hash&&(o="The URL contains a fragment identifier"),o){let u=new SyntaxError(o);if(t._redirects===0)throw u;Se(t,u);return}let c=f?443:80,l=cn(16).toString("base64"),h=f?rn.request:on.request,m=new Set,p;if(i.createConnection=i.createConnection||(f?In:En),i.defaultPort=i.defaultPort||c,i.port=r.port||c,i.host=r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=r.pathname+r.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new W(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=gn({[W.extensionName]:p.offer()})),s.length){for(let u of s){if(typeof u!="string"||!Sn.test(u)||m.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(u)}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),(r.username||r.password)&&(i.auth=`${r.username}:${r.password}`),a){let u=i.path.split(":");i.socketPath=u[0],i.path=u[1]}let d;if(i.followRedirects){if(t._redirects===0){t._originalIpc=a,t._originalSecure=f,t._originalHostOrSocketPath=a?i.socketPath:r.host;let u=n&&n.headers;if(n={...n,headers:{}},u)for(let[_,b]of Object.entries(u))n.headers[_.toLowerCase()]=b}else if(t.listenerCount("redirect")===0){let u=a?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:r.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!f)&&(delete i.headers.authorization,delete i.headers.cookie,u||delete i.headers.host,i.auth=void 0)}i.auth&&!n.headers.authorization&&(n.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),d=t._req=h(i),t._redirects&&t.emit("redirect",t.url,d)}else d=t._req=h(i);i.timeout&&d.on("timeout",()=>{E(t,d,"Opening handshake has timed out")}),d.on("error",u=>{d===null||d[Xt]||(d=t._req=null,Se(t,u))}),d.on("response",u=>{let _=u.headers.location,b=u.statusCode;if(_&&i.followRedirects&&b>=300&&b<400){if(++t._redirects>i.maxRedirects){E(t,d,"Maximum redirects exceeded");return}d.abort();let X;try{X=new Ve(_,e)}catch{let F=new SyntaxError(`Invalid URL: ${_}`);Se(t,F);return}Kt(t,X,s,n)}else t.emit("unexpected-response",d,u)||E(t,d,`Unexpected server response: ${u.statusCode}`)}),d.on("upgrade",(u,_,b)=>{if(t.emit("upgrade",u),t.readyState!==y.CONNECTING)return;d=t._req=null;let X=u.headers.upgrade;if(X===void 0||X.toLowerCase()!=="websocket"){E(t,_,"Invalid Upgrade header");return}let Ke=fn("sha1").update(l+dn).digest("base64");if(u.headers["sec-websocket-accept"]!==Ke){E(t,_,"Invalid Sec-WebSocket-Accept header");return}let F=u.headers["sec-websocket-protocol"],K;if(F!==void 0?m.size?m.has(F)||(K="Server sent an invalid subprotocol"):K="Server sent a subprotocol but none was requested":m.size&&(K="Server sent no subprotocol"),K){E(t,_,K);return}F&&(t._protocol=F);let Ze=u.headers["sec-websocket-extensions"];if(Ze!==void 0){if(!p){E(t,_,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let ke;try{ke=xn(Ze)}catch{E(t,_,"Invalid Sec-WebSocket-Extensions header");return}let Qe=Object.keys(ke);if(Qe.length!==1||Qe[0]!==W.extensionName){E(t,_,"Server indicated an extension that was not requested");return}try{p.accept(ke[W.extensionName])}catch{E(t,_,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[W.extensionName]=p}t.setSocket(_,b,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(d,t):d.end()}function Se(t,e){t._readyState=y.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function En(t){return t.path=t.socketPath,Jt.connect(t)}function In(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Jt.isIP(t.host)?"":t.host),an.connect(t)}function E(t,e,s){t._readyState=y.CLOSING;let n=new Error(s);Error.captureStackTrace(n,E),e.setHeader?(e[Xt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Se,t,n)):(e.destroy(n),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function ze(t,e,s){if(e){let n=un(e)?e.size:bn(e).length;t._socket?t._sender._bufferedBytes+=n:t._bufferedAmount+=n}if(s){let n=new Error(`WebSocket is not open: readyState ${t.readyState} (${L[t.readyState]})`);process.nextTick(s,n)}}function kn(t,e){let s=this[x];s._closeFrameReceived=!0,s._closeMessage=e,s._closeCode=t,s._socket[x]!==void 0&&(s._socket.removeListener("data",Ee),process.nextTick(Zt,s._socket),t===1005?s.close():s.close(t,e))}function vn(){let t=this[x];t.isPaused||t._socket.resume()}function Rn(t){let e=this[x];e._socket[x]!==void 0&&(e._socket.removeListener("data",Ee),process.nextTick(Zt,e._socket),e.close(t[pn])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function zt(){this[x].emitClose()}function Tn(t,e){this[x].emit("message",t,e)}function Cn(t){let e=this[x];e._autoPong&&e.pong(t,!this._isServer,Yt),e.emit("ping",t)}function On(t){this[x].emit("pong",t)}function Zt(t){t.resume()}function Ln(t){let e=this[x];e.readyState!==y.CLOSED&&(e.readyState===y.OPEN&&(e._readyState=y.CLOSING,Qt(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Qt(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),wn)}function es(){let t=this[x];this.removeListener("close",es),this.removeListener("data",Ee),this.removeListener("end",ts),t._readyState=y.CLOSING;let e;!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&(e=t._socket.read())!==null&&t._receiver.write(e),t._receiver.end(),this[x]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",zt),t._receiver.on("finish",zt))}function Ee(t){this[x]._receiver.write(t)||this.pause()}function ts(){let t=this[x];t._readyState=y.CLOSING,t._receiver.end(),this.end()}function ss(){let t=this[x];this.removeListener("error",ss),this.on("error",Yt),t&&(t._readyState=y.CLOSING,this.destroy())}});var is=w((mr,rs)=>{"use strict";var{tokenChars:Nn}=$();function Bn(t){let e=new Set,s=-1,n=-1,i=0;for(i;i<t.length;i++){let f=t.charCodeAt(i);if(n===-1&&Nn[f]===1)s===-1&&(s=i);else if(i!==0&&(f===32||f===9))n===-1&&s!==-1&&(n=i);else if(f===44){if(s===-1)throw new SyntaxError(`Unexpected character at index ${i}`);n===-1&&(n=i);let a=t.slice(s,n);if(e.has(a))throw new SyntaxError(`The "${a}" subprotocol is duplicated`);e.add(a),s=n=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(s===-1||n!==-1)throw new SyntaxError("Unexpected end of input");let r=t.slice(s,i);if(e.has(r))throw new SyntaxError(`The "${r}" subprotocol is duplicated`);return e.add(r),e}rs.exports={parse:Bn}});var us=w((_r,hs)=>{"use strict";var Pn=g("events"),Ie=g("http"),{Duplex:pr}=g("stream"),{createHash:Wn}=g("crypto"),os=Ge(),j=ie(),Un=is(),Mn=Je(),{GUID:An,kWebSocket:Dn}=T(),jn=/^[+/0-9A-Za-z]{22}==$/,as=0,cs=1,ls=2,Ye=class extends Pn{constructor(e,s){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Mn,...e},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=Ie.createServer((n,i)=>{let r=Ie.STATUS_CODES[426];i.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"}),i.end(r)}),this._server.listen(e.port,e.host,e.backlog,s)):e.server&&(this._server=e.server),this._server){let n=this.emit.bind(this,"connection");this._removeListeners=qn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,r,f)=>{this.handleUpgrade(i,r,f,n)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=as}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===ls){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(fe,this);return}if(e&&this.once("close",e),this._state!==cs)if(this._state=cs,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(fe,this):process.nextTick(fe,this);else{let s=this._server;this._removeListeners(),this._removeListeners=this._server=null,s.close(()=>{fe(this)})}}shouldHandle(e){if(this.options.path){let s=e.url.indexOf("?");if((s!==-1?e.url.slice(0,s):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,s,n,i){s.on("error",fs);let r=e.headers["sec-websocket-key"],f=e.headers.upgrade,a=+e.headers["sec-websocket-version"];if(e.method!=="GET"){q(this,e,s,405,"Invalid HTTP method");return}if(f===void 0||f.toLowerCase()!=="websocket"){q(this,e,s,400,"Invalid Upgrade header");return}if(r===void 0||!jn.test(r)){q(this,e,s,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==8&&a!==13){q(this,e,s,400,"Missing or invalid Sec-WebSocket-Version header");return}if(!this.shouldHandle(e)){le(s,400);return}let o=e.headers["sec-websocket-protocol"],c=new Set;if(o!==void 0)try{c=Un.parse(o)}catch{q(this,e,s,400,"Invalid Sec-WebSocket-Protocol header");return}let l=e.headers["sec-websocket-extensions"],h={};if(this.options.perMessageDeflate&&l!==void 0){let m=new j(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let p=os.parse(l);p[j.extensionName]&&(m.accept(p[j.extensionName]),h[j.extensionName]=m)}catch{q(this,e,s,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:e.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(p,d,u,_)=>{if(!p)return le(s,d||401,u,_);this.completeUpgrade(h,r,c,e,s,n,i)});return}if(!this.options.verifyClient(m))return le(s,401)}this.completeUpgrade(h,r,c,e,s,n,i)}completeUpgrade(e,s,n,i,r,f,a){if(!r.readable||!r.writable)return r.destroy();if(r[Dn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>as)return le(r,503);let c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Wn("sha1").update(s+An).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(n.size){let h=this.options.handleProtocols?this.options.handleProtocols(n,i):n.values().next().value;h&&(c.push(`Sec-WebSocket-Protocol: ${h}`),l._protocol=h)}if(e[j.extensionName]){let h=e[j.extensionName].params,m=os.format({[j.extensionName]:[h]});c.push(`Sec-WebSocket-Extensions: ${m}`),l._extensions=e}this.emit("headers",c,i),r.write(c.concat(`\r
|
|
3
|
+
`).join(`\r
|
|
4
|
+
`)),r.removeListener("error",fs),l.setSocket(r,f,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(fe,this)})),a(l,i)}};hs.exports=Ye;function qn(t,e){for(let s of Object.keys(e))t.on(s,e[s]);return function(){for(let n of Object.keys(e))t.removeListener(n,e[n])}}function fe(t){t._state=ls,t.emit("close")}function fs(){this.destroy()}function le(t,e,s,n){s=s||Ie.STATUS_CODES[e],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...n},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${Ie.STATUS_CODES[e]}\r
|
|
5
|
+
`+Object.keys(n).map(i=>`${i}: ${n[i]}`).join(`\r
|
|
6
|
+
`)+`\r
|
|
7
|
+
\r
|
|
8
|
+
`+s)}function q(t,e,s,n,i){if(t.listenerCount("wsClientError")){let r=new Error(i);Error.captureStackTrace(r,q),t.emit("wsClientError",r,s,e)}else le(s,n,i)}});var N=class extends Error{constructor(e){super(e),this.name="AddChainError"}},B=class extends Error{constructor(){super(),this.name="AlreadyDestroyedError"}},G=class extends Error{constructor(){super(),this.name="JsonRpcDisabledError"}},Q=class extends Error{constructor(e){super(e)}},ee=class extends Error{constructor(){super("JSON-RPC requests queue is full")}};function S(t,e,s){return V(t,e,s),new TextDecoder().decode(t.slice(e,e+s))}function tt(t,e){return V(t,e,1),t[e]}function U(t,e){return V(t,e,2),t[e]<<8|t[e+1]}function te(t,e){return V(t,e,4),(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function st(t,e,s){V(t,e,1),t[e]=s&255}function nt(t,e,s){V(t,e,4),t[e+3]=s>>>24&255,t[e+2]=s>>>16&255,t[e+1]=s>>>8&255,t[e]=s&255}function V(t,e,s){if(!Number.isInteger(e)||e<0)throw new RangeError;if(e+s>t.length)throw new RangeError}var rt=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function Re(t,e,s){return rt(this,void 0,void 0,function*(){let n={instance:null,currentTask:null,bufferIndices:new Array,advanceExecutionPromise:null,onShutdownExecutorOrWasmPanic:()=>{}},i={panic:(a,o)=>{let c=n.instance;n.instance=null,a>>>=0,o>>>=0;let l=S(new Uint8Array(c.exports.memory.buffer),a,o);throw s({ty:"wasm-panic",message:l,currentTask:n.currentTask}),n.onShutdownExecutorOrWasmPanic(),n.onShutdownExecutorOrWasmPanic=()=>{},new Error},chain_initialized:(a,o,c)=>{let l=n.instance,h=new Uint8Array(l.exports.memory.buffer);if(o>>>=0,c>>>=0,o===0)s({ty:"add-chain-result",chainId:a,success:!0});else{let m=S(h,o,c);s({ty:"add-chain-result",chainId:a,success:!1,error:m})}},random_get:(a,o)=>{let c=n.instance;a>>>=0,o>>>=0;let l=new Uint8Array(c.exports.memory.buffer).subarray(a,a+o);for(let h=0;h<o;h+=65536)t.getRandomValues(l.subarray(h,h+65536))},unix_timestamp_us:()=>{let a=Math.floor(Date.now());if(a<0)throw new Error("UNIX timestamp inferior to 0");return BigInt(a)*BigInt(1e3)},monotonic_clock_us:()=>{let a=t.performanceNow(),o=Math.floor(a);return BigInt(o)*BigInt(1e3)+BigInt(Math.floor((a-o)*1e3))},buffer_size:a=>n.bufferIndices[a].byteLength,buffer_copy:(a,o)=>{let c=n.instance;o=o>>>0;let l=n.bufferIndices[a];new Uint8Array(c.exports.memory.buffer).set(l,o)},advance_execution_ready:()=>{n.advanceExecutionPromise&&n.advanceExecutionPromise(),n.advanceExecutionPromise=null},json_rpc_responses_non_empty:a=>{s({ty:"json-rpc-responses-non-empty",chainId:a})},log:(a,o,c,l,h)=>{let m=n.instance;o>>>=0,c>>>=0,l>>>=0,h>>>=0;let p=new Uint8Array(m.exports.memory.buffer),d=S(p,o,c),u=S(p,l,h);s({ty:"log",level:a,message:u,target:d})},start_timer:a=>{let o=n.instance;a>2147483647&&(a=2147483647),a<1&&typeof setImmediate=="function"?setImmediate(()=>{if(n.instance)try{o.exports.timer_finished()}catch{}}):setTimeout(()=>{if(n.instance)try{o.exports.timer_finished()}catch{}},a)},connection_type_supported:a=>{switch(a){case 0:case 1:case 2:return t.forbidTcp?0:1;case 4:case 5:case 6:return t.forbidWs||t.forbidNonLocalWs?0:1;case 7:return t.forbidWs?0:1;case 14:return t.forbidWss?0:1;case 16:case 17:return t.forbidWebRtc?0:1;default:throw new Error("Invalid connection type passed to `connection_type_supported`")}},connection_new:(a,o,c)=>{let l=n.instance,h=new Uint8Array(l.exports.memory.buffer);o>>>=0,c>>>=0;let m;switch(tt(h,o)){case 0:case 1:case 2:{let p=U(h,o+1),d=S(h,o+3,c-3);m={ty:"tcp",port:p,hostname:d};break}case 4:case 6:{let p=U(h,o+1);m={ty:"websocket",url:"ws://"+S(h,o+3,c-3)+":"+p};break}case 5:{let p=U(h,o+1);m={ty:"websocket",url:"ws://["+S(h,o+3,c-3)+"]:"+p};break}case 14:{let p=U(h,o+1);m={ty:"websocket",url:"wss://"+S(h,o+3,c-3)+":"+p};break}case 16:{let p=U(h,o+1),d=h.slice(o+3,o+35),u=S(h,o+35,c-35);m={ty:"webrtc",ipVersion:"4",remoteTlsCertificateSha256:d,targetIp:u,targetPort:p};break}case 17:{let p=U(h,o+1),d=h.slice(o+3,o+35),u=S(h,o+35,c-35);m={ty:"webrtc",ipVersion:"6",remoteTlsCertificateSha256:d,targetIp:u,targetPort:p};break}default:throw new Error("Invalid encoded address passed to `connection_new`")}s({ty:"new-connection",connectionId:a,address:m})},reset_connection:a=>{s({ty:"connection-reset",connectionId:a})},connection_stream_open:a=>{s({ty:"connection-stream-open",connectionId:a})},connection_stream_reset:(a,o)=>{s({ty:"connection-stream-reset",connectionId:a,streamId:o})},stream_send:(a,o,c,l)=>{let h=n.instance,m=new Uint8Array(h.exports.memory.buffer);c>>>=0,l>>>=0;let p=new Array;for(let d=0;d<l;++d){let u=te(m,c+8*d),_=te(m,c+8*d+4);p.push(m.slice(u,u+_))}s({ty:"stream-send",connectionId:a,streamId:o,data:p})},stream_send_close:(a,o)=>{s({ty:"stream-send-close",connectionId:a,streamId:o})},current_task_entered:(a,o)=>{a>>>=0,o>>>=0;let c=S(new Uint8Array(n.instance.exports.memory.buffer),a,o);n.currentTask=c},current_task_exit:()=>{n.currentTask=null}},r=yield WebAssembly.instantiate(e,{smoldot:i});n.instance=r,n.instance.exports.init(t.maxLogLevel);let f=new Promise(a=>n.onShutdownExecutorOrWasmPanic=()=>a("stop"));return rt(this,void 0,void 0,function*(){let a=t.cpuRateLimit,o=0,c=t.performanceNow();for(;;){let l=new Promise(u=>n.advanceExecutionPromise=()=>u("ready"));if(!n.instance)break;n.instance.exports.advance_execution();let h=t.performanceNow(),m=h-c;c=h;let p=m*(1/a-1);if(o+=p,o>5){o>2147483646&&(o=2147483646);let u=new Promise(_=>setTimeout(()=>_("timeout"),o));if((yield Promise.race([u,f]))==="stop")break}if((yield Promise.race([l,f]))==="stop")break;let d=t.performanceNow();o-=d-c,o<-1e4&&(o=-1e4),c=d}n.instance&&s({ty:"executor-shutdown"})}),{request:(a,o)=>n.instance?(n.bufferIndices[0]=new TextEncoder().encode(a),n.instance.exports.json_rpc_send(0,o)>>>0):1,peekJsonRpcResponse:a=>{if(!n.instance)return null;let o=n.instance.exports.json_rpc_responses_peek(a)>>>0,c=new Uint8Array(n.instance.exports.memory.buffer),l=te(c,o)>>>0,h=te(c,o+4)>>>0;if(h!==0){let m=S(c,l,h);return n.instance.exports.json_rpc_responses_pop(a),m}else return null},addChain:(a,o,c,l,h,m)=>{if(!n.instance){s({ty:"add-chain-id-allocated",chainId:0}),s({ty:"add-chain-result",chainId:0,success:!1,error:"Smoldot has crashed"});return}console.assert(l||h!=0,"invalid jsonRpcMaxPendingRequests value passed to local-instance::addChain"),n.bufferIndices[0]=new TextEncoder().encode(a),n.bufferIndices[1]=new TextEncoder().encode(o);let p=new Uint8Array(c.length*4);for(let u=0;u<c.length;++u)nt(p,u*4,c[u]);n.bufferIndices[2]=p;let d=n.instance.exports.add_chain(0,1,l?0:h,m,2);delete n.bufferIndices[0],delete n.bufferIndices[1],delete n.bufferIndices[2],s({ty:"add-chain-id-allocated",chainId:d})},removeChain:a=>{n.instance&&n.instance.exports.remove_chain(a)},shutdownExecutor:()=>{if(!n.instance)return;let a=n.onShutdownExecutorOrWasmPanic;n.onShutdownExecutorOrWasmPanic=()=>{},a()},connectionMultiStreamSetHandshakeInfo:(a,o)=>{if(!n.instance)return;let c=new Uint8Array(1+o.localTlsCertificateSha256.length);st(c,0,0),c.set(o.localTlsCertificateSha256,1),n.bufferIndices[0]=c,n.instance.exports.connection_multi_stream_set_handshake_info(a,0),delete n.bufferIndices[0]},connectionReset:(a,o)=>{n.instance&&(n.bufferIndices[0]=new TextEncoder().encode(o),n.instance.exports.connection_reset(a,0),delete n.bufferIndices[0])},streamWritableBytes:(a,o,c)=>{n.instance&&n.instance.exports.stream_writable_bytes(a,c||0,o)},streamMessage:(a,o,c)=>{n.instance&&(n.bufferIndices[0]=o,n.instance.exports.stream_message(a,c||0,0),delete n.bufferIndices[0])},streamOpened:(a,o,c)=>{n.instance&&n.instance.exports.connection_stream_opened(a,o,c==="outbound"?1:0)},streamReset:(a,o,c)=>{n.instance&&(n.bufferIndices[0]=new TextEncoder().encode(c),n.instance.exports.stream_reset(a,o,0),delete n.bufferIndices[0])}}})}var ot=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function at(t){return ot(this,void 0,void 0,function*(){let{port1:e,port2:s}=new MessageChannel,n=t.portToServer,i={wasmModule:yield t.wasmModule,serverToClient:s,maxLogLevel:t.maxLogLevel,cpuRateLimit:t.cpuRateLimit,forbidWs:t.forbidWs,forbidWss:t.forbidWss,forbidNonLocalWs:t.forbidNonLocalWs,forbidTcp:t.forbidTcp,forbidWebRtc:t.forbidWebRtc};n.postMessage(i,[s]);let r={jsonRpcResponses:new Map,connections:new Map};return e.onmessage=f=>{let a=f.data;switch(a.ty){case"wasm-panic":case"executor-shutdown":{e.close(),n.close();break}case"add-chain-result":{if(a.success){r.jsonRpcResponses.set(a.chainId,new Array);let o={ty:"accept-more-json-rpc-answers",chainId:a.chainId};for(let c=0;c<10;++c)e.postMessage(o)}break}case"new-connection":{r.connections.set(a.connectionId,new Set);break}case"connection-reset":{if(!r.connections.has(a.connectionId))return;r.connections.delete(a.connectionId);break}case"connection-stream-open":{if(!r.connections.has(a.connectionId))return;break}case"connection-stream-reset":{if(!r.connections.has(a.connectionId)||!r.connections.get(a.connectionId).has(a.streamId))return;break}case"stream-send":{if(!r.connections.has(a.connectionId)||a.streamId&&!r.connections.get(a.connectionId).has(a.streamId))return;break}case"stream-send-close":{if(!r.connections.has(a.connectionId)||a.streamId&&!r.connections.get(a.connectionId).has(a.streamId))return;break}case"json-rpc-response":{let o=r.jsonRpcResponses.get(a.chainId);o&&(o.push(a.response),t.eventCallback({ty:"json-rpc-responses-non-empty",chainId:a.chainId}));return}}t.eventCallback(a)},{addChain(f,a,o,c,l,h){return ot(this,void 0,void 0,function*(){let m={ty:"add-chain",chainSpec:f,databaseContent:a,potentialRelayChains:o,disableJsonRpc:c,jsonRpcMaxPendingRequests:l,jsonRpcMaxSubscriptions:h};e.postMessage(m)})},removeChain(f){r.jsonRpcResponses.delete(f);let a={ty:"remove-chain",chainId:f};e.postMessage(a)},request(f,a){let o={ty:"request",chainId:a,request:f};return e.postMessage(o),0},peekJsonRpcResponse(f){let a=r.jsonRpcResponses.get(f).shift();if(!a)return null;let o={ty:"accept-more-json-rpc-answers",chainId:f};return e.postMessage(o),a},shutdownExecutor(){let f={ty:"shutdown"};e.postMessage(f)},connectionReset(f,a){r.connections.delete(f);let o={ty:"connection-reset",connectionId:f,message:a};e.postMessage(o)},connectionMultiStreamSetHandshakeInfo(f,a){let o={ty:"connection-multistream-set-info",connectionId:f,info:a};e.postMessage(o)},streamMessage(f,a,o){let c={ty:"stream-message",connectionId:f,message:a,streamId:o};e.postMessage(c)},streamOpened(f,a,o){r.connections.get(f).add(a);let c={ty:"stream-opened",connectionId:f,streamId:a,direction:o};e.postMessage(c)},streamWritableBytes(f,a,o){let c={ty:"stream-writable-bytes",connectionId:f,numExtra:a,streamId:o};e.postMessage(c)},streamReset(f,a,o){r.connections.get(f).delete(a);let c={ty:"stream-reset",connectionId:f,streamId:a,message:o};e.postMessage(c)}}})}var he=function(t,e,s,n){function i(r){return r instanceof s?r:new s(function(f){f(r)})}return new(s||(s=Promise))(function(r,f){function a(l){try{c(n.next(l))}catch(h){f(h)}}function o(l){try{c(n.throw(l))}catch(h){f(h)}}function c(l){l.done?r(l.value):i(l.value).then(a,o)}c((n=n.apply(t,e||[])).next())})};function ct(t,e,s){let n=t.logCallback||((o,c,l)=>{o<=1?console.error("[%s] %s",c,l):o==2?console.warn("[%s] %s",c,l):o==3?console.info("[%s] %s",c,l):o==4?console.debug("[%s] %s",c,l):console.trace("[%s] %s",c,l)});e instanceof Promise||(e=Promise.resolve(e));let i=t.cpuRateLimit||1;isNaN(i)&&(i=1),i>1&&(i=1),i<0&&(i=0);let r={instance:{status:"not-created"},chainIds:new WeakMap,connections:new Map,addChainIdAllocations:[],addChainResults:new Map,onExecutorShutdownOrWasmPanic:()=>{},chains:new Map},f=o=>{switch(o.ty){case"wasm-panic":{console.error("Smoldot has panicked"+(o.currentTask?" while executing task `"+o.currentTask+"`":"")+`. This is a bug in smoldot. Please open an issue at https://github.com/smol-dot/smoldot/issues with the following message:
|
|
9
|
+
`+o.message),r.instance={status:"destroyed",error:new Q(o.message)},r.connections.forEach(l=>l.reset()),r.connections.clear();for(let l of r.addChainIdAllocations)l({success:!1,error:"Smoldot has crashed"});r.addChainIdAllocations=[],r.addChainResults.forEach(l=>{l({success:!1,error:"Smoldot has crashed"})}),r.addChainResults.clear();for(let l of Array.from(r.chains.values())){for(let h of l.jsonRpcResponsesPromises)h();l.jsonRpcResponsesPromises=[]}r.chains.clear();let c=r.onExecutorShutdownOrWasmPanic;r.onExecutorShutdownOrWasmPanic=()=>{},c();break}case"executor-shutdown":{let c=r.onExecutorShutdownOrWasmPanic;r.onExecutorShutdownOrWasmPanic=()=>{},c();break}case"log":{n(o.level,o.target,o.message);break}case"add-chain-id-allocated":{let c=r.addChainIdAllocations.shift();r.addChainResults.set(o.chainId,c);break}case"add-chain-result":{r.addChainResults.get(o.chainId)(o),r.addChainResults.delete(o.chainId);break}case"json-rpc-responses-non-empty":{let c=r.chains.get(o.chainId).jsonRpcResponsesPromises;for(;c.length!==0;)c.shift()();break}case"new-connection":{let c=o.connectionId;r.connections.set(c,s.connect({address:o.address,onConnectionReset(l){if(r.instance.status!=="ready")throw new Error;r.connections.delete(c),r.instance.instance.connectionReset(c,l)},onMessage(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamMessage(c,l,h)},onStreamOpened(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamOpened(c,l,h)},onMultistreamHandshakeInfo(l){if(r.instance.status!=="ready")throw new Error;r.instance.instance.connectionMultiStreamSetHandshakeInfo(c,l)},onWritableBytes(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamWritableBytes(c,l,h)},onStreamReset(l,h){if(r.instance.status!=="ready")throw new Error;r.instance.instance.streamReset(c,l,h)}}));break}case"connection-reset":{r.connections.get(o.connectionId).reset(),r.connections.delete(o.connectionId);break}case"connection-stream-open":{r.connections.get(o.connectionId).openOutSubstream();break}case"connection-stream-reset":{r.connections.get(o.connectionId).reset(o.streamId);break}case"stream-send":{r.connections.get(o.connectionId).send(o.data,o.streamId);break}case"stream-send-close":{r.connections.get(o.connectionId).closeSend(o.streamId);break}}},a=t.portToWorker;return a?r.instance={status:"not-ready",whenReady:at({wasmModule:e.then(o=>o.wasm),forbidTcp:t.forbidTcp||!1,forbidWs:t.forbidWs||!1,forbidNonLocalWs:t.forbidNonLocalWs||!1,forbidWss:t.forbidWss||!1,forbidWebRtc:t.forbidWebRtc||!1,maxLogLevel:t.maxLogLevel||3,cpuRateLimit:i,portToServer:a,eventCallback:f}).then(o=>{r.instance.status!=="destroyed"&&(r.instance={status:"ready",instance:o})})}:r.instance={status:"not-ready",whenReady:e.then(o=>Re({forbidTcp:t.forbidTcp||!1,forbidWs:t.forbidWs||!1,forbidNonLocalWs:t.forbidNonLocalWs||!1,forbidWss:t.forbidWss||!1,forbidWebRtc:t.forbidWebRtc||!1,maxLogLevel:t.maxLogLevel||3,cpuRateLimit:i,envVars:[],performanceNow:s.performanceNow,getRandomValues:s.getRandomValues},o.wasm,f)).then(o=>{r.instance.status!=="destroyed"&&(r.instance={status:"ready",instance:o})})},{addChain:o=>he(this,void 0,void 0,function*(){if(r.instance.status==="not-ready"&&(yield r.instance.whenReady),r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status==="not-created"||r.instance.status==="not-ready")throw new Error;if(typeof o.chainSpec!="string")throw new Error("Chain specification must be a string");let c=[];if(o.potentialRelayChains)for(let _ of o.potentialRelayChains){let b=r.chainIds.get(_);b!==void 0&&c.push(b)}let l=o.jsonRpcMaxPendingRequests===void 0?1/0:o.jsonRpcMaxPendingRequests;if(l=Math.floor(l),l<=0||isNaN(l))throw new N("Invalid value for `jsonRpcMaxPendingRequests`");l>4294967295&&(l=4294967295);let h=o.jsonRpcMaxSubscriptions===void 0?1/0:o.jsonRpcMaxSubscriptions;if(h=Math.floor(h),h<0||isNaN(h))throw new N("Invalid value for `jsonRpcMaxSubscriptions`");if(h>4294967295&&(h=4294967295),o.databaseContent!==void 0&&typeof o.databaseContent!="string")throw new N("`databaseContent` is not a string");let m=new Promise(_=>r.addChainIdAllocations.push(_));r.instance.instance.addChain(o.chainSpec,o.databaseContent||"",c,!!o.disableJsonRpc,l,h);let p=yield m;if(!p.success)throw new N(p.error);let d=p.chainId;r.chains.set(d,{jsonRpcResponsesPromises:new Array});let u={sendJsonRpc:_=>{if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;if(!r.chains.has(d))throw new B;if(o.disableJsonRpc)throw new G;let b=r.instance.instance.request(_,d);switch(b){case 0:break;case 1:throw new ee;default:throw new Error("Internal error: unknown json_rpc_send error code: "+b)}},jsonRpcResponses:{next:()=>he(this,void 0,void 0,function*(){for(;;){if(!r.chains.has(d))return{done:!0,value:void 0};if(o.disableJsonRpc)throw new G;if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;let _=r.instance.instance.peekJsonRpcResponse(d);if(_)return{done:!1,value:_};yield new Promise(b=>{r.chains.get(d).jsonRpcResponsesPromises.push(b)})}}),[Symbol.asyncIterator](){return this}},nextJsonRpcResponse:()=>he(this,void 0,void 0,function*(){let _=yield u.jsonRpcResponses.next();if(_.done)throw new B;return _.value}),remove:()=>{if(r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;if(!r.chains.has(d))throw new B;console.assert(r.chainIds.has(u)),r.chainIds.delete(u);for(let _ of r.chains.get(d).jsonRpcResponsesPromises)_();r.chains.delete(d),r.instance.instance.removeChain(d)}};return r.chainIds.set(u,d),u}),terminate:()=>he(this,void 0,void 0,function*(){if(r.instance.status==="not-ready"&&(yield r.instance.whenReady),r.instance.status==="destroyed")throw r.instance.error;if(r.instance.status!=="ready")throw new Error;r.instance.instance.shutdownExecutor(),yield new Promise(o=>r.onExecutorShutdownOrWasmPanic=o),r.instance.status==="ready"&&(r.instance={status:"destroyed",error:new B}),r.connections.forEach(o=>o.reset()),r.connections.clear();for(let o of r.addChainIdAllocations)o({success:!1,error:"Client.terminate() has been called"});r.addChainIdAllocations=[],r.addChainResults.forEach(o=>{o({success:!1,error:"Client.terminate() has been called"})}),r.addChainResults.clear();for(let o of Array.from(r.chains.values())){for(let c of o.jsonRpcResponsesPromises)c();o.jsonRpcResponsesPromises=[]}r.chains.clear()})}}var Fn=Z(ut(),1),Gn=Z(Ae(),1),Vn=Z(qe(),1),Xe=Z(Je(),1),$n=Z(us(),1);import{performance as Hn}from"node:perf_hooks";import{createConnection as zn}from"node:net";import{randomFillSync as Jn}from"node:crypto";function ds(t){return t.forbidWebRtc=!0,ct(t||{},t.bytecode,{performanceNow:()=>Hn.now(),getRandomValues:e=>{if(e.length>=1024*1024)throw new Error("getRandomValues buffer too large");Jn(e)},connect:e=>Yn(e)})}function Yn(t){if(t.address.ty==="websocket"){let e=new Xe.default(t.address.url);e.binaryType="arraybuffer";let s={quenedUnreportedBytes:0,nextTimeout:10},n=()=>{if(e.readyState!=1)return;let i=e.bufferedAmount,r=s.quenedUnreportedBytes-i;r<0&&(r=0),s.quenedUnreportedBytes-=r,s.quenedUnreportedBytes!=0&&(setTimeout(n,s.nextTimeout),s.nextTimeout*=2,s.nextTimeout>500&&(s.nextTimeout=500)),r!=0&&t.onWritableBytes(r)};return e.onopen=()=>{t.onWritableBytes(1024*1024)},e.onclose=i=>{let r="Error code "+i.code+(i.reason?": "+i.reason:"");t.onConnectionReset(r),e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{}},e.onerror=i=>{t.onConnectionReset(i.message),e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{}},e.onmessage=i=>{t.onMessage(new Uint8Array(i.data))},{reset:()=>{e.onopen=()=>{},e.onclose=()=>{},e.onmessage=()=>{},e.onerror=()=>{},e.close()},send:i=>{s.quenedUnreportedBytes==0&&(s.nextTimeout=10,setTimeout(n,10));for(let r of i)e.send(r),s.quenedUnreportedBytes+=r.length},closeSend:()=>{throw new Error("Wrong connection type")},openOutSubstream:()=>{throw new Error("Wrong connection type")}}}else if(t.address.ty==="tcp"){let e=zn({host:t.address.hostname,port:t.address.port}),s={num:0};return e.setNoDelay(),e.on("connect",()=>{e.destroyed||t.onWritableBytes(e.writableHighWaterMark)}),e.on("close",n=>{if(e.destroyed)return;let i=n?"Error":"Closed gracefully";t.onConnectionReset(i)}),e.on("error",()=>{}),e.on("data",n=>{e.destroyed||t.onMessage(new Uint8Array(n.buffer))}),e.on("drain",()=>{if(e.destroyed)return;let n=s.num;s.num=0,t.onWritableBytes(n)}),{reset:()=>{e.destroy()},send:n=>{for(let i of n){let r=i.length;e.write(i)?setImmediate(()=>{e.writable&&t.onWritableBytes(r)}):s.num+=r}},closeSend:()=>{e.end()},openOutSubstream:()=>{throw new Error("Wrong connection type")}}}else throw new Error}var vr=(t,e={})=>{let s=new Promise(r=>{t.onmessage=f=>r(f.data)}),{port1:n,port2:i}=new MessageChannel;return t.postMessage(n,[n]),ds({bytecode:s,portToWorker:i,...e})};export{vr as startFromWorker};
|