@lehnihon/bit-form 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +31 -38
  4. package/dist/angular/index.d.ts +31 -38
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/bus-B1my-s_o.d.ts +16 -0
  8. package/dist/bus-BI29cKpD.d.cts +16 -0
  9. package/dist/chunk-2UVV7SU4.js +2 -0
  10. package/dist/chunk-2UVV7SU4.js.map +1 -0
  11. package/dist/chunk-676WXU4S.cjs +2 -0
  12. package/dist/chunk-676WXU4S.cjs.map +1 -0
  13. package/dist/chunk-7MBRAKBL.js +2 -0
  14. package/dist/chunk-7MBRAKBL.js.map +1 -0
  15. package/dist/chunk-AD7T42HJ.js +1 -0
  16. package/dist/chunk-AD7T42HJ.js.map +1 -0
  17. package/dist/chunk-C4BYXZGB.cjs +1 -0
  18. package/dist/chunk-C4BYXZGB.cjs.map +1 -0
  19. package/dist/chunk-ER2DNS7T.cjs +2 -0
  20. package/dist/chunk-ER2DNS7T.cjs.map +1 -0
  21. package/dist/chunk-NWPA4F3B.cjs +2 -0
  22. package/dist/chunk-NWPA4F3B.cjs.map +1 -0
  23. package/dist/chunk-O5RRLZR7.js +2 -0
  24. package/dist/chunk-O5RRLZR7.js.map +1 -0
  25. package/dist/chunk-TRPMTJ35.js +2 -0
  26. package/dist/chunk-TRPMTJ35.js.map +1 -0
  27. package/dist/chunk-VSWCUQAF.cjs +2 -0
  28. package/dist/chunk-VSWCUQAF.cjs.map +1 -0
  29. package/dist/cli/index.cjs +3 -3
  30. package/dist/core/light.cjs +2 -0
  31. package/dist/core/light.cjs.map +1 -0
  32. package/dist/core/light.d.cts +29 -0
  33. package/dist/core/light.d.ts +29 -0
  34. package/dist/core/light.js +2 -0
  35. package/dist/core/light.js.map +1 -0
  36. package/dist/devtools/bridge.cjs +1 -1
  37. package/dist/devtools/bridge.cjs.map +1 -1
  38. package/dist/devtools/bridge.js +1 -1
  39. package/dist/devtools/bridge.js.map +1 -1
  40. package/dist/devtools/index.cjs +132 -1
  41. package/dist/devtools/index.cjs.map +1 -1
  42. package/dist/devtools/index.js +132 -1
  43. package/dist/devtools/index.js.map +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +19 -53
  47. package/dist/index.d.ts +19 -53
  48. package/dist/index.js +1 -1
  49. package/dist/{public-types-Lq3eLstW.d.ts → public-types-Bl94ECPb.d.ts} +11 -19
  50. package/dist/{public-types-CtYuIAMP.d.cts → public-types-CLIDR8aC.d.cts} +11 -19
  51. package/dist/react/index.cjs +1 -1
  52. package/dist/react/index.cjs.map +1 -1
  53. package/dist/react/index.d.cts +6 -5
  54. package/dist/react/index.d.ts +6 -5
  55. package/dist/react/index.js +1 -1
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react-native/index.cjs +1 -1
  58. package/dist/react-native/index.cjs.map +1 -1
  59. package/dist/react-native/index.d.cts +5 -4
  60. package/dist/react-native/index.d.ts +5 -4
  61. package/dist/react-native/index.js +1 -1
  62. package/dist/react-native/index.js.map +1 -1
  63. package/dist/resolvers/joi.cjs +1 -1
  64. package/dist/resolvers/joi.cjs.map +1 -1
  65. package/dist/resolvers/joi.d.cts +4 -4
  66. package/dist/resolvers/joi.d.ts +4 -4
  67. package/dist/resolvers/joi.js +1 -1
  68. package/dist/resolvers/joi.js.map +1 -1
  69. package/dist/resolvers/types.cjs +1 -0
  70. package/dist/resolvers/types.cjs.map +1 -0
  71. package/dist/resolvers/types.d.cts +16 -0
  72. package/dist/resolvers/types.d.ts +16 -0
  73. package/dist/resolvers/types.js +1 -0
  74. package/dist/resolvers/types.js.map +1 -0
  75. package/dist/resolvers/yup.cjs +1 -1
  76. package/dist/resolvers/yup.cjs.map +1 -1
  77. package/dist/resolvers/yup.d.cts +4 -4
  78. package/dist/resolvers/yup.d.ts +4 -4
  79. package/dist/resolvers/yup.js +1 -1
  80. package/dist/resolvers/yup.js.map +1 -1
  81. package/dist/resolvers/zod.cjs +1 -1
  82. package/dist/resolvers/zod.cjs.map +1 -1
  83. package/dist/resolvers/zod.d.cts +4 -4
  84. package/dist/resolvers/zod.d.ts +4 -4
  85. package/dist/resolvers/zod.js +1 -1
  86. package/dist/resolvers/zod.js.map +1 -1
  87. package/dist/{bus-B3pGaiFZ.d.cts → types-DqeN9Kq_.d.cts} +6 -16
  88. package/dist/{bus-B3pGaiFZ.d.ts → types-DqeN9Kq_.d.ts} +6 -16
  89. package/dist/{use-bit-persist-hxJaKG2S.d.ts → use-bit-persist-BgFBg8lQ.d.cts} +37 -43
  90. package/dist/{use-bit-persist-CWzGfovL.d.cts → use-bit-persist-JtinX6Vy.d.ts} +37 -43
  91. package/dist/vue/index.cjs +1 -1
  92. package/dist/vue/index.cjs.map +1 -1
  93. package/dist/vue/index.d.cts +31 -38
  94. package/dist/vue/index.d.ts +31 -38
  95. package/dist/vue/index.js +1 -1
  96. package/dist/vue/index.js.map +1 -1
  97. package/package.json +7 -1
  98. package/dist/chunk-442A4FTZ.cjs +0 -2
  99. package/dist/chunk-442A4FTZ.cjs.map +0 -1
  100. package/dist/chunk-6FJEE6O3.js +0 -133
  101. package/dist/chunk-6FJEE6O3.js.map +0 -1
  102. package/dist/chunk-FOV24ACZ.js +0 -2
  103. package/dist/chunk-FOV24ACZ.js.map +0 -1
  104. package/dist/chunk-YWXX6XRV.cjs +0 -133
  105. package/dist/chunk-YWXX6XRV.cjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var ur=Object.create;var Ke=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var mr=Object.getOwnPropertyNames;var _r=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var xr=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of mr(e))!gr.call(t,s)&&s!==r&&Ke(t,s,{get:()=>e[s],enumerable:!(i=pr(e,s))||i.enumerable});return t};var w=(t,e,r)=>(r=t!=null?ur(_r(t)):{},xr(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var T=y((Ys,Je)=>{"use strict";var Xe=["nodebuffer","arraybuffer","fragments"],Ze=typeof Blob<"u";Ze&&Xe.push("blob");Je.exports={BINARY_TYPES:Xe,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Ze,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var X=y((Ks,ne)=>{"use strict";var{EMPTY_BUFFER:yr}=T(),ve=Buffer[Symbol.species];function vr(t,e){if(t.length===0)return yr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let s=0;s<t.length;s++){let n=t[s];r.set(n,i),i+=n.length}return i<e?new ve(r.buffer,r.byteOffset,i):r}function Qe(t,e,r,i,s){for(let n=0;n<s;n++)r[i+n]=t[n]^e[n&3]}function et(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Sr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Se(t){if(Se.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new ve(t):ArrayBuffer.isView(t)?e=new ve(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Se.readOnly=!1),e}ne.exports={concat:vr,mask:Qe,toArrayBuffer:Sr,toBuffer:Se,unmask:et};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");ne.exports.mask=function(e,r,i,s,n){n<48?Qe(e,r,i,s,n):t.mask(e,r,i,s,n)},ne.exports.unmask=function(e,r){e.length<32?et(e,r):t.unmask(e,r)}}catch{}});var st=y((Xs,rt)=>{"use strict";var tt=Symbol("kDone"),be=Symbol("kRun"),Ee=class{constructor(e){this[tt]=()=>{this.pending--,this[be]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[be]()}[be](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[tt])}}};rt.exports=Ee});var J=y((Zs,at)=>{"use strict";var Z=require("zlib"),it=X(),br=st(),{kStatusCode:nt}=T(),Er=Buffer[Symbol.species],wr=Buffer.from([0,0,255,255]),ae=Symbol("permessage-deflate"),k=Symbol("total-length"),W=Symbol("callback"),B=Symbol("buffers"),q=Symbol("error"),oe,we=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!oe){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;oe=new br(s)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(s=>!(r.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>s.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let s=r[i];if(s.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(s=s[0],i==="client_max_window_bits"){if(s!==!0){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else if(i==="server_max_window_bits"){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=s})}),e}decompress(e,r,i){oe.add(s=>{this._decompress(e,r,(n,o)=>{s(),i(n,o)})})}compress(e,r,i){oe.add(s=>{this._compress(e,r,(n,o)=>{s(),i(n,o)})})}_decompress(e,r,i){let s=this._isServer?"client":"server";if(!this._inflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Z.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[ae]=this,this._inflate[k]=0,this._inflate[B]=[],this._inflate.on("error",Tr),this._inflate.on("data",ot)}this._inflate[W]=i,this._inflate.write(e),r&&this._inflate.write(wr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,i(n);return}let o=it.concat(this._inflate[B],this._inflate[k]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[k]=0,this._inflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),i(null,o)})}_compress(e,r,i){let s=this._isServer?"server":"client";if(!this._deflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Z.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[k]=0,this._deflate[B]=[],this._deflate.on("data",Nr)}this._deflate[W]=i,this._deflate.write(e),this._deflate.flush(Z.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=it.concat(this._deflate[B],this._deflate[k]);r&&(n=new Er(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[k]=0,this._deflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),i(null,n)})}};at.exports=we;function Nr(t){this[B].push(t),this[k]+=t.length}function ot(t){if(this[k]+=t.length,this[ae]._maxPayload<1||this[k]<=this[ae]._maxPayload){this[B].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][nt]=1009,this.removeListener("data",ot),this.reset()}function Tr(t){if(this[ae]._inflate=null,this[q]){this[W](this[q]);return}t[nt]=1007,this[W](t)}});var $=y((Js,le)=>{"use strict";var{isUtf8:lt}=require("buffer"),{hasBlob:kr}=T(),Or=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Cr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Ne(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Br(t){return kr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}le.exports={isBlob:Br,isValidStatusCode:Cr,isValidUTF8:Ne,tokenChars:Or};if(lt)le.exports.isValidUTF8=function(t){return t.length<24?Ne(t):lt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");le.exports.isValidUTF8=function(e){return e.length<32?Ne(e):t(e)}}catch{}});var Be=y((Qs,mt)=>{"use strict";var{Writable:Lr}=require("stream"),ct=J(),{BINARY_TYPES:Pr,EMPTY_BUFFER:ft,kStatusCode:Ir,kWebSocket:Rr}=T(),{concat:Te,toArrayBuffer:Fr,unmask:Ur}=X(),{isValidStatusCode:Dr,isValidUTF8:dt}=$(),ce=Buffer[Symbol.species],S=0,ht=1,ut=2,pt=3,ke=4,Oe=5,fe=6,Ce=class extends Lr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Pr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Rr]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=S}_write(e,r,i){if(this._opcode===8&&this._state==S)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let i=this._buffers[0];return this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e),new ce(i.buffer,i.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let i=this._buffers[0],s=r.length-e;e>=i.length?r.set(this._buffers.shift(),s):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),s),this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e)),e-=i.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case S:this.getInfo(e);break;case ht:this.getPayloadLength16(e);break;case ut:this.getPayloadLength64(e);break;case pt:this.getMask();break;case ke:this.getData(e);break;case Oe:case fe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let i=(r[0]&64)===64;if(i&&!this._extensions[ct.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=i}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=ht:this._payloadLength===127?this._state=ut:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),i=r.readUInt32BE(0);if(i>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=i*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=pt:this._state=ke}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=ke}getData(e){let r=ft;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&Ur(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Oe,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[ct.extensionName].decompress(e,this._fin,(s,n)=>{if(s)return r(s);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===S&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=S;return}let r=this._messageLength,i=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=Te(i,r):this._binaryType==="arraybuffer"?s=Fr(Te(i,r)):this._binaryType==="blob"?s=new Blob(i):s=i,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!0),this._state=S,this.startLoop(e)}))}else{let s=Te(i,r);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Oe||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!1),this._state=S,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,ft),this.end();else{let i=e.readUInt16BE(0);if(!Dr(i)){let n=this.createError(RangeError,`invalid status code ${i}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let s=new ce(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",i,s),this.end()}this._state=S;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=S):(this._state=fe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=S,this.startLoop(r)}))}createError(e,r,i,s,n){this._loop=!1,this._errored=!0;let o=new e(i?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Ir]=s,o}};mt.exports=Ce});var Ie=y((ti,xt)=>{"use strict";var{Duplex:ei}=require("stream"),{randomFillSync:Ar}=require("crypto"),_t=J(),{EMPTY_BUFFER:Mr,kWebSocket:Wr,NOOP:qr}=T(),{isBlob:G,isValidStatusCode:$r}=$(),{mask:gt,toBuffer:I}=X(),b=Symbol("kByteLength"),Gr=Buffer.alloc(4),de=8*1024,R,j=de,E=0,jr=1,Vr=2,Le=class t{constructor(e,r,i){this._extensions=r||{},i&&(this._generateMask=i,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=qr,this[Wr]=void 0}static frame(e,r){let i,s=!1,n=2,o=!1;r.mask&&(i=r.maskBuffer||Gr,r.generateMask?r.generateMask(i):(j===de&&(R===void 0&&(R=Buffer.alloc(de)),Ar(R,0,de),j=0),i[0]=R[j++],i[1]=R[j++],i[2]=R[j++],i[3]=R[j++]),o=(i[0]|i[1]|i[2]|i[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[b]!==void 0?l=r[b]:(e=Buffer.from(e),l=e.length):(l=e.length,s=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(s?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=c,c===126?a.writeUInt16BE(l,2):c===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=i[0],a[n-3]=i[1],a[n-2]=i[2],a[n-1]=i[3],o?[a,e]:s?(gt(e,i,a,n,l),[a]):(gt(e,i,e,0,l),[a,e])):[a,e]}close(e,r,i,s){let n;if(e===void 0)n=Mr;else{if(typeof e!="number"||!$r(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[b]:n.length,fin:!0,generateMask:this._generateMask,mask:i,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,s]):this.sendFrame(t.frame(n,o),s)}ping(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=I(e),s=e.length,n=I.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}pong(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=I(e),s=e.length,n=I.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}send(e,r,i){let s=this._extensions[_t.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):G(e)?(l=e.size,c=!1):(e=I(e),l=e.length,c=I.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=s._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[b]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:o};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,i]):this.getBlobData(e,this._compress,a,i):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,i]):this.dispatch(e,this._compress,a,i)}getBlobData(e,r,i,s){this._bufferedBytes+=i[b],this._state=Vr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Pe,this,l,s);return}this._bufferedBytes-=i[b];let o=I(n);r?this.dispatch(o,r,i,s):(this._state=E,this.sendFrame(t.frame(o,i),s),this.dequeue())}).catch(n=>{process.nextTick(Hr,this,n,s)})}dispatch(e,r,i,s){if(!r){this.sendFrame(t.frame(e,i),s);return}let n=this._extensions[_t.extensionName];this._bufferedBytes+=i[b],this._state=jr,n.compress(e,i.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Pe(this,c,s);return}this._bufferedBytes-=i[b],this._state=E,i.readOnly=!1,this.sendFrame(t.frame(l,i),s),this.dequeue()})}dequeue(){for(;this._state===E&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][b],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][b],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};xt.exports=Le;function Pe(t,e,r){typeof r=="function"&&r(e);for(let i=0;i<t._queue.length;i++){let s=t._queue[i],n=s[s.length-1];typeof n=="function"&&n(e)}}function Hr(t,e,r){Pe(t,e,r),t.onerror(e)}});var kt=y((ri,Tt)=>{"use strict";var{kForOnEventAttribute:Q,kListener:Re}=T(),yt=Symbol("kCode"),vt=Symbol("kData"),St=Symbol("kError"),bt=Symbol("kMessage"),Et=Symbol("kReason"),V=Symbol("kTarget"),wt=Symbol("kType"),Nt=Symbol("kWasClean"),O=class{constructor(e){this[V]=null,this[wt]=e}get target(){return this[V]}get type(){return this[wt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var F=class extends O{constructor(e,r={}){super(e),this[yt]=r.code===void 0?0:r.code,this[Et]=r.reason===void 0?"":r.reason,this[Nt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[yt]}get reason(){return this[Et]}get wasClean(){return this[Nt]}};Object.defineProperty(F.prototype,"code",{enumerable:!0});Object.defineProperty(F.prototype,"reason",{enumerable:!0});Object.defineProperty(F.prototype,"wasClean",{enumerable:!0});var H=class extends O{constructor(e,r={}){super(e),this[St]=r.error===void 0?null:r.error,this[bt]=r.message===void 0?"":r.message}get error(){return this[St]}get message(){return this[bt]}};Object.defineProperty(H.prototype,"error",{enumerable:!0});Object.defineProperty(H.prototype,"message",{enumerable:!0});var ee=class extends O{constructor(e,r={}){super(e),this[vt]=r.data===void 0?null:r.data}get data(){return this[vt]}};Object.defineProperty(ee.prototype,"data",{enumerable:!0});var zr={addEventListener(t,e,r={}){for(let s of this.listeners(t))if(!r[Q]&&s[Re]===e&&!s[Q])return;let i;if(t==="message")i=function(n,o){let l=new ee("message",{data:o?n:n.toString()});l[V]=this,he(e,this,l)};else if(t==="close")i=function(n,o){let l=new F("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[V]=this,he(e,this,l)};else if(t==="error")i=function(n){let o=new H("error",{error:n,message:n.message});o[V]=this,he(e,this,o)};else if(t==="open")i=function(){let n=new O("open");n[V]=this,he(e,this,n)};else return;i[Q]=!!r[Q],i[Re]=e,r.once?this.once(t,i):this.on(t,i)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Re]===e&&!r[Q]){this.removeListener(t,r);break}}};Tt.exports={CloseEvent:F,ErrorEvent:H,Event:O,EventTarget:zr,MessageEvent:ee};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Fe=y((si,Ot)=>{"use strict";var{tokenChars:te}=$();function N(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Yr(t){let e=Object.create(null),r=Object.create(null),i=!1,s=!1,n=!1,o,l,c=-1,a=-1,f=-1,d=0;for(;d<t.length;d++)if(a=t.charCodeAt(d),o===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(d!==0&&(a===32||a===9))f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);a===44?(N(e,_,r),r=Object.create(null)):o=_,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(a===32||a===9)f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d),N(r,t.slice(c,f),!0),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),c=f=-1}else if(a===61&&c!==-1&&f===-1)l=t.slice(c,d),c=f=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(s){if(te[a]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);c===-1?c=d:i||(i=!0),s=!1}else if(n)if(te[a]===1)c===-1&&(c=d);else if(a===34&&c!==-1)n=!1,f=d;else if(a===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(a===34&&t.charCodeAt(d-1)===61)n=!0;else if(f===-1&&te[a]===1)c===-1&&(c=d);else if(c!==-1&&(a===32||a===9))f===-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);i&&(_=_.replace(/\\/g,""),i=!1),N(r,l,_),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");f===-1&&(f=d);let u=t.slice(c,f);return o===void 0?N(e,u,r):(l===void 0?N(r,u,!0):i?N(r,l,u.replace(/\\/g,"")):N(r,l,u),N(e,o,r)),e}function Kr(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(s=>{let n=i[s];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ot.exports={format:Kr,parse:Yr}});var _e=y((oi,Wt)=>{"use strict";var Xr=require("events"),Zr=require("https"),Jr=require("http"),Lt=require("net"),Qr=require("tls"),{randomBytes:es,createHash:ts}=require("crypto"),{Duplex:ii,Readable:ni}=require("stream"),{URL:Ue}=require("url"),L=J(),rs=Be(),ss=Ie(),{isBlob:is}=$(),{BINARY_TYPES:Ct,CLOSE_TIMEOUT:ns,EMPTY_BUFFER:ue,GUID:os,kForOnEventAttribute:De,kListener:as,kStatusCode:ls,kWebSocket:g,NOOP:Pt}=T(),{EventTarget:{addEventListener:cs,removeEventListener:fs}}=kt(),{format:ds,parse:hs}=Fe(),{toBuffer:us}=X(),It=Symbol("kAborted"),Ae=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],ps=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends Xr{constructor(e,r,i){super(),this._binaryType=Ct[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ue,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(i=r,r=[]):r=[r]),Rt(this,e,r,i)):(this._autoPong=i.autoPong,this._closeTimeout=i.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ct.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,i){let s=new rs({allowSynchronousEvents:i.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation}),n=new ss(e,this._extensions,i.generateMask);this._receiver=s,this._sender=n,this._socket=e,s[g]=this,n[g]=this,e[g]=this,s.on("conclude",gs),s.on("drain",xs),s.on("error",ys),s.on("message",vs),s.on("ping",Ss),s.on("pong",bs),n.onerror=Es,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Dt),e.on("data",me),e.on("end",At),e.on("error",Mt),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[L.extensionName]&&this._extensions[L.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Ut(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ue,r,i)}pong(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ue,r,i)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[L.extensionName]||(s.compress=!1),this._sender.send(e||ue,s,i)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(p,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p.prototype,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p.prototype,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p.prototype,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});Object.defineProperty(p.prototype,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(p.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(p.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[De])return e[as];return null},set(e){for(let r of this.listeners(t))if(r[De]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[De]:!0})}})});p.prototype.addEventListener=cs;p.prototype.removeEventListener=fs;Wt.exports=p;function Rt(t,e,r,i){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ns,protocolVersion:Ae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...i,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=s.autoPong,t._closeTimeout=s.closeTimeout,!Ae.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${Ae.join(", ")})`);let n;if(e instanceof Ue)n=e;else try{n=new Ue(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",c;if(n.protocol!=="ws:"&&!o&&!l?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?c="The URL's pathname is empty":n.hash&&(c="The URL contains a fragment identifier"),c){let h=new SyntaxError(c);if(t._redirects===0)throw h;pe(t,h);return}let a=o?443:80,f=es(16).toString("base64"),d=o?Zr.request:Jr.request,u=new Set,_;if(s.createConnection=s.createConnection||(o?_s:ms),s.defaultPort=s.defaultPort||a,s.port=n.port||a,s.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":f,Connection:"Upgrade",Upgrade:"websocket"},s.path=n.pathname+n.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(_=new L(s.perMessageDeflate!==!0?s.perMessageDeflate:{},!1,s.maxPayload),s.headers["Sec-WebSocket-Extensions"]=ds({[L.extensionName]:_.offer()})),r.length){for(let h of r){if(typeof h!="string"||!ps.test(h)||u.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");u.add(h)}s.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(n.username||n.password)&&(s.auth=`${n.username}:${n.password}`),l){let h=s.path.split(":");s.socketPath=h[0],s.path=h[1]}let m;if(s.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?s.socketPath:n.host;let h=i&&i.headers;if(i={...i,headers:{}},h)for(let[x,A]of Object.entries(h))i.headers[x.toLowerCase()]=A}else if(t.listenerCount("redirect")===0){let h=l?t._originalIpc?s.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!h||t._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,h||delete s.headers.host,s.auth=void 0)}s.auth&&!i.headers.authorization&&(i.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),m=t._req=d(s),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=d(s);s.timeout&&m.on("timeout",()=>{v(t,m,"Opening handshake has timed out")}),m.on("error",h=>{m===null||m[It]||(m=t._req=null,pe(t,h))}),m.on("response",h=>{let x=h.headers.location,A=h.statusCode;if(x&&s.followRedirects&&A>=300&&A<400){if(++t._redirects>s.maxRedirects){v(t,m,"Maximum redirects exceeded");return}m.abort();let Y;try{Y=new Ue(x,e)}catch{let M=new SyntaxError(`Invalid URL: ${x}`);pe(t,M);return}Rt(t,Y,r,i)}else t.emit("unexpected-response",m,h)||v(t,m,`Unexpected server response: ${h.statusCode}`)}),m.on("upgrade",(h,x,A)=>{if(t.emit("upgrade",h),t.readyState!==p.CONNECTING)return;m=t._req=null;let Y=h.headers.upgrade;if(Y===void 0||Y.toLowerCase()!=="websocket"){v(t,x,"Invalid Upgrade header");return}let He=ts("sha1").update(f+os).digest("base64");if(h.headers["sec-websocket-accept"]!==He){v(t,x,"Invalid Sec-WebSocket-Accept header");return}let M=h.headers["sec-websocket-protocol"],K;if(M!==void 0?u.size?u.has(M)||(K="Server sent an invalid subprotocol"):K="Server sent a subprotocol but none was requested":u.size&&(K="Server sent no subprotocol"),K){v(t,x,K);return}M&&(t._protocol=M);let ze=h.headers["sec-websocket-extensions"];if(ze!==void 0){if(!_){v(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=hs(ze)}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}let Ye=Object.keys(xe);if(Ye.length!==1||Ye[0]!==L.extensionName){v(t,x,"Server indicated an extension that was not requested");return}try{_.accept(xe[L.extensionName])}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[L.extensionName]=_}t.setSocket(x,A,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(m,t):m.end()}function pe(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function ms(t){return t.path=t.socketPath,Lt.connect(t)}function _s(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Lt.isIP(t.host)?"":t.host),Qr.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let i=new Error(r);Error.captureStackTrace(i,v),e.setHeader?(e[It]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(pe,t,i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Me(t,e,r){if(e){let i=is(e)?e.size:us(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,i)}}function gs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",me),process.nextTick(Ft,r._socket),t===1005?r.close():r.close(t,e))}function xs(){let t=this[g];t.isPaused||t._socket.resume()}function ys(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",me),process.nextTick(Ft,e._socket),e.close(t[ls])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Bt(){this[g].emitClose()}function vs(t,e){this[g].emit("message",t,e)}function Ss(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Pt),e.emit("ping",t)}function bs(t){this[g].emit("pong",t)}function Ft(t){t.resume()}function Es(t){let e=this[g];e.readyState!==p.CLOSED&&(e.readyState===p.OPEN&&(e._readyState=p.CLOSING,Ut(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Ut(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function Dt(){let t=this[g];if(this.removeListener("close",Dt),this.removeListener("data",me),this.removeListener("end",At),t._readyState=p.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[g]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Bt),t._receiver.on("finish",Bt))}function me(t){this[g]._receiver.write(t)||this.pause()}function At(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function Mt(){let t=this[g];this.removeListener("error",Mt),this.on("error",Pt),t&&(t._readyState=p.CLOSING,this.destroy())}});var jt=y((li,Gt)=>{"use strict";var ai=_e(),{Duplex:ws}=require("stream");function qt(t){t.emit("close")}function Ns(){!this.destroyed&&this._writableState.finished&&this.destroy()}function $t(t){this.removeListener("error",$t),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Ts(t,e){let r=!0,i=new ws({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&i._readableState.objectMode?n.toString():n;i.push(l)||t.pause()}),t.once("error",function(n){i.destroyed||(r=!1,i.destroy(n))}),t.once("close",function(){i.destroyed||i.push(null)}),i._destroy=function(s,n){if(t.readyState===t.CLOSED){n(s),process.nextTick(qt,i);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(s),process.nextTick(qt,i)}),r&&t.terminate()},i._final=function(s){if(t.readyState===t.CONNECTING){t.once("open",function(){i._final(s)});return}t._socket!==null&&(t._socket._writableState.finished?(s(),i._readableState.endEmitted&&i.destroy()):(t._socket.once("finish",function(){s()}),t.close()))},i._read=function(){t.isPaused&&t.resume()},i._write=function(s,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){i._write(s,n,o)});return}t.send(s,o)},i.on("end",Ns),i.on("error",$t),i}Gt.exports=Ts});var Ht=y((ci,Vt)=>{"use strict";var{tokenChars:ks}=$();function Os(t){let e=new Set,r=-1,i=-1,s=0;for(s;s<t.length;s++){let o=t.charCodeAt(s);if(i===-1&&ks[o]===1)r===-1&&(r=s);else if(s!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=s);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${s}`);i===-1&&(i=s);let l=t.slice(r,i);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=i=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(r===-1||i!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,s);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Vt.exports={parse:Os}});var Qt=y((di,Jt)=>{"use strict";var Cs=require("events"),ge=require("http"),{Duplex:fi}=require("stream"),{createHash:Bs}=require("crypto"),zt=Fe(),U=J(),Ls=Ht(),Ps=_e(),{CLOSE_TIMEOUT:Is,GUID:Rs,kWebSocket:Fs}=T(),Us=/^[+/0-9A-Za-z]{22}==$/,Yt=0,Kt=1,Zt=2,We=class extends Cs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Is,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Ps,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=ge.createServer((i,s)=>{let n=ge.STATUS_CODES[426];s.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),s.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=Ds(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,n,o)=>{this.handleUpgrade(s,n,o,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Yt}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===Zt){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(re,this);return}if(e&&this.once("close",e),this._state!==Kt)if(this._state=Kt,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(re,this):process.nextTick(re,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{re(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,s){r.on("error",Xt);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){D(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){D(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!Us.test(n)){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){se(r,400);return}let c=e.headers["sec-websocket-protocol"],a=new Set;if(c!==void 0)try{a=Ls.parse(c)}catch{D(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let f=e.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&f!==void 0){let u=new U(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let _=zt.parse(f);_[U.extensionName]&&(u.accept(_[U.extensionName]),d[U.extensionName]=u)}catch{D(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let u={origin:e.headers[`${l===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(u,(_,m,h,x)=>{if(!_)return se(r,m||401,h,x);this.completeUpgrade(d,n,a,e,r,i,s)});return}if(!this.options.verifyClient(u))return se(r,401)}this.completeUpgrade(d,n,a,e,r,i,s)}completeUpgrade(e,r,i,s,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Fs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Yt)return se(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Bs("sha1").update(r+Rs).digest("base64")}`],f=new this.options.WebSocket(null,void 0,this.options);if(i.size){let d=this.options.handleProtocols?this.options.handleProtocols(i,s):i.values().next().value;d&&(a.push(`Sec-WebSocket-Protocol: ${d}`),f._protocol=d)}if(e[U.extensionName]){let d=e[U.extensionName].params,u=zt.format({[U.extensionName]:[d]});a.push(`Sec-WebSocket-Extensions: ${u}`),f._extensions=e}this.emit("headers",a,s),n.write(a.concat(`\r
2
+ "use strict";var ur=Object.create;var Ke=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var mr=Object.getOwnPropertyNames;var _r=Object.getPrototypeOf,gr=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var xr=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of mr(e))!gr.call(t,s)&&s!==r&&Ke(t,s,{get:()=>e[s],enumerable:!(i=pr(e,s))||i.enumerable});return t};var w=(t,e,r)=>(r=t!=null?ur(_r(t)):{},xr(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var T=y((Ks,Je)=>{"use strict";var Xe=["nodebuffer","arraybuffer","fragments"],Ze=typeof Blob<"u";Ze&&Xe.push("blob");Je.exports={BINARY_TYPES:Xe,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Ze,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var X=y((Xs,ne)=>{"use strict";var{EMPTY_BUFFER:yr}=T(),ve=Buffer[Symbol.species];function vr(t,e){if(t.length===0)return yr;if(t.length===1)return t[0];let r=Buffer.allocUnsafe(e),i=0;for(let s=0;s<t.length;s++){let n=t[s];r.set(n,i),i+=n.length}return i<e?new ve(r.buffer,r.byteOffset,i):r}function Qe(t,e,r,i,s){for(let n=0;n<s;n++)r[i+n]=t[n]^e[n&3]}function et(t,e){for(let r=0;r<t.length;r++)t[r]^=e[r&3]}function Sr(t){return t.length===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.length)}function Se(t){if(Se.readOnly=!0,Buffer.isBuffer(t))return t;let e;return t instanceof ArrayBuffer?e=new ve(t):ArrayBuffer.isView(t)?e=new ve(t.buffer,t.byteOffset,t.byteLength):(e=Buffer.from(t),Se.readOnly=!1),e}ne.exports={concat:vr,mask:Qe,toArrayBuffer:Sr,toBuffer:Se,unmask:et};if(!process.env.WS_NO_BUFFER_UTIL)try{let t=require("bufferutil");ne.exports.mask=function(e,r,i,s,n){n<48?Qe(e,r,i,s,n):t.mask(e,r,i,s,n)},ne.exports.unmask=function(e,r){e.length<32?et(e,r):t.unmask(e,r)}}catch{}});var st=y((Zs,rt)=>{"use strict";var tt=Symbol("kDone"),be=Symbol("kRun"),Ee=class{constructor(e){this[tt]=()=>{this.pending--,this[be]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[be]()}[be](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[tt])}}};rt.exports=Ee});var J=y((Js,at)=>{"use strict";var Z=require("zlib"),it=X(),br=st(),{kStatusCode:nt}=T(),Er=Buffer[Symbol.species],wr=Buffer.from([0,0,255,255]),ae=Symbol("permessage-deflate"),k=Symbol("total-length"),W=Symbol("callback"),B=Symbol("buffers"),q=Symbol("error"),oe,we=class{constructor(e,r,i){if(this._maxPayload=i|0,this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!oe){let s=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;oe=new br(s)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[W];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let r=this._options,i=e.find(s=>!(r.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(r.serverMaxWindowBits===!1||typeof r.serverMaxWindowBits=="number"&&r.serverMaxWindowBits>s.server_max_window_bits)||typeof r.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!i)throw new Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),typeof r.serverMaxWindowBits=="number"&&(i.server_max_window_bits=r.serverMaxWindowBits),typeof r.clientMaxWindowBits=="number"?i.client_max_window_bits=r.clientMaxWindowBits:(i.client_max_window_bits===!0||r.clientMaxWindowBits===!1)&&delete i.client_max_window_bits,i}acceptAsClient(e){let r=e[0];if(this._options.clientNoContextTakeover===!1&&r.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!r.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(r.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return r}normalizeParams(e){return e.forEach(r=>{Object.keys(r).forEach(i=>{let s=r[i];if(s.length>1)throw new Error(`Parameter "${i}" must have only a single value`);if(s=s[0],i==="client_max_window_bits"){if(s!==!0){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else if(i==="server_max_window_bits"){let n=+s;if(!Number.isInteger(n)||n<8||n>15)throw new TypeError(`Invalid value for parameter "${i}": ${s}`);s=n}else if(i==="client_no_context_takeover"||i==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${i}": ${s}`)}else throw new Error(`Unknown parameter "${i}"`);r[i]=s})}),e}decompress(e,r,i){oe.add(s=>{this._decompress(e,r,(n,o)=>{s(),i(n,o)})})}compress(e,r,i){oe.add(s=>{this._compress(e,r,(n,o)=>{s(),i(n,o)})})}_decompress(e,r,i){let s=this._isServer?"client":"server";if(!this._inflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._inflate=Z.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[ae]=this,this._inflate[k]=0,this._inflate[B]=[],this._inflate.on("error",Tr),this._inflate.on("data",ot)}this._inflate[W]=i,this._inflate.write(e),r&&this._inflate.write(wr),this._inflate.flush(()=>{let n=this._inflate[q];if(n){this._inflate.close(),this._inflate=null,i(n);return}let o=it.concat(this._inflate[B],this._inflate[k]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[k]=0,this._inflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),i(null,o)})}_compress(e,r,i){let s=this._isServer?"server":"client";if(!this._deflate){let n=`${s}_max_window_bits`,o=typeof this.params[n]!="number"?Z.Z_DEFAULT_WINDOWBITS:this.params[n];this._deflate=Z.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[k]=0,this._deflate[B]=[],this._deflate.on("data",Nr)}this._deflate[W]=i,this._deflate.write(e),this._deflate.flush(Z.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let n=it.concat(this._deflate[B],this._deflate[k]);r&&(n=new Er(n.buffer,n.byteOffset,n.length-4)),this._deflate[W]=null,this._deflate[k]=0,this._deflate[B]=[],r&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),i(null,n)})}};at.exports=we;function Nr(t){this[B].push(t),this[k]+=t.length}function ot(t){if(this[k]+=t.length,this[ae]._maxPayload<1||this[k]<=this[ae]._maxPayload){this[B].push(t);return}this[q]=new RangeError("Max payload size exceeded"),this[q].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[q][nt]=1009,this.removeListener("data",ot),this.reset()}function Tr(t){if(this[ae]._inflate=null,this[q]){this[W](this[q]);return}t[nt]=1007,this[W](t)}});var $=y((Qs,le)=>{"use strict";var{isUtf8:lt}=require("buffer"),{hasBlob:kr}=T(),Or=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Cr(t){return t>=1e3&&t<=1014&&t!==1004&&t!==1005&&t!==1006||t>=3e3&&t<=4999}function Ne(t){let e=t.length,r=0;for(;r<e;)if((t[r]&128)===0)r++;else if((t[r]&224)===192){if(r+1===e||(t[r+1]&192)!==128||(t[r]&254)===192)return!1;r+=2}else if((t[r]&240)===224){if(r+2>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||t[r]===224&&(t[r+1]&224)===128||t[r]===237&&(t[r+1]&224)===160)return!1;r+=3}else if((t[r]&248)===240){if(r+3>=e||(t[r+1]&192)!==128||(t[r+2]&192)!==128||(t[r+3]&192)!==128||t[r]===240&&(t[r+1]&240)===128||t[r]===244&&t[r+1]>143||t[r]>244)return!1;r+=4}else return!1;return!0}function Br(t){return kr&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&(t[Symbol.toStringTag]==="Blob"||t[Symbol.toStringTag]==="File")}le.exports={isBlob:Br,isValidStatusCode:Cr,isValidUTF8:Ne,tokenChars:Or};if(lt)le.exports.isValidUTF8=function(t){return t.length<24?Ne(t):lt(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=require("utf-8-validate");le.exports.isValidUTF8=function(e){return e.length<32?Ne(e):t(e)}}catch{}});var Be=y((ei,mt)=>{"use strict";var{Writable:Lr}=require("stream"),ct=J(),{BINARY_TYPES:Pr,EMPTY_BUFFER:ft,kStatusCode:Rr,kWebSocket:Ir}=T(),{concat:Te,toArrayBuffer:Fr,unmask:Ur}=X(),{isValidStatusCode:Dr,isValidUTF8:dt}=$(),ce=Buffer[Symbol.species],S=0,ht=1,ut=2,pt=3,ke=4,Oe=5,fe=6,Ce=class extends Lr{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||Pr[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[Ir]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=S}_write(e,r,i){if(this._opcode===8&&this._state==S)return i();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(i)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let i=this._buffers[0];return this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e),new ce(i.buffer,i.byteOffset,e)}let r=Buffer.allocUnsafe(e);do{let i=this._buffers[0],s=r.length-e;e>=i.length?r.set(this._buffers.shift(),s):(r.set(new Uint8Array(i.buffer,i.byteOffset,e),s),this._buffers[0]=new ce(i.buffer,i.byteOffset+e,i.length-e)),e-=i.length}while(e>0);return r}startLoop(e){this._loop=!0;do switch(this._state){case S:this.getInfo(e);break;case ht:this.getPayloadLength16(e);break;case ut:this.getPayloadLength64(e);break;case pt:this.getMask();break;case ke:this.getData(e);break;case Oe:case fe:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let r=this.consume(2);if((r[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let i=(r[0]&64)===64;if(i&&!this._extensions[ct.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(r[0]&128)===128,this._opcode=r[0]&15,this._payloadLength=r[1]&127,this._opcode===0){if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=i}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(i){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(r[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=ht:this._payloadLength===127?this._state=ut:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let r=this.consume(8),i=r.readUInt32BE(0);if(i>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=i*Math.pow(2,32)+r.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let r=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(r);return}this._masked?this._state=pt:this._state=ke}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=ke}getData(e){let r=ft;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}r=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&Ur(r,this._mask)}if(this._opcode>7){this.controlMessage(r,e);return}if(this._compressed){this._state=Oe,this.decompress(r,e);return}r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(e)}decompress(e,r){this._extensions[ct.extensionName].decompress(e,this._fin,(s,n)=>{if(s)return r(s);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");r(o);return}this._fragments.push(n)}this.dataMessage(r),this._state===S&&this.startLoop(r)})}dataMessage(e){if(!this._fin){this._state=S;return}let r=this._messageLength,i=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=Te(i,r):this._binaryType==="arraybuffer"?s=Fr(Te(i,r)):this._binaryType==="blob"?s=new Blob(i):s=i,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!0),this._state=S,this.startLoop(e)}))}else{let s=Te(i,r);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(n);return}this._state===Oe||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=S):(this._state=fe,setImmediate(()=>{this.emit("message",s,!1),this._state=S,this.startLoop(e)}))}}controlMessage(e,r){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,ft),this.end();else{let i=e.readUInt16BE(0);if(!Dr(i)){let n=this.createError(RangeError,`invalid status code ${i}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");r(n);return}let s=new ce(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!dt(s)){let n=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");r(n);return}this._loop=!1,this.emit("conclude",i,s),this.end()}this._state=S;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=S):(this._state=fe,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=S,this.startLoop(r)}))}createError(e,r,i,s,n){this._loop=!1,this._errored=!0;let o=new e(i?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(o,this.createError),o.code=n,o[Rr]=s,o}};mt.exports=Ce});var Re=y((ri,xt)=>{"use strict";var{Duplex:ti}=require("stream"),{randomFillSync:Ar}=require("crypto"),_t=J(),{EMPTY_BUFFER:Mr,kWebSocket:Wr,NOOP:qr}=T(),{isBlob:G,isValidStatusCode:$r}=$(),{mask:gt,toBuffer:R}=X(),b=Symbol("kByteLength"),Gr=Buffer.alloc(4),de=8*1024,I,j=de,E=0,jr=1,Vr=2,Le=class t{constructor(e,r,i){this._extensions=r||{},i&&(this._generateMask=i,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=E,this.onerror=qr,this[Wr]=void 0}static frame(e,r){let i,s=!1,n=2,o=!1;r.mask&&(i=r.maskBuffer||Gr,r.generateMask?r.generateMask(i):(j===de&&(I===void 0&&(I=Buffer.alloc(de)),Ar(I,0,de),j=0),i[0]=I[j++],i[1]=I[j++],i[2]=I[j++],i[3]=I[j++]),o=(i[0]|i[1]|i[2]|i[3])===0,n=6);let l;typeof e=="string"?(!r.mask||o)&&r[b]!==void 0?l=r[b]:(e=Buffer.from(e),l=e.length):(l=e.length,s=r.mask&&r.readOnly&&!o);let c=l;l>=65536?(n+=8,c=127):l>125&&(n+=2,c=126);let a=Buffer.allocUnsafe(s?l+n:n);return a[0]=r.fin?r.opcode|128:r.opcode,r.rsv1&&(a[0]|=64),a[1]=c,c===126?a.writeUInt16BE(l,2):c===127&&(a[2]=a[3]=0,a.writeUIntBE(l,4,6)),r.mask?(a[1]|=128,a[n-4]=i[0],a[n-3]=i[1],a[n-2]=i[2],a[n-1]=i[3],o?[a,e]:s?(gt(e,i,a,n,l),[a]):(gt(e,i,e,0,l),[a,e])):[a,e]}close(e,r,i,s){let n;if(e===void 0)n=Mr;else{if(typeof e!="number"||!$r(e))throw new TypeError("First argument must be a valid error code number");if(r===void 0||!r.length)n=Buffer.allocUnsafe(2),n.writeUInt16BE(e,0);else{let l=Buffer.byteLength(r);if(l>123)throw new RangeError("The message must not be greater than 123 bytes");n=Buffer.allocUnsafe(2+l),n.writeUInt16BE(e,0),typeof r=="string"?n.write(r,2):n.set(r,2)}}let o={[b]:n.length,fin:!0,generateMask:this._generateMask,mask:i,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==E?this.enqueue([this.dispatch,n,!1,o,s]):this.sendFrame(t.frame(n,o),s)}ping(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=R(e),s=e.length,n=R.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}pong(e,r,i){let s,n;if(typeof e=="string"?(s=Buffer.byteLength(e),n=!1):G(e)?(s=e.size,n=!1):(e=R(e),s=e.length,n=R.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[b]:s,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:n,rsv1:!1};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,!1,o,i]):this.getBlobData(e,!1,o,i):this._state!==E?this.enqueue([this.dispatch,e,!1,o,i]):this.sendFrame(t.frame(e,o),i)}send(e,r,i){let s=this._extensions[_t.extensionName],n=r.binary?2:1,o=r.compress,l,c;typeof e=="string"?(l=Buffer.byteLength(e),c=!1):G(e)?(l=e.size,c=!1):(e=R(e),l=e.length,c=R.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=l>=s._threshold),this._compress=o):(o=!1,n=0),r.fin&&(this._firstFragment=!0);let a={[b]:l,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:n,readOnly:c,rsv1:o};G(e)?this._state!==E?this.enqueue([this.getBlobData,e,this._compress,a,i]):this.getBlobData(e,this._compress,a,i):this._state!==E?this.enqueue([this.dispatch,e,this._compress,a,i]):this.dispatch(e,this._compress,a,i)}getBlobData(e,r,i,s){this._bufferedBytes+=i[b],this._state=Vr,e.arrayBuffer().then(n=>{if(this._socket.destroyed){let l=new Error("The socket was closed while the blob was being read");process.nextTick(Pe,this,l,s);return}this._bufferedBytes-=i[b];let o=R(n);r?this.dispatch(o,r,i,s):(this._state=E,this.sendFrame(t.frame(o,i),s),this.dequeue())}).catch(n=>{process.nextTick(Hr,this,n,s)})}dispatch(e,r,i,s){if(!r){this.sendFrame(t.frame(e,i),s);return}let n=this._extensions[_t.extensionName];this._bufferedBytes+=i[b],this._state=jr,n.compress(e,i.fin,(o,l)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Pe(this,c,s);return}this._bufferedBytes-=i[b],this._state=E,i.readOnly=!1,this.sendFrame(t.frame(l,i),s),this.dequeue()})}dequeue(){for(;this._state===E&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][b],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][b],this._queue.push(e)}sendFrame(e,r){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],r),this._socket.uncork()):this._socket.write(e[0],r)}};xt.exports=Le;function Pe(t,e,r){typeof r=="function"&&r(e);for(let i=0;i<t._queue.length;i++){let s=t._queue[i],n=s[s.length-1];typeof n=="function"&&n(e)}}function Hr(t,e,r){Pe(t,e,r),t.onerror(e)}});var kt=y((si,Tt)=>{"use strict";var{kForOnEventAttribute:Q,kListener:Ie}=T(),yt=Symbol("kCode"),vt=Symbol("kData"),St=Symbol("kError"),bt=Symbol("kMessage"),Et=Symbol("kReason"),V=Symbol("kTarget"),wt=Symbol("kType"),Nt=Symbol("kWasClean"),O=class{constructor(e){this[V]=null,this[wt]=e}get target(){return this[V]}get type(){return this[wt]}};Object.defineProperty(O.prototype,"target",{enumerable:!0});Object.defineProperty(O.prototype,"type",{enumerable:!0});var F=class extends O{constructor(e,r={}){super(e),this[yt]=r.code===void 0?0:r.code,this[Et]=r.reason===void 0?"":r.reason,this[Nt]=r.wasClean===void 0?!1:r.wasClean}get code(){return this[yt]}get reason(){return this[Et]}get wasClean(){return this[Nt]}};Object.defineProperty(F.prototype,"code",{enumerable:!0});Object.defineProperty(F.prototype,"reason",{enumerable:!0});Object.defineProperty(F.prototype,"wasClean",{enumerable:!0});var H=class extends O{constructor(e,r={}){super(e),this[St]=r.error===void 0?null:r.error,this[bt]=r.message===void 0?"":r.message}get error(){return this[St]}get message(){return this[bt]}};Object.defineProperty(H.prototype,"error",{enumerable:!0});Object.defineProperty(H.prototype,"message",{enumerable:!0});var ee=class extends O{constructor(e,r={}){super(e),this[vt]=r.data===void 0?null:r.data}get data(){return this[vt]}};Object.defineProperty(ee.prototype,"data",{enumerable:!0});var zr={addEventListener(t,e,r={}){for(let s of this.listeners(t))if(!r[Q]&&s[Ie]===e&&!s[Q])return;let i;if(t==="message")i=function(n,o){let l=new ee("message",{data:o?n:n.toString()});l[V]=this,he(e,this,l)};else if(t==="close")i=function(n,o){let l=new F("close",{code:n,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});l[V]=this,he(e,this,l)};else if(t==="error")i=function(n){let o=new H("error",{error:n,message:n.message});o[V]=this,he(e,this,o)};else if(t==="open")i=function(){let n=new O("open");n[V]=this,he(e,this,n)};else return;i[Q]=!!r[Q],i[Ie]=e,r.once?this.once(t,i):this.on(t,i)},removeEventListener(t,e){for(let r of this.listeners(t))if(r[Ie]===e&&!r[Q]){this.removeListener(t,r);break}}};Tt.exports={CloseEvent:F,ErrorEvent:H,Event:O,EventTarget:zr,MessageEvent:ee};function he(t,e,r){typeof t=="object"&&t.handleEvent?t.handleEvent.call(t,r):t.call(e,r)}});var Fe=y((ii,Ot)=>{"use strict";var{tokenChars:te}=$();function N(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Yr(t){let e=Object.create(null),r=Object.create(null),i=!1,s=!1,n=!1,o,l,c=-1,a=-1,f=-1,d=0;for(;d<t.length;d++)if(a=t.charCodeAt(d),o===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(d!==0&&(a===32||a===9))f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);a===44?(N(e,_,r),r=Object.create(null)):o=_,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);else if(l===void 0)if(f===-1&&te[a]===1)c===-1&&(c=d);else if(a===32||a===9)f===-1&&c!==-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d),N(r,t.slice(c,f),!0),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),c=f=-1}else if(a===61&&c!==-1&&f===-1)l=t.slice(c,d),c=f=-1;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(s){if(te[a]!==1)throw new SyntaxError(`Unexpected character at index ${d}`);c===-1?c=d:i||(i=!0),s=!1}else if(n)if(te[a]===1)c===-1&&(c=d);else if(a===34&&c!==-1)n=!1,f=d;else if(a===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${d}`);else if(a===34&&t.charCodeAt(d-1)===61)n=!0;else if(f===-1&&te[a]===1)c===-1&&(c=d);else if(c!==-1&&(a===32||a===9))f===-1&&(f=d);else if(a===59||a===44){if(c===-1)throw new SyntaxError(`Unexpected character at index ${d}`);f===-1&&(f=d);let _=t.slice(c,f);i&&(_=_.replace(/\\/g,""),i=!1),N(r,l,_),a===44&&(N(e,o,r),r=Object.create(null),o=void 0),l=void 0,c=f=-1}else throw new SyntaxError(`Unexpected character at index ${d}`);if(c===-1||n||a===32||a===9)throw new SyntaxError("Unexpected end of input");f===-1&&(f=d);let u=t.slice(c,f);return o===void 0?N(e,u,r):(l===void 0?N(r,u,!0):i?N(r,l,u.replace(/\\/g,"")):N(r,l,u),N(e,o,r)),e}function Kr(t){return Object.keys(t).map(e=>{let r=t[e];return Array.isArray(r)||(r=[r]),r.map(i=>[e].concat(Object.keys(i).map(s=>{let n=i[s];return Array.isArray(n)||(n=[n]),n.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}Ot.exports={format:Kr,parse:Yr}});var _e=y((ai,Wt)=>{"use strict";var Xr=require("events"),Zr=require("https"),Jr=require("http"),Lt=require("net"),Qr=require("tls"),{randomBytes:es,createHash:ts}=require("crypto"),{Duplex:ni,Readable:oi}=require("stream"),{URL:Ue}=require("url"),L=J(),rs=Be(),ss=Re(),{isBlob:is}=$(),{BINARY_TYPES:Ct,CLOSE_TIMEOUT:ns,EMPTY_BUFFER:ue,GUID:os,kForOnEventAttribute:De,kListener:as,kStatusCode:ls,kWebSocket:g,NOOP:Pt}=T(),{EventTarget:{addEventListener:cs,removeEventListener:fs}}=kt(),{format:ds,parse:hs}=Fe(),{toBuffer:us}=X(),Rt=Symbol("kAborted"),Ae=[8,13],C=["CONNECTING","OPEN","CLOSING","CLOSED"],ps=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,p=class t extends Xr{constructor(e,r,i){super(),this._binaryType=Ct[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=ue,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=t.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,r===void 0?r=[]:Array.isArray(r)||(typeof r=="object"&&r!==null?(i=r,r=[]):r=[r]),It(this,e,r,i)):(this._autoPong=i.autoPong,this._closeTimeout=i.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){Ct.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,r,i){let s=new rs({allowSynchronousEvents:i.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation}),n=new ss(e,this._extensions,i.generateMask);this._receiver=s,this._sender=n,this._socket=e,s[g]=this,n[g]=this,e[g]=this,s.on("conclude",gs),s.on("drain",xs),s.on("error",ys),s.on("message",vs),s.on("ping",Ss),s.on("pong",bs),n.onerror=Es,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),r.length>0&&e.unshift(r),e.on("close",Dt),e.on("data",me),e.on("end",At),e.on("error",Mt),this._readyState=t.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[L.extensionName]&&this._extensions[L.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=t.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,r){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===t.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=t.CLOSING,this._sender.close(e,r,!this._isServer,i=>{i||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Ut(this)}}pause(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.ping(e||ue,r,i)}pong(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(i=e,e=r=void 0):typeof r=="function"&&(i=r,r=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}r===void 0&&(r=!this._isServer),this._sender.pong(e||ue,r,i)}resume(){this.readyState===t.CONNECTING||this.readyState===t.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,r,i){if(this.readyState===t.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof r=="function"&&(i=r,r={}),typeof e=="number"&&(e=e.toString()),this.readyState!==t.OPEN){Me(this,e,i);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[L.extensionName]||(s.compress=!1),this._sender.send(e||ue,s,i)}terminate(){if(this.readyState!==t.CLOSED){if(this.readyState===t.CONNECTING){v(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=t.CLOSING,this._socket.destroy())}}};Object.defineProperty(p,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p.prototype,"CONNECTING",{enumerable:!0,value:C.indexOf("CONNECTING")});Object.defineProperty(p,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p.prototype,"OPEN",{enumerable:!0,value:C.indexOf("OPEN")});Object.defineProperty(p,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p.prototype,"CLOSING",{enumerable:!0,value:C.indexOf("CLOSING")});Object.defineProperty(p,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});Object.defineProperty(p.prototype,"CLOSED",{enumerable:!0,value:C.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(p.prototype,t,{enumerable:!0})});["open","error","close","message"].forEach(t=>{Object.defineProperty(p.prototype,`on${t}`,{enumerable:!0,get(){for(let e of this.listeners(t))if(e[De])return e[as];return null},set(e){for(let r of this.listeners(t))if(r[De]){this.removeListener(t,r);break}typeof e=="function"&&this.addEventListener(t,e,{[De]:!0})}})});p.prototype.addEventListener=cs;p.prototype.removeEventListener=fs;Wt.exports=p;function It(t,e,r,i){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:ns,protocolVersion:Ae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...i,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=s.autoPong,t._closeTimeout=s.closeTimeout,!Ae.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${Ae.join(", ")})`);let n;if(e instanceof Ue)n=e;else try{n=new Ue(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}n.protocol==="http:"?n.protocol="ws:":n.protocol==="https:"&&(n.protocol="wss:"),t._url=n.href;let o=n.protocol==="wss:",l=n.protocol==="ws+unix:",c;if(n.protocol!=="ws:"&&!o&&!l?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:l&&!n.pathname?c="The URL's pathname is empty":n.hash&&(c="The URL contains a fragment identifier"),c){let h=new SyntaxError(c);if(t._redirects===0)throw h;pe(t,h);return}let a=o?443:80,f=es(16).toString("base64"),d=o?Zr.request:Jr.request,u=new Set,_;if(s.createConnection=s.createConnection||(o?_s:ms),s.defaultPort=s.defaultPort||a,s.port=n.port||a,s.host=n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":f,Connection:"Upgrade",Upgrade:"websocket"},s.path=n.pathname+n.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(_=new L(s.perMessageDeflate!==!0?s.perMessageDeflate:{},!1,s.maxPayload),s.headers["Sec-WebSocket-Extensions"]=ds({[L.extensionName]:_.offer()})),r.length){for(let h of r){if(typeof h!="string"||!ps.test(h)||u.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");u.add(h)}s.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(n.username||n.password)&&(s.auth=`${n.username}:${n.password}`),l){let h=s.path.split(":");s.socketPath=h[0],s.path=h[1]}let m;if(s.followRedirects){if(t._redirects===0){t._originalIpc=l,t._originalSecure=o,t._originalHostOrSocketPath=l?s.socketPath:n.host;let h=i&&i.headers;if(i={...i,headers:{}},h)for(let[x,A]of Object.entries(h))i.headers[x.toLowerCase()]=A}else if(t.listenerCount("redirect")===0){let h=l?t._originalIpc?s.socketPath===t._originalHostOrSocketPath:!1:t._originalIpc?!1:n.host===t._originalHostOrSocketPath;(!h||t._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,h||delete s.headers.host,s.auth=void 0)}s.auth&&!i.headers.authorization&&(i.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),m=t._req=d(s),t._redirects&&t.emit("redirect",t.url,m)}else m=t._req=d(s);s.timeout&&m.on("timeout",()=>{v(t,m,"Opening handshake has timed out")}),m.on("error",h=>{m===null||m[Rt]||(m=t._req=null,pe(t,h))}),m.on("response",h=>{let x=h.headers.location,A=h.statusCode;if(x&&s.followRedirects&&A>=300&&A<400){if(++t._redirects>s.maxRedirects){v(t,m,"Maximum redirects exceeded");return}m.abort();let Y;try{Y=new Ue(x,e)}catch{let M=new SyntaxError(`Invalid URL: ${x}`);pe(t,M);return}It(t,Y,r,i)}else t.emit("unexpected-response",m,h)||v(t,m,`Unexpected server response: ${h.statusCode}`)}),m.on("upgrade",(h,x,A)=>{if(t.emit("upgrade",h),t.readyState!==p.CONNECTING)return;m=t._req=null;let Y=h.headers.upgrade;if(Y===void 0||Y.toLowerCase()!=="websocket"){v(t,x,"Invalid Upgrade header");return}let He=ts("sha1").update(f+os).digest("base64");if(h.headers["sec-websocket-accept"]!==He){v(t,x,"Invalid Sec-WebSocket-Accept header");return}let M=h.headers["sec-websocket-protocol"],K;if(M!==void 0?u.size?u.has(M)||(K="Server sent an invalid subprotocol"):K="Server sent a subprotocol but none was requested":u.size&&(K="Server sent no subprotocol"),K){v(t,x,K);return}M&&(t._protocol=M);let ze=h.headers["sec-websocket-extensions"];if(ze!==void 0){if(!_){v(t,x,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=hs(ze)}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}let Ye=Object.keys(xe);if(Ye.length!==1||Ye[0]!==L.extensionName){v(t,x,"Server indicated an extension that was not requested");return}try{_.accept(xe[L.extensionName])}catch{v(t,x,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[L.extensionName]=_}t.setSocket(x,A,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(m,t):m.end()}function pe(t,e){t._readyState=p.CLOSING,t._errorEmitted=!0,t.emit("error",e),t.emitClose()}function ms(t){return t.path=t.socketPath,Lt.connect(t)}function _s(t){return t.path=void 0,!t.servername&&t.servername!==""&&(t.servername=Lt.isIP(t.host)?"":t.host),Qr.connect(t)}function v(t,e,r){t._readyState=p.CLOSING;let i=new Error(r);Error.captureStackTrace(i,v),e.setHeader?(e[Rt]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(pe,t,i)):(e.destroy(i),e.once("error",t.emit.bind(t,"error")),e.once("close",t.emitClose.bind(t)))}function Me(t,e,r){if(e){let i=is(e)?e.size:us(e).length;t._socket?t._sender._bufferedBytes+=i:t._bufferedAmount+=i}if(r){let i=new Error(`WebSocket is not open: readyState ${t.readyState} (${C[t.readyState]})`);process.nextTick(r,i)}}function gs(t,e){let r=this[g];r._closeFrameReceived=!0,r._closeMessage=e,r._closeCode=t,r._socket[g]!==void 0&&(r._socket.removeListener("data",me),process.nextTick(Ft,r._socket),t===1005?r.close():r.close(t,e))}function xs(){let t=this[g];t.isPaused||t._socket.resume()}function ys(t){let e=this[g];e._socket[g]!==void 0&&(e._socket.removeListener("data",me),process.nextTick(Ft,e._socket),e.close(t[ls])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t))}function Bt(){this[g].emitClose()}function vs(t,e){this[g].emit("message",t,e)}function Ss(t){let e=this[g];e._autoPong&&e.pong(t,!this._isServer,Pt),e.emit("ping",t)}function bs(t){this[g].emit("pong",t)}function Ft(t){t.resume()}function Es(t){let e=this[g];e.readyState!==p.CLOSED&&(e.readyState===p.OPEN&&(e._readyState=p.CLOSING,Ut(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",t)))}function Ut(t){t._closeTimer=setTimeout(t._socket.destroy.bind(t._socket),t._closeTimeout)}function Dt(){let t=this[g];if(this.removeListener("close",Dt),this.removeListener("data",me),this.removeListener("end",At),t._readyState=p.CLOSING,!this._readableState.endEmitted&&!t._closeFrameReceived&&!t._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);t._receiver.write(e)}t._receiver.end(),this[g]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",Bt),t._receiver.on("finish",Bt))}function me(t){this[g]._receiver.write(t)||this.pause()}function At(){let t=this[g];t._readyState=p.CLOSING,t._receiver.end(),this.end()}function Mt(){let t=this[g];this.removeListener("error",Mt),this.on("error",Pt),t&&(t._readyState=p.CLOSING,this.destroy())}});var jt=y((ci,Gt)=>{"use strict";var li=_e(),{Duplex:ws}=require("stream");function qt(t){t.emit("close")}function Ns(){!this.destroyed&&this._writableState.finished&&this.destroy()}function $t(t){this.removeListener("error",$t),this.destroy(),this.listenerCount("error")===0&&this.emit("error",t)}function Ts(t,e){let r=!0,i=new ws({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return t.on("message",function(n,o){let l=!o&&i._readableState.objectMode?n.toString():n;i.push(l)||t.pause()}),t.once("error",function(n){i.destroyed||(r=!1,i.destroy(n))}),t.once("close",function(){i.destroyed||i.push(null)}),i._destroy=function(s,n){if(t.readyState===t.CLOSED){n(s),process.nextTick(qt,i);return}let o=!1;t.once("error",function(c){o=!0,n(c)}),t.once("close",function(){o||n(s),process.nextTick(qt,i)}),r&&t.terminate()},i._final=function(s){if(t.readyState===t.CONNECTING){t.once("open",function(){i._final(s)});return}t._socket!==null&&(t._socket._writableState.finished?(s(),i._readableState.endEmitted&&i.destroy()):(t._socket.once("finish",function(){s()}),t.close()))},i._read=function(){t.isPaused&&t.resume()},i._write=function(s,n,o){if(t.readyState===t.CONNECTING){t.once("open",function(){i._write(s,n,o)});return}t.send(s,o)},i.on("end",Ns),i.on("error",$t),i}Gt.exports=Ts});var Ht=y((fi,Vt)=>{"use strict";var{tokenChars:ks}=$();function Os(t){let e=new Set,r=-1,i=-1,s=0;for(s;s<t.length;s++){let o=t.charCodeAt(s);if(i===-1&&ks[o]===1)r===-1&&(r=s);else if(s!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=s);else if(o===44){if(r===-1)throw new SyntaxError(`Unexpected character at index ${s}`);i===-1&&(i=s);let l=t.slice(r,i);if(e.has(l))throw new SyntaxError(`The "${l}" subprotocol is duplicated`);e.add(l),r=i=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(r===-1||i!==-1)throw new SyntaxError("Unexpected end of input");let n=t.slice(r,s);if(e.has(n))throw new SyntaxError(`The "${n}" subprotocol is duplicated`);return e.add(n),e}Vt.exports={parse:Os}});var Qt=y((hi,Jt)=>{"use strict";var Cs=require("events"),ge=require("http"),{Duplex:di}=require("stream"),{createHash:Bs}=require("crypto"),zt=Fe(),U=J(),Ls=Ht(),Ps=_e(),{CLOSE_TIMEOUT:Rs,GUID:Is,kWebSocket:Fs}=T(),Us=/^[+/0-9A-Za-z]{22}==$/,Yt=0,Kt=1,Zt=2,We=class extends Cs{constructor(e,r){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:Rs,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:Ps,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=ge.createServer((i,s)=>{let n=ge.STATUS_CODES[426];s.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),s.end(n)}),this._server.listen(e.port,e.host,e.backlog,r)):e.server&&(this._server=e.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=Ds(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,n,o)=>{this.handleUpgrade(s,n,o,i)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Yt}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===Zt){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(re,this);return}if(e&&this.once("close",e),this._state!==Kt)if(this._state=Kt,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(re,this):process.nextTick(re,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{re(this)})}}shouldHandle(e){if(this.options.path){let r=e.url.indexOf("?");if((r!==-1?e.url.slice(0,r):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,r,i,s){r.on("error",Xt);let n=e.headers["sec-websocket-key"],o=e.headers.upgrade,l=+e.headers["sec-websocket-version"];if(e.method!=="GET"){D(this,e,r,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){D(this,e,r,400,"Invalid Upgrade header");return}if(n===void 0||!Us.test(n)){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Key header");return}if(l!==13&&l!==8){D(this,e,r,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){se(r,400);return}let c=e.headers["sec-websocket-protocol"],a=new Set;if(c!==void 0)try{a=Ls.parse(c)}catch{D(this,e,r,400,"Invalid Sec-WebSocket-Protocol header");return}let f=e.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&f!==void 0){let u=new U(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let _=zt.parse(f);_[U.extensionName]&&(u.accept(_[U.extensionName]),d[U.extensionName]=u)}catch{D(this,e,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let u={origin:e.headers[`${l===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(u,(_,m,h,x)=>{if(!_)return se(r,m||401,h,x);this.completeUpgrade(d,n,a,e,r,i,s)});return}if(!this.options.verifyClient(u))return se(r,401)}this.completeUpgrade(d,n,a,e,r,i,s)}completeUpgrade(e,r,i,s,n,o,l){if(!n.readable||!n.writable)return n.destroy();if(n[Fs])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Yt)return se(n,503);let a=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${Bs("sha1").update(r+Is).digest("base64")}`],f=new this.options.WebSocket(null,void 0,this.options);if(i.size){let d=this.options.handleProtocols?this.options.handleProtocols(i,s):i.values().next().value;d&&(a.push(`Sec-WebSocket-Protocol: ${d}`),f._protocol=d)}if(e[U.extensionName]){let d=e[U.extensionName].params,u=zt.format({[U.extensionName]:[d]});a.push(`Sec-WebSocket-Extensions: ${u}`),f._extensions=e}this.emit("headers",a,s),n.write(a.concat(`\r
3
3
  `).join(`\r
4
4
  `)),n.removeListener("error",Xt),f.setSocket(n,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(f),f.on("close",()=>{this.clients.delete(f),this._shouldEmitClose&&!this.clients.size&&process.nextTick(re,this)})),l(f,s)}};Jt.exports=We;function Ds(t,e){for(let r of Object.keys(e))t.on(r,e[r]);return function(){for(let i of Object.keys(e))t.removeListener(i,e[i])}}function re(t){t._state=Zt,t.emit("close")}function Xt(){this.destroy()}function se(t,e,r,i){r=r||ge.STATUS_CODES[e],i={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...i},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${e} ${ge.STATUS_CODES[e]}\r
5
5
  `+Object.keys(i).map(s=>`${s}: ${i[s]}`).join(`\r
6
6
  `)+`\r
7
7
  \r
8
- `+r)}function D(t,e,r,i,s,n){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,D),t.emit("wsClientError",o,r,e)}else se(r,i,s,n)}});var er=w(require("http"),1),$e=w(require("fs"),1),Ge=w(require("path"),1);var As=w(jt(),1),Ms=w(Be(),1),Ws=w(Ie(),1),qs=w(_e(),1),qe=w(Qt(),1);function tr(t=3e3){let e=er.default.createServer((i,s)=>{if(i.url==="/"||i.url==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end($s(t));return}if(i.url?.startsWith("/dist/")){let n=i.url.replace("/dist/",""),o=Ge.default.resolve(__dirname,"..","..","dist",n);try{if($e.default.existsSync(o)){let l=$e.default.readFileSync(o),c=Ge.default.extname(o),a={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":a[c]||"text/plain"}),s.end(l)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")}),r=new qe.default({server:e});r.on("connection",i=>{i.on("message",s=>{let n=s.toString();try{if(JSON.parse(n).type==="PING")return}catch{}r.clients.forEach(o=>{o!==i&&o.readyState===1&&o.send(n)})})}),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}function $s(t){return`
8
+ `+r)}function D(t,e,r,i,s,n){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,D),t.emit("wsClientError",o,r,e)}else se(r,i,s,n)}});var er=w(require("http"),1),$e=w(require("fs"),1),Ge=w(require("path"),1);var As=w(jt(),1),Ms=w(Be(),1),Ws=w(Re(),1),qs=w(_e(),1),qe=w(Qt(),1);var $s=t=>t.type==="PING";function tr(t=3e3){let e=er.default.createServer((i,s)=>{if(i.url==="/"||i.url==="/index.html"){s.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),s.end(Gs(t));return}if(i.url?.startsWith("/dist/")){let n=i.url.replace("/dist/",""),o=Ge.default.resolve(__dirname,"..","..","dist",n);try{if($e.default.existsSync(o)){let l=$e.default.readFileSync(o),c=Ge.default.extname(o),a={".js":"application/javascript",".css":"text/css"};s.writeHead(200,{"Content-Type":a[c]||"text/plain"}),s.end(l)}else s.writeHead(404),s.end("Not Found")}catch{s.writeHead(500),s.end("Internal Error")}return}s.writeHead(404),s.end("Not Found")}),r=new qe.default({server:e});r.on("connection",i=>{i.on("message",s=>{let n=s.toString();try{let o=JSON.parse(n);if($s(o))return}catch{}r.clients.forEach(o=>{o!==i&&o.readyState===1&&o.send(n)})})}),e.listen(t,()=>{console.log(`\u{1F680} BitForm DevServer rodando em http://localhost:${t}`)})}function Gs(t){return`
9
9
  <!DOCTYPE html>
10
10
  <html lang="pt-BR">
11
11
  <head>
@@ -486,7 +486,7 @@ export function BitFormRadioGroup({
486
486
  </div>
487
487
  );
488
488
  }
489
- `}var je={input:rr,textarea:sr,select:ir,checkbox:nr,switch:or,"radio-group":ar},Ve=Object.keys(je);var lr={name:"shadcn",framework:"react",components:Ve,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),i=je[r];if(!i)throw new Error(`Unknown shadcn component: ${t}. Available: ${Ve.join(", ")}`);let s=i(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:s}}};var Gs={shadcn:lr};function cr(t){return Gs[t.toLowerCase()]}var js="@/components/ui";function Vs(t){let e=t[0]??"",r=t.slice(1),i=".",s=js,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];a==="--path"&&r[c+1]?i=r[++c]:a==="--ui-path"&&r[c+1]?s=r[++c]:a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")||l.push(a)}return{adapter:e,components:l,flags:{path:i,uiPath:s,overwrite:n,yes:o}}}function Hs(t){let e=ie.join(t,"components.json");try{return P.accessSync(e),!0}catch{return!1}}function fr(t){let{adapter:e,components:r,flags:i}=Vs(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let s=cr(e);if(!s)throw new Error(`bit-form add: unknown adapter "${e}". Available: shadcn`);let n=r.length>0?r:s.components;if(n.length===0)throw new Error("bit-form add: specify at least one component or use no arguments to add all.");let o=process.cwd(),l=ie.resolve(o,i.path);s.name==="shadcn"&&!Hs(o)&&console.warn("Warning: components.json not found in project root. Make sure shadcn/ui is initialized (e.g. npx shadcn@latest init) or pass --ui-path to match your setup.");try{P.mkdirSync(l,{recursive:!0})}catch(a){throw new Error(`bit-form add: could not create output directory: ${a.message}`)}let c={cwd:o,path:l,uiPath:i.uiPath,overwrite:i.overwrite,yes:i.yes};for(let a of n){let{filename:f,contents:d}=s.renderComponent(a,c),u=ie.join(l,f);if(!i.overwrite&&P.existsSync(u)){console.log(`Skip ${f} (exists; use --overwrite to replace)`);continue}P.writeFileSync(u,d,"utf-8"),console.log(`Created ${f}`)}}var z=process.argv.slice(2),dr=z[0];if(dr==="devtools"){let t=z.indexOf("-p")!==-1?z.indexOf("-p"):z.indexOf("--port"),e=t!==-1?Number(z[t+1]):3e3;tr(e)}else if(dr==="add")try{fr(z.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
489
+ `}var je={input:rr,textarea:sr,select:ir,checkbox:nr,switch:or,"radio-group":ar},Ve=Object.keys(je);var lr={name:"shadcn",framework:"react",components:Ve,renderComponent(t,e){let r=t.toLowerCase().replace(/\s+/g,"-"),i=je[r];if(!i)throw new Error(`Unknown shadcn component: ${t}. Available: ${Ve.join(", ")}`);let s=i(e.uiPath);return{filename:r==="radio-group"?"bit-form-radio-group.tsx":`bit-form-${r}.tsx`,contents:s}}};var js={shadcn:lr};function cr(t){return js[t.toLowerCase()]}var Vs="@/components/ui";function Hs(t){let e=t[0]??"",r=t.slice(1),i=".",s=Vs,n=!1,o=!1,l=[];for(let c=0;c<r.length;c++){let a=r[c];a==="--path"&&r[c+1]?i=r[++c]:a==="--ui-path"&&r[c+1]?s=r[++c]:a==="--overwrite"?n=!0:a==="--yes"||a==="-y"?o=!0:a.startsWith("--")||l.push(a)}return{adapter:e,components:l,flags:{path:i,uiPath:s,overwrite:n,yes:o}}}function zs(t){let e=ie.join(t,"components.json");try{return P.accessSync(e),!0}catch{return!1}}function fr(t){let{adapter:e,components:r,flags:i}=Hs(t);if(!e)throw new Error("bit-form add: missing adapter name. Example: bit-form add shadcn input");let s=cr(e);if(!s)throw new Error(`bit-form add: unknown adapter "${e}". Available: shadcn`);let n=r.length>0?r:s.components;if(n.length===0)throw new Error("bit-form add: specify at least one component or use no arguments to add all.");let o=process.cwd(),l=ie.resolve(o,i.path);s.name==="shadcn"&&!zs(o)&&console.warn("Warning: components.json not found in project root. Make sure shadcn/ui is initialized (e.g. npx shadcn@latest init) or pass --ui-path to match your setup.");try{P.mkdirSync(l,{recursive:!0})}catch(a){throw new Error(`bit-form add: could not create output directory: ${a.message}`)}let c={cwd:o,path:l,uiPath:i.uiPath,overwrite:i.overwrite,yes:i.yes};for(let a of n){let{filename:f,contents:d}=s.renderComponent(a,c),u=ie.join(l,f);if(!i.overwrite&&P.existsSync(u)){console.log(`Skip ${f} (exists; use --overwrite to replace)`);continue}P.writeFileSync(u,d,"utf-8"),console.log(`Created ${f}`)}}var z=process.argv.slice(2),dr=z[0];if(dr==="devtools"){let t=z.indexOf("-p")!==-1?z.indexOf("-p"):z.indexOf("--port"),e=t!==-1?Number(z[t+1]):3e3;tr(e)}else if(dr==="add")try{fr(z.slice(1))}catch(t){console.error(t.message),process.exit(1)}else console.log(`
490
490
  \u{1F6E0} Bit-Form CLI
491
491
 
492
492
  Uso:
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk676WXU4Scjs = require('../chunk-676WXU4S.cjs');exports.cleanPrefixedKeys = _chunk676WXU4Scjs.h; exports.createBitStore = _chunk676WXU4Scjs.Z; exports.deepClone = _chunk676WXU4Scjs.b; exports.deepEqual = _chunk676WXU4Scjs.e; exports.deepMerge = _chunk676WXU4Scjs.c; exports.extractServerErrors = _chunk676WXU4Scjs.j; exports.getDeepValue = _chunk676WXU4Scjs.f; exports.isValidationErrorShape = _chunk676WXU4Scjs.i; exports.setDeepValue = _chunk676WXU4Scjs.g; exports.valueEqual = _chunk676WXU4Scjs.d;
2
+ //# sourceMappingURL=light.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/core/light.cjs"],"names":[],"mappings":"AAAA,kIAAwG,ocAAyM","file":"/home/runner/work/bit-form/bit-form/dist/core/light.cjs"}
@@ -0,0 +1,29 @@
1
+ import { B as BitConfig } from '../types-DqeN9Kq_.cjs';
2
+ export { q as BitAfterSubmitEvent, r as BitAfterValidateEvent, l as BitArrayItem, k as BitArrayPath, s as BitBeforeSubmitEvent, t as BitBeforeValidateEvent, u as BitComputedFn, i as BitErrors, v as BitFieldChangeEvent, w as BitFieldChangeMeta, x as BitFieldConditional, b as BitFieldDefinition, m as BitFieldState, y as BitFieldValidation, z as BitHistoryConfig, f as BitPath, g as BitPathValue, A as BitPersistConfig, E as BitPersistMode, F as BitPersistStorageAdapter, d as BitPlugin, G as BitPluginContext, H as BitPluginErrorEvent, I as BitPluginHooks, e as BitState, J as BitTouched, K as BitTransformFn, L as BitValidationConfig, h as DeepPartial, S as ScopeStatus, n as ValidateScopeResult, V as ValidatorFn } from '../types-DqeN9Kq_.cjs';
3
+ import { f as BitStoreApi } from '../public-types-CLIDR8aC.cjs';
4
+ export { B as BitEqualityFn, a as BitFrameworkConfig, b as BitHistoryMetadata, c as BitPersistMetadata, d as BitSelector, e as BitSelectorSubscriptionOptions, g as BitStoreHooksApi, h as BitValidationOptions } from '../public-types-CLIDR8aC.cjs';
5
+
6
+ declare function createBitStore<T extends object = any>(config?: BitConfig<T>): BitStoreApi<T>;
7
+
8
+ declare function deepClone<T>(obj: T): T;
9
+ declare function deepMerge<T>(target: T, source: any): T;
10
+ /**
11
+ * Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
12
+ * Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
13
+ */
14
+ declare function valueEqual(a: any, b: any): boolean;
15
+ declare function deepEqual(a: any, b: any): boolean;
16
+ declare function getDeepValue(obj: any, path: string): any;
17
+ declare function setDeepValue(obj: any, path: string, value: any): any;
18
+ declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
19
+ /**
20
+ * Checks if a value looks like a server validation error response.
21
+ * Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
22
+ */
23
+ declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
24
+ /**
25
+ * Extracts server errors in the format expected by setServerErrors.
26
+ */
27
+ declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
28
+
29
+ export { BitConfig, BitStoreApi, cleanPrefixedKeys, createBitStore, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, setDeepValue, valueEqual };
@@ -0,0 +1,29 @@
1
+ import { B as BitConfig } from '../types-DqeN9Kq_.js';
2
+ export { q as BitAfterSubmitEvent, r as BitAfterValidateEvent, l as BitArrayItem, k as BitArrayPath, s as BitBeforeSubmitEvent, t as BitBeforeValidateEvent, u as BitComputedFn, i as BitErrors, v as BitFieldChangeEvent, w as BitFieldChangeMeta, x as BitFieldConditional, b as BitFieldDefinition, m as BitFieldState, y as BitFieldValidation, z as BitHistoryConfig, f as BitPath, g as BitPathValue, A as BitPersistConfig, E as BitPersistMode, F as BitPersistStorageAdapter, d as BitPlugin, G as BitPluginContext, H as BitPluginErrorEvent, I as BitPluginHooks, e as BitState, J as BitTouched, K as BitTransformFn, L as BitValidationConfig, h as DeepPartial, S as ScopeStatus, n as ValidateScopeResult, V as ValidatorFn } from '../types-DqeN9Kq_.js';
3
+ import { f as BitStoreApi } from '../public-types-Bl94ECPb.js';
4
+ export { B as BitEqualityFn, a as BitFrameworkConfig, b as BitHistoryMetadata, c as BitPersistMetadata, d as BitSelector, e as BitSelectorSubscriptionOptions, g as BitStoreHooksApi, h as BitValidationOptions } from '../public-types-Bl94ECPb.js';
5
+
6
+ declare function createBitStore<T extends object = any>(config?: BitConfig<T>): BitStoreApi<T>;
7
+
8
+ declare function deepClone<T>(obj: T): T;
9
+ declare function deepMerge<T>(target: T, source: any): T;
10
+ /**
11
+ * Fast equality for single values. Uses === for primitives, deepEqual for objects/arrays.
12
+ * Prefer over deepEqual when comparing a single field value (e.g. isFieldDirty, getStepStatus).
13
+ */
14
+ declare function valueEqual(a: any, b: any): boolean;
15
+ declare function deepEqual(a: any, b: any): boolean;
16
+ declare function getDeepValue(obj: any, path: string): any;
17
+ declare function setDeepValue(obj: any, path: string, value: any): any;
18
+ declare function cleanPrefixedKeys(obj: Record<string, any>, prefix: string): Record<string, any>;
19
+ /**
20
+ * Checks if a value looks like a server validation error response.
21
+ * Handles shapes like { email: "Taken" }, { errors: { email: ["Taken"] } }, etc.
22
+ */
23
+ declare function isValidationErrorShape(x: unknown): x is Record<string, string | string[]>;
24
+ /**
25
+ * Extracts server errors in the format expected by setServerErrors.
26
+ */
27
+ declare function extractServerErrors(x: unknown): Record<string, string | string[]>;
28
+
29
+ export { BitConfig, BitStoreApi, cleanPrefixedKeys, createBitStore, deepClone, deepEqual, deepMerge, extractServerErrors, getDeepValue, isValidationErrorShape, setDeepValue, valueEqual };
@@ -0,0 +1,2 @@
1
+ import{Z as s,b as t,c as e,d as i,e as r,f as o,g as a,h as B,i as n,j as l}from"../chunk-2UVV7SU4.js";export{B as cleanPrefixedKeys,s as createBitStore,t as deepClone,r as deepEqual,e as deepMerge,l as extractServerErrors,o as getDeepValue,n as isValidationErrorShape,a as setDeepValue,i as valueEqual};
2
+ //# sourceMappingURL=light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYWXX6XRVcjs = require('../chunk-YWXX6XRV.cjs');exports.setupRemoteBridge = _chunkYWXX6XRVcjs.U;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../chunk-C4BYXZGB.cjs');var _chunk676WXU4Scjs = require('../chunk-676WXU4S.cjs');var S=o=>{let e=typeof o.getState=="function"?o.getState():o,t=_optionalChain([o, 'optionalAccess', _ => _.getHistoryMetadata, 'optionalCall', _2 => _2()])||{canUndo:!1,canRedo:!1,historyIndex:-1,historySize:0};return{...e,_meta:{canUndo:t.canUndo,canRedo:t.canRedo,totalSteps:t.historySize,currentIndex:t.historyIndex}}},l=null,m=o=>{if(!o||typeof o!="object")return!1;let{storeId:e,action:t}=o;return typeof e=="string"&&(t==="undo"||t==="redo"||t==="reset")};function v(o){l&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),l());let e=null,t=null,d,f=!1,u=()=>{f=!1,e=new WebSocket(o),e.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket.");let i=Object.entries(_chunk676WXU4Scjs.a.stores);if(i.length>0){let n=i.reduce((r,[s,a])=>(r[s]=S(a),r),{});_optionalChain([e, 'optionalAccess', _3 => _3.send, 'call', _4 => _4(JSON.stringify({type:"STATE_UPDATE",payload:n}))])}t=_chunk676WXU4Scjs.a.subscribe((n,r)=>{if(_optionalChain([e, 'optionalAccess', _5 => _5.readyState])===WebSocket.OPEN){let s=_chunk676WXU4Scjs.a.stores[n];s&&e.send(JSON.stringify({type:"STATE_UPDATE",payload:{[n]:S(s)}}))}}),d=setInterval(()=>{_optionalChain([e, 'optionalAccess', _6 => _6.readyState])===WebSocket.OPEN&&e.send(JSON.stringify({type:"PING"}))},3e4)},e.onmessage=i=>{try{let n=JSON.parse(i.data);if(n.type==="ACTION"){if(!m(n.payload))return;let{storeId:r,action:s}=n.payload,a=_chunk676WXU4Scjs.a.stores[r];if(!a||typeof a!="object")return;let p=a[{undo:"undo",redo:"redo",reset:"reset"}[s]];typeof p=="function"&&p.call(a)}}catch(n){console.warn("[bit-form] Erro ao processar comando do CLI:",n)}},e.onclose=()=>{t&&t(),clearInterval(d),f?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(u,3e3))}};u();let y=()=>{f=!0,t&&t(),clearInterval(d),e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING)&&e.close(),l=null};return l=y,y}exports.setupRemoteBridge = v;
2
2
  //# sourceMappingURL=bridge.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"],"names":[],"mappings":"AAAA,kIAAyC,gDAA+B","file":"/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs","../../src/devtools/bridge.ts"],"names":["formatStoreState","instance","cleanState","historyMeta","activeBridgeCleanup","isDevToolsActionPayload","payload","storeId","action","setupRemoteBridge","url","socket","unsubscribeBus","heartbeatInterval","isIntentionalDisconnect","connect","storesEntries","bitBus","initialState","acc","id","store","_newState","storeInstance","event","message","method","e","cleanup"],"mappings":"AAAA,8mBAA6B,yDAA0C,ICGjEA,CAAAA,CAAoBC,CAAAA,EAAkB,CAC1C,IAAMC,CAAAA,CACJ,OAAOD,CAAAA,CAAS,QAAA,EAAa,UAAA,CAAaA,CAAAA,CAAS,QAAA,CAAS,CAAA,CAAIA,CAAAA,CAE5DE,CAAAA,iBAAcF,CAAAA,2BAAU,kBAAA,0BAAA,CAAqB,GAAA,EAAK,CACtD,OAAA,CAAS,CAAA,CAAA,CACT,OAAA,CAAS,CAAA,CAAA,CACT,YAAA,CAAc,CAAA,CAAA,CACd,WAAA,CAAa,CACf,CAAA,CAEA,MAAO,CACL,GAAGC,CAAAA,CACH,KAAA,CAAO,CACL,OAAA,CAASC,CAAAA,CAAY,OAAA,CACrB,OAAA,CAASA,CAAAA,CAAY,OAAA,CACrB,UAAA,CAAYA,CAAAA,CAAY,WAAA,CACxB,YAAA,CAAcA,CAAAA,CAAY,YAC5B,CACF,CACF,CAAA,CAEIC,CAAAA,CAA2C,IAAA,CAEzCC,CAAAA,CACJC,CAAAA,EACqC,CACrC,EAAA,CAAI,CAACA,CAAAA,EAAW,OAAOA,CAAAA,EAAY,QAAA,CAAU,MAAO,CAAA,CAAA,CAEpD,GAAM,CAAE,OAAA,CAAAC,CAAAA,CAAS,MAAA,CAAAC,CAAO,CAAA,CAAIF,CAAAA,CAK5B,OACE,OAAOC,CAAAA,EAAY,QAAA,EAAA,CAClBC,CAAAA,GAAW,MAAA,EAAUA,CAAAA,GAAW,MAAA,EAAUA,CAAAA,GAAW,OAAA,CAE1D,CAAA,CAEO,SAASC,CAAAA,CAAkBC,CAAAA,CAAa,CACzCN,CAAAA,EAAAA,CACF,OAAA,CAAQ,IAAA,CACN,oEACF,CAAA,CACAA,CAAAA,CAAoB,CAAA,CAAA,CAGtB,IAAIO,CAAAA,CAA2B,IAAA,CAC3BC,CAAAA,CAAsC,IAAA,CACtCC,CAAAA,CACAC,CAAAA,CAA0B,CAAA,CAAA,CAExBC,CAAAA,CAAU,CAAA,CAAA,EAAM,CACpBD,CAAAA,CAA0B,CAAA,CAAA,CAC1BH,CAAAA,CAAS,IAAI,SAAA,CAAUD,CAAG,CAAA,CAE1BC,CAAAA,CAAO,MAAA,CAAS,CAAA,CAAA,EAAM,CACpB,OAAA,CAAQ,GAAA,CAAI,+DAAwD,CAAA,CAEpE,IAAMK,CAAAA,CAAgB,MAAA,CAAO,OAAA,CAAQC,mBAAAA,CAAO,MAAM,CAAA,CAClD,EAAA,CAAID,CAAAA,CAAc,MAAA,CAAS,CAAA,CAAG,CAC5B,IAAME,CAAAA,CAAeF,CAAAA,CAAc,MAAA,CACjC,CAACG,CAAAA,CAAK,CAACC,CAAAA,CAAIC,CAAK,CAAA,CAAA,EAAA,CACdF,CAAAA,CAAIC,CAAE,CAAA,CAAIpB,CAAAA,CAAiBqB,CAAK,CAAA,CACzBF,CAAAA,CAAAA,CAET,CAAC,CACH,CAAA,iBAEAR,CAAAA,6BAAQ,IAAA,mBACN,IAAA,CAAK,SAAA,CAAU,CAAE,IAAA,CAAM,cAAA,CAAgB,OAAA,CAASO,CAAa,CAAC,CAChE,GACF,CAEAN,CAAAA,CAAiBK,mBAAAA,CAAO,SAAA,CAAU,CAACV,CAAAA,CAASe,CAAAA,CAAAA,EAAc,CACxD,EAAA,iBAAIX,CAAAA,6BAAQ,YAAA,GAAe,SAAA,CAAU,IAAA,CAAM,CACzC,IAAMY,CAAAA,CAAgBN,mBAAAA,CAAO,MAAA,CAAOV,CAAO,CAAA,CACvCgB,CAAAA,EACFZ,CAAAA,CAAO,IAAA,CACL,IAAA,CAAK,SAAA,CAAU,CACb,IAAA,CAAM,cAAA,CACN,OAAA,CAAS,CAAE,CAACJ,CAAO,CAAA,CAAGP,CAAAA,CAAiBuB,CAAa,CAAE,CACxD,CAAC,CACH,CAEJ,CACF,CAAC,CAAA,CAEDV,CAAAA,CAAoB,WAAA,CAAY,CAAA,CAAA,EAAM,iBAChCF,CAAAA,6BAAQ,YAAA,GAAe,SAAA,CAAU,IAAA,EACnCA,CAAAA,CAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,CAAE,IAAA,CAAM,MAAO,CAAC,CAAC,CAEhD,CAAA,CAAG,GAAK,CACV,CAAA,CAEAA,CAAAA,CAAO,SAAA,CAAaa,CAAAA,EAAU,CAC5B,GAAI,CACF,IAAMC,CAAAA,CAAU,IAAA,CAAK,KAAA,CAAMD,CAAAA,CAAM,IAAI,CAAA,CAKrC,EAAA,CAAIC,CAAAA,CAAQ,IAAA,GAAS,QAAA,CAAU,CAC7B,EAAA,CAAI,CAACpB,CAAAA,CAAwBoB,CAAAA,CAAQ,OAAO,CAAA,CAC1C,MAAA,CAGF,GAAM,CAAE,OAAA,CAAAlB,CAAAA,CAAS,MAAA,CAAAC,CAAO,CAAA,CAAIiB,CAAAA,CAAQ,OAAA,CAE9BJ,CAAAA,CAAQJ,mBAAAA,CAAO,MAAA,CAAOV,CAAO,CAAA,CAEnC,EAAA,CAAI,CAACc,CAAAA,EAAS,OAAOA,CAAAA,EAAU,QAAA,CAC7B,MAAA,CASF,IAAMK,CAAAA,CAAUL,CAAAA,CAN2C,CACzD,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,MAAA,CACN,KAAA,CAAO,OACT,CAAA,CAGiBb,CAAM,CACvB,CAAA,CACI,OAAOkB,CAAAA,EAAW,UAAA,EACnBA,CAAAA,CAAsB,IAAA,CAAKL,CAAK,CAErC,CACF,CAAA,KAAA,CAASM,CAAAA,CAAG,CACV,OAAA,CAAQ,IAAA,CAAK,8CAAA,CAAgDA,CAAC,CAChE,CACF,CAAA,CAEAhB,CAAAA,CAAO,OAAA,CAAU,CAAA,CAAA,EAAM,CACjBC,CAAAA,EAAgBA,CAAAA,CAAe,CAAA,CACnC,aAAA,CAAcC,CAAiB,CAAA,CAE1BC,CAAAA,CAIH,OAAA,CAAQ,GAAA,CAAI,gDAAgD,CAAA,CAAA,CAH5D,OAAA,CAAQ,GAAA,CAAI,sDAAmD,CAAA,CAC/D,UAAA,CAAWC,CAAAA,CAAS,GAAI,CAAA,CAI5B,CACF,CAAA,CAEAA,CAAAA,CAAQ,CAAA,CAER,IAAMa,CAAAA,CAAU,CAAA,CAAA,EAAM,CACpBd,CAAAA,CAA0B,CAAA,CAAA,CAEtBF,CAAAA,EAAgBA,CAAAA,CAAe,CAAA,CACnC,aAAA,CAAcC,CAAiB,CAAA,CAE7BF,CAAAA,EAAAA,CACCA,CAAAA,CAAO,UAAA,GAAe,SAAA,CAAU,IAAA,EAC/BA,CAAAA,CAAO,UAAA,GAAe,SAAA,CAAU,UAAA,CAAA,EAElCA,CAAAA,CAAO,KAAA,CAAM,CAAA,CAEfP,CAAAA,CAAsB,IACxB,CAAA,CAEA,OAAAA,CAAAA,CAAsBwB,CAAAA,CAEfA,CACT,CAAA,8BAAA","file":"/home/runner/work/bit-form/bit-form/dist/devtools/bridge.cjs","sourcesContent":[null,"import { bitBus } from \"bit-form/core\";\nimport type { DevToolsActionName, DevToolsActionPayload } from \"./types\";\n\nconst formatStoreState = (instance: any) => {\n const cleanState =\n typeof instance.getState === \"function\" ? instance.getState() : instance;\n\n const historyMeta = instance?.getHistoryMetadata?.() || {\n canUndo: false,\n canRedo: false,\n historyIndex: -1,\n historySize: 0,\n };\n\n return {\n ...cleanState,\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n};\n\nlet activeBridgeCleanup: (() => void) | null = null;\n\nconst isDevToolsActionPayload = (\n payload: unknown,\n): payload is DevToolsActionPayload => {\n if (!payload || typeof payload !== \"object\") return false;\n\n const { storeId, action } = payload as {\n storeId?: unknown;\n action?: unknown;\n };\n\n return (\n typeof storeId === \"string\" &&\n (action === \"undo\" || action === \"redo\" || action === \"reset\")\n );\n};\n\nexport function setupRemoteBridge(url: string) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval>;\n let isIntentionalDisconnect = false;\n\n const connect = () => {\n isIntentionalDisconnect = false;\n socket = new WebSocket(url);\n\n socket.onopen = () => {\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n const storesEntries = Object.entries(bitBus.stores);\n if (storesEntries.length > 0) {\n const initialState = storesEntries.reduce(\n (acc, [id, store]) => {\n acc[id] = formatStoreState(store);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n socket?.send(\n JSON.stringify({ type: \"STATE_UPDATE\", payload: initialState }),\n );\n }\n\n unsubscribeBus = bitBus.subscribe((storeId, _newState) => {\n if (socket?.readyState === WebSocket.OPEN) {\n const storeInstance = bitBus.stores[storeId];\n if (storeInstance) {\n socket.send(\n JSON.stringify({\n type: \"STATE_UPDATE\",\n payload: { [storeId]: formatStoreState(storeInstance) },\n }),\n );\n }\n }\n });\n\n heartbeatInterval = setInterval(() => {\n if (socket?.readyState === WebSocket.OPEN) {\n socket.send(JSON.stringify({ type: \"PING\" }));\n }\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as {\n type?: unknown;\n payload?: unknown;\n };\n\n if (message.type === \"ACTION\") {\n if (!isDevToolsActionPayload(message.payload)) {\n return;\n }\n\n const { storeId, action } = message.payload;\n\n const store = bitBus.stores[storeId];\n\n if (!store || typeof store !== \"object\") {\n return;\n }\n\n const methodByAction: Record<DevToolsActionName, string> = {\n undo: \"undo\",\n redo: \"redo\",\n reset: \"reset\",\n };\n\n const method = (store as Record<string, unknown>)[\n methodByAction[action]\n ];\n if (typeof method === \"function\") {\n (method as () => void).call(store);\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando em 3s...\");\n setTimeout(connect, 3000);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n const cleanup = () => {\n isIntentionalDisconnect = true;\n\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{U as a}from"../chunk-6FJEE6O3.js";export{a as setupRemoteBridge};
1
+ import"../chunk-AD7T42HJ.js";import{a as c}from"../chunk-2UVV7SU4.js";var S=o=>{let e=typeof o.getState=="function"?o.getState():o,t=o?.getHistoryMetadata?.()||{canUndo:!1,canRedo:!1,historyIndex:-1,historySize:0};return{...e,_meta:{canUndo:t.canUndo,canRedo:t.canRedo,totalSteps:t.historySize,currentIndex:t.historyIndex}}},l=null,m=o=>{if(!o||typeof o!="object")return!1;let{storeId:e,action:t}=o;return typeof e=="string"&&(t==="undo"||t==="redo"||t==="reset")};function v(o){l&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),l());let e=null,t=null,d,f=!1,u=()=>{f=!1,e=new WebSocket(o),e.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket.");let i=Object.entries(c.stores);if(i.length>0){let n=i.reduce((r,[s,a])=>(r[s]=S(a),r),{});e?.send(JSON.stringify({type:"STATE_UPDATE",payload:n}))}t=c.subscribe((n,r)=>{if(e?.readyState===WebSocket.OPEN){let s=c.stores[n];s&&e.send(JSON.stringify({type:"STATE_UPDATE",payload:{[n]:S(s)}}))}}),d=setInterval(()=>{e?.readyState===WebSocket.OPEN&&e.send(JSON.stringify({type:"PING"}))},3e4)},e.onmessage=i=>{try{let n=JSON.parse(i.data);if(n.type==="ACTION"){if(!m(n.payload))return;let{storeId:r,action:s}=n.payload,a=c.stores[r];if(!a||typeof a!="object")return;let p=a[{undo:"undo",redo:"redo",reset:"reset"}[s]];typeof p=="function"&&p.call(a)}}catch(n){console.warn("[bit-form] Erro ao processar comando do CLI:",n)}},e.onclose=()=>{t&&t(),clearInterval(d),f?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(u,3e3))}};u();let y=()=>{f=!0,t&&t(),clearInterval(d),e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING)&&e.close(),l=null};return l=y,y}export{v as setupRemoteBridge};
2
2
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../src/devtools/bridge.ts"],"sourcesContent":["import { bitBus } from \"bit-form/core\";\nimport type { DevToolsActionName, DevToolsActionPayload } from \"./types\";\n\nconst formatStoreState = (instance: any) => {\n const cleanState =\n typeof instance.getState === \"function\" ? instance.getState() : instance;\n\n const historyMeta = instance?.getHistoryMetadata?.() || {\n canUndo: false,\n canRedo: false,\n historyIndex: -1,\n historySize: 0,\n };\n\n return {\n ...cleanState,\n _meta: {\n canUndo: historyMeta.canUndo,\n canRedo: historyMeta.canRedo,\n totalSteps: historyMeta.historySize,\n currentIndex: historyMeta.historyIndex,\n },\n };\n};\n\nlet activeBridgeCleanup: (() => void) | null = null;\n\nconst isDevToolsActionPayload = (\n payload: unknown,\n): payload is DevToolsActionPayload => {\n if (!payload || typeof payload !== \"object\") return false;\n\n const { storeId, action } = payload as {\n storeId?: unknown;\n action?: unknown;\n };\n\n return (\n typeof storeId === \"string\" &&\n (action === \"undo\" || action === \"redo\" || action === \"reset\")\n );\n};\n\nexport function setupRemoteBridge(url: string) {\n if (activeBridgeCleanup) {\n console.warn(\n \"[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado).\",\n );\n activeBridgeCleanup();\n }\n\n let socket: WebSocket | null = null;\n let unsubscribeBus: (() => void) | null = null;\n let heartbeatInterval: ReturnType<typeof setInterval>;\n let isIntentionalDisconnect = false;\n\n const connect = () => {\n isIntentionalDisconnect = false;\n socket = new WebSocket(url);\n\n socket.onopen = () => {\n console.log(\"[bit-form] 🔌 Conectado ao CLI DevTools via WebSocket.\");\n\n const storesEntries = Object.entries(bitBus.stores);\n if (storesEntries.length > 0) {\n const initialState = storesEntries.reduce(\n (acc, [id, store]) => {\n acc[id] = formatStoreState(store);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n socket?.send(\n JSON.stringify({ type: \"STATE_UPDATE\", payload: initialState }),\n );\n }\n\n unsubscribeBus = bitBus.subscribe((storeId, _newState) => {\n if (socket?.readyState === WebSocket.OPEN) {\n const storeInstance = bitBus.stores[storeId];\n if (storeInstance) {\n socket.send(\n JSON.stringify({\n type: \"STATE_UPDATE\",\n payload: { [storeId]: formatStoreState(storeInstance) },\n }),\n );\n }\n }\n });\n\n heartbeatInterval = setInterval(() => {\n if (socket?.readyState === WebSocket.OPEN) {\n socket.send(JSON.stringify({ type: \"PING\" }));\n }\n }, 30000);\n };\n\n socket.onmessage = (event) => {\n try {\n const message = JSON.parse(event.data) as {\n type?: unknown;\n payload?: unknown;\n };\n\n if (message.type === \"ACTION\") {\n if (!isDevToolsActionPayload(message.payload)) {\n return;\n }\n\n const { storeId, action } = message.payload;\n\n const store = bitBus.stores[storeId];\n\n if (!store || typeof store !== \"object\") {\n return;\n }\n\n const methodByAction: Record<DevToolsActionName, string> = {\n undo: \"undo\",\n redo: \"redo\",\n reset: \"reset\",\n };\n\n const method = (store as Record<string, unknown>)[\n methodByAction[action]\n ];\n if (typeof method === \"function\") {\n (method as () => void).call(store);\n }\n }\n } catch (e) {\n console.warn(\"[bit-form] Erro ao processar comando do CLI:\", e);\n }\n };\n\n socket.onclose = () => {\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n\n if (!isIntentionalDisconnect) {\n console.log(\"[bit-form] Conexão perdida. Reconectando em 3s...\");\n setTimeout(connect, 3000);\n } else {\n console.log(\"[bit-form] Ponte antiga encerrada com sucesso.\");\n }\n };\n };\n\n connect();\n\n const cleanup = () => {\n isIntentionalDisconnect = true;\n\n if (unsubscribeBus) unsubscribeBus();\n clearInterval(heartbeatInterval);\n if (\n socket &&\n (socket.readyState === WebSocket.OPEN ||\n socket.readyState === WebSocket.CONNECTING)\n ) {\n socket.close();\n }\n activeBridgeCleanup = null;\n };\n\n activeBridgeCleanup = cleanup;\n\n return cleanup;\n}\n"],"mappings":"sEAGA,IAAMA,EAAoBC,GAAkB,CAC1C,IAAMC,EACJ,OAAOD,EAAS,UAAa,WAAaA,EAAS,SAAS,EAAIA,EAE5DE,EAAcF,GAAU,qBAAqB,GAAK,CACtD,QAAS,GACT,QAAS,GACT,aAAc,GACd,YAAa,CACf,EAEA,MAAO,CACL,GAAGC,EACH,MAAO,CACL,QAASC,EAAY,QACrB,QAASA,EAAY,QACrB,WAAYA,EAAY,YACxB,aAAcA,EAAY,YAC5B,CACF,CACF,EAEIC,EAA2C,KAEzCC,EACJC,GACqC,CACrC,GAAI,CAACA,GAAW,OAAOA,GAAY,SAAU,MAAO,GAEpD,GAAM,CAAE,QAAAC,EAAS,OAAAC,CAAO,EAAIF,EAK5B,OACE,OAAOC,GAAY,WAClBC,IAAW,QAAUA,IAAW,QAAUA,IAAW,QAE1D,EAEO,SAASC,EAAkBC,EAAa,CACzCN,IACF,QAAQ,KACN,oEACF,EACAA,EAAoB,GAGtB,IAAIO,EAA2B,KAC3BC,EAAsC,KACtCC,EACAC,EAA0B,GAExBC,EAAU,IAAM,CACpBD,EAA0B,GAC1BH,EAAS,IAAI,UAAUD,CAAG,EAE1BC,EAAO,OAAS,IAAM,CACpB,QAAQ,IAAI,+DAAwD,EAEpE,IAAMK,EAAgB,OAAO,QAAQC,EAAO,MAAM,EAClD,GAAID,EAAc,OAAS,EAAG,CAC5B,IAAME,EAAeF,EAAc,OACjC,CAACG,EAAK,CAACC,EAAIC,CAAK,KACdF,EAAIC,CAAE,EAAIpB,EAAiBqB,CAAK,EACzBF,GAET,CAAC,CACH,EAEAR,GAAQ,KACN,KAAK,UAAU,CAAE,KAAM,eAAgB,QAASO,CAAa,CAAC,CAChE,CACF,CAEAN,EAAiBK,EAAO,UAAU,CAACV,EAASe,IAAc,CACxD,GAAIX,GAAQ,aAAe,UAAU,KAAM,CACzC,IAAMY,EAAgBN,EAAO,OAAOV,CAAO,EACvCgB,GACFZ,EAAO,KACL,KAAK,UAAU,CACb,KAAM,eACN,QAAS,CAAE,CAACJ,CAAO,EAAGP,EAAiBuB,CAAa,CAAE,CACxD,CAAC,CACH,CAEJ,CACF,CAAC,EAEDV,EAAoB,YAAY,IAAM,CAChCF,GAAQ,aAAe,UAAU,MACnCA,EAAO,KAAK,KAAK,UAAU,CAAE,KAAM,MAAO,CAAC,CAAC,CAEhD,EAAG,GAAK,CACV,EAEAA,EAAO,UAAaa,GAAU,CAC5B,GAAI,CACF,IAAMC,EAAU,KAAK,MAAMD,EAAM,IAAI,EAKrC,GAAIC,EAAQ,OAAS,SAAU,CAC7B,GAAI,CAACpB,EAAwBoB,EAAQ,OAAO,EAC1C,OAGF,GAAM,CAAE,QAAAlB,EAAS,OAAAC,CAAO,EAAIiB,EAAQ,QAE9BJ,EAAQJ,EAAO,OAAOV,CAAO,EAEnC,GAAI,CAACc,GAAS,OAAOA,GAAU,SAC7B,OASF,IAAMK,EAAUL,EAN2C,CACzD,KAAM,OACN,KAAM,OACN,MAAO,OACT,EAGiBb,CAAM,CACvB,EACI,OAAOkB,GAAW,YACnBA,EAAsB,KAAKL,CAAK,CAErC,CACF,OAASM,EAAG,CACV,QAAQ,KAAK,+CAAgDA,CAAC,CAChE,CACF,EAEAhB,EAAO,QAAU,IAAM,CACjBC,GAAgBA,EAAe,EACnC,cAAcC,CAAiB,EAE1BC,EAIH,QAAQ,IAAI,gDAAgD,GAH5D,QAAQ,IAAI,sDAAmD,EAC/D,WAAWC,EAAS,GAAI,EAI5B,CACF,EAEAA,EAAQ,EAER,IAAMa,EAAU,IAAM,CACpBd,EAA0B,GAEtBF,GAAgBA,EAAe,EACnC,cAAcC,CAAiB,EAE7BF,IACCA,EAAO,aAAe,UAAU,MAC/BA,EAAO,aAAe,UAAU,aAElCA,EAAO,MAAM,EAEfP,EAAsB,IACxB,EAEA,OAAAA,EAAsBwB,EAEfA,CACT","names":["formatStoreState","instance","cleanState","historyMeta","activeBridgeCleanup","isDevToolsActionPayload","payload","storeId","action","setupRemoteBridge","url","socket","unsubscribeBus","heartbeatInterval","isIntentionalDisconnect","connect","storesEntries","bitBus","initialState","acc","id","store","_newState","storeInstance","event","message","method","e","cleanup"]}
@@ -1,2 +1,133 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYWXX6XRVcjs = require('../chunk-YWXX6XRV.cjs');exports.initDevTools = _chunkYWXX6XRVcjs.V;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;require('../chunk-C4BYXZGB.cjs');var _chunk676WXU4Scjs = require('../chunk-676WXU4S.cjs');function b(){return`
2
+ .bit-devtools-container {
3
+ position: fixed;
4
+ bottom: 20px;
5
+ right: 20px;
6
+ z-index: 9999;
7
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: flex-end;
11
+ }
12
+
13
+ .bit-devtools-trigger {
14
+ background: #10b981;
15
+ color: #fff;
16
+ border: none;
17
+ border-radius: 50%;
18
+ width: 48px;
19
+ height: 48px;
20
+ cursor: pointer;
21
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
22
+ font-weight: bold;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ transition: transform 0.2s;
27
+ font-size: 16px;
28
+ margin-top: 16px;
29
+ }
30
+ .bit-devtools-trigger:hover { transform: scale(1.05); }
31
+
32
+ .bit-devtools-panel {
33
+ width: 450px;
34
+ max-height: 80vh;
35
+ background: #0f172a;
36
+ color: #f8fafc;
37
+ border-radius: 8px;
38
+ padding: 16px;
39
+ overflow-y: auto;
40
+ box-shadow: 0 20px 25px -5px rgba(0,0,0,0.5), 0 8px 10px -6px rgba(0,0,0,0.5);
41
+ border: 1px solid #334155;
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 16px;
45
+ }
46
+
47
+ .bit-devtools-header {
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ padding-bottom: 12px;
52
+ border-bottom: 1px solid #1e293b;
53
+ }
54
+ .bit-devtools-header h2 { margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }
55
+
56
+ .bit-store-block {
57
+ background: #1e293b;
58
+ border-radius: 6px;
59
+ padding: 12px;
60
+ border: 1px solid #334155;
61
+ }
62
+
63
+ .bit-store-header {
64
+ display: flex;
65
+ justify-content: space-between;
66
+ align-items: center;
67
+ margin-bottom: 12px;
68
+ }
69
+ .bit-store-title { margin: 0; color: #38bdf8; font-size: 14px; font-weight: bold; }
70
+
71
+ .bit-badge-group { display: flex; gap: 6px; flex-wrap: wrap; }
72
+ .bit-badge { font-size: 10px; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; font-weight: bold; }
73
+ .badge-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.2); }
74
+ .badge-error { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.2); }
75
+ .badge-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.2); }
76
+ .badge-info { background: rgba(56, 189, 248, 0.2); color: #7dd3fc; border: 1px solid rgba(56, 189, 248, 0.2); }
77
+
78
+ .bit-section-title { font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; margin: 12px 0 4px 0; display: block; }
79
+
80
+ .bit-controls { display: flex; gap: 6px; margin-bottom: 12px; background: #0f172a; padding: 8px; border-radius: 6px; }
81
+ .bit-action-btn { flex: 1; background: #334155; color: #e2e8f0; border: 1px solid #475569; padding: 6px 0; border-radius: 4px; cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; gap: 4px; transition: all 0.2s; }
82
+ .bit-action-btn:hover:not(:disabled) { background: #475569; }
83
+ .bit-action-btn:disabled { opacity: 0.5; cursor: not-allowed; }
84
+ .bit-btn-reset { color: #fca5a5; border-color: rgba(239,68,68,0.3); }
85
+ .bit-btn-reset:hover { background: rgba(239,68,68,0.1) !important; }
86
+
87
+ pre.bit-pre { background: #020617; padding: 10px; border-radius: 4px; font-size: 11px; overflow-x: auto; border: 1px solid #1e293b; margin: 0; color: #e2e8f0; }
88
+ pre.bit-error-box { background: rgba(239, 68, 68, 0.05); padding: 10px; border-radius: 4px; font-size: 11px; border: 1px dashed #ef4444; color: #fca5a5; margin: 0; overflow-x: auto; }
89
+ `}var c= (_class =class{__init() {this.currentStoresState={}}__init2() {this.isOpen=!1}constructor(i,r){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);if(this.container=i,this.actions=r,!document.getElementById("bit-devtools-styles")){let e=document.createElement("style");e.id="bit-devtools-styles",e.textContent=b(),document.head.appendChild(e)}this.rootElement=document.createElement("div"),this.rootElement.className="bit-devtools-container",this.container.appendChild(this.rootElement),this.rootElement.addEventListener("click",e=>{let s=e.target;if(s.closest(".bit-devtools-trigger")){this.isOpen=!this.isOpen,this.render();return}let t=s.closest(".bit-action-btn");if(t&&!t.hasAttribute("disabled")){let o=t.getAttribute("data-action"),n=t.getAttribute("data-store");o&&n&&(o==="undo"&&this.actions.onUndo(n),o==="redo"&&this.actions.onRedo(n),o==="reset"&&this.actions.onReset(n))}})}updateState(i){this.currentStoresState=i,this.render()}render(){let i=Object.entries(this.currentStoresState);if(i.length===0){this.rootElement.innerHTML="";return}let r="";if(this.isOpen){r=`
90
+ <div class="bit-devtools-panel">
91
+ <div class="bit-devtools-header">
92
+ <h2><span style="font-size: 20px;">\u{1F6E0}</span> Bit-Form DevTools</h2>
93
+ <span style="font-size: 11px; color: #64748b;">v1.0.0</span>
94
+ </div>
95
+ `;for(let[s,t]of i){let o=Object.keys(t.errors||{}).length>0,n=t._meta||{totalSteps:0,currentIndex:-1,canUndo:!1,canRedo:!1},p=n.currentIndex+1,l=n.totalSteps;r+=`
96
+ <div class="bit-store-block">
97
+ <div class="bit-store-header">
98
+ <h3 class="bit-store-title">${s}</h3>
99
+ <div class="bit-badge-group">
100
+ <span class="bit-badge ${t.isValid?"badge-success":"badge-error"}">
101
+ ${t.isValid?"\u2713 Valid":"\u2715 Invalid"}
102
+ </span>
103
+ ${t.isDirty?'<span class="bit-badge badge-warn">Dirty</span>':""}
104
+ ${t.isSubmitting?'<span class="bit-badge badge-info">\u23F3 Submitting</span>':""}
105
+ </div>
106
+ </div>
107
+
108
+ <span class="bit-section-title">Time Travel (${p}/${l})</span>
109
+
110
+ <div class="bit-controls">
111
+ <button class="bit-action-btn" data-action="undo" data-store="${s}" ${n.canUndo?"":"disabled"}>
112
+ <span>\u21BA</span> Undo
113
+ </button>
114
+ <button class="bit-action-btn" data-action="redo" data-store="${s}" ${n.canRedo?"":"disabled"}>
115
+ <span>\u21BB</span> Redo
116
+ </button>
117
+ <button class="bit-action-btn bit-btn-reset" data-action="reset" data-store="${s}">
118
+ <span>\u{1F5D1}</span> Reset
119
+ </button>
120
+ </div>
121
+ `,o&&(r+=`
122
+ <span class="bit-section-title" style="color: #f87171;">\u26A0\uFE0F Validations Failing</span>
123
+ <pre class="bit-error-box">${JSON.stringify(t.errors,null,2)}</pre>
124
+ `),r+=`
125
+ <span class="bit-section-title">Values</span>
126
+ <pre class="bit-pre">${JSON.stringify(t.values,null,2)}</pre>
127
+ </div>
128
+ `}r+="</div>"}let e=`
129
+ <button class="bit-devtools-trigger" style="transform: ${this.isOpen?"scale(0.9)":"scale(1)"};" title="Abrir DevTools">
130
+ ${this.isOpen?"\u2716":"Bit"}
131
+ </button>
132
+ `;this.rootElement.innerHTML=r+e}}, _class);function g(a){let i=new c(a,{onUndo:s=>_optionalChain([_chunk676WXU4Scjs.a, 'access', _ => _.stores, 'access', _2 => _2[s], 'optionalAccess', _3 => _3.undo, 'call', _4 => _4()]),onRedo:s=>_optionalChain([_chunk676WXU4Scjs.a, 'access', _5 => _5.stores, 'access', _6 => _6[s], 'optionalAccess', _7 => _7.redo, 'call', _8 => _8()]),onReset:s=>_optionalChain([_chunk676WXU4Scjs.a, 'access', _9 => _9.stores, 'access', _10 => _10[s], 'optionalAccess', _11 => _11.reset, 'call', _12 => _12()])}),r=()=>{let s={};for(let[t,o]of Object.entries(_chunk676WXU4Scjs.a.stores)){let n=o,p=n.getState(),l=_optionalChain([n, 'optionalAccess', _13 => _13.getHistoryMetadata, 'optionalCall', _14 => _14()])||{enabled:!1,canUndo:!1,canRedo:!1,historyIndex:-1,historySize:0};s[t]={...p,_meta:{canUndo:l.canUndo,canRedo:l.canRedo,totalSteps:l.historySize,currentIndex:l.historyIndex}}}return s};i.updateState(r());let e=_chunk676WXU4Scjs.a.subscribe(()=>{i.updateState(r())});return{ui:i,destroy:()=>{e(),a.innerHTML=""}}}function f(a,i="ws://localhost:3000"){let r=new WebSocket(i),e=o=>{r.readyState===WebSocket.OPEN?r.send(JSON.stringify(o)):console.warn("[bit-form] Tentativa de envio falhou. WebSocket n\xE3o est\xE1 aberto.")},s=(o,n)=>{e({type:"ACTION",payload:{storeId:o,action:n}})},t=new c(a,{onUndo:o=>s(o,"undo"),onRedo:o=>s(o,"redo"),onReset:o=>s(o,"reset")});return r.addEventListener("open",()=>{console.log(`[bit-form] Conectado ao DevTools remoto em ${i}`)}),r.addEventListener("message",o=>{try{let n=JSON.parse(o.data);n.type==="STATE_UPDATE"&&t.updateState(n.payload)}catch(n){console.error("[bit-form] Erro ao processar mensagem do WebSocket:",n)}}),r.addEventListener("error",o=>{console.error("[bit-form] Erro na conex\xE3o do DevTools remoto:",o)}),{ui:t,destroy:()=>{(r.readyState===WebSocket.OPEN||r.readyState===WebSocket.CONNECTING)&&r.close(),a.innerHTML=""}}}function m(a={}){let{mode:i="local",url:r}=a,e,s=!1;if(typeof a.container=="string"){let o=document.querySelector(a.container);if(!o)throw new Error(`[bit-form] Container '${a.container}' n\xE3o encontrado na p\xE1gina.`);e=o}else a.container instanceof HTMLElement?e=a.container:(e=document.createElement("div"),e.id="bit-form-devtools-root",e.style.position="fixed",e.style.bottom="20px",e.style.right="20px",e.style.zIndex="9999",e.style.maxHeight="80vh",e.style.overflowY="auto",e.style.boxShadow="0 10px 25px rgba(0,0,0,0.1)",document.body.appendChild(e),s=!0);let t;if(i==="local")console.log("[bit-form] DevTools iniciado em modo Local."),t=g(e);else if(i==="remote")console.log("[bit-form] DevTools iniciado em modo Remote."),t=f(e,r);else throw new Error(`[bit-form] Modo DevTools inv\xE1lido: ${i}`);return{...t,destroy:()=>{t&&typeof t.destroy=="function"&&t.destroy(),s&&e.parentNode?e.parentNode.removeChild(e):e.innerHTML=""}}}exports.initDevTools = m;
2
133
  //# sourceMappingURL=index.cjs.map