@lehnihon/bit-form 2.2.9 → 2.2.10

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 (134) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.d.cts +19 -52
  3. package/dist/angular/index.d.ts +19 -52
  4. package/dist/angular/index.js +1 -1
  5. package/dist/angular/index.js.map +1 -1
  6. package/dist/bus-BFOBGmd9.d.ts +41 -0
  7. package/dist/bus-DzTqgkZ4.d.cts +41 -0
  8. package/dist/chunk-2AFWJAQG.js +2 -0
  9. package/dist/chunk-2AFWJAQG.js.map +1 -0
  10. package/dist/chunk-4RQFECC7.cjs +2 -0
  11. package/dist/{chunk-J5ALITQW.cjs.map → chunk-4RQFECC7.cjs.map} +1 -1
  12. package/dist/chunk-FLFIOW75.js +2 -0
  13. package/dist/chunk-FLFIOW75.js.map +1 -0
  14. package/dist/chunk-G2FQQDRK.js +2 -0
  15. package/dist/chunk-G2FQQDRK.js.map +1 -0
  16. package/dist/{chunk-X5UCRGYJ.cjs → chunk-GPMAT4PT.cjs} +2 -2
  17. package/dist/{chunk-X5UCRGYJ.cjs.map → chunk-GPMAT4PT.cjs.map} +1 -1
  18. package/dist/{chunk-J5GQLEVA.js → chunk-GQ2QJCBF.js} +2 -2
  19. package/dist/{chunk-GGZPA7AO.cjs → chunk-IVPCXKYW.cjs} +2 -2
  20. package/dist/{chunk-GGZPA7AO.cjs.map → chunk-IVPCXKYW.cjs.map} +1 -1
  21. package/dist/{chunk-N4HCGMMM.js → chunk-LX4GSDUV.js} +2 -2
  22. package/dist/chunk-NVFZ22A7.cjs +2 -0
  23. package/dist/chunk-NVFZ22A7.cjs.map +1 -0
  24. package/dist/{chunk-2QLQPMCZ.js → chunk-OPC7HFNN.js} +2 -2
  25. package/dist/chunk-PA43XYOW.cjs +2 -0
  26. package/dist/{chunk-IV32WXCF.cjs.map → chunk-PA43XYOW.cjs.map} +1 -1
  27. package/dist/chunk-PG7ZH32Z.js +2 -0
  28. package/dist/chunk-PG7ZH32Z.js.map +1 -0
  29. package/dist/chunk-VBX5I5XG.cjs +2 -0
  30. package/dist/chunk-VBX5I5XG.cjs.map +1 -0
  31. package/dist/{chunk-OLQVH24Z.cjs → chunk-ZKAFHJPU.cjs} +2 -2
  32. package/dist/{chunk-OLQVH24Z.cjs.map → chunk-ZKAFHJPU.cjs.map} +1 -1
  33. package/dist/cli/index.cjs +5 -5
  34. package/dist/{types-SOg9xEce.d.cts → config-types-5eR82k2V.d.cts} +40 -169
  35. package/dist/{types-CRCP4Pgq.d.ts → config-types-D9n-rQLk.d.ts} +40 -169
  36. package/dist/core/bindings.cjs +1 -1
  37. package/dist/core/bindings.d.cts +15 -11
  38. package/dist/core/bindings.d.ts +15 -11
  39. package/dist/core/bindings.js +1 -1
  40. package/dist/core/status.d.cts +3 -4
  41. package/dist/core/status.d.ts +3 -4
  42. package/dist/core/store.cjs +1 -1
  43. package/dist/core/store.d.cts +8 -6
  44. package/dist/core/store.d.ts +8 -6
  45. package/dist/core/store.js +1 -1
  46. package/dist/core/utils.cjs +1 -1
  47. package/dist/core/utils.d.cts +1 -2
  48. package/dist/core/utils.d.ts +1 -2
  49. package/dist/core/utils.js +1 -1
  50. package/dist/core.cjs +1 -1
  51. package/dist/core.d.cts +10 -9
  52. package/dist/core.d.ts +10 -9
  53. package/dist/core.js +1 -1
  54. package/dist/devtools/bridge.cjs +1 -1
  55. package/dist/devtools/bridge.d.cts +2 -3
  56. package/dist/devtools/bridge.d.ts +2 -3
  57. package/dist/devtools/bridge.js +1 -1
  58. package/dist/devtools/index.cjs +2 -2
  59. package/dist/devtools/index.d.cts +5 -3
  60. package/dist/devtools/index.d.ts +5 -3
  61. package/dist/devtools/index.js +1 -1
  62. package/dist/{field-binding-MX6jVQbT.d.ts → field-binding-Bi1g-D8X.d.ts} +1 -1
  63. package/dist/{field-binding-B_OX3bjp.d.cts → field-binding-X5TkvfUt.d.cts} +1 -1
  64. package/dist/index.cjs +1 -1
  65. package/dist/index.d.cts +7 -5
  66. package/dist/index.d.ts +7 -5
  67. package/dist/index.js +1 -1
  68. package/dist/mask.d.cts +2 -2
  69. package/dist/mask.d.ts +2 -2
  70. package/dist/meta-types-BC1VLABk.d.cts +28 -0
  71. package/dist/meta-types-BC1VLABk.d.ts +28 -0
  72. package/dist/react/index.cjs +1 -1
  73. package/dist/react/index.cjs.map +1 -1
  74. package/dist/react/index.d.cts +12 -12
  75. package/dist/react/index.d.ts +12 -12
  76. package/dist/react/index.js +1 -1
  77. package/dist/react/index.js.map +1 -1
  78. package/dist/react-native/index.cjs +1 -1
  79. package/dist/react-native/index.d.cts +10 -9
  80. package/dist/react-native/index.d.ts +10 -9
  81. package/dist/react-native/index.js +1 -1
  82. package/dist/resolvers/index.d.cts +2 -3
  83. package/dist/resolvers/index.d.ts +2 -3
  84. package/dist/resolvers/joi.d.cts +2 -3
  85. package/dist/resolvers/joi.d.ts +2 -3
  86. package/dist/resolvers/yup.d.cts +2 -3
  87. package/dist/resolvers/yup.d.ts +2 -3
  88. package/dist/resolvers/zod.d.cts +2 -3
  89. package/dist/resolvers/zod.d.ts +2 -3
  90. package/dist/runtime-types-D1SRZr-n.d.cts +43 -0
  91. package/dist/runtime-types-D1SRZr-n.d.ts +43 -0
  92. package/dist/state-types-8bUndWfg.d.cts +42 -0
  93. package/dist/state-types-8bUndWfg.d.ts +42 -0
  94. package/dist/{store-api-types-Bm3EAqR_.d.cts → store-api-types-Bozwlwyb.d.ts} +9 -5
  95. package/dist/{store-api-types-DfTFy2h4.d.ts → store-api-types-DSgYwMS3.d.cts} +9 -5
  96. package/dist/{types-D8DgIUhJ.d.cts → types-CUXh7PqD.d.cts} +1 -1
  97. package/dist/{types-D8DgIUhJ.d.ts → types-CUXh7PqD.d.ts} +1 -1
  98. package/dist/upload-C4JqIaU2.d.cts +89 -0
  99. package/dist/upload-ao6skK9K.d.ts +89 -0
  100. package/dist/{use-bit-persist-BDMZmxBh.d.ts → use-bit-persist-Bd1H2fge.d.ts} +12 -45
  101. package/dist/{use-bit-persist-CBTZIMc5.d.cts → use-bit-persist-DDxV21AN.d.cts} +12 -45
  102. package/dist/utils.cjs +1 -1
  103. package/dist/utils.js +1 -1
  104. package/dist/vue/index.cjs +1 -1
  105. package/dist/vue/index.d.cts +18 -51
  106. package/dist/vue/index.d.ts +18 -51
  107. package/dist/vue/index.js +1 -1
  108. package/dist/vue/index.js.map +1 -1
  109. package/package.json +2 -2
  110. package/dist/array-controller-C61ByyG6.d.ts +0 -23
  111. package/dist/array-controller-CtlqjA0e.d.cts +0 -23
  112. package/dist/bus-BKuMV3E7.d.ts +0 -19
  113. package/dist/bus-WOHGxuVy.d.cts +0 -19
  114. package/dist/chunk-6LNXTSZ6.cjs +0 -2
  115. package/dist/chunk-6LNXTSZ6.cjs.map +0 -1
  116. package/dist/chunk-IV32WXCF.cjs +0 -2
  117. package/dist/chunk-J5ALITQW.cjs +0 -2
  118. package/dist/chunk-KDHPLXZF.cjs +0 -2
  119. package/dist/chunk-KDHPLXZF.cjs.map +0 -1
  120. package/dist/chunk-O5UPA33R.js +0 -2
  121. package/dist/chunk-O5UPA33R.js.map +0 -1
  122. package/dist/chunk-QX2IVNMK.js +0 -2
  123. package/dist/chunk-QX2IVNMK.js.map +0 -1
  124. package/dist/chunk-UARLAXZX.js +0 -2
  125. package/dist/chunk-UARLAXZX.js.map +0 -1
  126. package/dist/chunk-Y3XVQGCU.js +0 -2
  127. package/dist/chunk-Y3XVQGCU.js.map +0 -1
  128. package/dist/meta-types-Bzmm21TP.d.cts +0 -18
  129. package/dist/meta-types-Bzmm21TP.d.ts +0 -18
  130. package/dist/upload-C2mpfhp1.d.cts +0 -17
  131. package/dist/upload-C2mpfhp1.d.ts +0 -17
  132. /package/dist/{chunk-J5GQLEVA.js.map → chunk-GQ2QJCBF.js.map} +0 -0
  133. /package/dist/{chunk-N4HCGMMM.js.map → chunk-LX4GSDUV.js.map} +0 -0
  134. /package/dist/{chunk-2QLQPMCZ.js.map → chunk-OPC7HFNN.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var yr=Object.create;var Ke=Object.defineProperty;var xr=Object.getOwnPropertyDescriptor;var vr=Object.getOwnPropertyNames;var Sr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty;var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Er=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vr(e))!br.call(t,i)&&i!==r&&Ke(t,i,{get:()=>e[i],enumerable:!(s=xr(e,i))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?yr(Sr(t)):{},Er(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var k=x((Qs,Qe)=>{"use strict";var Ze=["nodebuffer","arraybuffer","fragments"],Je=typeof Blob<"u";Je&&Ze.push("blob");Qe.exports={BINARY_TYPES:Ze,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Je,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var X=x((ei,ne)=>{"use strict";var{EMPTY_BUFFER:wr}=k(),ve=Buffer[Symbol.species];function Tr(t,e){if(t.length===0)return wr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new ve(r.buffer,r.byteOffset,s):r}function et(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function tt(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function kr(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:Tr,mask:et,toArrayBuffer:kr,toBuffer:Se,unmask:tt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");ne.exports.mask=function(e,r,s,i,n){n<48?et(e,r,s,i,n):t.mask(e,r,s,i,n)},ne.exports.unmask=function(e,r){e.length<32?tt(e,r):t.unmask(e,r)}}catch{}});var it=x((ti,st)=>{"use strict";var rt=Symbol("kDone"),be=Symbol("kRun"),Ee=class{constructor(e){this[rt]=()=>{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[rt])}}};st.exports=Ee});var J=x((ri,lt)=>{"use strict";var Z=require("zlib"),nt=X(),Nr=it(),{kStatusCode:ot}=k(),Or=Buffer[Symbol.species],Cr=Buffer.from([0,0,255,255]),ae=Symbol("permessage-deflate"),N=Symbol("total-length"),W=Symbol("callback"),P=Symbol("buffers"),q=Symbol("error"),oe,we=class{constructor(e,r,s){if(this._maxPayload=s|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 i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;oe=new Nr(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[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,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}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(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){oe.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){oe.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_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[N]=0,this._inflate[P]=[],this._inflate.on("error",Br),this._inflate.on("data",at)}this._inflate[W]=s,this._inflate.write(e),r&&this._inflate.write(Cr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=nt.concat(this._inflate[P],this._inflate[N]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[N]=0,this._inflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_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[N]=0,this._deflate[P]=[],this._deflate.on("data",Pr)}this._deflate[W]=s,this._deflate.write(e),this._deflate.flush(Z.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=nt.concat(this._deflate[P],this._deflate[N]);r&&(n=new Or(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[N]=0,this._deflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};lt.exports=we;function Pr(t){this[P].push(t),this[N]+=t.length}function at(t){if(this[N]+=t.length,this[ae]._maxPayload<1||this[N]<=this[ae]._maxPayload){this[P].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][ot]=1009,this.removeListener("data",at),this.reset()}function Br(t){if(this[ae]._inflate=null,this[q]){this[W](this[q]);return}t[ot]=1007,this[W](t)}});var V=x((si,le)=>{"use strict";var{isUtf8:ct}=require("buffer"),{hasBlob:Lr}=k(),Dr=[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 Rr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Te(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 Ir(t){return Lr&&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:Ir,isValidStatusCode:Rr,isValidUTF8:Te,tokenChars:Dr};if(ct)le.exports.isValidUTF8=function(t){return t.length<24?Te(t):ct(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?Te(e):t(e)}}catch{}});var Pe=x((ii,_t)=>{"use strict";var{Writable:Fr}=require("stream"),dt=J(),{BINARY_TYPES:Ur,EMPTY_BUFFER:ft,kStatusCode:Ar,kWebSocket:Mr}=k(),{concat:ke,toArrayBuffer:Wr,unmask:qr}=X(),{isValidStatusCode:Vr,isValidUTF8:ht}=V(),ce=Buffer[Symbol.species],S=0,ut=1,pt=2,mt=3,Ne=4,Oe=5,de=6,Ce=class extends Fr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Ur[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Mr]=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,s){if(this._opcode===8&&this._state==S)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new ce(s.buffer,s.byteOffset+e,s.length-e),new ce(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new ce(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case S:this.getInfo(e);break;case ut:this.getPayloadLength16(e);break;case pt:this.getPayloadLength64(e);break;case mt:this.getMask();break;case Ne:this.getData(e);break;case Oe:case de: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 i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[dt.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=ut:this._payloadLength===127?this._state=pt: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),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*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=mt:this._state=Ne}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Ne}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&&qr(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[dt.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);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,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=ke(s,r):this._binaryType==="arraybuffer"?i=Wr(ke(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=S):(this._state=de,setImmediate(()=>{this.emit("message",i,!0),this._state=S,this.startLoop(e)}))}else{let i=ke(s,r);if(!this._skipUTF8Validation&&!ht(i)){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",i,!1),this._state=S):(this._state=de,setImmediate(()=>{this.emit("message",i,!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 s=e.readUInt16BE(0);if(!Vr(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new ce(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!ht(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),this.end()}this._state=S;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=S):(this._state=de,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=S,this.startLoop(r)}))}createError(e,r,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Ar]=i,o}};_t.exports=Ce});var De=x((oi,xt)=>{"use strict";var{Duplex:ni}=require("stream"),{randomFillSync:$r}=require("crypto"),gt=J(),{EMPTY_BUFFER:Gr,kWebSocket:jr,NOOP:Hr}=k(),{isBlob:$,isValidStatusCode:zr}=V(),{mask:yt,toBuffer:D}=X(),b=Symbol("kByteLength"),Yr=Buffer.alloc(4),fe=8*1024,R,G=fe,E=0,Kr=1,Xr=2,Be=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=Hr,this[jr]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||Yr,r.generateMask?r.generateMask(s):(G===fe&&(R===void 0&&(R=Buffer.alloc(fe)),$r(R,0,fe),G=0),s[0]=R[G++],s[1]=R[G++],s[2]=R[G++],s[3]=R[G++]),o=(s[0]|s[1]|s[2]|s[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,i=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(i?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]=s[0],a[n-3]=s[1],a[n-2]=s[2],a[n-1]=s[3],o?[a,e]:i?(yt(e,s,a,n,l),[a]):(yt(e,s,e,0,l),[a,e])):[a,e]}close(e,r,s,i){let n;if(e===void 0)n=Gr;else{if(typeof e!="number"||!zr(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:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=D(e),i=e.length,n=D.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=D(e),i=e.length,n=D.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[gt.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):$(e)?(l=e.size,c=!1):(e=D(e),l=e.length,c=D.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=i._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};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,s]):this.getBlobData(e,this._compress,a,s):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,s]):this.dispatch(e,this._compress,a,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[b],this._state=Xr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Le,this,l,i);return}this._bufferedBytes-=s[b];let o=D(n);r?this.dispatch(o,r,s,i):(this._state=E,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(Zr,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[gt.extensionName];this._bufferedBytes+=s[b],this._state=Kr,n.compress(e,s.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Le(this,c,i);return}this._bufferedBytes-=s[b],this._state=E,s.readOnly=!1,this.sendFrame(t.frame(l,s),i),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=Be;function Le(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function Zr(t,e,r){Le(t,e,r),t.onerror(e)}});var Ot=x((ai,Nt)=>{"use strict";var{kForOnEventAttribute:Q,kListener:Re}=k(),vt=Symbol("kCode"),St=Symbol("kData"),bt=Symbol("kError"),Et=Symbol("kMessage"),wt=Symbol("kReason"),j=Symbol("kTarget"),Tt=Symbol("kType"),kt=Symbol("kWasClean"),O=class{constructor(e){this[j]=null,this[Tt]=e}get target(){return this[j]}get type(){return this[Tt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var I=class extends O{constructor(e,r={}){super(e),this[vt]=r.code===void 0?0:r.code,this[wt]=r.reason===void 0?"":r.reason,this[kt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[vt]}get reason(){return this[wt]}get wasClean(){return this[kt]}};Object.defineProperty(I.prototype,"code",{enumerable:!0});Object.defineProperty(I.prototype,"reason",{enumerable:!0});Object.defineProperty(I.prototype,"wasClean",{enumerable:!0});var H=class extends O{constructor(e,r={}){super(e),this[bt]=r.error===void 0?null:r.error,this[Et]=r.message===void 0?"":r.message}get error(){return this[bt]}get message(){return this[Et]}};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[St]=r.data===void 0?null:r.data}get data(){return this[St]}};Object.defineProperty(ee.prototype,"data",{enumerable:!0});var Jr={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[Q]&&i[Re]===e&&!i[Q])return;let s;if(t==="message")s=function(n,o){let l=new ee("message",{data:o?n:n.toString()});l[j]=this,he(e,this,l)};else if(t==="close")s=function(n,o){let l=new I("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[j]=this,he(e,this,l)};else if(t==="error")s=function(n){let o=new H("error",{error:n,message:n.message});o[j]=this,he(e,this,o)};else if(t==="open")s=function(){let n=new O("open");n[j]=this,he(e,this,n)};else return;s[Q]=!!r[Q],s[Re]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Re]===e&&!r[Q]){this.removeListener(t,r);break}}};Nt.exports={CloseEvent:I,ErrorEvent:H,Event:O,EventTarget:Jr,MessageEvent:ee};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Ie=x((li,Ct)=>{"use strict";var{tokenChars:te}=V();function T(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Qr(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,l,c=-1,a=-1,d=-1,f=0;for(;f<t.length;f++)if(a=t.charCodeAt(f),o===void 0)if(d===-1&&te[a]===1)c===-1&&(c=f);else if(f!==0&&(a===32||a===9))d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let _=t.slice(c,d);a===44?(T(e,_,r),r=Object.create(null)):o=_,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);else if(l===void 0)if(d===-1&&te[a]===1)c===-1&&(c=f);else if(a===32||a===9)d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f),T(r,t.slice(c,d),!0),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),c=d=-1}else if(a===61&&c!==-1&&d===-1)l=t.slice(c,f),c=d=-1;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(i){if(te[a]!==1)throw new SyntaxError(`Unexpected character at index ${f}`);c===-1?c=f:s||(s=!0),i=!1}else if(n)if(te[a]===1)c===-1&&(c=f);else if(a===34&&c!==-1)n=!1,d=f;else if(a===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(a===34&&t.charCodeAt(f-1)===61)n=!0;else if(d===-1&&te[a]===1)c===-1&&(c=f);else if(c!==-1&&(a===32||a===9))d===-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let _=t.slice(c,d);s&&(_=_.replace(/\\/g,""),s=!1),T(r,l,_),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=f);let u=t.slice(c,d);return o===void 0?T(e,u,r):(l===void 0?T(r,u,!0):s?T(r,l,u.replace(/\\/g,"")):T(r,l,u),T(e,o,r)),e}function es(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ct.exports={format:es,parse:Qr}});var _e=x((fi,qt)=>{"use strict";var ts=require("events"),rs=require("https"),ss=require("http"),Lt=require("net"),is=require("tls"),{randomBytes:ns,createHash:os}=require("crypto"),{Duplex:ci,Readable:di}=require("stream"),{URL:Fe}=require("url"),B=J(),as=Pe(),ls=De(),{isBlob:cs}=V(),{BINARY_TYPES:Pt,CLOSE_TIMEOUT:ds,EMPTY_BUFFER:ue,GUID:fs,kForOnEventAttribute:Ue,kListener:hs,kStatusCode:us,kWebSocket:g,NOOP:Dt}=k(),{EventTarget:{addEventListener:ps,removeEventListener:ms}}=Ot(),{format:_s,parse:gs}=Ie(),{toBuffer:ys}=X(),Rt=Symbol("kAborted"),Ae=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],xs=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends ts{constructor(e,r,s){super(),this._binaryType=Pt[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?(s=r,r=[]):r=[r]),It(this,e,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Pt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get 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,s){let i=new as({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new ls(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[g]=this,n[g]=this,e[g]=this,i.on("conclude",bs),i.on("drain",Es),i.on("error",ws),i.on("message",Ts),i.on("ping",ks),i.on("pong",Ns),n.onerror=Os,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",At),e.on("data",me),e.on("end",Mt),e.on("error",Wt),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[B.extensionName]&&this._extensions[B.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,s=>{s||(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,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ue,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ue,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[B.extensionName]||(i.compress=!1),this._sender.send(e||ue,i,s)}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[Ue])return e[hs];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})}})});p.prototype.addEventListener=ps;p.prototype.removeEventListener=ms;qt.exports=p;function It(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ds,protocolVersion:Ae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,t._closeTimeout=i.closeTimeout,!Ae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Ae.join(", ")})`);let n;if(e instanceof Fe)n=e;else try{n=new Fe(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,d=ns(16).toString("base64"),f=o?rs.request:ss.request,u=new Set,_;if(i.createConnection=i.createConnection||(o?Ss:vs),i.defaultPort=i.defaultPort||a,i.port=n.port||a,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(_=new B(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=_s({[B.extensionName]:_.offer()})),r.length){for(let h of r){if(typeof h!="string"||!xs.test(h)||u.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");u.add(h)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),l){let h=i.path.split(":");i.socketPath=h[0],i.path=h[1]}let m;if(i.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?i.socketPath:n.host;let h=s&&s.headers;if(s={...s,headers:{}},h)for(let[y,A]of Object.entries(h))s.headers[y.toLowerCase()]=A}else if(t.listenerCount("redirect")===0){let h=l?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!h||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,h||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),m=t._req=f(i),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=f(i);i.timeout&&m.on("timeout",()=>{v(t,m,"Opening handshake has timed out")}),m.on("error",h=>{m===null||m[Rt]||(m=t._req=null,pe(t,h))}),m.on("response",h=>{let y=h.headers.location,A=h.statusCode;if(y&&i.followRedirects&&A>=300&&A<400){if(++t._redirects>i.maxRedirects){v(t,m,"Maximum redirects exceeded");return}m.abort();let Y;try{Y=new Fe(y,e)}catch{let M=new SyntaxError(`Invalid URL: ${y}`);pe(t,M);return}It(t,Y,r,s)}else t.emit("unexpected-response",m,h)||v(t,m,`Unexpected server response: ${h.statusCode}`)}),m.on("upgrade",(h,y,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,y,"Invalid Upgrade header");return}let He=os("sha1").update(d+fs).digest("base64");if(h.headers["sec-websocket-accept"]!==He){v(t,y,"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,y,K);return}M&&(t._protocol=M);let ze=h.headers["sec-websocket-extensions"];if(ze!==void 0){if(!_){v(t,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let ye;try{ye=gs(ze)}catch{v(t,y,"Invalid Sec-WebSocket-Extensions header");return}let Ye=Object.keys(ye);if(Ye.length!==1||Ye[0]!==B.extensionName){v(t,y,"Server indicated an extension that was not requested");return}try{_.accept(ye[B.extensionName])}catch{v(t,y,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[B.extensionName]=_}t.setSocket(y,A,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(m,t):m.end()}function pe(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function vs(t){return t.path=t.socketPath,Lt.connect(t)}function Ss(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Lt.isIP(t.host)?"":t.host),is.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let s=new Error(r);Error.captureStackTrace(s,v),e.setHeader?(e[Rt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(pe,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Me(t,e,r){if(e){let s=cs(e)?e.size:ys(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,s)}}function bs(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 Es(){let t=this[g];t.isPaused||t._socket.resume()}function ws(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",me),process.nextTick(Ft,e._socket),e.close(t[us])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Bt(){this[g].emitClose()}function Ts(t,e){this[g].emit("message",t,e)}function ks(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Dt),e.emit("ping",t)}function Ns(t){this[g].emit("pong",t)}function Ft(t){t.resume()}function Os(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 At(){let t=this[g];if(this.removeListener("close",At),this.removeListener("data",me),this.removeListener("end",Mt),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 Mt(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function Wt(){let t=this[g];this.removeListener("error",Wt),this.on("error",Dt),t&&(t._readyState=p.CLOSING,this.destroy())}});var jt=x((ui,Gt)=>{"use strict";var hi=_e(),{Duplex:Cs}=require("stream");function Vt(t){t.emit("close")}function Ps(){!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 Bs(t,e){let r=!0,s=new Cs({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&s._readableState.objectMode?n.toString():n;s.push(l)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(Vt,s);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(i),process.nextTick(Vt,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",Ps),s.on("error",$t),s}Gt.exports=Bs});var zt=x((pi,Ht)=>{"use strict";var{tokenChars:Ls}=V();function Ds(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&Ls[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let l=t.slice(r,s);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Ht.exports={parse:Ds}});var er=x((_i,Qt)=>{"use strict";var Rs=require("events"),ge=require("http"),{Duplex:mi}=require("stream"),{createHash:Is}=require("crypto"),Yt=Ie(),F=J(),Fs=zt(),Us=_e(),{CLOSE_TIMEOUT:As,GUID:Ms,kWebSocket:Ws}=k(),qs=/^[+/0-9A-Za-z]{22}==$/,Kt=0,Xt=1,Jt=2,We=class extends Rs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:As,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Us,...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((s,i)=>{let n=ge.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=Vs(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Kt}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===Jt){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!==Xt)if(this._state=Xt,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,s,i){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"){U(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){U(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!qs.test(n)){U(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){U(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=Fs.parse(c)}catch{U(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],f={};if(this.options.perMessageDeflate&&d!==void 0){let u=new F(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let _=Yt.parse(d);_[F.extensionName]&&(u.accept(_[F.extensionName]),f[F.extensionName]=u)}catch{U(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,y)=>{if(!_)return se(r,m||401,h,y);this.completeUpgrade(f,n,a,e,r,s,i)});return}if(!this.options.verifyClient(u))return se(r,401)}this.completeUpgrade(f,n,a,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Ws])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Kt)return se(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Is("sha1").update(r+Ms).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(s.size){let f=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;f&&(a.push(`Sec-WebSocket-Protocol: ${f}`),d._protocol=f)}if(e[F.extensionName]){let f=e[F.extensionName].params,u=Yt.format({[F.extensionName]:[f]});a.push(`Sec-WebSocket-Extensions: ${u}`),d._extensions=e}this.emit("headers",a,i),n.write(a.concat(`\r
2
+ "use strict";var yr=Object.create;var Ke=Object.defineProperty;var xr=Object.getOwnPropertyDescriptor;var vr=Object.getOwnPropertyNames;var Sr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty;var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Er=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vr(e))!br.call(t,i)&&i!==r&&Ke(t,i,{get:()=>e[i],enumerable:!(s=xr(e,i))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?yr(Sr(t)):{},Er(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var k=x((Qs,Qe)=>{"use strict";var Ze=["nodebuffer","arraybuffer","fragments"],Je=typeof Blob<"u";Je&&Ze.push("blob");Qe.exports={BINARY_TYPES:Ze,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Je,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Z=x((ei,oe)=>{"use strict";var{EMPTY_BUFFER:wr}=k(),Se=Buffer[Symbol.species];function Tr(t,e){if(t.length===0)return wr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),s=0;for(let i=0;i<t.length;i++){let n=t[i];r.set(n,s),s+=n.length}return s<e?new Se(r.buffer,r.byteOffset,s):r}function et(t,e,r,s,i){for(let n=0;n<i;n++)r[s+n]=t[n]^e[n&3]}function tt(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function kr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function be(t){if(be.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new Se(t):ArrayBuffer.isView(t)?e=new Se(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),be.readOnly=!1),e}oe.exports={concat:Tr,mask:et,toArrayBuffer:kr,toBuffer:be,unmask:tt};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");oe.exports.mask=function(e,r,s,i,n){n<48?et(e,r,s,i,n):t.mask(e,r,s,i,n)},oe.exports.unmask=function(e,r){e.length<32?tt(e,r):t.unmask(e,r)}}catch{}});var it=x((ti,st)=>{"use strict";var rt=Symbol("kDone"),Ee=Symbol("kRun"),we=class{constructor(e){this[rt]=()=>{this.pending--,this[Ee]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[Ee]()}[Ee](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[rt])}}};st.exports=we});var Q=x((ri,lt)=>{"use strict";var J=require("zlib"),nt=Z(),Nr=it(),{kStatusCode:ot}=k(),Or=Buffer[Symbol.species],Cr=Buffer.from([0,0,255,255]),le=Symbol("permessage-deflate"),N=Symbol("total-length"),W=Symbol("callback"),P=Symbol("buffers"),q=Symbol("error"),ae,Te=class{constructor(e,r,s){if(this._maxPayload=s|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,!ae){let i=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;ae=new Nr(i)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[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,s=e.find(i=>!(r.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>i.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!s)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(s.server_no_context_takeover=!0),r.clientNoContextTakeover&&(s.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(s.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?s.client_max_window_bits=r.clientMaxWindowBits:(s.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete s.client_max_window_bits,s}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(s=>{let i=r[s];if(i.length>1)throw new Error(`Parameter "${s}" must have only a single value`);if(i=i[0],s==="client_max_window_bits"){if(i!==!0){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else if(s==="server_max_window_bits"){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${s}": ${i}`);i=n}else if(s==="client_no_context_takeover"||s==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${s}": ${i}`)}else throw new Error(`Unknown parameter "${s}"`);r[s]=i})}),e}decompress(e,r,s){ae.add(i=>{this._decompress(e,r,(n,o)=>{i(),s(n,o)})})}compress(e,r,s){ae.add(i=>{this._compress(e,r,(n,o)=>{i(),s(n,o)})})}_decompress(e,r,s){let i=this._isServer?"client":"server";if(!this._inflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?J.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=J.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[le]=this,this._inflate[N]=0,this._inflate[P]=[],this._inflate.on("error",Br),this._inflate.on("data",at)}this._inflate[W]=s,this._inflate.write(e),r&&this._inflate.write(Cr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,s(n);return}let o=nt.concat(this._inflate[P],this._inflate[N]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[N]=0,this._inflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),s(null,o)})}_compress(e,r,s){let i=this._isServer?"server":"client";if(!this._deflate){let n=`${i}_max_window_bits`,o=typeof this.params[n]!="number"?J.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=J.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[N]=0,this._deflate[P]=[],this._deflate.on("data",Pr)}this._deflate[W]=s,this._deflate.write(e),this._deflate.flush(J.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=nt.concat(this._deflate[P],this._deflate[N]);r&&(n=new Or(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[N]=0,this._deflate[P]=[],r&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),s(null,n)})}};lt.exports=Te;function Pr(t){this[P].push(t),this[N]+=t.length}function at(t){if(this[N]+=t.length,this[le]._maxPayload<1||this[N]<=this[le]._maxPayload){this[P].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][ot]=1009,this.removeListener("data",at),this.reset()}function Br(t){if(this[le]._inflate=null,this[q]){this[W](this[q]);return}t[ot]=1007,this[W](t)}});var V=x((si,ce)=>{"use strict";var{isUtf8:ct}=require("buffer"),{hasBlob:Lr}=k(),Rr=[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 Dr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function ke(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 Ir(t){return Lr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}ce.exports={isBlob:Ir,isValidStatusCode:Dr,isValidUTF8:ke,tokenChars:Rr};if(ct)ce.exports.isValidUTF8=function(t){return t.length<24?ke(t):ct(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");ce.exports.isValidUTF8=function(e){return e.length<32?ke(e):t(e)}}catch{}});var Be=x((ii,_t)=>{"use strict";var{Writable:Fr}=require("stream"),dt=Q(),{BINARY_TYPES:Ur,EMPTY_BUFFER:ft,kStatusCode:Ar,kWebSocket:Mr}=k(),{concat:Ne,toArrayBuffer:Wr,unmask:qr}=Z(),{isValidStatusCode:Vr,isValidUTF8:ht}=V(),de=Buffer[Symbol.species],S=0,ut=1,pt=2,mt=3,Oe=4,Ce=5,fe=6,Pe=class extends Fr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Ur[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Mr]=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,s){if(this._opcode===8&&this._state==S)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let s=this._buffers[0];return this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e),new de(s.buffer,s.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let s=this._buffers[0],i=r.length-e;e>=s.length?r.set(this._buffers.shift(),i):(r.set(new Uint8Array(s.buffer,s.byteOffset,e),i),this._buffers[0]=new de(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case S:this.getInfo(e);break;case ut:this.getPayloadLength16(e);break;case pt:this.getPayloadLength64(e);break;case mt:this.getMask();break;case Oe:this.getData(e);break;case Ce: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 i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(i);return}let s=(r[0]&64)===64;if(s&&!this._extensions[dt.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}this._compressed=s}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(i);return}if(s){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(i);return}this._payloadLength===126?this._state=ut:this._payloadLength===127?this._state=pt: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),s=r.readUInt32BE(0);if(s>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(i);return}this._payloadLength=s*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=mt:this._state=Oe}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Oe}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&&qr(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Ce,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[dt.extensionName].decompress(e,this._fin,(i,n)=>{if(i)return r(i);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,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Ne(s,r):this._binaryType==="arraybuffer"?i=Wr(Ne(s,r)):this._binaryType==="blob"?i=new Blob(s):i=s,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",i,!0),this._state=S,this.startLoop(e)}))}else{let i=Ne(s,r);if(!this._skipUTF8Validation&&!ht(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Ce||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",i,!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 s=e.readUInt16BE(0);if(!Vr(s)){let n=this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let i=new de(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!ht(i)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",s,i),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,s,i,n){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Ar]=i,o}};_t.exports=Pe});var De=x((oi,xt)=>{"use strict";var{Duplex:ni}=require("stream"),{randomFillSync:$r}=require("crypto"),gt=Q(),{EMPTY_BUFFER:Gr,kWebSocket:jr,NOOP:Hr}=k(),{isBlob:$,isValidStatusCode:zr}=V(),{mask:yt,toBuffer:R}=Z(),b=Symbol("kByteLength"),Yr=Buffer.alloc(4),he=8*1024,D,G=he,E=0,Kr=1,Xr=2,Le=class t{constructor(e,r,s){this._extensions=r||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=Hr,this[jr]=void 0}static frame(e,r){let s,i=!1,n=2,o=!1;r.mask&&(s=r.maskBuffer||Yr,r.generateMask?r.generateMask(s):(G===he&&(D===void 0&&(D=Buffer.alloc(he)),$r(D,0,he),G=0),s[0]=D[G++],s[1]=D[G++],s[2]=D[G++],s[3]=D[G++]),o=(s[0]|s[1]|s[2]|s[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,i=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(i?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]=s[0],a[n-3]=s[1],a[n-2]=s[2],a[n-1]=s[3],o?[a,e]:i?(yt(e,s,a,n,l),[a]):(yt(e,s,e,0,l),[a,e])):[a,e]}close(e,r,s,i){let n;if(e===void 0)n=Gr;else{if(typeof e!="number"||!zr(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:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,i]):this.sendFrame(t.frame(n,o),i)}ping(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=R(e),i=e.length,n=R.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}pong(e,r,s){let i,n;if(typeof e=="string"?(i=Buffer.byteLength(e),n=!1):$(e)?(i=e.size,n=!1):(e=R(e),i=e.length,n=R.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:i,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):this._state!==E?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(t.frame(e,o),s)}send(e,r,s){let i=this._extensions[gt.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):$(e)?(l=e.size,c=!1):(e=R(e),l=e.length,c=R.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=i._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};$(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,s]):this.getBlobData(e,this._compress,a,s):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,s]):this.dispatch(e,this._compress,a,s)}getBlobData(e,r,s,i){this._bufferedBytes+=s[b],this._state=Xr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Re,this,l,i);return}this._bufferedBytes-=s[b];let o=R(n);r?this.dispatch(o,r,s,i):(this._state=E,this.sendFrame(t.frame(o,s),i),this.dequeue())}).catch(n=>{process.nextTick(Zr,this,n,i)})}dispatch(e,r,s,i){if(!r){this.sendFrame(t.frame(e,s),i);return}let n=this._extensions[gt.extensionName];this._bufferedBytes+=s[b],this._state=Kr,n.compress(e,s.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Re(this,c,i);return}this._bufferedBytes-=s[b],this._state=E,s.readOnly=!1,this.sendFrame(t.frame(l,s),i),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 Re(t,e,r){typeof r=="function"&&r(e);for(let s=0;s<t._queue.length;s++){let i=t._queue[s],n=i[i.length-1];typeof n=="function"&&n(e)}}function Zr(t,e,r){Re(t,e,r),t.onerror(e)}});var Ot=x((ai,Nt)=>{"use strict";var{kForOnEventAttribute:ee,kListener:Ie}=k(),vt=Symbol("kCode"),St=Symbol("kData"),bt=Symbol("kError"),Et=Symbol("kMessage"),wt=Symbol("kReason"),j=Symbol("kTarget"),Tt=Symbol("kType"),kt=Symbol("kWasClean"),O=class{constructor(e){this[j]=null,this[Tt]=e}get target(){return this[j]}get type(){return this[Tt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var I=class extends O{constructor(e,r={}){super(e),this[vt]=r.code===void 0?0:r.code,this[wt]=r.reason===void 0?"":r.reason,this[kt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[vt]}get reason(){return this[wt]}get wasClean(){return this[kt]}};Object.defineProperty(I.prototype,"code",{enumerable:!0});Object.defineProperty(I.prototype,"reason",{enumerable:!0});Object.defineProperty(I.prototype,"wasClean",{enumerable:!0});var H=class extends O{constructor(e,r={}){super(e),this[bt]=r.error===void 0?null:r.error,this[Et]=r.message===void 0?"":r.message}get error(){return this[bt]}get message(){return this[Et]}};Object.defineProperty(H.prototype,"error",{enumerable:!0});Object.defineProperty(H.prototype,"message",{enumerable:!0});var te=class extends O{constructor(e,r={}){super(e),this[St]=r.data===void 0?null:r.data}get data(){return this[St]}};Object.defineProperty(te.prototype,"data",{enumerable:!0});var Jr={addEventListener(t,e,r={}){for(let i of this.listeners(t))if(!r[ee]&&i[Ie]===e&&!i[ee])return;let s;if(t==="message")s=function(n,o){let l=new te("message",{data:o?n:n.toString()});l[j]=this,ue(e,this,l)};else if(t==="close")s=function(n,o){let l=new I("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[j]=this,ue(e,this,l)};else if(t==="error")s=function(n){let o=new H("error",{error:n,message:n.message});o[j]=this,ue(e,this,o)};else if(t==="open")s=function(){let n=new O("open");n[j]=this,ue(e,this,n)};else return;s[ee]=!!r[ee],s[Ie]=e,r.once?this.once(t,s):this.on(t,s)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ie]===e&&!r[ee]){this.removeListener(t,r);break}}};Nt.exports={CloseEvent:I,ErrorEvent:H,Event:O,EventTarget:Jr,MessageEvent:te};function ue(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Fe=x((li,Ct)=>{"use strict";var{tokenChars:re}=V();function T(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Qr(t){let e=Object.create(null),r=Object.create(null),s=!1,i=!1,n=!1,o,l,c=-1,a=-1,d=-1,f=0;for(;f<t.length;f++)if(a=t.charCodeAt(f),o===void 0)if(d===-1&&re[a]===1)c===-1&&(c=f);else if(f!==0&&(a===32||a===9))d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let _=t.slice(c,d);a===44?(T(e,_,r),r=Object.create(null)):o=_,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);else if(l===void 0)if(d===-1&&re[a]===1)c===-1&&(c=f);else if(a===32||a===9)d===-1&&c!==-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f),T(r,t.slice(c,d),!0),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),c=d=-1}else if(a===61&&c!==-1&&d===-1)l=t.slice(c,f),c=d=-1;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(i){if(re[a]!==1)throw new SyntaxError(`Unexpected character at index ${f}`);c===-1?c=f:s||(s=!0),i=!1}else if(n)if(re[a]===1)c===-1&&(c=f);else if(a===34&&c!==-1)n=!1,d=f;else if(a===92)i=!0;else throw new SyntaxError(`Unexpected character at index ${f}`);else if(a===34&&t.charCodeAt(f-1)===61)n=!0;else if(d===-1&&re[a]===1)c===-1&&(c=f);else if(c!==-1&&(a===32||a===9))d===-1&&(d=f);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${f}`);d===-1&&(d=f);let _=t.slice(c,d);s&&(_=_.replace(/\\/g,""),s=!1),T(r,l,_),a===44&&(T(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=d=-1}else throw new SyntaxError(`Unexpected character at index ${f}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=f);let u=t.slice(c,d);return o===void 0?T(e,u,r):(l===void 0?T(r,u,!0):s?T(r,l,u.replace(/\\/g,"")):T(r,l,u),T(e,o,r)),e}function es(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(s=>[e].concat(Object.keys(s).map(i=>{let n=s[i];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ct.exports={format:es,parse:Qr}});var ge=x((fi,qt)=>{"use strict";var ts=require("events"),rs=require("https"),ss=require("http"),Lt=require("net"),is=require("tls"),{randomBytes:ns,createHash:os}=require("crypto"),{Duplex:ci,Readable:di}=require("stream"),{URL:Ue}=require("url"),B=Q(),as=Be(),ls=De(),{isBlob:cs}=V(),{BINARY_TYPES:Pt,CLOSE_TIMEOUT:ds,EMPTY_BUFFER:pe,GUID:fs,kForOnEventAttribute:Ae,kListener:hs,kStatusCode:us,kWebSocket:g,NOOP:Rt}=k(),{EventTarget:{addEventListener:ps,removeEventListener:ms}}=Ot(),{format:_s,parse:gs}=Fe(),{toBuffer:ys}=Z(),Dt=Symbol("kAborted"),Me=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],xs=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends ts{constructor(e,r,s){super(),this._binaryType=Pt[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=pe,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?(s=r,r=[]):r=[r]),It(this,e,r,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Pt.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get 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,s){let i=new as({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),n=new ls(e,this._extensions,s.generateMask);this._receiver=i,this._sender=n,this._socket=e,i[g]=this,n[g]=this,e[g]=this,i.on("conclude",bs),i.on("drain",Es),i.on("error",ws),i.on("message",Ts),i.on("ping",ks),i.on("pong",Ns),n.onerror=Os,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",At),e.on("data",_e),e.on("end",Mt),e.on("error",Wt),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[B.extensionName]&&this._extensions[B.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,s=>{s||(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,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){We(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||pe,r,s)}pong(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(s=e,e=r=void 0):typeof r=="function"&&(s=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){We(this,e,s);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||pe,r,s)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,s){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(s=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){We(this,e,s);return}let i={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[B.extensionName]||(i.compress=!1),this._sender.send(e||pe,i,s)}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[Ae])return e[hs];return null},set(e){for(let r of this.listeners(t))if(r[Ae]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[Ae]:!0})}})});p.prototype.addEventListener=ps;p.prototype.removeEventListener=ms;qt.exports=p;function It(t,e,r,s){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ds,protocolVersion:Me[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=i.autoPong,t._closeTimeout=i.closeTimeout,!Me.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${Me.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;me(t,h);return}let a=o?443:80,d=ns(16).toString("base64"),f=o?rs.request:ss.request,u=new Set,_;if(i.createConnection=i.createConnection||(o?Ss:vs),i.defaultPort=i.defaultPort||a,i.port=n.port||a,i.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},i.path=n.pathname+n.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(_=new B(i.perMessageDeflate!==!0?i.perMessageDeflate:{},!1,i.maxPayload),i.headers["Sec-WebSocket-Extensions"]=_s({[B.extensionName]:_.offer()})),r.length){for(let h of r){if(typeof h!="string"||!xs.test(h)||u.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");u.add(h)}i.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(n.username||n.password)&&(i.auth=`${n.username}:${n.password}`),l){let h=i.path.split(":");i.socketPath=h[0],i.path=h[1]}let m;if(i.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?i.socketPath:n.host;let h=s&&s.headers;if(s={...s,headers:{}},h)for(let[y,A]of Object.entries(h))s.headers[y.toLowerCase()]=A}else if(t.listenerCount("redirect")===0){let h=l?t._originalIpc?i.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!h||t._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,h||delete i.headers.host,i.auth=void 0)}i.auth&&!s.headers.authorization&&(s.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),m=t._req=f(i),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=f(i);i.timeout&&m.on("timeout",()=>{v(t,m,"Opening handshake has timed out")}),m.on("error",h=>{m===null||m[Dt]||(m=t._req=null,me(t,h))}),m.on("response",h=>{let y=h.headers.location,A=h.statusCode;if(y&&i.followRedirects&&A>=300&&A<400){if(++t._redirects>i.maxRedirects){v(t,m,"Maximum redirects exceeded");return}m.abort();let K;try{K=new Ue(y,e)}catch{let M=new SyntaxError(`Invalid URL: ${y}`);me(t,M);return}It(t,K,r,s)}else t.emit("unexpected-response",m,h)||v(t,m,`Unexpected server response: ${h.statusCode}`)}),m.on("upgrade",(h,y,A)=>{if(t.emit("upgrade",h),t.readyState!==p.CONNECTING)return;m=t._req=null;let K=h.headers.upgrade;if(K===void 0||K.toLowerCase()!=="websocket"){v(t,y,"Invalid Upgrade header");return}let He=os("sha1").update(d+fs).digest("base64");if(h.headers["sec-websocket-accept"]!==He){v(t,y,"Invalid Sec-WebSocket-Accept header");return}let M=h.headers["sec-websocket-protocol"],X;if(M!==void 0?u.size?u.has(M)||(X="Server sent an invalid subprotocol"):X="Server sent a subprotocol but none was requested":u.size&&(X="Server sent no subprotocol"),X){v(t,y,X);return}M&&(t._protocol=M);let ze=h.headers["sec-websocket-extensions"];if(ze!==void 0){if(!_){v(t,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=gs(ze)}catch{v(t,y,"Invalid Sec-WebSocket-Extensions header");return}let Ye=Object.keys(xe);if(Ye.length!==1||Ye[0]!==B.extensionName){v(t,y,"Server indicated an extension that was not requested");return}try{_.accept(xe[B.extensionName])}catch{v(t,y,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[B.extensionName]=_}t.setSocket(y,A,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(m,t):m.end()}function me(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function vs(t){return t.path=t.socketPath,Lt.connect(t)}function Ss(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Lt.isIP(t.host)?"":t.host),is.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let s=new Error(r);Error.captureStackTrace(s,v),e.setHeader?(e[Dt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(me,t,s)):(e.destroy(s),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function We(t,e,r){if(e){let s=cs(e)?e.size:ys(e).length;t._socket?t._sender._bufferedBytes+=s:t._bufferedAmount+=s}if(r){let s=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,s)}}function bs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",_e),process.nextTick(Ft,r._socket),t===1005?r.close():r.close(t,e))}function Es(){let t=this[g];t.isPaused||t._socket.resume()}function ws(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",_e),process.nextTick(Ft,e._socket),e.close(t[us])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Bt(){this[g].emitClose()}function Ts(t,e){this[g].emit("message",t,e)}function ks(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Rt),e.emit("ping",t)}function Ns(t){this[g].emit("pong",t)}function Ft(t){t.resume()}function Os(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 At(){let t=this[g];if(this.removeListener("close",At),this.removeListener("data",_e),this.removeListener("end",Mt),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 _e(t){this[g]._receiver.write(t)||this.pause()}function Mt(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function Wt(){let t=this[g];this.removeListener("error",Wt),this.on("error",Rt),t&&(t._readyState=p.CLOSING,this.destroy())}});var jt=x((ui,Gt)=>{"use strict";var hi=ge(),{Duplex:Cs}=require("stream");function Vt(t){t.emit("close")}function Ps(){!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 Bs(t,e){let r=!0,s=new Cs({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&s._readableState.objectMode?n.toString():n;s.push(l)||t.pause()}),t.once("error",function(n){s.destroyed||(r=!1,s.destroy(n))}),t.once("close",function(){s.destroyed||s.push(null)}),s._destroy=function(i,n){if(t.readyState===t.CLOSED){n(i),process.nextTick(Vt,s);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(i),process.nextTick(Vt,s)}),r&&t.terminate()},s._final=function(i){if(t.readyState===t.CONNECTING){t.once("open",function(){s._final(i)});return}t._socket!==null&&(t._socket._writableState.finished?(i(),s._readableState.endEmitted&&s.destroy()):(t._socket.once("finish",function(){i()}),t.close()))},s._read=function(){t.isPaused&&t.resume()},s._write=function(i,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){s._write(i,n,o)});return}t.send(i,o)},s.on("end",Ps),s.on("error",$t),s}Gt.exports=Bs});var zt=x((pi,Ht)=>{"use strict";var{tokenChars:Ls}=V();function Rs(t){let e=new Set,r=-1,s=-1,i=0;for(i;i<t.length;i++){let o=t.charCodeAt(i);if(s===-1&&Ls[o]===1)r===-1&&(r=i);else if(i!==0&&(o===32||o===9))s===-1&&r!==-1&&(s=i);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${i}`);s===-1&&(s=i);let l=t.slice(r,s);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=s=-1}else throw new SyntaxError(`Unexpected character at index ${i}`)}if(r===-1||s!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,i);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Ht.exports={parse:Rs}});var er=x((_i,Qt)=>{"use strict";var Ds=require("events"),ye=require("http"),{Duplex:mi}=require("stream"),{createHash:Is}=require("crypto"),Yt=Fe(),F=Q(),Fs=zt(),Us=ge(),{CLOSE_TIMEOUT:As,GUID:Ms,kWebSocket:Ws}=k(),qs=/^[+/0-9A-Za-z]{22}==$/,Kt=0,Xt=1,Jt=2,qe=class extends Ds{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:As,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Us,...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=ye.createServer((s,i)=>{let n=ye.STATUS_CODES[426];i.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),i.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let s=this.emit.bind(this,"connection");this._removeListeners=Vs(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,n,o)=>{this.handleUpgrade(i,n,o,s)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Kt}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===Jt){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(se,this);return}if(e&&this.once("close",e),this._state!==Xt)if(this._state=Xt,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(se,this):process.nextTick(se,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{se(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,s,i){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"){U(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){U(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!qs.test(n)){U(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){U(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){ie(r,400);return}let c=e.headers["sec-websocket-protocol"],a=new Set;if(c!==void 0)try{a=Fs.parse(c)}catch{U(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],f={};if(this.options.perMessageDeflate&&d!==void 0){let u=new F(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let _=Yt.parse(d);_[F.extensionName]&&(u.accept(_[F.extensionName]),f[F.extensionName]=u)}catch{U(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,y)=>{if(!_)return ie(r,m||401,h,y);this.completeUpgrade(f,n,a,e,r,s,i)});return}if(!this.options.verifyClient(u))return ie(r,401)}this.completeUpgrade(f,n,a,e,r,s,i)}completeUpgrade(e,r,s,i,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Ws])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Kt)return ie(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Is("sha1").update(r+Ms).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(s.size){let f=this.options.handleProtocols?this.options.handleProtocols(s,i):s.values().next().value;f&&(a.push(`Sec-WebSocket-Protocol: ${f}`),d._protocol=f)}if(e[F.extensionName]){let f=e[F.extensionName].params,u=Yt.format({[F.extensionName]:[f]});a.push(`Sec-WebSocket-Extensions: ${u}`),d._extensions=e}this.emit("headers",a,i),n.write(a.concat(`\r
3
3
  `).join(`\r
4
- `)),n.removeListener("error",Zt),d.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(re,this)})),l(d,i)}};Qt.exports=We;function Vs(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function re(t){t._state=Jt,t.emit("close")}function Zt(){this.destroy()}function se(t,e,r,s){r=r||ge.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${ge.STATUS_CODES[e]}\r
4
+ `)),n.removeListener("error",Zt),d.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(se,this)})),l(d,i)}};Qt.exports=qe;function Vs(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let s of Object.keys(e))t.removeListener(s,e[s])}}function se(t){t._state=Jt,t.emit("close")}function Zt(){this.destroy()}function ie(t,e,r,s){r=r||ye.STATUS_CODES[e],s={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...s},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${ye.STATUS_CODES[e]}\r
5
5
  `+Object.keys(s).map(i=>`${i}: ${s[i]}`).join(`\r
6
6
  `)+`\r
7
7
  \r
8
- `+r)}function U(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,U),t.emit("wsClientError",o,r,e)}else se(r,s,i,n)}});var Ve=w(require("fs"),1),nr=w(require("http"),1),$e=w(require("path"),1);function Xe(t){return`
8
+ `+r)}function U(t,e,r,s,i,n){if(t.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,U),t.emit("wsClientError",o,r,e)}else ie(r,s,i,n)}});var $e=w(require("fs"),1),nr=w(require("http"),1),z=w(require("path"),1);function Xe(t){return`
9
9
  <!DOCTYPE html>
10
10
  <html lang="pt-BR">
11
11
  <head>
@@ -91,7 +91,7 @@
91
91
  observer.observe(document.body, { childList: true, subtree: true });
92
92
  </script>
93
93
  </body>
94
- </html>`}var $s=w(jt(),1),Gs=w(Pe(),1),js=w(De(),1),Hs=w(_e(),1),qe=w(er(),1);function tr(t){return t.protocolVersion===1}function rr(t){if(!t||typeof t!="object")return!1;let e=t;return e.type==="PING"&&tr(e)}function sr(t){if(!t||typeof t!="object")return!1;let e=t;if(e.type!=="HELLO"||!e.payload||!tr(e))return!1;let r=e.payload;return(r.role==="client"||r.role==="server")&&r.protocolVersion===1}function ir(t){let e=new qe.default({server:t});return e.on("connection",r=>{r.on("message",s=>{let i=s.toString();try{let n=JSON.parse(i);if(rr(n)||sr(n))return}catch{}e.clients.forEach(n=>{n!==r&&n.readyState===1&&n.send(i)})})}),e}function or(t=3e3){let e=nr.default.createServer((r,s)=>{if(r.url==="/"||r.url==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end(Xe(t));return}if(r.url?.startsWith("/dist/")){let i=r.url.replace("/dist/",""),n=$e.default.resolve(__dirname,"..","..","dist",i);try{if(Ve.default.existsSync(n)){let o=Ve.default.readFileSync(n),l=$e.default.extname(n),c={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":c[l]||"text/plain"}),s.end(o)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")});ir(e),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}var L=w(require("fs"),1),ie=w(require("path"),1);function ar(t){return`"use client";
94
+ </html>`}var $s=w(jt(),1),Gs=w(Be(),1),js=w(De(),1),Hs=w(ge(),1),Ve=w(er(),1);function tr(t){return t.protocolVersion===1}function rr(t){if(!t||typeof t!="object")return!1;let e=t;return e.type==="PING"&&tr(e)}function sr(t){if(!t||typeof t!="object")return!1;let e=t;if(e.type!=="HELLO"||!e.payload||!tr(e))return!1;let r=e.payload;return(r.role==="client"||r.role==="server")&&r.protocolVersion===1}function ir(t){let e=new Ve.default({server:t});return e.on("connection",r=>{r.on("message",s=>{let i=s.toString();try{let n=JSON.parse(i);if(rr(n)||sr(n))return}catch{}e.clients.forEach(n=>{n!==r&&n.readyState===1&&n.send(i)})})}),e}function or(t=3e3){let e=nr.default.createServer((r,s)=>{let i=r.url?.split("?")[0]??"";if(i==="/"||i==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end(Xe(t));return}if(i.startsWith("/dist/")){let n=z.default.resolve(__dirname,"..","..","dist"),o=i.slice(6),l;try{l=decodeURIComponent(o)}catch{s.writeHead(400),s.end("Bad Request");return}let c=z.default.resolve(n,l),a=z.default.relative(n,c);if(a.startsWith("..")||z.default.isAbsolute(a)){s.writeHead(403),s.end("Forbidden");return}try{if($e.default.existsSync(c)){let d=$e.default.readFileSync(c),f=z.default.extname(c),u={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":u[f]||"text/plain"}),s.end(d)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")});ir(e),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}var L=w(require("fs"),1),ne=w(require("path"),1);function ar(t){return`"use client";
95
95
 
96
96
  import { Input } from "${t}/input";
97
97
  import { useBitField } from "@lehnihon/bit-form/react";
@@ -486,7 +486,7 @@ export function BitFormRadioGroup({
486
486
  </div>
487
487
  );
488
488
  }
489
- `}var Ge={input:ar,textarea:lr,select:cr,checkbox:dr,switch:fr,"radio-group":hr},je=Object.keys(Ge);var ur={name:"shadcn",framework:"react",components:je,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),s=Ge[r];if(!s)throw new Error(`Unknown shadcn component: ${t}. Available: ${je.join(", ")}`);let i=s(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:i}}};var zs={shadcn:ur};function pr(t){return zs[t.toLowerCase()]}var Ys="@/components/ui";function Ks(t){let e=t[0]??"",r=t.slice(1),s=".",i=Ys,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];a==="--path"&&r[c+1]?s=r[++c]:a==="--ui-path"&&r[c+1]?i=r[++c]:a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")||l.push(a)}return{adapter:e,components:l,flags:{path:s,uiPath:i,overwrite:n,yes:o}}}function Xs(t){let e=ie.join(t,"components.json");try{return L.accessSync(e),!0}catch{return!1}}function mr(t){let{adapter:e,components:r,flags:s}=Ks(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let i=pr(e);if(!i)throw new Error(`bit-form add: unknown adapter "${e}". Available: shadcn`);let n=r.length>0?r:i.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,s.path);i.name==="shadcn"&&!Xs(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{L.mkdirSync(l,{recursive:!0})}catch(a){let d=a instanceof Error?a.message:String(a);throw new Error(`bit-form add: could not create output directory: ${d}`,{cause:a})}let c={cwd:o,path:l,uiPath:s.uiPath,overwrite:s.overwrite,yes:s.yes};for(let a of n){let{filename:d,contents:f}=i.renderComponent(a,c),u=ie.join(l,d);if(!s.overwrite&&L.existsSync(u)){console.log(`Skip ${d} (exists; use --overwrite to replace)`);continue}L.writeFileSync(u,f,"utf-8"),console.log(`Created ${d}`)}}var z=process.argv.slice(2),_r=z[0];if(_r==="devtools"){let t=z.indexOf("-p")!==-1?z.indexOf("-p"):z.indexOf("--port"),e=t!==-1?Number(z[t+1]):3e3;or(e)}else if(_r==="add")try{mr(z.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
489
+ `}var Ge={input:ar,textarea:lr,select:cr,checkbox:dr,switch:fr,"radio-group":hr},je=Object.keys(Ge);var ur={name:"shadcn",framework:"react",components:je,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),s=Ge[r];if(!s)throw new Error(`Unknown shadcn component: ${t}. Available: ${je.join(", ")}`);let i=s(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:i}}};var zs={shadcn:ur};function pr(t){return zs[t.toLowerCase()]}var Ys="@/components/ui";function Ks(t){let e=t[0]??"",r=t.slice(1),s=".",i=Ys,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];a==="--path"&&r[c+1]?s=r[++c]:a==="--ui-path"&&r[c+1]?i=r[++c]:a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")||l.push(a)}return{adapter:e,components:l,flags:{path:s,uiPath:i,overwrite:n,yes:o}}}function Xs(t){let e=ne.join(t,"components.json");try{return L.accessSync(e),!0}catch{return!1}}function mr(t){let{adapter:e,components:r,flags:s}=Ks(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let i=pr(e);if(!i)throw new Error(`bit-form add: unknown adapter "${e}". Available: shadcn`);let n=r.length>0?r:i.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=ne.resolve(o,s.path);i.name==="shadcn"&&!Xs(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{L.mkdirSync(l,{recursive:!0})}catch(a){let d=a instanceof Error?a.message:String(a);throw new Error(`bit-form add: could not create output directory: ${d}`,{cause:a})}let c={cwd:o,path:l,uiPath:s.uiPath,overwrite:s.overwrite,yes:s.yes};for(let a of n){let{filename:d,contents:f}=i.renderComponent(a,c),u=ne.join(l,d);if(!s.overwrite&&L.existsSync(u)){console.log(`Skip ${d} (exists; use --overwrite to replace)`);continue}L.writeFileSync(u,f,"utf-8"),console.log(`Created ${d}`)}}var Y=process.argv.slice(2),_r=Y[0];if(_r==="devtools"){let t=Y.indexOf("-p")!==-1?Y.indexOf("-p"):Y.indexOf("--port"),e=t!==-1?Number(Y[t+1]):3e3;or(e)}else if(_r==="add")try{mr(Y.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
490
490
  \u{1F6E0} Bit-Form CLI
491
491
 
492
492
  Uso:
@@ -1,53 +1,8 @@
1
- import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.cjs';
1
+ import { B as BitMask, b as BitMaskName } from './types-CUXh7PqD.cjs';
2
+ import { c as BitFormGlobal } from './bus-DzTqgkZ4.cjs';
3
+ import { b as BitErrors, g as BitState } from './state-types-8bUndWfg.cjs';
4
+ import { b as BitIdFactory, D as DevToolsOptions, B as BitScheduler } from './runtime-types-D1SRZr-n.cjs';
2
5
 
3
- interface BitBusStorePort<T extends object = object> {
4
- getState: () => Readonly<BitState<T>>;
5
- getHistoryMetadata: () => {
6
- canUndo: boolean;
7
- canRedo: boolean;
8
- historySize: number;
9
- historyIndex: number;
10
- };
11
- undo: () => void;
12
- redo: () => void;
13
- reset: () => void;
14
- }
15
- type BitBusListener<T extends object = object> = (storeId: string, newState: BitState<T>) => void;
16
- interface BitFormGlobal {
17
- stores: Record<string, BitBusStorePort<object>>;
18
- listeners: Set<BitBusListener>;
19
- dispatch: (storeId: string, state: BitState<object>) => void;
20
- subscribe: (fn: BitBusListener) => () => void;
21
- }
22
- /** Alias for {@link BitFormGlobal}. Prefer this name in user-facing APIs. */
23
- type BitBus = BitFormGlobal;
24
-
25
- /**
26
- * Pluggable scheduler used for validation debounce.
27
- * Replace the default (setTimeout-based) with a framework-aware scheduler
28
- * to integrate with React's concurrent mode, Vue's nextTick, etc.
29
- *
30
- * @example
31
- * // React concurrent mode integration:
32
- * const scheduler: BitScheduler = {
33
- * schedule: (fn, delay) => {
34
- * const id = setTimeout(() => startTransition(fn), delay);
35
- * return () => clearTimeout(id);
36
- * },
37
- * };
38
- */
39
- interface BitScheduler {
40
- /**
41
- * Schedule `fn` to run after `delayMs` milliseconds.
42
- * Must return a cleanup function that cancels the scheduled call.
43
- */
44
- schedule(fn: () => void, delayMs: number): () => void;
45
- }
46
- type DeepPartial<T> = T extends object ? {
47
- [P in keyof T]?: DeepPartial<T[P]>;
48
- } : T;
49
- type BitErrors<T extends object> = Partial<Record<BitPath<T>, string | undefined>>;
50
- type BitTouched<T extends object> = Partial<Record<BitPath<T>, boolean | undefined>>;
51
6
  type BitBivariantFn<TArgs extends unknown[], TResult> = {
52
7
  bivarianceHack(...args: TArgs): TResult;
53
8
  }["bivarianceHack"];
@@ -60,37 +15,6 @@ type BitTransformFn<T> = BitBivariantFn<[
60
15
  value: unknown,
61
16
  allValues: T
62
17
  ], unknown>;
63
- interface BitPersistMetadata {
64
- isSaving: boolean;
65
- isRestoring: boolean;
66
- error: Error | null;
67
- }
68
- interface BitIdFactoryContext {
69
- scope: "store" | "array";
70
- path?: string;
71
- index?: number;
72
- storeName?: string;
73
- }
74
- type BitIdFactory = (context: BitIdFactoryContext) => string;
75
- interface BitState<T extends object> {
76
- values: T;
77
- errors: BitErrors<T>;
78
- touched: BitTouched<T>;
79
- isValidating: Record<string, boolean>;
80
- persist: BitPersistMetadata;
81
- isValid: boolean;
82
- isSubmitting: boolean;
83
- isDirty: boolean;
84
- }
85
- interface BitFieldState<_T extends object = Record<string, unknown>, TValue = unknown> {
86
- value: TValue;
87
- error: string | undefined;
88
- touched: boolean;
89
- isHidden: boolean;
90
- isRequired: boolean;
91
- isDirty: boolean;
92
- isValidating: boolean;
93
- }
94
18
  type ValidatorFn<T extends object> = (values: T, options?: {
95
19
  scopeFields?: string[];
96
20
  }) => Promise<BitErrors<T>> | BitErrors<T>;
@@ -99,35 +23,25 @@ interface BitFieldConditional<T extends object = Record<string, unknown>> {
99
23
  dependsOn?: string[];
100
24
  showIf?: (values: T) => boolean;
101
25
  requiredIf?: (values: T) => boolean;
102
- /** Custom message when field is required but empty. Fallback: "required field". */
103
26
  requiredMessage?: string;
104
27
  }
105
28
  /** Field-level validation: async validation only. */
106
29
  interface BitFieldValidation<T extends object = Record<string, unknown>> {
107
- /**
108
- * Breaking change: async validation now defaults to `blur` instead of eager `change`.
109
- * `validate()`/submit still execute async validators for the targeted fields.
110
- */
111
30
  asyncValidateOn?: "change" | "blur";
112
31
  asyncValidate?: BitBivariantFn<[
113
32
  value: unknown,
114
33
  values: T
115
34
  ], Promise<string | null | undefined>>;
116
35
  asyncValidateDelay?: number;
36
+ asyncValidateTimeout?: number;
117
37
  }
118
38
  interface BitFieldDefinitionBase<T extends object = Record<string, unknown>> {
119
39
  conditional?: BitFieldConditional<T>;
120
40
  validation?: BitFieldValidation<T>;
121
41
  normalize?: BitNormalizeFn<T>;
122
- /**
123
- * Optional explicit dependencies for normalize re-evaluation.
124
- * Defaults to the field own path when omitted.
125
- */
126
42
  normalizeDependsOn?: string[];
127
43
  transform?: BitTransformFn<T>;
128
- /** Mask name (built-in or custom registry key) or BitMask instance. */
129
44
  mask?: BitMask | BitMaskName;
130
- /** Scope name (e.g. wizard step). */
131
45
  scope?: string;
132
46
  }
133
47
  /** Full field definition: conditional, validation, transform, computed, mask, scope. */
@@ -136,14 +50,39 @@ type BitFieldDefinition<T extends object = Record<string, unknown>> = (BitFieldD
136
50
  computedDependsOn?: never;
137
51
  }) | (BitFieldDefinitionBase<T> & {
138
52
  computed: BitComputedFn<T>;
139
- /** Explicit dependencies are mandatory in v4 for deterministic computed scheduling. */
140
53
  computedDependsOn: string[];
141
54
  });
142
- interface DevToolsOptions {
55
+
56
+ type BitMaybePromise<T> = T | Promise<T>;
57
+ interface BitPersistStorageAdapter {
58
+ getItem(key: string): BitMaybePromise<string | null>;
59
+ setItem(key: string, value: string): BitMaybePromise<void>;
60
+ removeItem(key: string): BitMaybePromise<void>;
61
+ }
62
+ type BitPersistMode = "values" | "dirtyValues";
63
+ interface BitPersistConfig<T extends object = Record<string, unknown>> {
143
64
  enabled?: boolean;
144
- mode?: "local" | "remote";
145
- url?: string;
65
+ key?: string;
66
+ storage?: BitPersistStorageAdapter;
67
+ autoSave?: boolean;
68
+ debounceMs?: number;
69
+ mode?: BitPersistMode;
70
+ serialize?: (payload: unknown) => string;
71
+ deserialize?: (raw: string) => Partial<T>;
72
+ onError?: (error: unknown) => void;
73
+ }
74
+ interface BitPersistResolvedConfig<T extends object = Record<string, unknown>> {
75
+ enabled: boolean;
76
+ key: string;
77
+ storage?: BitPersistStorageAdapter;
78
+ autoSave: boolean;
79
+ debounceMs: number;
80
+ mode: BitPersistMode;
81
+ serialize: (payload: unknown) => string;
82
+ deserialize: (raw: string) => Partial<T>;
83
+ onError?: (error: unknown) => void;
146
84
  }
85
+
147
86
  type BitPluginHookSource = "beforeValidate" | "afterValidate" | "beforeSubmit" | "afterSubmit" | "onFieldChange" | "setup" | "teardown" | "submit";
148
87
  type BitOperationalErrorSource = "submit" | "validation" | "persist" | (string & {});
149
88
  type BitFieldChangeOrigin = "setField" | "rebase" | "replaceValues" | "hydrate" | "array";
@@ -199,6 +138,7 @@ interface BitPluginErrorEvent<T extends object = Record<string, unknown>> {
199
138
  values: Readonly<T>;
200
139
  state: Readonly<BitState<T>>;
201
140
  }
141
+
202
142
  interface BitPluginContext<T extends object = Record<string, unknown>> {
203
143
  storeId: string;
204
144
  getState: () => Readonly<BitState<T>>;
@@ -217,35 +157,7 @@ interface BitPlugin<T extends object = Record<string, unknown>> {
217
157
  setup?: (context: BitPluginContext<T>) => void | (() => void);
218
158
  hooks?: BitPluginHooks<T>;
219
159
  }
220
- type BitMaybePromise<T> = T | Promise<T>;
221
- interface BitPersistStorageAdapter {
222
- getItem(key: string): BitMaybePromise<string | null>;
223
- setItem(key: string, value: string): BitMaybePromise<void>;
224
- removeItem(key: string): BitMaybePromise<void>;
225
- }
226
- type BitPersistMode = "values" | "dirtyValues";
227
- interface BitPersistConfig<T extends object = Record<string, unknown>> {
228
- enabled?: boolean;
229
- key?: string;
230
- storage?: BitPersistStorageAdapter;
231
- autoSave?: boolean;
232
- debounceMs?: number;
233
- mode?: BitPersistMode;
234
- serialize?: (payload: unknown) => string;
235
- deserialize?: (raw: string) => Partial<T>;
236
- onError?: (error: unknown) => void;
237
- }
238
- interface BitPersistResolvedConfig<T extends object = Record<string, unknown>> {
239
- enabled: boolean;
240
- key: string;
241
- storage?: BitPersistStorageAdapter;
242
- autoSave: boolean;
243
- debounceMs: number;
244
- mode: BitPersistMode;
245
- serialize: (payload: unknown) => string;
246
- deserialize: (raw: string) => Partial<T>;
247
- onError?: (error: unknown) => void;
248
- }
160
+
249
161
  /** Validation config. */
250
162
  interface BitValidationConfig<T extends object> {
251
163
  resolver?: ValidatorFn<T>;
@@ -291,62 +203,21 @@ interface BitConfig<T extends object = Record<string, unknown>> {
291
203
  subscriptionCacheSize?: number;
292
204
  /**
293
205
  * Pluggable scheduler for validation debounce.
294
- * Defaults to a `setTimeout`-based scheduler.
295
- * Inject a framework-aware scheduler (e.g. React `startTransition`) for
296
- * better integration with concurrent rendering.
206
+ * Defaults to a setTimeout-based scheduler.
297
207
  */
298
208
  scheduler?: BitScheduler;
299
209
  /**
300
- * Custom bus instance for DevTools/observability. When omitted, the
301
- * shared browser-global bus (`bitBus`) is used — suitable for most apps.
302
- * Pass a `createBitBus()` instance when running in SSR/Edge environments
303
- * where a global singleton is unsafe (e.g. Next.js Edge Runtime).
210
+ * Custom bus instance for DevTools/observability.
304
211
  */
305
212
  bus?: BitFormGlobal;
306
213
  /**
307
- * Enables advanced tracked selector subscriptions (`mode: "tracked"`).
308
- * Disabled by default to keep observe semantics explicit and predictable.
214
+ * Enables advanced tracked selector subscriptions (mode: tracked).
309
215
  */
310
216
  trackedSubscriptions?: boolean;
311
217
  /**
312
218
  * Handler opcional para erros operacionais não tratados internamente.
313
- * Se não informado, o runtime usa fallback para `console.error`.
314
219
  */
315
220
  onUnhandledError?: (error: unknown, source: BitOperationalErrorSource) => void;
316
221
  }
317
- type BitSubmitResult = {
318
- status: "submitted";
319
- } | {
320
- status: "invalid";
321
- } | {
322
- status: "failed";
323
- error: unknown;
324
- } | {
325
- status: "blocked";
326
- reason: "isSubmitting" | "validating";
327
- };
328
- /** Return type of BitStore.getScopeStatus, used by useBitScope/injectBitScope. */
329
- interface ScopeStatus {
330
- hasErrors: boolean;
331
- isDirty: boolean;
332
- errors: Record<string, string>;
333
- }
334
- /** Return type of scope validation helpers, used by useBitScope/injectBitScope. */
335
- interface ValidateScopeResult {
336
- valid: boolean;
337
- errors: Record<string, string>;
338
- }
339
- /**
340
- * Type-safe path utilities
341
- *
342
- * These are used to strengthen typing for field paths (e.g. "user.email", "items.0.name").
343
- */
344
- type Primitive = string | number | boolean | bigint | symbol | null | undefined;
345
- type BitPath<T, Prefix extends string = ""> = T extends Primitive ? never : T extends readonly (infer U)[] ? Prefix extends "" ? `${number}` | `${number}.${BitPath<U>}` : `${Prefix}.${number}` | `${Prefix}.${number}.${BitPath<U>}` : {
346
- [K in keyof T & (string | number)]: T[K] extends Primitive ? Prefix extends "" ? `${K & (string | number)}` : `${Prefix}.${K & (string | number)}` : Prefix extends "" ? `${K & (string | number)}` | `${K & (string | number)}.${BitPath<T[K]>}` : `${Prefix}.${K & (string | number)}` | `${Prefix}.${K & (string | number)}.${BitPath<T[K]>}`;
347
- }[keyof T & (string | number)];
348
- type BitPathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends `${number}` ? T extends readonly (infer U)[] ? BitPathValue<U, Rest> : never : K extends keyof T ? BitPathValue<T[K], Rest> : never : P extends `${number}` ? T extends readonly (infer U)[] ? U : never : P extends keyof T ? T[P] : never;
349
- type BitArrayPath<T> = BitPath<T> extends infer P ? P extends string ? BitPathValue<T, P> extends readonly unknown[] ? P : never : never : never;
350
- type BitArrayItem<A> = A extends readonly (infer U)[] ? U : A extends (infer U)[] ? U : never;
351
222
 
352
- export type { BitPlugin as A, BitAfterSubmitEvent as B, BitPluginContext as C, BitPluginErrorEvent as D, BitPluginHooks as E, BitScheduler as F, BitState as G, BitSubmitResult as H, BitTouched as I, BitTransformFn as J, BitValidationConfig as K, DeepPartial as L, DevToolsOptions as M, ValidatorFn as N, BitPersistResolvedConfig as O, BitIdFactory as P, BitOperationalErrorSource as Q, ScopeStatus as S, ValidateScopeResult as V, BitAfterValidateEvent as a, BitArrayItem as b, BitArrayPath as c, BitBeforeSubmitEvent as d, BitBeforeValidateEvent as e, BitBus as f, BitBusListener as g, BitBusStorePort as h, BitComputedFn as i, BitConfig as j, BitErrors as k, BitFieldChangeEvent as l, BitFieldChangeMeta as m, BitFieldConditional as n, BitFieldDefinition as o, BitFieldState as p, BitFieldValidation as q, BitFormGlobal as r, BitHistoryConfig as s, BitNormalizeFn as t, BitPath as u, BitPathValue as v, BitPersistConfig as w, BitPersistMetadata as x, BitPersistMode as y, BitPersistStorageAdapter as z };
223
+ export type { BitAfterSubmitEvent as B, ValidatorFn as V, BitAfterValidateEvent as a, BitBeforeSubmitEvent as b, BitBeforeValidateEvent as c, BitComputedFn as d, BitConfig as e, BitFieldChangeEvent as f, BitFieldChangeMeta as g, BitFieldConditional as h, BitFieldDefinition as i, BitFieldValidation as j, BitHistoryConfig as k, BitNormalizeFn as l, BitPersistConfig as m, BitPersistMode as n, BitPersistStorageAdapter as o, BitPlugin as p, BitPluginContext as q, BitPluginErrorEvent as r, BitPluginHooks as s, BitTransformFn as t, BitValidationConfig as u, BitPersistResolvedConfig as v, BitOperationalErrorSource as w };