@lehnihon/bit-form 1.0.6 → 1.0.8

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.
Files changed (62) hide show
  1. package/README.md +42 -1
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.d.cts +44 -41
  5. package/dist/angular/index.d.ts +44 -41
  6. package/dist/angular/index.js +1 -1
  7. package/dist/angular/index.js.map +1 -1
  8. package/dist/{bus-DAwKIiMY.d.cts → bus-BtKUu_9m.d.cts} +42 -7
  9. package/dist/{bus-DAwKIiMY.d.ts → bus-BtKUu_9m.d.ts} +42 -7
  10. package/dist/chunk-4SZ2BOTW.js +2 -0
  11. package/dist/chunk-4SZ2BOTW.js.map +1 -0
  12. package/dist/chunk-IUDMKNON.cjs +2 -0
  13. package/dist/chunk-IUDMKNON.cjs.map +1 -0
  14. package/dist/chunk-MVDS4KAD.js +133 -0
  15. package/dist/chunk-MVDS4KAD.js.map +1 -0
  16. package/dist/chunk-QB7MQ6ZB.cjs +133 -0
  17. package/dist/{chunk-6VDQSKUN.cjs.map → chunk-QB7MQ6ZB.cjs.map} +1 -1
  18. package/dist/cli/index.cjs +404 -4
  19. package/dist/devtools/bridge.cjs +1 -1
  20. package/dist/devtools/bridge.js +1 -1
  21. package/dist/devtools/index.cjs +1 -1
  22. package/dist/devtools/index.js +1 -1
  23. package/dist/{index-BD_l3aH5.d.cts → index-C4HaSh5W.d.ts} +102 -15
  24. package/dist/{index-CPKnWBVv.d.ts → index-CH9ZdEkZ.d.cts} +102 -15
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.d.cts +3 -3
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.js +1 -1
  29. package/dist/react/index.cjs +1 -1
  30. package/dist/react/index.cjs.map +1 -1
  31. package/dist/react/index.d.cts +23 -22
  32. package/dist/react/index.d.ts +23 -22
  33. package/dist/react/index.js +1 -1
  34. package/dist/react/index.js.map +1 -1
  35. package/dist/react-native/index.cjs +1 -1
  36. package/dist/react-native/index.cjs.map +1 -1
  37. package/dist/react-native/index.d.cts +24 -14
  38. package/dist/react-native/index.d.ts +24 -14
  39. package/dist/react-native/index.js +1 -1
  40. package/dist/react-native/index.js.map +1 -1
  41. package/dist/resolvers/joi.d.cts +1 -1
  42. package/dist/resolvers/joi.d.ts +1 -1
  43. package/dist/resolvers/yup.d.cts +1 -1
  44. package/dist/resolvers/yup.d.ts +1 -1
  45. package/dist/resolvers/zod.d.cts +1 -1
  46. package/dist/resolvers/zod.d.ts +1 -1
  47. package/dist/{use-bit-watch-CoCFwS-F.d.ts → use-bit-watch-Bdwj9l_g.d.ts} +32 -27
  48. package/dist/{use-bit-watch-BSWy9rG7.d.cts → use-bit-watch-ClvBxm6Z.d.cts} +32 -27
  49. package/dist/vue/index.cjs +1 -1
  50. package/dist/vue/index.cjs.map +1 -1
  51. package/dist/vue/index.d.cts +48 -42
  52. package/dist/vue/index.d.ts +48 -42
  53. package/dist/vue/index.js +1 -1
  54. package/dist/vue/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/chunk-6VDQSKUN.cjs +0 -133
  57. package/dist/chunk-KA4FAGIX.js +0 -133
  58. package/dist/chunk-KA4FAGIX.js.map +0 -1
  59. package/dist/chunk-UFYHEI6S.js +0 -2
  60. package/dist/chunk-UFYHEI6S.js.map +0 -1
  61. package/dist/chunk-Z6ITPS2B.cjs +0 -2
  62. package/dist/chunk-Z6ITPS2B.cjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Qt=Object.create;var Ve=Object.defineProperty;var er=Object.getOwnPropertyDescriptor;var tr=Object.getOwnPropertyNames;var rr=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ir=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of tr(e))!sr.call(t,s)&&s!==r&&Ve(t,s,{get:()=>e[s],enumerable:!(i=er(e,s))||i.enumerable});return t};var L=(t,e,r)=>(r=t!=null?Qt(rr(t)):{},ir(e||!t||!t.__esModule?Ve(r,"default",{value:t,enumerable:!0}):r,t));var O=x((Ps,Ye)=>{"use strict";var ze=["nodebuffer","arraybuffer","fragments"],He=typeof Blob<"u";He&&ze.push("blob");Ye.exports={BINARY_TYPES:ze,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:He,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Y=x((Bs,se)=>{"use strict";var{EMPTY_BUFFER:nr}=O(),ye=Buffer[Symbol.species];function or(t,e){if(t.length===0)return nr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let s=0;s<t.length;s++){let n=t[s];r.set(n,i),i+=n.length}return i<e?new ye(r.buffer,r.byteOffset,i):r}function Ke(t,e,r,i,s){for(let n=0;n<s;n++)r[i+n]=t[n]^e[n&3]}function Xe(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function ar(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function xe(t){if(xe.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new ye(t):ArrayBuffer.isView(t)?e=new ye(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),xe.readOnly=!1),e}se.exports={concat:or,mask:Ke,toArrayBuffer:ar,toBuffer:xe,unmask:Xe};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");se.exports.mask=function(e,r,i,s,n){n<48?Ke(e,r,i,s,n):t.mask(e,r,i,s,n)},se.exports.unmask=function(e,r){e.length<32?Xe(e,r):t.unmask(e,r)}}catch{}});var Qe=x((Is,Je)=>{"use strict";var Ze=Symbol("kDone"),Se=Symbol("kRun"),Ee=class{constructor(e){this[Ze]=()=>{this.pending--,this[Se]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Se]()}[Se](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[Ze])}}};Je.exports=Ee});var X=x((Rs,st)=>{"use strict";var K=require("zlib"),et=Y(),lr=Qe(),{kStatusCode:tt}=O(),fr=Buffer[Symbol.species],hr=Buffer.from([0,0,255,255]),ne=Symbol("permessage-deflate"),T=Symbol("total-length"),W=Symbol("callback"),N=Symbol("buffers"),F=Symbol("error"),ie,ve=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!ie){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ie=new lr(s)}}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[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(s=>!(r.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>s.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let s=r[i];if(s.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(s=s[0],i==="client_max_window_bits"){if(s!==!0){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else if(i==="server_max_window_bits"){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=s})}),e}decompress(e,r,i){ie.add(s=>{this._decompress(e,r,(n,o)=>{s(),i(n,o)})})}compress(e,r,i){ie.add(s=>{this._compress(e,r,(n,o)=>{s(),i(n,o)})})}_decompress(e,r,i){let s=this._isServer?"client":"server";if(!this._inflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?K.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=K.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[ne]=this,this._inflate[T]=0,this._inflate[N]=[],this._inflate.on("error",ur),this._inflate.on("data",rt)}this._inflate[W]=i,this._inflate.write(e),r&&this._inflate.write(hr),this._inflate.flush(()=>{let n=this._inflate[F];if(n){this._inflate.close(),this._inflate=null,i(n);return}let o=et.concat(this._inflate[N],this._inflate[T]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[T]=0,this._inflate[N]=[],r&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),i(null,o)})}_compress(e,r,i){let s=this._isServer?"server":"client";if(!this._deflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?K.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=K.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[T]=0,this._deflate[N]=[],this._deflate.on("data",cr)}this._deflate[W]=i,this._deflate.write(e),this._deflate.flush(K.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=et.concat(this._deflate[N],this._deflate[T]);r&&(n=new fr(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[T]=0,this._deflate[N]=[],r&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),i(null,n)})}};st.exports=ve;function cr(t){this[N].push(t),this[T]+=t.length}function rt(t){if(this[T]+=t.length,this[ne]._maxPayload<1||this[T]<=this[ne]._maxPayload){this[N].push(t);return}this[F]=new RangeError("Max payload size exceeded"),this[F].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[F][tt]=1009,this.removeListener("data",rt),this.reset()}function ur(t){if(this[ne]._inflate=null,this[F]){this[W](this[F]);return}t[tt]=1007,this[W](t)}});var q=x((Us,oe)=>{"use strict";var{isUtf8:it}=require("buffer"),{hasBlob:dr}=O(),_r=[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 pr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function be(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function mr(t){return dr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}oe.exports={isBlob:mr,isValidStatusCode:pr,isValidUTF8:be,tokenChars:_r};if(it)oe.exports.isValidUTF8=function(t){return t.length<24?be(t):it(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");oe.exports.isValidUTF8=function(e){return e.length<32?be(e):t(e)}}catch{}});var Ce=x((Ds,ct)=>{"use strict";var{Writable:gr}=require("stream"),nt=X(),{BINARY_TYPES:yr,EMPTY_BUFFER:ot,kStatusCode:xr,kWebSocket:Sr}=O(),{concat:we,toArrayBuffer:Er,unmask:vr}=Y(),{isValidStatusCode:br,isValidUTF8:at}=q(),ae=Buffer[Symbol.species],E=0,lt=1,ft=2,ht=3,Oe=4,Te=5,le=6,ke=class extends gr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||yr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Sr]=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,r,i){if(this._opcode===8&&this._state==E)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let i=this._buffers[0];return this._buffers[0]=new ae(i.buffer,i.byteOffset+e,i.length-e),new ae(i.buffer,i.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let i=this._buffers[0],s=r.length-e;e>=i.length?r.set(this._buffers.shift(),s):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),s),this._buffers[0]=new ae(i.buffer,i.byteOffset+e,i.length-e)),e-=i.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case E:this.getInfo(e);break;case lt:this.getPayloadLength16(e);break;case ft:this.getPayloadLength64(e);break;case ht:this.getMask();break;case Oe:this.getData(e);break;case Te:case le:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let i=(r[0]&64)===64;if(i&&!this._extensions[nt.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=i}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=lt:this._payloadLength===127?this._state=ft: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 r=this.consume(8),i=r.readUInt32BE(0);if(i>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=i*Math.pow(2,32)+r.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 r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=ht:this._state=Oe}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Oe}getData(e){let r=ot;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&vr(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Te,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[nt.extensionName].decompress(e,this._fin,(s,n)=>{if(s)return r(s);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===E&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=E;return}let r=this._messageLength,i=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=we(i,r):this._binaryType==="arraybuffer"?s=Er(we(i,r)):this._binaryType==="blob"?s=new Blob(i):s=i,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=E):(this._state=le,setImmediate(()=>{this.emit("message",s,!0),this._state=E,this.startLoop(e)}))}else{let s=we(i,r);if(!this._skipUTF8Validation&&!at(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Te||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=E):(this._state=le,setImmediate(()=>{this.emit("message",s,!1),this._state=E,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,ot),this.end();else{let i=e.readUInt16BE(0);if(!br(i)){let n=this.createError(RangeError,`invalid status code ${i}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let s=new ae(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!at(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",i,s),this.end()}this._state=E;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=E):(this._state=le,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=E,this.startLoop(r)}))}createError(e,r,i,s,n){this._loop=!1,this._errored=!0;let o=new e(i?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[xr]=s,o}};ct.exports=ke});var Pe=x((As,_t)=>{"use strict";var{Duplex:Ms}=require("stream"),{randomFillSync:wr}=require("crypto"),ut=X(),{EMPTY_BUFFER:Or,kWebSocket:Tr,NOOP:kr}=O(),{isBlob:G,isValidStatusCode:Cr}=q(),{mask:dt,toBuffer:B}=Y(),v=Symbol("kByteLength"),Lr=Buffer.alloc(4),fe=8*1024,I,j=fe,b=0,Nr=1,Pr=2,Le=class t{constructor(e,r,i){this._extensions=r||{},i&&(this._generateMask=i,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=b,this.onerror=kr,this[Tr]=void 0}static frame(e,r){let i,s=!1,n=2,o=!1;r.mask&&(i=r.maskBuffer||Lr,r.generateMask?r.generateMask(i):(j===fe&&(I===void 0&&(I=Buffer.alloc(fe)),wr(I,0,fe),j=0),i[0]=I[j++],i[1]=I[j++],i[2]=I[j++],i[3]=I[j++]),o=(i[0]|i[1]|i[2]|i[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[v]!==void 0?l=r[v]:(e=Buffer.from(e),l=e.length):(l=e.length,s=r.mask&&r.readOnly&&!o);let f=l;l>=65536?(n+=8,f=127):l>125&&(n+=2,f=126);let a=Buffer.allocUnsafe(s?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=f,f===126?a.writeUInt16BE(l,2):f===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=i[0],a[n-3]=i[1],a[n-2]=i[2],a[n-1]=i[3],o?[a,e]:s?(dt(e,i,a,n,l),[a]):(dt(e,i,e,0,l),[a,e])):[a,e]}close(e,r,i,s){let n;if(e===void 0)n=Or;else{if(typeof e!="number"||!Cr(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[v]:n.length,fin:!0,generateMask:this._generateMask,mask:i,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==b?this.enqueue([this.dispatch,n,!1,o,s]):this.sendFrame(t.frame(n,o),s)}ping(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=B(e),s=e.length,n=B.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[v]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};G(e)?this._state!==b?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==b?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}pong(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=B(e),s=e.length,n=B.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[v]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};G(e)?this._state!==b?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==b?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}send(e,r,i){let s=this._extensions[ut.extensionName],n=r.binary?2:1,o=r.compress,l,f;typeof e=="string"?(l=Buffer.byteLength(e),f=!1):G(e)?(l=e.size,f=!1):(e=B(e),l=e.length,f=B.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=s._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[v]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:f,rsv1:o};G(e)?this._state!==b?this.enqueue([this.getBlobData,e,this._compress,a,i]):this.getBlobData(e,this._compress,a,i):this._state!==b?this.enqueue([this.dispatch,e,this._compress,a,i]):this.dispatch(e,this._compress,a,i)}getBlobData(e,r,i,s){this._bufferedBytes+=i[v],this._state=Pr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Ne,this,l,s);return}this._bufferedBytes-=i[v];let o=B(n);r?this.dispatch(o,r,i,s):(this._state=b,this.sendFrame(t.frame(o,i),s),this.dequeue())}).catch(n=>{process.nextTick(Br,this,n,s)})}dispatch(e,r,i,s){if(!r){this.sendFrame(t.frame(e,i),s);return}let n=this._extensions[ut.extensionName];this._bufferedBytes+=i[v],this._state=Nr,n.compress(e,i.fin,(o,l)=>{if(this._socket.destroyed){let f=new Error("The socket was closed while data was being compressed");Ne(this,f,s);return}this._bufferedBytes-=i[v],this._state=b,i.readOnly=!1,this.sendFrame(t.frame(l,i),s),this.dequeue()})}dequeue(){for(;this._state===b&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][v],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][v],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};_t.exports=Le;function Ne(t,e,r){typeof r=="function"&&r(e);for(let i=0;i<t._queue.length;i++){let s=t._queue[i],n=s[s.length-1];typeof n=="function"&&n(e)}}function Br(t,e,r){Ne(t,e,r),t.onerror(e)}});var bt=x((Ws,vt)=>{"use strict";var{kForOnEventAttribute:Z,kListener:Be}=O(),pt=Symbol("kCode"),mt=Symbol("kData"),gt=Symbol("kError"),yt=Symbol("kMessage"),xt=Symbol("kReason"),$=Symbol("kTarget"),St=Symbol("kType"),Et=Symbol("kWasClean"),k=class{constructor(e){this[$]=null,this[St]=e}get target(){return this[$]}get type(){return this[St]}};Object.defineProperty(k.prototype,"target",{enumerable:!0});Object.defineProperty(k.prototype,"type",{enumerable:!0});var R=class extends k{constructor(e,r={}){super(e),this[pt]=r.code===void 0?0:r.code,this[xt]=r.reason===void 0?"":r.reason,this[Et]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[pt]}get reason(){return this[xt]}get wasClean(){return this[Et]}};Object.defineProperty(R.prototype,"code",{enumerable:!0});Object.defineProperty(R.prototype,"reason",{enumerable:!0});Object.defineProperty(R.prototype,"wasClean",{enumerable:!0});var V=class extends k{constructor(e,r={}){super(e),this[gt]=r.error===void 0?null:r.error,this[yt]=r.message===void 0?"":r.message}get error(){return this[gt]}get message(){return this[yt]}};Object.defineProperty(V.prototype,"error",{enumerable:!0});Object.defineProperty(V.prototype,"message",{enumerable:!0});var J=class extends k{constructor(e,r={}){super(e),this[mt]=r.data===void 0?null:r.data}get data(){return this[mt]}};Object.defineProperty(J.prototype,"data",{enumerable:!0});var Ir={addEventListener(t,e,r={}){for(let s of this.listeners(t))if(!r[Z]&&s[Be]===e&&!s[Z])return;let i;if(t==="message")i=function(n,o){let l=new J("message",{data:o?n:n.toString()});l[$]=this,he(e,this,l)};else if(t==="close")i=function(n,o){let l=new R("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[$]=this,he(e,this,l)};else if(t==="error")i=function(n){let o=new V("error",{error:n,message:n.message});o[$]=this,he(e,this,o)};else if(t==="open")i=function(){let n=new k("open");n[$]=this,he(e,this,n)};else return;i[Z]=!!r[Z],i[Be]=e,r.once?this.once(t,i):this.on(t,i)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Be]===e&&!r[Z]){this.removeListener(t,r);break}}};vt.exports={CloseEvent:R,ErrorEvent:V,Event:k,EventTarget:Ir,MessageEvent:J};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Ie=x((Fs,wt)=>{"use strict";var{tokenChars:Q}=q();function w(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Rr(t){let e=Object.create(null),r=Object.create(null),i=!1,s=!1,n=!1,o,l,f=-1,a=-1,h=-1,c=0;for(;c<t.length;c++)if(a=t.charCodeAt(c),o===void 0)if(h===-1&&Q[a]===1)f===-1&&(f=c);else if(c!==0&&(a===32||a===9))h===-1&&f!==-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c);let m=t.slice(f,h);a===44?(w(e,m,r),r=Object.create(null)):o=m,f=h=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);else if(l===void 0)if(h===-1&&Q[a]===1)f===-1&&(f=c);else if(a===32||a===9)h===-1&&f!==-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c),w(r,t.slice(f,h),!0),a===44&&(w(e,o,r),r=Object.create(null),o=void 0),f=h=-1}else if(a===61&&f!==-1&&h===-1)l=t.slice(f,c),f=h=-1;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(s){if(Q[a]!==1)throw new SyntaxError(`Unexpected character at index ${c}`);f===-1?f=c:i||(i=!0),s=!1}else if(n)if(Q[a]===1)f===-1&&(f=c);else if(a===34&&f!==-1)n=!1,h=c;else if(a===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${c}`);else if(a===34&&t.charCodeAt(c-1)===61)n=!0;else if(h===-1&&Q[a]===1)f===-1&&(f=c);else if(f!==-1&&(a===32||a===9))h===-1&&(h=c);else if(a===59||a===44){if(f===-1)throw new SyntaxError(`Unexpected character at index ${c}`);h===-1&&(h=c);let m=t.slice(f,h);i&&(m=m.replace(/\\/g,""),i=!1),w(r,l,m),a===44&&(w(e,o,r),r=Object.create(null),o=void 0),l=void 0,f=h=-1}else throw new SyntaxError(`Unexpected character at index ${c}`);if(f===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");h===-1&&(h=c);let _=t.slice(f,h);return o===void 0?w(e,_,r):(l===void 0?w(r,_,!0):i?w(r,l,_.replace(/\\/g,"")):w(r,l,_),w(e,o,r)),e}function Ur(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(s=>{let n=i[s];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}wt.exports={format:Ur,parse:Rr}});var _e=x((js,Dt)=>{"use strict";var Dr=require("events"),Mr=require("https"),Ar=require("http"),kt=require("net"),Wr=require("tls"),{randomBytes:Fr,createHash:qr}=require("crypto"),{Duplex:qs,Readable:Gs}=require("stream"),{URL:Re}=require("url"),P=X(),Gr=Ce(),jr=Pe(),{isBlob:$r}=q(),{BINARY_TYPES:Ot,CLOSE_TIMEOUT:Vr,EMPTY_BUFFER:ce,GUID:zr,kForOnEventAttribute:Ue,kListener:Hr,kStatusCode:Yr,kWebSocket:g,NOOP:Ct}=O(),{EventTarget:{addEventListener:Kr,removeEventListener:Xr}}=bt(),{format:Zr,parse:Jr}=Ie(),{toBuffer:Qr}=Y(),Lt=Symbol("kAborted"),De=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],es=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,d=class t extends Dr{constructor(e,r,i){super(),this._binaryType=Ot[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ce,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,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(i=r,r=[]):r=[r]),Nt(this,e,r,i)):(this._autoPong=i.autoPong,this._closeTimeout=i.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ot.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,r,i){let s=new Gr({allowSynchronousEvents:i.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation}),n=new jr(e,this._extensions,i.generateMask);this._receiver=s,this._sender=n,this._socket=e,s[g]=this,n[g]=this,e[g]=this,s.on("conclude",ss),s.on("drain",is),s.on("error",ns),s.on("message",os),s.on("ping",as),s.on("pong",ls),n.onerror=fs,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",It),e.on("data",de),e.on("end",Rt),e.on("error",Ut),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,r){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,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Bt(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ce,r,i)}pong(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ce,r,i)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[P.extensionName]||(s.compress=!1),this._sender.send(e||ce,s,i)}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(d,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(d.prototype,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(d,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(d.prototype,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(d,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(d.prototype,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(d,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});Object.defineProperty(d.prototype,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(d.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(d.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[Ue])return e[Hr];return null},set(e){for(let r of this.listeners(t))if(r[Ue]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[Ue]:!0})}})});d.prototype.addEventListener=Kr;d.prototype.removeEventListener=Xr;Dt.exports=d;function Nt(t,e,r,i){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Vr,protocolVersion:De[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...i,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=s.autoPong,t._closeTimeout=s.closeTimeout,!De.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${De.join(", ")})`);let n;if(e instanceof Re)n=e;else try{n=new Re(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",f;if(n.protocol!=="ws:"&&!o&&!l?f=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?f="The URL's pathname is empty":n.hash&&(f="The URL contains a fragment identifier"),f){let u=new SyntaxError(f);if(t._redirects===0)throw u;ue(t,u);return}let a=o?443:80,h=Fr(16).toString("base64"),c=o?Mr.request:Ar.request,_=new Set,m;if(s.createConnection=s.createConnection||(o?rs:ts),s.defaultPort=s.defaultPort||a,s.port=n.port||a,s.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":h,Connection:"Upgrade",Upgrade:"websocket"},s.path=n.pathname+n.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(m=new P(s.perMessageDeflate!==!0?s.perMessageDeflate:{},!1,s.maxPayload),s.headers["Sec-WebSocket-Extensions"]=Zr({[P.extensionName]:m.offer()})),r.length){for(let u of r){if(typeof u!="string"||!es.test(u)||_.has(u))throw new SyntaxError("An invalid or duplicated subprotocol was specified");_.add(u)}s.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(n.username||n.password)&&(s.auth=`${n.username}:${n.password}`),l){let u=s.path.split(":");s.socketPath=u[0],s.path=u[1]}let p;if(s.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?s.socketPath:n.host;let u=i&&i.headers;if(i={...i,headers:{}},u)for(let[y,M]of Object.entries(u))i.headers[y.toLowerCase()]=M}else if(t.listenerCount("redirect")===0){let u=l?t._originalIpc?s.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!u||t._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,u||delete s.headers.host,s.auth=void 0)}s.auth&&!i.headers.authorization&&(i.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),p=t._req=c(s),t._redirects&&t.emit("redirect",t.url,p)}else p=t._req=c(s);s.timeout&&p.on("timeout",()=>{S(t,p,"Opening handshake has timed out")}),p.on("error",u=>{p===null||p[Lt]||(p=t._req=null,ue(t,u))}),p.on("response",u=>{let y=u.headers.location,M=u.statusCode;if(y&&s.followRedirects&&M>=300&&M<400){if(++t._redirects>s.maxRedirects){S(t,p,"Maximum redirects exceeded");return}p.abort();let z;try{z=new Re(y,e)}catch{let A=new SyntaxError(`Invalid URL: ${y}`);ue(t,A);return}Nt(t,z,r,i)}else t.emit("unexpected-response",p,u)||S(t,p,`Unexpected server response: ${u.statusCode}`)}),p.on("upgrade",(u,y,M)=>{if(t.emit("upgrade",u),t.readyState!==d.CONNECTING)return;p=t._req=null;let z=u.headers.upgrade;if(z===void 0||z.toLowerCase()!=="websocket"){S(t,y,"Invalid Upgrade header");return}let Ge=qr("sha1").update(h+zr).digest("base64");if(u.headers["sec-websocket-accept"]!==Ge){S(t,y,"Invalid Sec-WebSocket-Accept header");return}let A=u.headers["sec-websocket-protocol"],H;if(A!==void 0?_.size?_.has(A)||(H="Server sent an invalid subprotocol"):H="Server sent a subprotocol but none was requested":_.size&&(H="Server sent no subprotocol"),H){S(t,y,H);return}A&&(t._protocol=A);let je=u.headers["sec-websocket-extensions"];if(je!==void 0){if(!m){S(t,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let me;try{me=Jr(je)}catch{S(t,y,"Invalid Sec-WebSocket-Extensions header");return}let $e=Object.keys(me);if($e.length!==1||$e[0]!==P.extensionName){S(t,y,"Server indicated an extension that was not requested");return}try{m.accept(me[P.extensionName])}catch{S(t,y,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[P.extensionName]=m}t.setSocket(y,M,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(p,t):p.end()}function ue(t,e){t._readyState=d.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function ts(t){return t.path=t.socketPath,kt.connect(t)}function rs(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=kt.isIP(t.host)?"":t.host),Wr.connect(t)}function S(t,e,r){t._readyState=d.CLOSING;let i=new Error(r);Error.captureStackTrace(i,S),e.setHeader?(e[Lt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(ue,t,i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Me(t,e,r){if(e){let i=$r(e)?e.size:Qr(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,i)}}function ss(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",de),process.nextTick(Pt,r._socket),t===1005?r.close():r.close(t,e))}function is(){let t=this[g];t.isPaused||t._socket.resume()}function ns(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",de),process.nextTick(Pt,e._socket),e.close(t[Yr])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Tt(){this[g].emitClose()}function os(t,e){this[g].emit("message",t,e)}function as(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Ct),e.emit("ping",t)}function ls(t){this[g].emit("pong",t)}function Pt(t){t.resume()}function fs(t){let e=this[g];e.readyState!==d.CLOSED&&(e.readyState===d.OPEN&&(e._readyState=d.CLOSING,Bt(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Bt(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function It(){let t=this[g];if(this.removeListener("close",It),this.removeListener("data",de),this.removeListener("end",Rt),t._readyState=d.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);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",Tt),t._receiver.on("finish",Tt))}function de(t){this[g]._receiver.write(t)||this.pause()}function Rt(){let t=this[g];t._readyState=d.CLOSING,t._receiver.end(),this.end()}function Ut(){let t=this[g];this.removeListener("error",Ut),this.on("error",Ct),t&&(t._readyState=d.CLOSING,this.destroy())}});var Ft=x((Vs,Wt)=>{"use strict";var $s=_e(),{Duplex:hs}=require("stream");function Mt(t){t.emit("close")}function cs(){!this.destroyed&&this._writableState.finished&&this.destroy()}function At(t){this.removeListener("error",At),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function us(t,e){let r=!0,i=new hs({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&i._readableState.objectMode?n.toString():n;i.push(l)||t.pause()}),t.once("error",function(n){i.destroyed||(r=!1,i.destroy(n))}),t.once("close",function(){i.destroyed||i.push(null)}),i._destroy=function(s,n){if(t.readyState===t.CLOSED){n(s),process.nextTick(Mt,i);return}let o=!1;t.once("error",function(f){o=!0,n(f)}),t.once("close",function(){o||n(s),process.nextTick(Mt,i)}),r&&t.terminate()},i._final=function(s){if(t.readyState===t.CONNECTING){t.once("open",function(){i._final(s)});return}t._socket!==null&&(t._socket._writableState.finished?(s(),i._readableState.endEmitted&&i.destroy()):(t._socket.once("finish",function(){s()}),t.close()))},i._read=function(){t.isPaused&&t.resume()},i._write=function(s,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){i._write(s,n,o)});return}t.send(s,o)},i.on("end",cs),i.on("error",At),i}Wt.exports=us});var Gt=x((zs,qt)=>{"use strict";var{tokenChars:ds}=q();function _s(t){let e=new Set,r=-1,i=-1,s=0;for(s;s<t.length;s++){let o=t.charCodeAt(s);if(i===-1&&ds[o]===1)r===-1&&(r=s);else if(s!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=s);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${s}`);i===-1&&(i=s);let l=t.slice(r,i);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=i=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(r===-1||i!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,s);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}qt.exports={parse:_s}});var Kt=x((Ys,Yt)=>{"use strict";var ps=require("events"),pe=require("http"),{Duplex:Hs}=require("stream"),{createHash:ms}=require("crypto"),jt=Ie(),U=X(),gs=Gt(),ys=_e(),{CLOSE_TIMEOUT:xs,GUID:Ss,kWebSocket:Es}=O(),vs=/^[+/0-9A-Za-z]{22}==$/,$t=0,Vt=1,Ht=2,Ae=class extends ps{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:xs,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:ys,...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=pe.createServer((i,s)=>{let n=pe.STATUS_CODES[426];s.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),s.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=bs(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,n,o)=>{this.handleUpgrade(s,n,o,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=$t}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===Ht){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(ee,this);return}if(e&&this.once("close",e),this._state!==Vt)if(this._state=Vt,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(ee,this):process.nextTick(ee,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{ee(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,s){r.on("error",zt);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){D(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){D(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!vs.test(n)){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){te(r,400);return}let f=e.headers["sec-websocket-protocol"],a=new Set;if(f!==void 0)try{a=gs.parse(f)}catch{D(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let h=e.headers["sec-websocket-extensions"],c={};if(this.options.perMessageDeflate&&h!==void 0){let _=new U(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let m=jt.parse(h);m[U.extensionName]&&(_.accept(m[U.extensionName]),c[U.extensionName]=_)}catch{D(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let _={origin:e.headers[`${l===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,u,y)=>{if(!m)return te(r,p||401,u,y);this.completeUpgrade(c,n,a,e,r,i,s)});return}if(!this.options.verifyClient(_))return te(r,401)}this.completeUpgrade(c,n,a,e,r,i,s)}completeUpgrade(e,r,i,s,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Es])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>$t)return te(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${ms("sha1").update(r+Ss).digest("base64")}`],h=new this.options.WebSocket(null,void 0,this.options);if(i.size){let c=this.options.handleProtocols?this.options.handleProtocols(i,s):i.values().next().value;c&&(a.push(`Sec-WebSocket-Protocol: ${c}`),h._protocol=c)}if(e[U.extensionName]){let c=e[U.extensionName].params,_=jt.format({[U.extensionName]:[c]});a.push(`Sec-WebSocket-Extensions: ${_}`),h._extensions=e}this.emit("headers",a,s),n.write(a.concat(`\r
2
+ "use strict";var ur=Object.create;var Ke=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var mr=Object.getOwnPropertyNames;var _r=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var xr=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of mr(e))!gr.call(t,s)&&s!==r&&Ke(t,s,{get:()=>e[s],enumerable:!(i=pr(e,s))||i.enumerable});return t};var w=(t,e,r)=>(r=t!=null?ur(_r(t)):{},xr(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var T=y((Ys,Je)=>{"use strict";var Xe=["nodebuffer","arraybuffer","fragments"],Ze=typeof Blob<"u";Ze&&Xe.push("blob");Je.exports={BINARY_TYPES:Xe,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Ze,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var X=y((Ks,ne)=>{"use strict";var{EMPTY_BUFFER:yr}=T(),ve=Buffer[Symbol.species];function vr(t,e){if(t.length===0)return yr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let s=0;s<t.length;s++){let n=t[s];r.set(n,i),i+=n.length}return i<e?new ve(r.buffer,r.byteOffset,i):r}function Qe(t,e,r,i,s){for(let n=0;n<s;n++)r[i+n]=t[n]^e[n&3]}function et(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Sr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Se(t){if(Se.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new ve(t):ArrayBuffer.isView(t)?e=new ve(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Se.readOnly=!1),e}ne.exports={concat:vr,mask:Qe,toArrayBuffer:Sr,toBuffer:Se,unmask:et};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");ne.exports.mask=function(e,r,i,s,n){n<48?Qe(e,r,i,s,n):t.mask(e,r,i,s,n)},ne.exports.unmask=function(e,r){e.length<32?et(e,r):t.unmask(e,r)}}catch{}});var st=y((Xs,rt)=>{"use strict";var tt=Symbol("kDone"),be=Symbol("kRun"),Ee=class{constructor(e){this[tt]=()=>{this.pending--,this[be]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[be]()}[be](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[tt])}}};rt.exports=Ee});var J=y((Zs,at)=>{"use strict";var Z=require("zlib"),it=X(),br=st(),{kStatusCode:nt}=T(),Er=Buffer[Symbol.species],wr=Buffer.from([0,0,255,255]),ae=Symbol("permessage-deflate"),k=Symbol("total-length"),W=Symbol("callback"),B=Symbol("buffers"),q=Symbol("error"),oe,we=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!oe){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;oe=new br(s)}}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[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(s=>!(r.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>s.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let s=r[i];if(s.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(s=s[0],i==="client_max_window_bits"){if(s!==!0){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else if(i==="server_max_window_bits"){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=s})}),e}decompress(e,r,i){oe.add(s=>{this._decompress(e,r,(n,o)=>{s(),i(n,o)})})}compress(e,r,i){oe.add(s=>{this._compress(e,r,(n,o)=>{s(),i(n,o)})})}_decompress(e,r,i){let s=this._isServer?"client":"server";if(!this._inflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Z.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[ae]=this,this._inflate[k]=0,this._inflate[B]=[],this._inflate.on("error",Tr),this._inflate.on("data",ot)}this._inflate[W]=i,this._inflate.write(e),r&&this._inflate.write(wr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,i(n);return}let o=it.concat(this._inflate[B],this._inflate[k]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[k]=0,this._inflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),i(null,o)})}_compress(e,r,i){let s=this._isServer?"server":"client";if(!this._deflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Z.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[k]=0,this._deflate[B]=[],this._deflate.on("data",Nr)}this._deflate[W]=i,this._deflate.write(e),this._deflate.flush(Z.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=it.concat(this._deflate[B],this._deflate[k]);r&&(n=new Er(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[k]=0,this._deflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),i(null,n)})}};at.exports=we;function Nr(t){this[B].push(t),this[k]+=t.length}function ot(t){if(this[k]+=t.length,this[ae]._maxPayload<1||this[k]<=this[ae]._maxPayload){this[B].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][nt]=1009,this.removeListener("data",ot),this.reset()}function Tr(t){if(this[ae]._inflate=null,this[q]){this[W](this[q]);return}t[nt]=1007,this[W](t)}});var $=y((Js,le)=>{"use strict";var{isUtf8:lt}=require("buffer"),{hasBlob:kr}=T(),Or=[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 Cr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Ne(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Br(t){return kr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}le.exports={isBlob:Br,isValidStatusCode:Cr,isValidUTF8:Ne,tokenChars:Or};if(lt)le.exports.isValidUTF8=function(t){return t.length<24?Ne(t):lt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");le.exports.isValidUTF8=function(e){return e.length<32?Ne(e):t(e)}}catch{}});var Be=y((Qs,mt)=>{"use strict";var{Writable:Lr}=require("stream"),ct=J(),{BINARY_TYPES:Pr,EMPTY_BUFFER:ft,kStatusCode:Ir,kWebSocket:Rr}=T(),{concat:Te,toArrayBuffer:Fr,unmask:Ur}=X(),{isValidStatusCode:Dr,isValidUTF8:dt}=$(),ce=Buffer[Symbol.species],S=0,ht=1,ut=2,pt=3,ke=4,Oe=5,fe=6,Ce=class extends Lr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Pr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Rr]=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=S}_write(e,r,i){if(this._opcode===8&&this._state==S)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let i=this._buffers[0];return this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e),new ce(i.buffer,i.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let i=this._buffers[0],s=r.length-e;e>=i.length?r.set(this._buffers.shift(),s):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),s),this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e)),e-=i.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case S:this.getInfo(e);break;case ht:this.getPayloadLength16(e);break;case ut:this.getPayloadLength64(e);break;case pt:this.getMask();break;case ke:this.getData(e);break;case Oe:case fe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let i=(r[0]&64)===64;if(i&&!this._extensions[ct.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=i}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=ht:this._payloadLength===127?this._state=ut: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 r=this.consume(8),i=r.readUInt32BE(0);if(i>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=i*Math.pow(2,32)+r.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 r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=pt:this._state=ke}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=ke}getData(e){let r=ft;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&Ur(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Oe,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[ct.extensionName].decompress(e,this._fin,(s,n)=>{if(s)return r(s);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===S&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=S;return}let r=this._messageLength,i=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=Te(i,r):this._binaryType==="arraybuffer"?s=Fr(Te(i,r)):this._binaryType==="blob"?s=new Blob(i):s=i,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!0),this._state=S,this.startLoop(e)}))}else{let s=Te(i,r);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Oe||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!1),this._state=S,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,ft),this.end();else{let i=e.readUInt16BE(0);if(!Dr(i)){let n=this.createError(RangeError,`invalid status code ${i}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let s=new ce(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",i,s),this.end()}this._state=S;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=S):(this._state=fe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=S,this.startLoop(r)}))}createError(e,r,i,s,n){this._loop=!1,this._errored=!0;let o=new e(i?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Ir]=s,o}};mt.exports=Ce});var Ie=y((ti,xt)=>{"use strict";var{Duplex:ei}=require("stream"),{randomFillSync:Ar}=require("crypto"),_t=J(),{EMPTY_BUFFER:Mr,kWebSocket:Wr,NOOP:qr}=T(),{isBlob:G,isValidStatusCode:$r}=$(),{mask:gt,toBuffer:I}=X(),b=Symbol("kByteLength"),Gr=Buffer.alloc(4),de=8*1024,R,j=de,E=0,jr=1,Vr=2,Le=class t{constructor(e,r,i){this._extensions=r||{},i&&(this._generateMask=i,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=qr,this[Wr]=void 0}static frame(e,r){let i,s=!1,n=2,o=!1;r.mask&&(i=r.maskBuffer||Gr,r.generateMask?r.generateMask(i):(j===de&&(R===void 0&&(R=Buffer.alloc(de)),Ar(R,0,de),j=0),i[0]=R[j++],i[1]=R[j++],i[2]=R[j++],i[3]=R[j++]),o=(i[0]|i[1]|i[2]|i[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[b]!==void 0?l=r[b]:(e=Buffer.from(e),l=e.length):(l=e.length,s=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(s?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=c,c===126?a.writeUInt16BE(l,2):c===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=i[0],a[n-3]=i[1],a[n-2]=i[2],a[n-1]=i[3],o?[a,e]:s?(gt(e,i,a,n,l),[a]):(gt(e,i,e,0,l),[a,e])):[a,e]}close(e,r,i,s){let n;if(e===void 0)n=Mr;else{if(typeof e!="number"||!$r(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[b]:n.length,fin:!0,generateMask:this._generateMask,mask:i,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,s]):this.sendFrame(t.frame(n,o),s)}ping(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=I(e),s=e.length,n=I.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}pong(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=I(e),s=e.length,n=I.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}send(e,r,i){let s=this._extensions[_t.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):G(e)?(l=e.size,c=!1):(e=I(e),l=e.length,c=I.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=s._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[b]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:o};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,i]):this.getBlobData(e,this._compress,a,i):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,i]):this.dispatch(e,this._compress,a,i)}getBlobData(e,r,i,s){this._bufferedBytes+=i[b],this._state=Vr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Pe,this,l,s);return}this._bufferedBytes-=i[b];let o=I(n);r?this.dispatch(o,r,i,s):(this._state=E,this.sendFrame(t.frame(o,i),s),this.dequeue())}).catch(n=>{process.nextTick(Hr,this,n,s)})}dispatch(e,r,i,s){if(!r){this.sendFrame(t.frame(e,i),s);return}let n=this._extensions[_t.extensionName];this._bufferedBytes+=i[b],this._state=jr,n.compress(e,i.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Pe(this,c,s);return}this._bufferedBytes-=i[b],this._state=E,i.readOnly=!1,this.sendFrame(t.frame(l,i),s),this.dequeue()})}dequeue(){for(;this._state===E&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][b],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][b],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};xt.exports=Le;function Pe(t,e,r){typeof r=="function"&&r(e);for(let i=0;i<t._queue.length;i++){let s=t._queue[i],n=s[s.length-1];typeof n=="function"&&n(e)}}function Hr(t,e,r){Pe(t,e,r),t.onerror(e)}});var kt=y((ri,Tt)=>{"use strict";var{kForOnEventAttribute:Q,kListener:Re}=T(),yt=Symbol("kCode"),vt=Symbol("kData"),St=Symbol("kError"),bt=Symbol("kMessage"),Et=Symbol("kReason"),V=Symbol("kTarget"),wt=Symbol("kType"),Nt=Symbol("kWasClean"),O=class{constructor(e){this[V]=null,this[wt]=e}get target(){return this[V]}get type(){return this[wt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var F=class extends O{constructor(e,r={}){super(e),this[yt]=r.code===void 0?0:r.code,this[Et]=r.reason===void 0?"":r.reason,this[Nt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[yt]}get reason(){return this[Et]}get wasClean(){return this[Nt]}};Object.defineProperty(F.prototype,"code",{enumerable:!0});Object.defineProperty(F.prototype,"reason",{enumerable:!0});Object.defineProperty(F.prototype,"wasClean",{enumerable:!0});var H=class extends O{constructor(e,r={}){super(e),this[St]=r.error===void 0?null:r.error,this[bt]=r.message===void 0?"":r.message}get error(){return this[St]}get message(){return this[bt]}};Object.defineProperty(H.prototype,"error",{enumerable:!0});Object.defineProperty(H.prototype,"message",{enumerable:!0});var ee=class extends O{constructor(e,r={}){super(e),this[vt]=r.data===void 0?null:r.data}get data(){return this[vt]}};Object.defineProperty(ee.prototype,"data",{enumerable:!0});var zr={addEventListener(t,e,r={}){for(let s of this.listeners(t))if(!r[Q]&&s[Re]===e&&!s[Q])return;let i;if(t==="message")i=function(n,o){let l=new ee("message",{data:o?n:n.toString()});l[V]=this,he(e,this,l)};else if(t==="close")i=function(n,o){let l=new F("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[V]=this,he(e,this,l)};else if(t==="error")i=function(n){let o=new H("error",{error:n,message:n.message});o[V]=this,he(e,this,o)};else if(t==="open")i=function(){let n=new O("open");n[V]=this,he(e,this,n)};else return;i[Q]=!!r[Q],i[Re]=e,r.once?this.once(t,i):this.on(t,i)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Re]===e&&!r[Q]){this.removeListener(t,r);break}}};Tt.exports={CloseEvent:F,ErrorEvent:H,Event:O,EventTarget:zr,MessageEvent:ee};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Fe=y((si,Ot)=>{"use strict";var{tokenChars:te}=$();function N(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Yr(t){let e=Object.create(null),r=Object.create(null),i=!1,s=!1,n=!1,o,l,c=-1,a=-1,f=-1,d=0;for(;d<t.length;d++)if(a=t.charCodeAt(d),o===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(d!==0&&(a===32||a===9))f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);a===44?(N(e,_,r),r=Object.create(null)):o=_,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(a===32||a===9)f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d),N(r,t.slice(c,f),!0),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),c=f=-1}else if(a===61&&c!==-1&&f===-1)l=t.slice(c,d),c=f=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(s){if(te[a]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);c===-1?c=d:i||(i=!0),s=!1}else if(n)if(te[a]===1)c===-1&&(c=d);else if(a===34&&c!==-1)n=!1,f=d;else if(a===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(a===34&&t.charCodeAt(d-1)===61)n=!0;else if(f===-1&&te[a]===1)c===-1&&(c=d);else if(c!==-1&&(a===32||a===9))f===-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);i&&(_=_.replace(/\\/g,""),i=!1),N(r,l,_),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");f===-1&&(f=d);let u=t.slice(c,f);return o===void 0?N(e,u,r):(l===void 0?N(r,u,!0):i?N(r,l,u.replace(/\\/g,"")):N(r,l,u),N(e,o,r)),e}function Kr(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(s=>{let n=i[s];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ot.exports={format:Kr,parse:Yr}});var _e=y((oi,Wt)=>{"use strict";var Xr=require("events"),Zr=require("https"),Jr=require("http"),Lt=require("net"),Qr=require("tls"),{randomBytes:es,createHash:ts}=require("crypto"),{Duplex:ii,Readable:ni}=require("stream"),{URL:Ue}=require("url"),L=J(),rs=Be(),ss=Ie(),{isBlob:is}=$(),{BINARY_TYPES:Ct,CLOSE_TIMEOUT:ns,EMPTY_BUFFER:ue,GUID:os,kForOnEventAttribute:De,kListener:as,kStatusCode:ls,kWebSocket:g,NOOP:Pt}=T(),{EventTarget:{addEventListener:cs,removeEventListener:fs}}=kt(),{format:ds,parse:hs}=Fe(),{toBuffer:us}=X(),It=Symbol("kAborted"),Ae=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],ps=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends Xr{constructor(e,r,i){super(),this._binaryType=Ct[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ue,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,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(i=r,r=[]):r=[r]),Rt(this,e,r,i)):(this._autoPong=i.autoPong,this._closeTimeout=i.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ct.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,r,i){let s=new rs({allowSynchronousEvents:i.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation}),n=new ss(e,this._extensions,i.generateMask);this._receiver=s,this._sender=n,this._socket=e,s[g]=this,n[g]=this,e[g]=this,s.on("conclude",gs),s.on("drain",xs),s.on("error",ys),s.on("message",vs),s.on("ping",Ss),s.on("pong",bs),n.onerror=Es,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Dt),e.on("data",me),e.on("end",At),e.on("error",Mt),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[L.extensionName]&&this._extensions[L.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(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,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Ut(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ue,r,i)}pong(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ue,r,i)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[L.extensionName]||(s.compress=!1),this._sender.send(e||ue,s,i)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(p,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p.prototype,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p.prototype,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p.prototype,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});Object.defineProperty(p.prototype,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(p.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(p.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[De])return e[as];return null},set(e){for(let r of this.listeners(t))if(r[De]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[De]:!0})}})});p.prototype.addEventListener=cs;p.prototype.removeEventListener=fs;Wt.exports=p;function Rt(t,e,r,i){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ns,protocolVersion:Ae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...i,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=s.autoPong,t._closeTimeout=s.closeTimeout,!Ae.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${Ae.join(", ")})`);let n;if(e instanceof Ue)n=e;else try{n=new Ue(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",c;if(n.protocol!=="ws:"&&!o&&!l?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?c="The URL's pathname is empty":n.hash&&(c="The URL contains a fragment identifier"),c){let h=new SyntaxError(c);if(t._redirects===0)throw h;pe(t,h);return}let a=o?443:80,f=es(16).toString("base64"),d=o?Zr.request:Jr.request,u=new Set,_;if(s.createConnection=s.createConnection||(o?_s:ms),s.defaultPort=s.defaultPort||a,s.port=n.port||a,s.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":f,Connection:"Upgrade",Upgrade:"websocket"},s.path=n.pathname+n.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(_=new L(s.perMessageDeflate!==!0?s.perMessageDeflate:{},!1,s.maxPayload),s.headers["Sec-WebSocket-Extensions"]=ds({[L.extensionName]:_.offer()})),r.length){for(let h of r){if(typeof h!="string"||!ps.test(h)||u.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");u.add(h)}s.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(n.username||n.password)&&(s.auth=`${n.username}:${n.password}`),l){let h=s.path.split(":");s.socketPath=h[0],s.path=h[1]}let m;if(s.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?s.socketPath:n.host;let h=i&&i.headers;if(i={...i,headers:{}},h)for(let[x,A]of Object.entries(h))i.headers[x.toLowerCase()]=A}else if(t.listenerCount("redirect")===0){let h=l?t._originalIpc?s.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!h||t._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,h||delete s.headers.host,s.auth=void 0)}s.auth&&!i.headers.authorization&&(i.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),m=t._req=d(s),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=d(s);s.timeout&&m.on("timeout",()=>{v(t,m,"Opening handshake has timed out")}),m.on("error",h=>{m===null||m[It]||(m=t._req=null,pe(t,h))}),m.on("response",h=>{let x=h.headers.location,A=h.statusCode;if(x&&s.followRedirects&&A>=300&&A<400){if(++t._redirects>s.maxRedirects){v(t,m,"Maximum redirects exceeded");return}m.abort();let Y;try{Y=new Ue(x,e)}catch{let M=new SyntaxError(`Invalid URL: ${x}`);pe(t,M);return}Rt(t,Y,r,i)}else t.emit("unexpected-response",m,h)||v(t,m,`Unexpected server response: ${h.statusCode}`)}),m.on("upgrade",(h,x,A)=>{if(t.emit("upgrade",h),t.readyState!==p.CONNECTING)return;m=t._req=null;let Y=h.headers.upgrade;if(Y===void 0||Y.toLowerCase()!=="websocket"){v(t,x,"Invalid Upgrade header");return}let He=ts("sha1").update(f+os).digest("base64");if(h.headers["sec-websocket-accept"]!==He){v(t,x,"Invalid Sec-WebSocket-Accept header");return}let M=h.headers["sec-websocket-protocol"],K;if(M!==void 0?u.size?u.has(M)||(K="Server sent an invalid subprotocol"):K="Server sent a subprotocol but none was requested":u.size&&(K="Server sent no subprotocol"),K){v(t,x,K);return}M&&(t._protocol=M);let ze=h.headers["sec-websocket-extensions"];if(ze!==void 0){if(!_){v(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=hs(ze)}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}let Ye=Object.keys(xe);if(Ye.length!==1||Ye[0]!==L.extensionName){v(t,x,"Server indicated an extension that was not requested");return}try{_.accept(xe[L.extensionName])}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[L.extensionName]=_}t.setSocket(x,A,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(m,t):m.end()}function pe(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function ms(t){return t.path=t.socketPath,Lt.connect(t)}function _s(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Lt.isIP(t.host)?"":t.host),Qr.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let i=new Error(r);Error.captureStackTrace(i,v),e.setHeader?(e[It]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(pe,t,i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Me(t,e,r){if(e){let i=is(e)?e.size:us(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,i)}}function gs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",me),process.nextTick(Ft,r._socket),t===1005?r.close():r.close(t,e))}function xs(){let t=this[g];t.isPaused||t._socket.resume()}function ys(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",me),process.nextTick(Ft,e._socket),e.close(t[ls])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Bt(){this[g].emitClose()}function vs(t,e){this[g].emit("message",t,e)}function Ss(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Pt),e.emit("ping",t)}function bs(t){this[g].emit("pong",t)}function Ft(t){t.resume()}function Es(t){let e=this[g];e.readyState!==p.CLOSED&&(e.readyState===p.OPEN&&(e._readyState=p.CLOSING,Ut(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Ut(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function Dt(){let t=this[g];if(this.removeListener("close",Dt),this.removeListener("data",me),this.removeListener("end",At),t._readyState=p.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);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",Bt),t._receiver.on("finish",Bt))}function me(t){this[g]._receiver.write(t)||this.pause()}function At(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function Mt(){let t=this[g];this.removeListener("error",Mt),this.on("error",Pt),t&&(t._readyState=p.CLOSING,this.destroy())}});var jt=y((li,Gt)=>{"use strict";var ai=_e(),{Duplex:ws}=require("stream");function qt(t){t.emit("close")}function Ns(){!this.destroyed&&this._writableState.finished&&this.destroy()}function $t(t){this.removeListener("error",$t),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Ts(t,e){let r=!0,i=new ws({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&i._readableState.objectMode?n.toString():n;i.push(l)||t.pause()}),t.once("error",function(n){i.destroyed||(r=!1,i.destroy(n))}),t.once("close",function(){i.destroyed||i.push(null)}),i._destroy=function(s,n){if(t.readyState===t.CLOSED){n(s),process.nextTick(qt,i);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(s),process.nextTick(qt,i)}),r&&t.terminate()},i._final=function(s){if(t.readyState===t.CONNECTING){t.once("open",function(){i._final(s)});return}t._socket!==null&&(t._socket._writableState.finished?(s(),i._readableState.endEmitted&&i.destroy()):(t._socket.once("finish",function(){s()}),t.close()))},i._read=function(){t.isPaused&&t.resume()},i._write=function(s,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){i._write(s,n,o)});return}t.send(s,o)},i.on("end",Ns),i.on("error",$t),i}Gt.exports=Ts});var Ht=y((ci,Vt)=>{"use strict";var{tokenChars:ks}=$();function Os(t){let e=new Set,r=-1,i=-1,s=0;for(s;s<t.length;s++){let o=t.charCodeAt(s);if(i===-1&&ks[o]===1)r===-1&&(r=s);else if(s!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=s);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${s}`);i===-1&&(i=s);let l=t.slice(r,i);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=i=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(r===-1||i!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,s);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Vt.exports={parse:Os}});var Qt=y((di,Jt)=>{"use strict";var Cs=require("events"),ge=require("http"),{Duplex:fi}=require("stream"),{createHash:Bs}=require("crypto"),zt=Fe(),U=J(),Ls=Ht(),Ps=_e(),{CLOSE_TIMEOUT:Is,GUID:Rs,kWebSocket:Fs}=T(),Us=/^[+/0-9A-Za-z]{22}==$/,Yt=0,Kt=1,Zt=2,We=class extends Cs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Is,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Ps,...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=ge.createServer((i,s)=>{let n=ge.STATUS_CODES[426];s.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),s.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=Ds(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,n,o)=>{this.handleUpgrade(s,n,o,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Yt}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===Zt){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(re,this);return}if(e&&this.once("close",e),this._state!==Kt)if(this._state=Kt,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(re,this):process.nextTick(re,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{re(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,s){r.on("error",Xt);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){D(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){D(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!Us.test(n)){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){se(r,400);return}let c=e.headers["sec-websocket-protocol"],a=new Set;if(c!==void 0)try{a=Ls.parse(c)}catch{D(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let f=e.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&f!==void 0){let u=new U(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let _=zt.parse(f);_[U.extensionName]&&(u.accept(_[U.extensionName]),d[U.extensionName]=u)}catch{D(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let u={origin:e.headers[`${l===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(u,(_,m,h,x)=>{if(!_)return se(r,m||401,h,x);this.completeUpgrade(d,n,a,e,r,i,s)});return}if(!this.options.verifyClient(u))return se(r,401)}this.completeUpgrade(d,n,a,e,r,i,s)}completeUpgrade(e,r,i,s,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Fs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Yt)return se(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Bs("sha1").update(r+Rs).digest("base64")}`],f=new this.options.WebSocket(null,void 0,this.options);if(i.size){let d=this.options.handleProtocols?this.options.handleProtocols(i,s):i.values().next().value;d&&(a.push(`Sec-WebSocket-Protocol: ${d}`),f._protocol=d)}if(e[U.extensionName]){let d=e[U.extensionName].params,u=zt.format({[U.extensionName]:[d]});a.push(`Sec-WebSocket-Extensions: ${u}`),f._extensions=e}this.emit("headers",a,s),n.write(a.concat(`\r
3
3
  `).join(`\r
4
- `)),n.removeListener("error",zt),h.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(h),h.on("close",()=>{this.clients.delete(h),this._shouldEmitClose&&!this.clients.size&&process.nextTick(ee,this)})),l(h,s)}};Yt.exports=Ae;function bs(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let i of Object.keys(e))t.removeListener(i,e[i])}}function ee(t){t._state=Ht,t.emit("close")}function zt(){this.destroy()}function te(t,e,r,i){r=r||pe.STATUS_CODES[e],i={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...i},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${pe.STATUS_CODES[e]}\r
4
+ `)),n.removeListener("error",Xt),f.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(f),f.on("close",()=>{this.clients.delete(f),this._shouldEmitClose&&!this.clients.size&&process.nextTick(re,this)})),l(f,s)}};Jt.exports=We;function Ds(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let i of Object.keys(e))t.removeListener(i,e[i])}}function re(t){t._state=Zt,t.emit("close")}function Xt(){this.destroy()}function se(t,e,r,i){r=r||ge.STATUS_CODES[e],i={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...i},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${ge.STATUS_CODES[e]}\r
5
5
  `+Object.keys(i).map(s=>`${s}: ${i[s]}`).join(`\r
6
6
  `)+`\r
7
7
  \r
8
- `+r)}function D(t,e,r,i,s,n){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,D),t.emit("wsClientError",o,r,e)}else te(r,i,s,n)}});var Xt=L(require("http"),1),Fe=L(require("fs"),1),qe=L(require("path"),1);var ws=L(Ft(),1),Os=L(Ce(),1),Ts=L(Pe(),1),ks=L(_e(),1),We=L(Kt(),1);function Zt(t=3e3){let e=Xt.default.createServer((i,s)=>{if(i.url==="/"||i.url==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end(Cs(t));return}if(i.url?.startsWith("/dist/")){let n=i.url.replace("/dist/",""),o=qe.default.resolve(__dirname,"..","..","dist",n);try{if(Fe.default.existsSync(o)){let l=Fe.default.readFileSync(o),f=qe.default.extname(o),a={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":a[f]||"text/plain"}),s.end(l)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")}),r=new We.default({server:e});r.on("connection",i=>{i.on("message",s=>{let n=s.toString();try{if(JSON.parse(n).type==="PING")return}catch{}r.clients.forEach(o=>{o!==i&&o.readyState===1&&o.send(n)})})}),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}function Cs(t){return`
8
+ `+r)}function D(t,e,r,i,s,n){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,D),t.emit("wsClientError",o,r,e)}else se(r,i,s,n)}});var er=w(require("http"),1),$e=w(require("fs"),1),Ge=w(require("path"),1);var As=w(jt(),1),Ms=w(Be(),1),Ws=w(Ie(),1),qs=w(_e(),1),qe=w(Qt(),1);function tr(t=3e3){let e=er.default.createServer((i,s)=>{if(i.url==="/"||i.url==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end($s(t));return}if(i.url?.startsWith("/dist/")){let n=i.url.replace("/dist/",""),o=Ge.default.resolve(__dirname,"..","..","dist",n);try{if($e.default.existsSync(o)){let l=$e.default.readFileSync(o),c=Ge.default.extname(o),a={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":a[c]||"text/plain"}),s.end(l)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")}),r=new qe.default({server:e});r.on("connection",i=>{i.on("message",s=>{let n=s.toString();try{if(JSON.parse(n).type==="PING")return}catch{}r.clients.forEach(o=>{o!==i&&o.readyState===1&&o.send(n)})})}),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}function $s(t){return`
9
9
  <!DOCTYPE html>
10
10
  <html lang="pt-BR">
11
11
  <head>
@@ -91,7 +91,402 @@
91
91
  observer.observe(document.body, { childList: true, subtree: true });
92
92
  </script>
93
93
  </body>
94
- </html>`}var re=process.argv.slice(2),Ls=re[0];if(Ls==="devtools"){let t=re.indexOf("-p")!==-1?re.indexOf("-p"):re.indexOf("--port"),e=t!==-1?Number(re[t+1]):3e3;Zt(e)}else console.log(`
94
+ </html>`}var P=w(require("fs"),1),ie=w(require("path"),1);function rr(t){return`"use client";
95
+
96
+ import { Input } from "${t}/input";
97
+ import { useBitField } from "@lehnihon/bit-form/react";
98
+
99
+ export interface BitFormInputProps {
100
+ path: string;
101
+ label?: string;
102
+ description?: string;
103
+ placeholder?: string;
104
+ type?: string;
105
+ className?: string;
106
+ id?: string;
107
+ }
108
+
109
+ export function BitFormInput({
110
+ path,
111
+ label,
112
+ description,
113
+ placeholder,
114
+ type = "text",
115
+ className,
116
+ id,
117
+ }: BitFormInputProps) {
118
+ const field = useBitField(path);
119
+ const { meta } = field;
120
+
121
+ if (meta.isHidden) return null;
122
+
123
+ const inputId = id ?? path;
124
+
125
+ return (
126
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
127
+ {label && (
128
+ <label
129
+ htmlFor={inputId}
130
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
131
+ >
132
+ {label}
133
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
134
+ </label>
135
+ )}
136
+ <Input
137
+ id={inputId}
138
+ type={type}
139
+ value={field.props.value}
140
+ onChange={field.props.onChange}
141
+ onBlur={field.props.onBlur}
142
+ placeholder={placeholder}
143
+ className={className}
144
+ aria-invalid={meta.invalid || undefined}
145
+ aria-required={meta.isRequired || undefined}
146
+ />
147
+ {description && (
148
+ <p className="text-sm text-muted-foreground">{description}</p>
149
+ )}
150
+ {meta.error && (
151
+ <p className="text-sm text-destructive">{meta.error}</p>
152
+ )}
153
+ </div>
154
+ );
155
+ }
156
+ `}function sr(t){return`"use client";
157
+
158
+ import { Textarea } from "${t}/textarea";
159
+ import { useBitField } from "@lehnihon/bit-form/react";
160
+
161
+ export interface BitFormTextareaProps {
162
+ path: string;
163
+ label?: string;
164
+ description?: string;
165
+ placeholder?: string;
166
+ rows?: number;
167
+ className?: string;
168
+ id?: string;
169
+ }
170
+
171
+ export function BitFormTextarea({
172
+ path,
173
+ label,
174
+ description,
175
+ placeholder,
176
+ rows = 3,
177
+ className,
178
+ id,
179
+ }: BitFormTextareaProps) {
180
+ const field = useBitField(path);
181
+ const { meta } = field;
182
+
183
+ if (meta.isHidden) return null;
184
+
185
+ const inputId = id ?? path;
186
+
187
+ return (
188
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
189
+ {label && (
190
+ <label
191
+ htmlFor={inputId}
192
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
193
+ >
194
+ {label}
195
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
196
+ </label>
197
+ )}
198
+ <Textarea
199
+ id={inputId}
200
+ value={field.props.value}
201
+ onChange={field.props.onChange}
202
+ onBlur={field.props.onBlur}
203
+ placeholder={placeholder}
204
+ rows={rows}
205
+ className={className}
206
+ aria-invalid={meta.invalid || undefined}
207
+ aria-required={meta.isRequired || undefined}
208
+ />
209
+ {description && (
210
+ <p className="text-sm text-muted-foreground">{description}</p>
211
+ )}
212
+ {meta.error && (
213
+ <p className="text-sm text-destructive">{meta.error}</p>
214
+ )}
215
+ </div>
216
+ );
217
+ }
218
+ `}function ir(t){return`"use client";
219
+
220
+ import {
221
+ Select,
222
+ SelectContent,
223
+ SelectItem,
224
+ SelectTrigger,
225
+ SelectValue,
226
+ } from "${t}/select";
227
+ import { useBitField } from "@lehnihon/bit-form/react";
228
+
229
+ export interface BitFormSelectOption {
230
+ value: string;
231
+ label: string;
232
+ }
233
+
234
+ export interface BitFormSelectProps {
235
+ path: string;
236
+ label?: string;
237
+ description?: string;
238
+ placeholder?: string;
239
+ options: BitFormSelectOption[];
240
+ className?: string;
241
+ id?: string;
242
+ }
243
+
244
+ export function BitFormSelect({
245
+ path,
246
+ label,
247
+ description,
248
+ placeholder = "Select...",
249
+ options,
250
+ className,
251
+ id,
252
+ }: BitFormSelectProps) {
253
+ const field = useBitField(path);
254
+ const { field: valueField, meta } = field;
255
+
256
+ if (meta.isHidden) return null;
257
+
258
+ const inputId = id ?? path;
259
+
260
+ return (
261
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
262
+ {label && (
263
+ <label
264
+ htmlFor={inputId}
265
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
266
+ >
267
+ {label}
268
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
269
+ </label>
270
+ )}
271
+ <Select
272
+ value={valueField.value ?? ""}
273
+ onValueChange={(val) => valueField.setValue(val)}
274
+ >
275
+ <SelectTrigger
276
+ id={inputId}
277
+ className={className}
278
+ aria-invalid={meta.invalid || undefined}
279
+ aria-required={meta.isRequired || undefined}
280
+ >
281
+ <SelectValue placeholder={placeholder} />
282
+ </SelectTrigger>
283
+ <SelectContent>
284
+ {options.map((opt) => (
285
+ <SelectItem key={opt.value} value={opt.value}>
286
+ {opt.label}
287
+ </SelectItem>
288
+ ))}
289
+ </SelectContent>
290
+ </Select>
291
+ {description && (
292
+ <p className="text-sm text-muted-foreground">{description}</p>
293
+ )}
294
+ {meta.error && (
295
+ <p className="text-sm text-destructive">{meta.error}</p>
296
+ )}
297
+ </div>
298
+ );
299
+ }
300
+ `}function nr(t){return`"use client";
301
+
302
+ import { Checkbox } from "${t}/checkbox";
303
+ import { useBitField } from "@lehnihon/bit-form/react";
304
+
305
+ export interface BitFormCheckboxProps {
306
+ path: string;
307
+ label?: string;
308
+ description?: string;
309
+ className?: string;
310
+ id?: string;
311
+ }
312
+
313
+ export function BitFormCheckbox({
314
+ path,
315
+ label,
316
+ description,
317
+ className,
318
+ id,
319
+ }: BitFormCheckboxProps) {
320
+ const field = useBitField(path);
321
+ const { field: valueField, meta } = field;
322
+
323
+ if (meta.isHidden) return null;
324
+
325
+ const inputId = id ?? path;
326
+ const checked = Boolean(valueField.value);
327
+
328
+ return (
329
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
330
+ <div className="flex items-center space-x-2">
331
+ <Checkbox
332
+ id={inputId}
333
+ checked={checked}
334
+ onCheckedChange={(checked) => valueField.setValue(!!checked)}
335
+ onBlur={valueField.setBlur}
336
+ aria-invalid={meta.invalid || undefined}
337
+ aria-required={meta.isRequired || undefined}
338
+ className={className}
339
+ />
340
+ {label && (
341
+ <label
342
+ htmlFor={inputId}
343
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
344
+ >
345
+ {label}
346
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
347
+ </label>
348
+ )}
349
+ </div>
350
+ {description && (
351
+ <p className="text-sm text-muted-foreground">{description}</p>
352
+ )}
353
+ {meta.error && (
354
+ <p className="text-sm text-destructive">{meta.error}</p>
355
+ )}
356
+ </div>
357
+ );
358
+ }
359
+ `}function or(t){return`"use client";
360
+
361
+ import { Switch } from "${t}/switch";
362
+ import { useBitField } from "@lehnihon/bit-form/react";
363
+
364
+ export interface BitFormSwitchProps {
365
+ path: string;
366
+ label?: string;
367
+ description?: string;
368
+ className?: string;
369
+ id?: string;
370
+ }
371
+
372
+ export function BitFormSwitch({
373
+ path,
374
+ label,
375
+ description,
376
+ className,
377
+ id,
378
+ }: BitFormSwitchProps) {
379
+ const field = useBitField(path);
380
+ const { field: valueField, meta } = field;
381
+
382
+ if (meta.isHidden) return null;
383
+
384
+ const inputId = id ?? path;
385
+ const checked = Boolean(valueField.value);
386
+
387
+ return (
388
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
389
+ <div className="flex items-center space-x-2">
390
+ <Switch
391
+ id={inputId}
392
+ checked={checked}
393
+ onCheckedChange={(checked) => valueField.setValue(!!checked)}
394
+ aria-invalid={meta.invalid || undefined}
395
+ aria-required={meta.isRequired || undefined}
396
+ className={className}
397
+ />
398
+ {label && (
399
+ <label
400
+ htmlFor={inputId}
401
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
402
+ >
403
+ {label}
404
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
405
+ </label>
406
+ )}
407
+ </div>
408
+ {description && (
409
+ <p className="text-sm text-muted-foreground">{description}</p>
410
+ )}
411
+ {meta.error && (
412
+ <p className="text-sm text-destructive">{meta.error}</p>
413
+ )}
414
+ </div>
415
+ );
416
+ }
417
+ `}function ar(t){return`"use client";
418
+
419
+ import { RadioGroup, RadioGroupItem } from "${t}/radio-group";
420
+ import { useBitField } from "@lehnihon/bit-form/react";
421
+
422
+ export interface BitFormRadioOption {
423
+ value: string;
424
+ label: string;
425
+ }
426
+
427
+ export interface BitFormRadioGroupProps {
428
+ path: string;
429
+ label?: string;
430
+ description?: string;
431
+ options: BitFormRadioOption[];
432
+ className?: string;
433
+ id?: string;
434
+ }
435
+
436
+ export function BitFormRadioGroup({
437
+ path,
438
+ label,
439
+ description,
440
+ options,
441
+ className,
442
+ id,
443
+ }: BitFormRadioGroupProps) {
444
+ const field = useBitField(path);
445
+ const { field: valueField, meta } = field;
446
+
447
+ if (meta.isHidden) return null;
448
+
449
+ const inputId = id ?? path;
450
+
451
+ return (
452
+ <div className="space-y-2" data-invalid={meta.invalid || undefined}>
453
+ {label && (
454
+ <label
455
+ className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
456
+ >
457
+ {label}
458
+ {meta.isRequired && <span className="text-destructive ml-1">*</span>}
459
+ </label>
460
+ )}
461
+ <RadioGroup
462
+ value={valueField.value ?? ""}
463
+ onValueChange={(val) => valueField.setValue(val)}
464
+ className={className}
465
+ aria-invalid={meta.invalid || undefined}
466
+ aria-required={meta.isRequired || undefined}
467
+ >
468
+ {options.map((opt) => (
469
+ <div key={opt.value} className="flex items-center space-x-2">
470
+ <RadioGroupItem value={opt.value} id={\`\${inputId}-\${opt.value}\`} />
471
+ <label
472
+ htmlFor={\`\${inputId}-\${opt.value}\`}
473
+ className="text-sm font-normal cursor-pointer"
474
+ >
475
+ {opt.label}
476
+ </label>
477
+ </div>
478
+ ))}
479
+ </RadioGroup>
480
+ {description && (
481
+ <p className="text-sm text-muted-foreground">{description}</p>
482
+ )}
483
+ {meta.error && (
484
+ <p className="text-sm text-destructive">{meta.error}</p>
485
+ )}
486
+ </div>
487
+ );
488
+ }
489
+ `}var je={input:rr,textarea:sr,select:ir,checkbox:nr,switch:or,"radio-group":ar},Ve=Object.keys(je);var lr={name:"shadcn",framework:"react",components:Ve,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),i=je[r];if(!i)throw new Error(`Unknown shadcn component: ${t}. Available: ${Ve.join(", ")}`);let s=i(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:s}}};var Gs={shadcn:lr};function cr(t){return Gs[t.toLowerCase()]}var js="@/components/ui";function Vs(t){let e=t[0]??"",r=t.slice(1),i=".",s=js,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];a==="--path"&&r[c+1]?i=r[++c]:a==="--ui-path"&&r[c+1]?s=r[++c]:a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")||l.push(a)}return{adapter:e,components:l,flags:{path:i,uiPath:s,overwrite:n,yes:o}}}function Hs(t){let e=ie.join(t,"components.json");try{return P.accessSync(e),!0}catch{return!1}}function fr(t){let{adapter:e,components:r,flags:i}=Vs(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let s=cr(e);if(!s)throw new Error(`bit-form add: unknown adapter "${e}". Available: shadcn`);let n=r.length>0?r:s.components;if(n.length===0)throw new Error("bit-form add: specify at least one component or use no arguments to add all.");let o=process.cwd(),l=ie.resolve(o,i.path);s.name==="shadcn"&&!Hs(o)&&console.warn("Warning: components.json not found in project root. Make sure shadcn/ui is initialized (e.g. npx shadcn@latest init) or pass --ui-path to match your setup.");try{P.mkdirSync(l,{recursive:!0})}catch(a){throw new Error(`bit-form add: could not create output directory: ${a.message}`)}let c={cwd:o,path:l,uiPath:i.uiPath,overwrite:i.overwrite,yes:i.yes};for(let a of n){let{filename:f,contents:d}=s.renderComponent(a,c),u=ie.join(l,f);if(!i.overwrite&&P.existsSync(u)){console.log(`Skip ${f} (exists; use --overwrite to replace)`);continue}P.writeFileSync(u,d,"utf-8"),console.log(`Created ${f}`)}}var z=process.argv.slice(2),dr=z[0];if(dr==="devtools"){let t=z.indexOf("-p")!==-1?z.indexOf("-p"):z.indexOf("--port"),e=t!==-1?Number(z[t+1]):3e3;tr(e)}else if(dr==="add")try{fr(z.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
95
490
  \u{1F6E0} Bit-Form CLI
96
491
 
97
492
  Uso:
@@ -99,7 +494,12 @@
99
494
 
100
495
  Comandos dispon\xEDveis:
101
496
  devtools Inicia o servidor local do Remote Inspector
497
+ add Gera wrappers Bit-Form para UI (ex.: shadcn)
102
498
 
499
+ Exemplo add:
500
+ bit-form add shadcn input textarea select
501
+ bit-form add shadcn --path ./components --ui-path @/components/ui --overwrite
502
+
103
503
  Op\xE7\xF5es do devtools:
104
504
  -p, --port Define a porta do servidor (padr\xE3o: 3000)
105
505
  `);