iosignal 1.4.0 → 1.4.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.
@@ -1,3 +1,3 @@
1
1
  var IO=function(){"use strict";function t(t){var e={exports:{}};return t(e,e.exports),e.exports}for(var e=function(t){var e=u(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r=function(t){var e,r,n=u(t),i=n[0],f=n[1],h=new s(function(t,e,r){return 3*(e+r)/4-r}(0,i,f)),a=0,c=f>0?i-4:i;for(r=0;r<c;r+=4)e=o[t.charCodeAt(r)]<<18|o[t.charCodeAt(r+1)]<<12|o[t.charCodeAt(r+2)]<<6|o[t.charCodeAt(r+3)],h[a++]=e>>16&255,h[a++]=e>>8&255,h[a++]=255&e;2===f&&(e=o[t.charCodeAt(r)]<<2|o[t.charCodeAt(r+1)]>>4,h[a++]=255&e);1===f&&(e=o[t.charCodeAt(r)]<<10|o[t.charCodeAt(r+1)]<<4|o[t.charCodeAt(r+2)]>>2,h[a++]=e>>8&255,h[a++]=255&e);return h},n=function(t){for(var e,r=t.length,n=r%3,o=[],s=16383,f=0,h=r-n;f<h;f+=s)o.push(a(t,f,f+s>h?h:f+s));1===n?(e=t[r-1],o.push(i[e>>2]+i[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(i[e>>10]+i[e>>4&63]+i[e<<2&63]+"="));return o.join("")},i=[],o=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0;h<64;++h)i[h]=f[h],o[f.charCodeAt(h)]=h;function u(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function a(t,e,r){for(var n,o,s=[],f=e;f<r;f+=3)n=(t[f]<<16&16711680)+(t[f+1]<<8&65280)+(255&t[f+2]),s.push(i[(o=n)>>18&63]+i[o>>12&63]+i[o>>6&63]+i[63&o]);return s.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63;var c={byteLength:e,toByteArray:r,fromByteArray:n},l=function(t,e,r,n,i){var o,s,f=8*i-n-1,h=(1<<f)-1,u=h>>1,a=-7,c=r?i-1:0,l=r?-1:1,p=t[e+c];for(c+=l,o=p&(1<<-a)-1,p>>=-a,a+=f;a>0;o=256*o+t[e+c],c+=l,a-=8);for(s=o&(1<<-a)-1,o>>=-a,a+=n;a>0;s=256*s+t[e+c],c+=l,a-=8);if(0===o)o=1-u;else{if(o===h)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),o-=u}return(p?-1:1)*s*Math.pow(2,o-n)},p=function(t,e,r,n,i,o){var s,f,h,u=8*o-i-1,a=(1<<u)-1,c=a>>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,y=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(f=isNaN(e)?1:0,s=a):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+c>=1?l/h:l*Math.pow(2,1-c))*h>=2&&(s++,h/=2),s+c>=a?(f=0,s=a):s+c>=1?(f=(e*h-1)*Math.pow(2,i),s+=c):(f=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));i>=8;t[r+p]=255&f,p+=y,f/=256,i-=8);for(s=s<<i|f,u+=i;u>0;t[r+p]=255&s,p+=y,s/=256,u-=8);t[r+p-y]|=128*g},y=t((function(t,e){const r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=o,e.SlowBuffer=function(t){+t!=t&&(t=0);return o.alloc(+t)},e.INSPECT_MAX_BYTES=50;const n=2147483647;function i(t){if(t>n)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,o.prototype),e}function o(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return h(t)}return s(t,e,r)}function s(t,e,r){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!o.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|g(t,e);let n=i(r);const s=n.write(t,e);s!==r&&(n=n.slice(0,s));return n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(q(t,Uint8Array)){const e=new Uint8Array(t);return a(e.buffer,e.byteOffset,e.byteLength)}return u(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(q(t,ArrayBuffer)||t&&q(t.buffer,ArrayBuffer))return a(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(q(t,SharedArrayBuffer)||t&&q(t.buffer,SharedArrayBuffer)))return a(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return o.from(n,e,r);const s=function(t){if(o.isBuffer(t)){const e=0|y(t.length),r=i(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return"number"!=typeof t.length||K(t.length)?i(0):u(t);if("Buffer"===t.type&&Array.isArray(t.data))return u(t.data)}(t);if(s)return s;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return o.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function f(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function h(t){return f(t),i(t<0?0:0|y(t))}function u(t){const e=t.length<0?0:0|y(t.length),r=i(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function a(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,o.prototype),n}function y(t){if(t>=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|t}function g(t,e){if(o.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||q(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Y(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return J(t).length;default:if(i)return n?-1:Y(t).length;e=(""+e).toLowerCase(),i=!0}}function d(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,r);case"utf8":case"utf-8":return T(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return U(this,e,r);case"base64":return L(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function b(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function E(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),K(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=o.from(e,n)),o.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){let o,s=1,f=t.length,h=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,f/=2,h/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let n=-1;for(o=r;o<f;o++)if(u(t,o)===u(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===h)return n*s}else-1!==n&&(o-=o-n),n=-1}else for(r+h>f&&(r=f-h),o=r;o>=0;o--){let r=!0;for(let n=0;n<h;n++)if(u(t,o+n)!==u(e,n)){r=!1;break}if(r)return o}return-1}function _(t,e,r,n){r=Number(r)||0;const i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=e.length;let s;for(n>o/2&&(n=o/2),s=0;s<n;++s){const n=parseInt(e.substr(2*s,2),16);if(K(n))return s;t[r+s]=n}return s}function w(t,e,r,n){return Q(Y(e,t.length-r),t,r,n)}function A(t,e,r,n){return Q(function(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function B(t,e,r,n){return Q(J(e),t,r,n)}function S(t,e,r,n){return Q(function(t,e){let r,n,i;const o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)r=t.charCodeAt(s),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function L(t,e,r){return 0===e&&r===t.length?c.fromByteArray(t):c.fromByteArray(t.slice(e,r))}function T(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i<r;){const e=t[i];let o=null,s=e>239?4:e>223?3:e>191?2:1;if(i+s<=r){let r,n,f,h;switch(s){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(h=(31&e)<<6|63&r,h>127&&(o=h));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(h=(15&e)<<12|(63&r)<<6|63&n,h>2047&&(h<55296||h>57343)&&(o=h));break;case 4:r=t[i+1],n=t[i+2],f=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&f)&&(h=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&f,h>65535&&h<1114112&&(o=h))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){const e=t.length;if(e<=v)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=v));return r}(n)}e.kMaxLength=n,o.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),o.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}}),o.poolSize=8192,o.from=function(t,e,r){return s(t,e,r)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array),o.alloc=function(t,e,r){return function(t,e,r){return f(t),t<=0?i(t):void 0!==e?"string"==typeof r?i(t).fill(e,r):i(t).fill(e):i(t)}(t,e,r)},o.allocUnsafe=function(t){return h(t)},o.allocUnsafeSlow=function(t){return h(t)},o.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==o.prototype},o.compare=function(t,e){if(q(t,Uint8Array)&&(t=o.from(t,t.offset,t.byteLength)),q(e,Uint8Array)&&(e=o.from(e,e.offset,e.byteLength)),!o.isBuffer(t)||!o.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},o.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return o.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=o.allocUnsafe(e);let i=0;for(r=0;r<t.length;++r){let e=t[r];if(q(e,Uint8Array))i+e.length>n.length?(o.isBuffer(e)||(e=o.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!o.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},o.byteLength=g,o.prototype._isBuffer=!0,o.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)b(this,e,e+1);return this},o.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)b(this,e,e+3),b(this,e+1,e+2);return this},o.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)b(this,e,e+7),b(this,e+1,e+6),b(this,e+2,e+5),b(this,e+3,e+4);return this},o.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?T(this,0,t):d.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(t){if(!o.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===o.compare(this,t)},o.prototype.inspect=function(){let t="";const r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},r&&(o.prototype[r]=o.prototype.inspect),o.prototype.compare=function(t,e,r,n,i){if(q(t,Uint8Array)&&(t=o.from(t,t.offset,t.byteLength)),!o.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let s=(i>>>=0)-(n>>>=0),f=(r>>>=0)-(e>>>=0);const h=Math.min(s,f),u=this.slice(n,i),a=t.slice(e,r);for(let t=0;t<h;++t)if(u[t]!==a[t]){s=u[t],f=a[t];break}return s<f?-1:f<s?1:0},o.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},o.prototype.indexOf=function(t,e,r){return E(this,t,e,r,!0)},o.prototype.lastIndexOf=function(t,e,r){return E(this,t,e,r,!1)},o.prototype.write=function(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return w(this,t,e,r);case"ascii":case"latin1":case"binary":return A(this,t,e,r);case"base64":return B(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const v=4096;function I(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function U(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function C(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=e;n<r;++n)i+=W[t[n]];return i}function O(t,e,r){const n=t.slice(e,r);let i="";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}function R(t,e,r){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,r,n,i,s){if(!o.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<s)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function k(t,e,r,n,i){j(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,r}function M(t,e,r,n,i){j(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s>>=8,t[r+2]=s,s>>=8,t[r+1]=s,s>>=8,t[r]=s,r+8}function x(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function P(t,e,r,n,i){return e=+e,r>>>=0,i||x(t,0,r,4),p(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||x(t,0,r,8),p(t,e,r,n,52,8),r+8}o.prototype.slice=function(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,o.prototype),n},o.prototype.readUintLE=o.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},o.prototype.readUintBE=o.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},o.prototype.readUint8=o.prototype.readUInt8=function(t,e){return t>>>=0,e||R(t,1,this.length),this[t]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(t,e){return t>>>=0,e||R(t,2,this.length),this[t]|this[t+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(t,e){return t>>>=0,e||R(t,2,this.length),this[t]<<8|this[t+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(t,e){return t>>>=0,e||R(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(t,e){return t>>>=0,e||R(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},o.prototype.readBigUInt64LE=X((function(t){F(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))})),o.prototype.readBigUInt64BE=X((function(t){F(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),o.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},o.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||R(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},o.prototype.readInt8=function(t,e){return t>>>=0,e||R(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},o.prototype.readInt16LE=function(t,e){t>>>=0,e||R(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt16BE=function(t,e){t>>>=0,e||R(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},o.prototype.readInt32LE=function(t,e){return t>>>=0,e||R(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},o.prototype.readInt32BE=function(t,e){return t>>>=0,e||R(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},o.prototype.readBigInt64LE=X((function(t){F(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),o.prototype.readBigInt64BE=X((function(t){F(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||V(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)})),o.prototype.readFloatLE=function(t,e){return t>>>=0,e||R(t,4,this.length),l(this,t,!0,23,4)},o.prototype.readFloatBE=function(t,e){return t>>>=0,e||R(t,4,this.length),l(this,t,!1,23,4)},o.prototype.readDoubleLE=function(t,e){return t>>>=0,e||R(t,8,this.length),l(this,t,!0,52,8)},o.prototype.readDoubleBE=function(t,e){return t>>>=0,e||R(t,8,this.length),l(this,t,!1,52,8)},o.prototype.writeUintLE=o.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){N(this,t,e,r,Math.pow(2,8*r)-1,0)}let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},o.prototype.writeUintBE=o.prototype.writeUIntBE=function(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){N(this,t,e,r,Math.pow(2,8*r)-1,0)}let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},o.prototype.writeUint8=o.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,1,255,0),this[e]=255&t,e+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},o.prototype.writeBigUInt64LE=X((function(t,e=0){return k(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),o.prototype.writeBigUInt64BE=X((function(t,e=0){return M(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),o.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);N(this,t,e,r,n-1,-n)}let i=0,o=1,s=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o>>0)-s&255;return e+r},o.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);N(this,t,e,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o>>0)-s&255;return e+r},o.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},o.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},o.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},o.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},o.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},o.prototype.writeBigInt64LE=X((function(t,e=0){return k(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),o.prototype.writeBigInt64BE=X((function(t,e=0){return M(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),o.prototype.writeFloatLE=function(t,e,r){return P(this,t,e,!0,r)},o.prototype.writeFloatBE=function(t,e,r){return P(this,t,e,!1,r)},o.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},o.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},o.prototype.copy=function(t,e,r,n){if(!o.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},o.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!o.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){const e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;let i;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i<r;++i)this[i]=t;else{const s=o.isBuffer(t)?t:o.from(t,n),f=s.length;if(0===f)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<r-e;++i)this[i+e]=s[i%f]}return this};const D={};function z(t,e,r){D[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function $(t){let e="",r=t.length;const n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function j(t,e,r,n,i,o){if(t>r||t<e){const n="bigint"==typeof e?"n":"";let i;throw i=o>3?0===e||e===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${e}${n} and <= ${r}${n}`,new D.ERR_OUT_OF_RANGE("value",i,t)}!function(t,e,r){F(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||V(e,t.length-(r+1))}(n,i,o)}function F(t,e){if("number"!=typeof t)throw new D.ERR_INVALID_ARG_TYPE(e,"number",t)}function V(t,e,r){if(Math.floor(t)!==t)throw F(t,r),new D.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}z("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),z("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),z("ERR_OUT_OF_RANGE",(function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=$(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=$(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function Y(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function J(t){return c.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function q(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function K(t){return t!=t}const W=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function X(t){return"undefined"==typeof BigInt?Z:t}function Z(){throw new Error("BigInt not supported")}}));
2
- /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */const g=new TextEncoder,d=new TextDecoder,b=E;function E(t,e=0){let r;if(void 0===t||"string"!=typeof t||"number"!=typeof e)throw TypeError("invlaid init variablie type name. ");return(t=t.toUpperCase()).includes("8")?(r=y.Buffer.alloc(1),t.includes("I")?r.writeInt8(e):r.writeUint8(e)):t.includes("16")?(r=y.Buffer.alloc(2),t.includes("I")?t.includes("L")?r.writeInt16LE(e):r.writeInt16BE(e):t.includes("L")?r.writeUint16LE(e):r.writeUint16BE(e)):t.includes("32")?(r=y.Buffer.alloc(4),t.includes("I")?t.includes("L")?r.writeInt32LE(e):r.writeInt32BE(e):t.includes("L")?r.writeUint32LE(e):r.writeUint32BE(e)):t.includes("F")?(r=y.Buffer.alloc(4),t.includes("L")?r.writeFloatLE(e):r.writeFloatBE(e)):t.includes("N")?r=y.Buffer.from(String(e)):console.log(`invalid type: ${t} or initvalue: ${e}`),r}const m=_;function _(t,e,r){let n,i="B";if("number"==typeof e)"number"==typeof r?(n=y.Buffer.alloc(e),0!==r&&n.fill(r),i="B"):(n=y.Buffer.from(String(e)),i="N");else if("string"==typeof e&&"number"==typeof r)i=e.toUpperCase(),n=E(e,r);else if("string"==typeof e&&void 0===r)n=y.Buffer.from(e),i="S";else if(e instanceof Uint8Array&&void 0===r)n=e instanceof y.Buffer?e:y.Buffer.from(e);else if(e instanceof ArrayBuffer&&void 0===r)n=y.Buffer.from(e);else if(ArrayBuffer.isView(e))n=y.Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if("object"==typeof e&&void 0===r)n=y.Buffer.from(JSON.stringify(e)),i="O";else{if("boolean"!=typeof e||void 0!==r)throw TypeError("invalid meta buffer type");{const t=e?1:0;n=y.Buffer.from([t]),i="!"}}return"string"==typeof t&&t.includes("#")&&(t=""),[t,i,n]}const w=A;function A(...t){let e=0;return t.map((t=>{const r=e++;return"number"==typeof t?m(r,"N",t):m(r,t)}))}function B(t){if((t=t.toUpperCase()).includes("8"))return t.includes("I")?"int8":"uint8";if(t.includes("16"))return t.includes("I")?t.includes("L")?"int16_le":"int16_be":t.includes("L")?"uint16_le":"uint16_be";if(t.includes("32"))return t.includes("I")?t.includes("L")?"int32_le":"int32_be":t.includes("L")?"uint32_le":"uint32_be";if(t.includes("F"))return t.includes("L")?"float_le":"float_be";if("B"===t)return"buffer";if("S"===t)return"string";if("N"===t)return"number";if("O"===t)return"object";if("!"===t)return"boolean";throw TypeError("invalid data type")}function S(t,e,r,n){try{const i=B(t);if("int8"==i)return e.readInt8(r);if("uint8"===i)return e.readUint8(r);if("int16_le"===i)return e.readInt16LE(r);if("int16_be"===i)return e.readInt16BE(r);if("uint16_le"===i)return e.readUint16LE(r);if("uint16_be"===i)return e.readUint16BE(r);if("int32_le"===i)return e.readInt32LE(r);if("int32_be"===i)return e.readInt32BE(r);if("uint32_le"===i)return e.readUint32LE(r);if("uint32_be"===i)return e.readUint32BE(r);if("float_le"===i)return e.readFloatLE(r);if("float_be"===i)return e.readFloatBE(r);if("buffer"===i)return e.subarray(r,r+n);if("string"===i){const t=e.subarray(r,r+n);return d.decode(t)}if("number"===i){const t=e.subarray(r,r+n);return Number(d.decode(t))}if("object"===i){const t=e.subarray(r,r+n);return JSON.parse(d.decode(t))}if("boolean"===i){return 1===e.readInt8(r)}return}catch(t){}}function L(...t){const e=function(t){let e=[];return t.filter((t=>{if(!Array.isArray(t[0]))return t;e=e.concat(t)})).concat(e)}(t);let r=0;const n=[];let i,o,s=0;if(e.forEach((t=>{const[e,i,o]=t;r+=o.byteLength,("number"==typeof e||e.length>0)&&n.push([e,i,s,o.byteLength]),s=r})),n.length>0){let t=JSON.stringify(n);i=g.encode(t),o=i.byteLength,r=r+o+2}const f=y.Buffer.alloc(r);if(s=0,e.forEach((t=>{const e=t[2];f.set(e,s),s+=e.byteLength})),n.length>0){f.set(i,s);const t=b("16",o);return f.set(t,s+o),f}return f}function T(t,e){const r=e||j(t);if(!r)return;const n=y.Buffer.from(t),i={};let o=0;if(r.forEach((t=>{const[e,r,s,f]=t;let h=S(r,n,s,f);null!=h&&(i[e]=h,f&&(o+=f))})),e&&n.byteLength!==o){let t=n.byteLength-o,e=S("b",n,o,t);if(null==e)return;i.$OTHERS=e}let s=0,f=[];for(;i[s];)f.push(i[s++]);return f.length>0&&(i.args=f,i.$=i.args),i}const v=I;function I(t,e=!1){if(void 0===t)throw TypeError("Invalid data type: Undefined");if("string"==typeof t)return g.encode(t);if("number"==typeof t)return Uint8Array.from([t]);if(t instanceof ArrayBuffer){if(e)return new Uint8Array(t);{const e=new Uint8Array(t),r=new Uint8Array(t.byteLength);return r.set(e),r}}if(ArrayBuffer.isView(t)){if(e)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);{const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=new Uint8Array(t.byteLength);return r.set(e),r}}return g.encode(JSON.stringify(t))}const U=C;function C(t,e=!1){const r=I(t,e);return e?y.Buffer.from(r.buffer,r.byteOffset,r.byteLength):y.Buffer.from(r)}const O=R;function R(...t){const e=t.map((t=>C(t)));return y.Buffer.concat(e)}const N=k;function k(...t){try{let e=0,r=0;const n=t.map((t=>I(t)));n.forEach((t=>{e+=t.byteLength}));const i=new Uint8Array(e);return n.forEach((t=>{i.set(t,r),r+=t.byteLength})),i}catch(t){console.log(t)}}function M(t,e){if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function x(t){return 0===z(t)?t.byteLength:t.byteLength-z(t)-H}function P(t,e){try{const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-e-2,i=r.subarray(n,r.byteLength-2),o=d.decode(i),s=JSON.parse(o);if(!Array.isArray(s)||!Array.isArray(s[0]))return;let f=s[0];if(!f)return;if(f.length<3)return;const[h,u,a]=f;if("string"!=typeof u||"number"!=typeof a)return;return s}catch(t){}}const H=2;function D(t){if(t instanceof ArrayBuffer&&(t=y.Buffer.from(t)),t instanceof Uint8Array){if(t.byteLength<=H)return 0;return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(t.byteLength-H)}return 0}function z(t){if(t instanceof ArrayBuffer&&(t=y.Buffer.from(t)),t instanceof Uint8Array){const e=t.byteLength;if(e<=H)return 0;const r=D(t);if(0===r||r>e)return 0;return P(t,r)?r:0}return 0}function $(t){const e=x(t);return t.subarray(0,e)}function j(t,e=!1){t instanceof ArrayBuffer&&(t=y.Buffer.from(t));const r=D(t);if(0===r)return;let n=P(t,r);return n?e?(n.forEach((t=>{null==t[3]&&(t[1].includes("8")?t[3]=1:t[1].includes("16")?t[3]=2:t[1].includes("32")||t[1].includes("F")?t[3]=4:t[1].includes("!")&&(t[3]=1)),t[4]=B(t[1])})),n):n:void 0}function F(...t){return $(L(...t))}function V(...t){return j(L(...t))}var G=Object.freeze({__proto__:null,Buffer:y.Buffer,NB:b,numberBuffer:E,MB:m,metaBuffer:_,MBA:w,metaBufferArguments:A,parseTypeName:B,readTypedBuffer:S,pack:L,unpack:T,U8:v,parseUint8Array:I,B8:U,parseBuffer:C,B8pack:O,parseBufferThenConcat:R,U8pack:N,parseUint8ThenConcat:k,hex:function(t){return Array.prototype.map.call(new Uint8Array(t),(t=>("00"+t.toString(16)).slice(-2))).join("")},equal:M,getBufferSize:x,parseMetaInfo:P,TAIL_LEN:H,readTail:D,getMetaSize:z,getBuffer:$,getMeta:j,rawPack:F,meta:V,metaDetail:function(...t){return j(L(...t),!0)},getMetaDetail:function(t){return j(t,!0)}}),Y=t((function(t){var e=Object.prototype.hasOwnProperty,r="~";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(t,e,n,o,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var f=new i(n,o||t,s),h=r?r+e:e;return t._events[h]?t._events[h].fn?t._events[h]=[t._events[h],f]:t._events[h].push(f):(t._events[h]=f,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function f(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),f.prototype.eventNames=function(){var t,n,i=[];if(0===this._eventsCount)return i;for(n in t=this._events)e.call(t,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},f.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s},f.prototype.listenerCount=function(t){var e=r?r+t:t,n=this._events[e];return n?n.fn?1:n.length:0},f.prototype.emit=function(t,e,n,i,o,s){var f=r?r+t:t;if(!this._events[f])return!1;var h,u,a=this._events[f],c=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),c){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,n),!0;case 4:return a.fn.call(a.context,e,n,i),!0;case 5:return a.fn.call(a.context,e,n,i,o),!0;case 6:return a.fn.call(a.context,e,n,i,o,s),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];a.fn.apply(a.context,h)}else{var l,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),c){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,n);break;case 4:a[u].fn.call(a[u].context,e,n,i);break;default:if(!h)for(l=1,h=new Array(c-1);l<c;l++)h[l-1]=arguments[l];a[u].fn.apply(a[u].context,h)}}return!0},f.prototype.on=function(t,e,r){return o(this,t,e,r,!1)},f.prototype.once=function(t,e,r){return o(this,t,e,r,!0)},f.prototype.removeListener=function(t,e,n,i){var o=r?r+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var f=this._events[o];if(f.fn)f.fn!==e||i&&!f.once||n&&f.context!==n||s(this,o);else{for(var h=0,u=[],a=f.length;h<a;h++)(f[h].fn!==e||i&&!f[h].once||n&&f[h].context!==n)&&u.push(f[h]);u.length?this._events[o]=1===u.length?u[0]:u:s(this,o)}return this},f.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&s(this,e)):(this._events=new n,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=r,f.EventEmitter=f,t.exports=f}));const J=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function Q(t,e,r,n,i){let o,s,f,h,u,a,c,l,p,y,g,d,b;for(;i>=64;){for(o=e[0],s=e[1],f=e[2],h=e[3],u=e[4],a=e[5],c=e[6],l=e[7],y=0;y<16;y++)g=n+4*y,t[y]=(255&r[g])<<24|(255&r[g+1])<<16|(255&r[g+2])<<8|255&r[g+3];for(y=16;y<64;y++)p=t[y-2],d=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=t[y-15],b=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[y]=(d+t[y-7]|0)+(b+t[y-16]|0);for(y=0;y<64;y++)d=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&a^~u&c)|0)+(l+(J[y]+t[y]|0)|0)|0,b=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&s^o&f^s&f)|0,l=c,c=a,a=u,u=h+d|0,h=f,f=s,s=o,o=d+b|0;e[0]+=o,e[1]+=s,e[2]+=f,e[3]+=h,e[4]+=u,e[5]+=a,e[6]+=c,e[7]+=l,n+=64,i-=64}return n}const q=function(){function t(){this.digestLength=32,this.blockSize=64,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return t.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},t.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},t.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");let r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(Q(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=Q(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},t.prototype.finish=function(t){if(!this.finished){const t=this.bytesHashed,r=this.bufferLength,n=t/536870912|0,i=t<<3,o=t%64<56?64:128;this.buffer[r]=128;for(var e=r+1;e<o-8;e++)this.buffer[e]=0;this.buffer[o-8]=n>>>24&255,this.buffer[o-7]=n>>>16&255,this.buffer[o-6]=n>>>8&255,this.buffer[o-5]=n>>>0&255,this.buffer[o-4]=i>>>24&255,this.buffer[o-3]=i>>>16&255,this.buffer[o-2]=i>>>8&255,this.buffer[o-1]=i>>>0&255,Q(this.temp,this.state,this.buffer,0,o),this.finished=!0}for(e=0;e<8;e++)t[4*e+0]=this.state[e]>>>24&255,t[4*e+1]=this.state[e]>>>16&255,t[4*e+2]=this.state[e]>>>8&255,t[4*e+3]=this.state[e]>>>0&255;return this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t.prototype._saveState=function(t){for(let e=0;e<this.state.length;e++)t[e]=this.state[e]},t.prototype._restoreState=function(t,e){for(let e=0;e<this.state.length;e++)this.state[e]=t[e];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},t}(),K=function(){function t(t){this.inner=new q,this.outer=new q,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;const e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new q).update(t).finish(e).clean();else for(var r=0;r<t.length;r++)e[r]=t[r];for(r=0;r<e.length;r++)e[r]^=54;this.inner.update(e);for(r=0;r<e.length;r++)e[r]^=106;this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate);for(r=0;r<e.length;r++)e[r]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(let t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function W(t){const e=(new q).update(t),r=e.digest();return e.clean(),r}const X={hash:function(t){return W(v(t))},hex:function(t){return U(W(v(t))).toString("hex")},base64:function(t){return U(W(v(t))).toString("base64")}};X.hmac=function(t,e){return function(t,e){const r=new K(t).update(e),n=r.digest();return r.clean(),n}(v(t),v(e))};const Z=m;let tt={AUTH_REQ:176,AUTH_NONCE:177,AUTH_HMAC:178,AUTH_ACK:179,AUTH_FAIL:180,AUTH_EXT:181,ENC_PACK:182,ENC_E2E:183,ENC_488:184};for(let t in tt)tt[tt[t]]=t;const et={AUTH_REQ:V(Z("header","8",0),Z("reserved","8",0)),AUTH_NONCE:V(Z("header","8",0),Z("unixTime","32L",0),Z("milTime","32L",0),Z("nonce",y.Buffer.alloc(4))),AUTH_HMAC:V(Z("header","8",0),Z("id8",y.Buffer.alloc(8)),Z("nonce",y.Buffer.alloc(4)),Z("hmac32",y.Buffer.alloc(32))),AUTH_ACK:V(Z("header","8",0),Z("hmac32",y.Buffer.alloc(32))),ENC_PACK:V(Z("type","8",0),Z("len","32L",0),Z("salt12",y.Buffer.alloc(12)),Z("hmac",8,0)),ENC_488:V(Z("type","8",0),Z("len","32L",0),Z("otpSrc8",y.Buffer.alloc(8)),Z("hmac8",y.Buffer.alloc(8)))};function rt(t){let e=t[t.length-1];return e[2]+e[3]}const nt={AUTH_REQ:rt(et.AUTH_REQ),AUTH_NONCE:rt(et.AUTH_NONCE),AUTH_HMAC:rt(et.AUTH_HMAC),AUTH_ACK:rt(et.AUTH_ACK),ENC_PACK:rt(et.ENC_PACK),ENC_488:rt(et.ENC_488)};let it=!1;try{it="[object process]"===Object.prototype.toString.call(global.process)}catch(t){}function ot(t){return it?webcrypto.getRandomValues(y.Buffer.alloc(t)):self.crypto.getRandomValues(y.Buffer.alloc(t))}class st{constructor(){this._id8=y.Buffer.alloc(8),this._otpSrc44=y.Buffer.alloc(44),this._otp36=y.Buffer.alloc(36),this._hmac=y.Buffer.alloc(32),this.auth_salt12=y.Buffer.alloc(12),this.localNonce=y.Buffer.alloc(4),this.remoteNonce=y.Buffer.alloc(4),this.isAuthorized=!1}clearAuth(){this._id8.fill(0),this._otpSrc44.fill(0),this._otp36.fill(0),this._hmac.fill(0),this.auth_salt12.fill(0),this.localNonce.fill(0),this.remoteNonce.fill(0),this.isAuthorized=!1}set_hash_id8(t){U(X.hash(t)).copy(this._id8,0,0,8)}set_id8(t){let e=U(t);this._id8.fill(0),e.copy(this._id8,0,0,8)}set_key(t){U(X.hash(t)).copy(this._otpSrc44,0,0,32)}set_id_key(t){let e=t.indexOf(".");if(-1==e)return;let r=t.substring(0,e),n=t.substring(e+1);this.set_id8(r),this.set_key(n)}copy_id8(t){t.copy(this._id8,0,0,8)}copy_key(t){t.copy(this._otpSrc44,0,0,32)}sha256_n(t,e){let r=X.hash(t);for(let t=0;t<e;t++)r=X.hash(r);return r}set_clock_rand(){let t=Date.now(),e=parseInt(t/1e3);t%=4294967295;y.Buffer.concat([b("32L",e),b("32L",t),ot(4)]).copy(this._otpSrc44,32)}set_clock_nonce(t){let e=Date.now(),r=parseInt(e/1e3);e%=4294967295;y.Buffer.concat([b("32L",r),b("32L",e),t]).copy(this._otpSrc44,32)}set_salt12(t){t.copy(this._otpSrc44,32)}resetOTP(){U(X.hash(this._otpSrc44)).copy(this._otp36,0,0,32)}getIndexOTP(t){return this._otp36.writeUInt32LE(t,32),X.hash(this._otp36)}generateHMAC(t){let e=y.Buffer.concat([this._otpSrc44,t]);this._hmac=U(X.hash(e))}getHMAC8(t){let e=y.Buffer.concat([this._otpSrc44,t]);return this._hmac=U(X.hash(e)),this._hmac.subarray(0,8)}xotp(t,e=0,r=!1){let n=(t=U(t,r)).byteLength,i=e,o=0,s=0;for(;n>0;){s=n<32?n:32;let e=this.getIndexOTP(++i);for(let r=0;r<s;r++)t[o++]^=e[r];n-=32}return t}auth_req(){return L(m("#type","8",tt.AUTH_REQ),m("#reserved","8",0))}auth_nonce(){let t=Date.now(),e=Math.floor(t/1e3),r=t%1e3;return this.localNonce=ot(4),this.auth_salt12=y.Buffer.concat([b("32L",e),b("32L",r),this.localNonce]),y.Buffer.concat([b("8",tt.AUTH_NONCE),this.auth_salt12])}auth_hmac(t){let e=T(t,et.AUTH_NONCE);if(e){let t=y.Buffer.concat([b("32L",e.unixTime),b("32L",e.milTime),e.nonce]);return this.set_salt12(t),this.localNonce=ot(4),this.generateHMAC(this.localNonce),this.remoteNonce=e.nonce,L(m("#header","8",tt.AUTH_HMAC),m("#id8",this._id8),m("#nonce",this.localNonce),m("#hmac32",this._hmac))}return!1}check_auth_hmac(t){let e;if(t instanceof Uint8Array){if(e=T(t,et.AUTH_HMAC),!e)return}else e=t;this.set_salt12(this.auth_salt12),this.generateHMAC(e.nonce);let r=this._hmac;if(M(e.hmac32,r)){this.remoteNonce=e.nonce;let t=y.Buffer.concat([this.localNonce,this.remoteNonce,this.localNonce]);this.set_salt12(t),this.generateHMAC(e.nonce);let r=this._hmac,n=F(m("header","8",tt.AUTH_ACK),m("hmac32",r));return this.isAuthorized=!0,n}return!1}check_auth_ack_hmac(t){let e=T(t,et.AUTH_ACK);if(e){let t=y.Buffer.concat([this.remoteNonce,this.localNonce,this.remoteNonce]);if(this.set_salt12(t),this.generateHMAC(this.localNonce),M(this._hmac,e.hmac32))return this.isAuthorized=!0,!0}}encrypt_488(t){if(!this.isAuthorized)return;t=U(t),this.set_clock_nonce(this.remoteNonce),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return L(m("#type","8",tt.ENC_488),m("#len","32L",t.byteLength),m("#otpSrc8",this._otpSrc44.subarray(32,40)),m("#hmac8",e),m("#xdata",r))}decrypt_488(t){let e=T(t=U(t),et.ENC_488);if(e){let t=y.Buffer.concat([e.otpSrc8,this.localNonce]);this.set_salt12(t),this.resetOTP();let r=e.$OTHERS.subarray(0,e.len),n=this.xotp(r);if(M(this.getHMAC8(n),e.hmac8))return n}}encryptPack(t){t=U(t),this.set_clock_rand(),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return L(m("#type","8",tt.ENC_PACK),m("#len","32L",t.byteLength),m("#salt12",this._otpSrc44.subarray(32)),m("#hmac8",e),m("#xdata",r))}decryptPack(t){if(t[0]!==tt.ENC_PACK)return;if(t.readUint32LE(1)==t.byteLength-nt.ENC_PACK)try{let e=T(t,et.ENC_PACK);if(!e)return;this.set_salt12(e.salt12),this.resetOTP();let r=e.$OTHERS,n=this.xotp(r),i=this.getHMAC8(n);if(M(e.hmac,i))return e.data=n,e}catch(t){}}encrypt_e2e(t,e){let r=y.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.encryptPack(t);return this._otpSrc44.set(r),n}decrypt_e2e(t,e){let r=y.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.decryptPack(t);return this._otpSrc44.set(r),n}}const ft={OPENING:0,OPEN:1,CLOSING:2,CLOSED:3,SERVER_READY:4,AUTH_FAIL:5,AUTH_READY:6,READY:7,REDIRECTING:8};for(let t in ft)ft[ft[t]]=t;let ht={NO:0,YES:1,AUTO:2};for(let t in ht)ht[ht[t]]=t;const ut=255,at=65535,ct=3e3,lt=5e3;let pt={EMPTY:0,TEXT:1,BINARY:2,OBJECT:3,MJSON:4,MBA:5};for(let t in pt)pt[pt[t]]=t;let yt={SERVER_READY:192,CID_REQ:193,CID_RES:194,QUOTA_LEVEL:195,SERVER_CLEAR_AUTH:196,SERVER_REDIRECT:197,LOOP:203,ECHO:204,PING:205,PONG:206,CLOSE:207,SIGNAL:208,SIGNAL_REQ:209,SIGNAL_E2E:210,SUBSCRIBE:211,SUBSCRIBE_REQ:212,UNSUBSCRIBE:213,SERVER_SIGNAL:214,IAM:217,IAM_RES:218,SET:219,RESPONSE_CODE:220,RESPONSE_MBP:221,REQUEST:222,RESPONSE:223,FLOW_MODE:240,WAIT:241,RESUME:242,TIME_OUT:253,OVER_SIZE:254,OVER_FLOW:255};for(let t in yt)yt[yt[t]]=t;let gt={0:{signalSize:1500,publishCounter:10,trafficRate:1e4},1:{signalSize:255,publishCounter:10,trafficRate:1e5},2:{signalSize:65535,publishCounter:10,trafficRate:1048576},3:{signalSize:1048576,publishCounter:10,trafficRate:20971520},10:{signalSize:1500,publishCounter:5,trafficRate:20971520},11:{signalSize:65535,publishCounter:10,trafficRate:20971520},12:{signalSize:1048576,publishCounter:100,trafficRate:20971520},200:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600},255:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600}};const dt=new TextEncoder;function bt(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r,n=dt.encode(t),i=function(t){let e,r;if(0==t.length)e=pt.EMPTY,r=null;else if(1==t.length)if("string"==typeof t[0]||"number"==typeof t[0])e=pt.TEXT,r=dt.encode(t[0]+"."),r[r.byteLength-1]=0;else if(ArrayBuffer.isView(t[0])||t[0]instanceof ArrayBuffer)e=pt.BINARY,r=U(t[0]);else{if("object"!=typeof t[0])throw new Error("unknown payload arguments");e=pt.OBJECT,r=dt.encode(JSON.stringify(t[0]))}else{let n=!1;t.forEach((t=>{(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)&&(n=!0)})),n?e=pt.MBA:(e=pt.MJSON,r=dt.encode(JSON.stringify(t)))}return{type:e,buffer:r}}(e);if(i.type==pt.EMPTY)r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type));else if(i.type==pt.MBA){let t=L(w(...e));r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type),m("#mbaBuffer",t))}else r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type),m("#payload",i.buffer));return r}const Et=new TextEncoder,mt=new TextDecoder;class _t extends Y{constructor(t){super(),this.cid="",this.ip="",this.socket=null,this.url=t,this.state=ft.CLOSED,this.stateName=this.getStateName(),this.txCounter=0,this.rxCounter=0,this.txBytes=0,this.rxBytes=0,this.lastTxRxTime=Date.now(),this.connectionCheckerPeriod=ct,this.connectionCheckerIntervalID=null,this.boho=new st,this.TLS=!1,this.encMode=ht.AUTO,this.useAuth=!1,this.nick="",this.channels=new Set,this.promiseMap=new Map,this.promiseTimeOut=lt,this.mid=0,this.level=0,this.quota=gt[this.level],this.serverSet={},this.linkMap=new Map,this.on("open",this.onOpen.bind(this)),this.on("close",this.onClose.bind(this)),this.on("socket_data",this.onData.bind(this))}redirect(t){this.close(),this.stateChange("redirecting"),this.createConnection(t)}open(t){if(t||this.url){if(t)if(this.url){if(t!==this.url&&(this.url=t,this.socket))return void this.close()}else this.url=t;this.createConnection(this.url),this.connectionCheckerIntervalID||(this.connectionCheckerIntervalID=setInterval(this.keepAlive.bind(this),this.connectionCheckerPeriod))}}onOpen(){this.url.includes("wss://")?this.TLS=!0:this.TLS=!1,this.stateChange("open")}onClose(){this.boho.isAuthorized=!1,this.cid="",this.stateChange("closed")}login(t,e){if(!t&&!e)return void console.log("no id and key.");if(console.log("manual login: ",t),!e&&t.includes("."))this.boho.set_id_key(t);else{if(!t||!e)return void console.log("no id or key.");this.boho.set_id8(t),this.boho.set_key(e)}this.useAuth=!0;let r=this.boho.auth_req();this.send(r)}auth(t,e){if(t||e){if(!e&&t.includes("."))this.boho.set_id_key(t);else{if(!t||!e)return void console.log("no id or key.");this.boho.set_id8(t),this.boho.set_key(e)}this.useAuth=!0}else console.log("no id and key.")}onData(t){let e,r=t[0];if(r===tt.ENC_488)e=this.boho.decrypt_488(t),e&&(r=e[0],t=e);else if(r===tt.ENC_E2E)try{if(e=this.boho.decrypt_488(t),!e)return;r=e[0],t.set(e,nt.ENC_488),t=t.subarray(nt.ENC_488)}catch(t){return}let n=yt[r];switch(n||(n=tt[r]),r){case yt.OVER_SIZE:console.log("## server sent: over_size event."),this.emit("over_size","over_size");break;case yt.PING:this.pong();break;case yt.PONG:break;case yt.IAM_RES:try{let e=mt.decode(t.subarray(1)),r=JSON.parse(e);r.ip&&(this.ip=r.ip),console.log("<IAM_RES>",JSON.stringify(r))}catch(t){}break;case yt.CID_RES:let r=mt.decode(t.subarray(1));this.cid=r,this.stateChange("ready","cid_ready"),this.subscribe_memory_channels();break;case yt.QUOTA_LEVEL:let n=t[1];this.level=n,this.quota=gt[n],console.log("## QUOTA:",n,JSON.stringify(this.quota));break;case yt.SERVER_CLEAR_AUTH:this.useAuth=!1,this.boho.clearAuth(),this.stop();break;case yt.SERVER_REDIRECT:let i,o,s;7==t.byteLength?(i=function(t){if(6!=t.byteLength)return;return t[0].toString()+"."+t[1].toString()+"."+t[2].toString()+"."+t[3].toString()+":"+((t[4]<<8)+t[5]).toString()}(t.subarray(1)),s="cong://"):(i=mt.decode(t.subarray(1)),s=""),o=s+i,this.redirect(o);break;case yt.SERVER_READY:this.stateChange("server_ready","server_ready"),this.useAuth?this.send(this.boho.auth_req()):this.send(y.Buffer.from([yt.CID_REQ]));break;case yt.SERVER_SIGNAL:try{let e=mt.decode(t.subarray(1)),r=JSON.parse(e);r.event&&r.data&&(this.serverSet=r.data,this.emit(r.event,r.data))}catch(t){}break;case yt.SET:try{let e=T(t);e&&this.emit(e.topic,...e.args)}catch(t){}break;case yt.SIGNAL_E2E:case yt.SIGNAL:try{let e=t.readUint8(1),r=t.subarray(2,2+e),n=mt.decode(r),i=t.readUint8(2+e),o=t.subarray(3+e);switch(i){case pt.EMPTY:0===n.indexOf("@")?this.emit("@",null,n):this.emit(n,null,n);break;case pt.TEXT:let t=o.subarray(0,o.byteLength-1),e=mt.decode(t);0===n.indexOf("@")&&this.emit("@",e,n),"@"!==n&&this.emit(n,e,n);break;case pt.BINARY:0===n.indexOf("@")&&this.emit("@",o,n),"@"!==n&&this.emit(n,o,n);break;case pt.OBJECT:let r=mt.decode(o),i=JSON.parse(r);0===n.indexOf("@")&&this.emit("@",i,n),"@"!==n&&this.emit(n,i,n);break;case pt.MJSON:let s=mt.decode(o),f=JSON.parse(s);0===n.indexOf("@")&&this.emit("@",...f,n),"@"!==n&&this.emit(n,...f,n);break;case pt.MBA:let h=T(o);0===n.indexOf("@")&&this.emit("@",...h.args,n),"@"!==n&&this.emit(n,...h.args,n)}}catch(t){}break;case yt.RESPONSE_MBP:this.testPromise(t);break;case tt.AUTH_NONCE:let f=this.boho.auth_hmac(t);f?this.send(f):this.stateChange("auth_fail","Invalid local auth_hmac.");break;case tt.AUTH_FAIL:this.stateChange("auth_fail","server reject auth.");break;case tt.AUTH_ACK:this.boho.check_auth_ack_hmac(t)?(this.stateChange("auth_ready","server sent auth_ack"),this.send(y.Buffer.from([yt.CID_REQ]))):this.stateChange("auth_fail","invalid server_hmac");break;default:try{e=mt.decode(t),this.emit("text_message",e)}catch(t){}}}iam(t){t?this.send_enc_mode(L(m("#MsgType","8",yt.IAM),m("#",t))):this.send_enc_mode(L(m("#MsgType","8",yt.IAM)))}ping(){this.send(y.Buffer.from([yt.PING]))}pong(){this.send(y.Buffer.from([yt.PONG]))}echo(t){t?(console.log("echo args:",t),this.send_enc_mode(L(m("#MsgType","8",yt.ECHO),m("#msg",t)))):this.send(y.Buffer.from([yt.ECHO]))}bin(...t){this.send(N(...t))}send(t){if(t.byteLength>this.quota.signalSize)return this.emit("over_size"),console.log("## QUOTA LIMIT OVER!! \nsignal message.byteLength: ",t.byteLength),void console.log("## your maximum signalSize(bytes) is:",this.quota.signalSize);this.socket_send(t)}getEncryptionMode(){return!(this.encMode!==ht.YES&&(this.encMode!==ht.AUTO||this.TLS||!this.boho.isAuthorized))}send_enc_mode(t,e){if(void 0===e&&(e=this.getEncryptionMode()),t[0]==yt.SIGNAL_E2E&&e){let e=t[1],r=this.boho.encrypt_488(t.subarray(0,3+e));r[0]=tt.ENC_E2E,this.send(y.Buffer.concat([r,t.subarray(3+e)]))}else if(e){let e=this.boho.encrypt_488(t);this.send(e)}else this.send(t)}setMsgPromise(t){return new Promise(((e,r)=>{this.promiseMap.set(t,[e,r]),setTimeout((e=>{this.promiseMap.has(t)&&(r("timeout"),this.promiseMap.delete(t))}),this.promiseTimeOut)}))}testPromise(t){let e=T(t);if(e)if(this.promiseMap.has(e.mid)){let[t,r]=this.promiseMap.get(e.mid);this.promiseMap.delete(e.mid),e.status<128?(e.ok=!0,t(e)):(e.ok=!1,r(e))}else console.log("no promise id")}publish(...t){this.signal(...t)}signal(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r=bt(t,...e);this.send_enc_mode(r)}decrypt_e2e(t,e){return this.boho.decrypt_e2e(t,e)}signal_e2e(t,e,r){if("string"!=typeof t)throw TypeError("tag should be string.");let n=Et.encode(t),i=U(e),o=this.boho.encrypt_e2e(i,r),s=L(m("#MsgType","8",yt.SIGNAL_E2E),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",pt.BINARY),m("#payload",o));this.send_enc_mode(s)}set(t,...e){return t&&0!=e.length?this.req("store","set",t,...e):Promise.reject(new Error("set need storeName and value)"))}async get(t){if(!t)return Promise.reject(new Error("store get need storeName)"));let e=await this.req("store","get",t),{$:r}=T(e.body);return r}req(t,e,...r){if(!t||!e)return Promise.reject(new Error("request need target and topic)"));let n;return n=r.length>0?L(m("#MsgType","8",yt.REQUEST),m("mid","16",++this.mid),m("target",t),m("topic",e),w(...r)):L(m("#MsgType","8",yt.REQUEST),m("mid","16",++this.mid),m("target",t),m("topic",e)),this.send_enc_mode(n),this.setMsgPromise(this.mid)}subscribe(t){if("string"!=typeof t)throw TypeError("tag should be string.");if(this.state!==ft.READY)return;t.split(",").forEach((t=>{this.channels.add(t)}));let e=Et.encode(t);if(e.byteLength>ut)throw TypeError("please use tag string bytelength below:"+ut);this.send_enc_mode(y.Buffer.concat([b("8",yt.SUBSCRIBE),b("8",e.byteLength),e]))}subscribe_promise(t){if("string"!=typeof t)throw TypeError("tag should be string.");if(this.state!==ft.READY)return Promise.reject("subscribe_promise:: connection is not ready");let e=Et.encode(t);if(e.byteLength>at)throw TypeError("please use tag string bytelength: "+at);return this.send_enc_mode(y.Buffer.concat([b("8",yt.SUBSCRIBE_REQ),b("16",++this.mid),b("16",e.byteLength),e])),this.setMsgPromise(this.mid)}subscribe_memory_channels(){if(0==this.channels.size)return;let t=Array.from(this.channels).join(",");this.subscribe_promise(t).then((t=>{})).catch((t=>{console.log(">> SUBSCRIBE FAIL:",t)}))}unsubscribe(t=""){if("string"!=typeof t)throw TypeError("tag should be string.");if(""==t)this.channels.clear();else{t.split(",").forEach((t=>{this.channels.delete(t)}))}let e=Et.encode(t);if(e.byteLength>ut)throw TypeError("please use tag string bytelength below:"+ut);this.send_enc_mode(y.Buffer.concat([b("8",yt.UNSUBSCRIBE),b("8",e.byteLength),e]))}listen(t,e){if("string"!=typeof t)throw TypeError("tag should be string.");if(t.length>255||0==t.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof e)throw TypeError("handler is not a function.");0!==t.indexOf("@")&&this.channels.add(t),this.on(t,e)}link(t,e,r){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof r)throw TypeError("handler is not a function.");let n;0!==e.indexOf("@")&&this.channels.add(e),n=this.linkMap.has(t)?this.linkMap.get(t):new Set,n.add(e),this.linkMap.set(t,n),this.on(e,r),this.subscribe(e)}unlink(t,e){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");if(!this.linkMap.has(t))return;let r=this.linkMap.get(t),n=Array.from(r);for(let i=0;i<n.length;i++)if(n[i]==e){this.unsubscribe(e),this.removeAllListeners(e),r.delete(e),this.linkMap.set(t,r);break}}unlinkAll(t){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if(!this.linkMap.has(t))return;let e=this.linkMap.get(t),r=Array.from(e);for(let t=0;t<r.length;t++)this.unsubscribe(r[t]),this.removeAllListeners(r[t]),e.delete(r[t]);this.linkMap.delete(t)}getMetric(){return{tx:this.txCounter,rx:this.rxCounter,txb:this.txBytes,rxb:this.rxBytes,last:(Date.now()-this.lastTxRxTime)/1e3}}getState(){return this.state}getStateName(){return ft[this.state].toLowerCase()}getSecurity(){return{useAuth:this.useAuth,isTLS:this.TLS,isAuthorized:this.boho.isAuthorized,encMode:this.encMode,usingEncryption:this.getEncryptionMode()}}stateChange(t,e){let r=t.toLowerCase();this.state=ft[t.toUpperCase()],e&&this.emit(r,e),this.stateName!==r&&(this.stateName=r,this.emit("change",r))}}class wt extends _t{constructor(t){super(t),document.addEventListener("visibilitychange",this.browserVisiblePing.bind(this)),t&&this.open()}browserVisiblePing(){"visible"===document.visibilityState&&this.ping()}close(){this.socket&&(this.socket.onclose=null,this.socket.onmessage=null,this.socket.onerror=null,this.socket.close(),this.socket=null),this.emit("close")}stop(){this.close(),clearInterval(this.connectionCheckerIntervalID),this.connectionCheckerIntervalID=null}keepAlive(){this.socket&&3!==this.socket?.readyState||this.open()}createConnection(t){this.socket=new WebSocket(t),this.stateChange("opening"),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{this.socket.onmessage=this.onWebSocketMessage.bind(this),this.emit("open")},this.socket.onerror=t=>{this.emit("error",t)},this.socket.onclose=()=>{this.emit("close")}}onWebSocketMessage(t){let e;this.rxCounter++,this.lastTxRxTime=Date.now(),e=y.Buffer.from(t.data),this.rxBytes+=e.byteLength,this.emit("socket_data",e)}socket_send(t){1===this.socket?.readyState?(this.socket.send(t),this.txCounter++,this.txBytes+=t.byteLength,this.lastTxRxTime=Date.now()):console.log(".")}}return st.RAND=ot,st.BohoMsg=tt,st.Meta=et,st.MetaSize=nt,st.sha256=X,wt.Boho=st,wt.MBP=G,wt.Buffer=y.Buffer,wt}();
2
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */const g=new TextEncoder,d=new TextDecoder,b=E;function E(t,e=0){let r;if(void 0===t||"string"!=typeof t||"number"!=typeof e)throw TypeError("invlaid init variablie type name. ");return(t=t.toUpperCase()).includes("8")?(r=y.Buffer.alloc(1),t.includes("I")?r.writeInt8(e):r.writeUint8(e)):t.includes("16")?(r=y.Buffer.alloc(2),t.includes("I")?t.includes("L")?r.writeInt16LE(e):r.writeInt16BE(e):t.includes("L")?r.writeUint16LE(e):r.writeUint16BE(e)):t.includes("32")?(r=y.Buffer.alloc(4),t.includes("I")?t.includes("L")?r.writeInt32LE(e):r.writeInt32BE(e):t.includes("L")?r.writeUint32LE(e):r.writeUint32BE(e)):t.includes("F")?(r=y.Buffer.alloc(4),t.includes("L")?r.writeFloatLE(e):r.writeFloatBE(e)):t.includes("N")?r=y.Buffer.from(String(e)):console.log(`invalid type: ${t} or initvalue: ${e}`),r}const m=_;function _(t,e,r){let n,i="B";if("number"==typeof e)"number"==typeof r?(n=y.Buffer.alloc(e),0!==r&&n.fill(r),i="B"):(n=y.Buffer.from(String(e)),i="N");else if("string"==typeof e&&"number"==typeof r)i=e.toUpperCase(),n=E(e,r);else if("string"==typeof e&&void 0===r)n=y.Buffer.from(e),i="S";else if(e instanceof Uint8Array&&void 0===r)n=e instanceof y.Buffer?e:y.Buffer.from(e);else if(e instanceof ArrayBuffer&&void 0===r)n=y.Buffer.from(e);else if(ArrayBuffer.isView(e))n=y.Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if("object"==typeof e&&void 0===r)n=y.Buffer.from(JSON.stringify(e)),i="O";else{if("boolean"!=typeof e||void 0!==r)throw TypeError("invalid meta buffer type");{const t=e?1:0;n=y.Buffer.from([t]),i="!"}}return"string"==typeof t&&t.includes("#")&&(t=""),[t,i,n]}const w=A;function A(...t){let e=0;return t.map((t=>{const r=e++;return"number"==typeof t?m(r,"N",t):m(r,t)}))}function B(t){if((t=t.toUpperCase()).includes("8"))return t.includes("I")?"int8":"uint8";if(t.includes("16"))return t.includes("I")?t.includes("L")?"int16_le":"int16_be":t.includes("L")?"uint16_le":"uint16_be";if(t.includes("32"))return t.includes("I")?t.includes("L")?"int32_le":"int32_be":t.includes("L")?"uint32_le":"uint32_be";if(t.includes("F"))return t.includes("L")?"float_le":"float_be";if("B"===t)return"buffer";if("S"===t)return"string";if("N"===t)return"number";if("O"===t)return"object";if("!"===t)return"boolean";throw TypeError("invalid data type")}function S(t,e,r,n){try{const i=B(t);if("int8"==i)return e.readInt8(r);if("uint8"===i)return e.readUint8(r);if("int16_le"===i)return e.readInt16LE(r);if("int16_be"===i)return e.readInt16BE(r);if("uint16_le"===i)return e.readUint16LE(r);if("uint16_be"===i)return e.readUint16BE(r);if("int32_le"===i)return e.readInt32LE(r);if("int32_be"===i)return e.readInt32BE(r);if("uint32_le"===i)return e.readUint32LE(r);if("uint32_be"===i)return e.readUint32BE(r);if("float_le"===i)return e.readFloatLE(r);if("float_be"===i)return e.readFloatBE(r);if("buffer"===i)return e.subarray(r,r+n);if("string"===i){const t=e.subarray(r,r+n);return d.decode(t)}if("number"===i){const t=e.subarray(r,r+n);return Number(d.decode(t))}if("object"===i){const t=e.subarray(r,r+n);return JSON.parse(d.decode(t))}if("boolean"===i){return 1===e.readInt8(r)}return}catch(t){}}function L(...t){const e=function(t){let e=[];return t.filter((t=>{if(!Array.isArray(t[0]))return t;e=e.concat(t)})).concat(e)}(t);let r=0;const n=[];let i,o,s=0;if(e.forEach((t=>{const[e,i,o]=t;r+=o.byteLength,("number"==typeof e||e.length>0)&&n.push([e,i,s,o.byteLength]),s=r})),n.length>0){let t=JSON.stringify(n);i=g.encode(t),o=i.byteLength,r=r+o+2}const f=y.Buffer.alloc(r);if(s=0,e.forEach((t=>{const e=t[2];f.set(e,s),s+=e.byteLength})),n.length>0){f.set(i,s);const t=b("16",o);return f.set(t,s+o),f}return f}function T(t,e){const r=e||j(t);if(!r)return;const n=y.Buffer.from(t),i={};let o=0;if(r.forEach((t=>{const[e,r,s,f]=t;let h=S(r,n,s,f);null!=h&&(i[e]=h,f&&(o+=f))})),e&&n.byteLength!==o){let t=n.byteLength-o,e=S("b",n,o,t);if(null==e)return;i.$OTHERS=e}let s=0,f=[];for(;i[s];)f.push(i[s++]);return f.length>0&&(i.args=f,i.$=i.args),i}const v=I;function I(t,e=!1){if(void 0===t)throw TypeError("Invalid data type: Undefined");if("string"==typeof t)return g.encode(t);if("number"==typeof t)return Uint8Array.from([t]);if(t instanceof ArrayBuffer){if(e)return new Uint8Array(t);{const e=new Uint8Array(t),r=new Uint8Array(t.byteLength);return r.set(e),r}}if(ArrayBuffer.isView(t)){if(e)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);{const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=new Uint8Array(t.byteLength);return r.set(e),r}}return g.encode(JSON.stringify(t))}const U=C;function C(t,e=!1){const r=I(t,e);return e?y.Buffer.from(r.buffer,r.byteOffset,r.byteLength):y.Buffer.from(r)}const O=R;function R(...t){const e=t.map((t=>C(t)));return y.Buffer.concat(e)}const N=k;function k(...t){try{let e=0,r=0;const n=t.map((t=>I(t)));n.forEach((t=>{e+=t.byteLength}));const i=new Uint8Array(e);return n.forEach((t=>{i.set(t,r),r+=t.byteLength})),i}catch(t){console.log(t)}}function M(t,e){if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function x(t){return 0===z(t)?t.byteLength:t.byteLength-z(t)-H}function P(t,e){try{const r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-e-2,i=r.subarray(n,r.byteLength-2),o=d.decode(i),s=JSON.parse(o);if(!Array.isArray(s)||!Array.isArray(s[0]))return;let f=s[0];if(!f)return;if(f.length<3)return;const[h,u,a]=f;if("string"!=typeof u||"number"!=typeof a)return;return s}catch(t){}}const H=2;function D(t){if(t instanceof ArrayBuffer&&(t=y.Buffer.from(t)),t instanceof Uint8Array){if(t.byteLength<=H)return 0;return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(t.byteLength-H)}return 0}function z(t){if(t instanceof ArrayBuffer&&(t=y.Buffer.from(t)),t instanceof Uint8Array){const e=t.byteLength;if(e<=H)return 0;const r=D(t);if(0===r||r>e)return 0;return P(t,r)?r:0}return 0}function $(t){const e=x(t);return t.subarray(0,e)}function j(t,e=!1){t instanceof ArrayBuffer&&(t=y.Buffer.from(t));const r=D(t);if(0===r)return;let n=P(t,r);return n?e?(n.forEach((t=>{null==t[3]&&(t[1].includes("8")?t[3]=1:t[1].includes("16")?t[3]=2:t[1].includes("32")||t[1].includes("F")?t[3]=4:t[1].includes("!")&&(t[3]=1)),t[4]=B(t[1])})),n):n:void 0}function F(...t){return $(L(...t))}function V(...t){return j(L(...t))}var G=Object.freeze({__proto__:null,Buffer:y.Buffer,NB:b,numberBuffer:E,MB:m,metaBuffer:_,MBA:w,metaBufferArguments:A,parseTypeName:B,readTypedBuffer:S,pack:L,unpack:T,U8:v,parseUint8Array:I,B8:U,parseBuffer:C,B8pack:O,parseBufferThenConcat:R,U8pack:N,parseUint8ThenConcat:k,hex:function(t){return Array.prototype.map.call(new Uint8Array(t),(t=>("00"+t.toString(16)).slice(-2))).join("")},equal:M,getBufferSize:x,parseMetaInfo:P,TAIL_LEN:H,readTail:D,getMetaSize:z,getBuffer:$,getMeta:j,rawPack:F,meta:V,metaDetail:function(...t){return j(L(...t),!0)},getMetaDetail:function(t){return j(t,!0)}}),Y=t((function(t){var e=Object.prototype.hasOwnProperty,r="~";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(t,e,n,o,s){if("function"!=typeof n)throw new TypeError("The listener must be a function");var f=new i(n,o||t,s),h=r?r+e:e;return t._events[h]?t._events[h].fn?t._events[h]=[t._events[h],f]:t._events[h].push(f):(t._events[h]=f,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function f(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),f.prototype.eventNames=function(){var t,n,i=[];if(0===this._eventsCount)return i;for(n in t=this._events)e.call(t,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},f.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s},f.prototype.listenerCount=function(t){var e=r?r+t:t,n=this._events[e];return n?n.fn?1:n.length:0},f.prototype.emit=function(t,e,n,i,o,s){var f=r?r+t:t;if(!this._events[f])return!1;var h,u,a=this._events[f],c=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),c){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,n),!0;case 4:return a.fn.call(a.context,e,n,i),!0;case 5:return a.fn.call(a.context,e,n,i,o),!0;case 6:return a.fn.call(a.context,e,n,i,o,s),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];a.fn.apply(a.context,h)}else{var l,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),c){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,n);break;case 4:a[u].fn.call(a[u].context,e,n,i);break;default:if(!h)for(l=1,h=new Array(c-1);l<c;l++)h[l-1]=arguments[l];a[u].fn.apply(a[u].context,h)}}return!0},f.prototype.on=function(t,e,r){return o(this,t,e,r,!1)},f.prototype.once=function(t,e,r){return o(this,t,e,r,!0)},f.prototype.removeListener=function(t,e,n,i){var o=r?r+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var f=this._events[o];if(f.fn)f.fn!==e||i&&!f.once||n&&f.context!==n||s(this,o);else{for(var h=0,u=[],a=f.length;h<a;h++)(f[h].fn!==e||i&&!f[h].once||n&&f[h].context!==n)&&u.push(f[h]);u.length?this._events[o]=1===u.length?u[0]:u:s(this,o)}return this},f.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&s(this,e)):(this._events=new n,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=r,f.EventEmitter=f,t.exports=f}));const J=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function Q(t,e,r,n,i){let o,s,f,h,u,a,c,l,p,y,g,d,b;for(;i>=64;){for(o=e[0],s=e[1],f=e[2],h=e[3],u=e[4],a=e[5],c=e[6],l=e[7],y=0;y<16;y++)g=n+4*y,t[y]=(255&r[g])<<24|(255&r[g+1])<<16|(255&r[g+2])<<8|255&r[g+3];for(y=16;y<64;y++)p=t[y-2],d=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=t[y-15],b=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[y]=(d+t[y-7]|0)+(b+t[y-16]|0);for(y=0;y<64;y++)d=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&a^~u&c)|0)+(l+(J[y]+t[y]|0)|0)|0,b=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&s^o&f^s&f)|0,l=c,c=a,a=u,u=h+d|0,h=f,f=s,s=o,o=d+b|0;e[0]+=o,e[1]+=s,e[2]+=f,e[3]+=h,e[4]+=u,e[5]+=a,e[6]+=c,e[7]+=l,n+=64,i-=64}return n}const q=function(){function t(){this.digestLength=32,this.blockSize=64,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return t.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},t.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},t.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");let r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(Q(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=Q(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},t.prototype.finish=function(t){if(!this.finished){const t=this.bytesHashed,r=this.bufferLength,n=t/536870912|0,i=t<<3,o=t%64<56?64:128;this.buffer[r]=128;for(var e=r+1;e<o-8;e++)this.buffer[e]=0;this.buffer[o-8]=n>>>24&255,this.buffer[o-7]=n>>>16&255,this.buffer[o-6]=n>>>8&255,this.buffer[o-5]=n>>>0&255,this.buffer[o-4]=i>>>24&255,this.buffer[o-3]=i>>>16&255,this.buffer[o-2]=i>>>8&255,this.buffer[o-1]=i>>>0&255,Q(this.temp,this.state,this.buffer,0,o),this.finished=!0}for(e=0;e<8;e++)t[4*e+0]=this.state[e]>>>24&255,t[4*e+1]=this.state[e]>>>16&255,t[4*e+2]=this.state[e]>>>8&255,t[4*e+3]=this.state[e]>>>0&255;return this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t.prototype._saveState=function(t){for(let e=0;e<this.state.length;e++)t[e]=this.state[e]},t.prototype._restoreState=function(t,e){for(let e=0;e<this.state.length;e++)this.state[e]=t[e];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},t}(),K=function(){function t(t){this.inner=new q,this.outer=new q,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;const e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new q).update(t).finish(e).clean();else for(var r=0;r<t.length;r++)e[r]=t[r];for(r=0;r<e.length;r++)e[r]^=54;this.inner.update(e);for(r=0;r<e.length;r++)e[r]^=106;this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate);for(r=0;r<e.length;r++)e[r]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(let t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){const t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function W(t){const e=(new q).update(t),r=e.digest();return e.clean(),r}const X={hash:function(t){return W(v(t))},hex:function(t){return U(W(v(t))).toString("hex")},base64:function(t){return U(W(v(t))).toString("base64")}};X.hmac=function(t,e){return function(t,e){const r=new K(t).update(e),n=r.digest();return r.clean(),n}(v(t),v(e))};const Z=m;let tt={AUTH_REQ:176,AUTH_NONCE:177,AUTH_HMAC:178,AUTH_ACK:179,AUTH_FAIL:180,AUTH_EXT:181,ENC_PACK:182,ENC_E2E:183,ENC_488:184};for(let t in tt)tt[tt[t]]=t;const et={AUTH_REQ:V(Z("header","8",0),Z("reserved","8",0)),AUTH_NONCE:V(Z("header","8",0),Z("unixTime","32L",0),Z("milTime","32L",0),Z("nonce",y.Buffer.alloc(4))),AUTH_HMAC:V(Z("header","8",0),Z("id8",y.Buffer.alloc(8)),Z("nonce",y.Buffer.alloc(4)),Z("hmac32",y.Buffer.alloc(32))),AUTH_ACK:V(Z("header","8",0),Z("hmac32",y.Buffer.alloc(32))),ENC_PACK:V(Z("type","8",0),Z("len","32L",0),Z("salt12",y.Buffer.alloc(12)),Z("hmac",8,0)),ENC_488:V(Z("type","8",0),Z("len","32L",0),Z("otpSrc8",y.Buffer.alloc(8)),Z("hmac8",y.Buffer.alloc(8)))};function rt(t){let e=t[t.length-1];return e[2]+e[3]}const nt={AUTH_REQ:rt(et.AUTH_REQ),AUTH_NONCE:rt(et.AUTH_NONCE),AUTH_HMAC:rt(et.AUTH_HMAC),AUTH_ACK:rt(et.AUTH_ACK),ENC_PACK:rt(et.ENC_PACK),ENC_488:rt(et.ENC_488)};let it=!1;try{it="[object process]"===Object.prototype.toString.call(global.process)}catch(t){}function ot(t){return it?webcrypto.getRandomValues(y.Buffer.alloc(t)):self.crypto.getRandomValues(y.Buffer.alloc(t))}class st{constructor(){this._id8=y.Buffer.alloc(8),this._otpSrc44=y.Buffer.alloc(44),this._otp36=y.Buffer.alloc(36),this._hmac=y.Buffer.alloc(32),this.auth_salt12=y.Buffer.alloc(12),this.localNonce=y.Buffer.alloc(4),this.remoteNonce=y.Buffer.alloc(4),this.isAuthorized=!1}clearAuth(){this._id8.fill(0),this._otpSrc44.fill(0),this._otp36.fill(0),this._hmac.fill(0),this.auth_salt12.fill(0),this.localNonce.fill(0),this.remoteNonce.fill(0),this.isAuthorized=!1}set_hash_id8(t){U(X.hash(t)).copy(this._id8,0,0,8)}set_id8(t){let e=U(t);this._id8.fill(0),e.copy(this._id8,0,0,8)}set_key(t){U(X.hash(t)).copy(this._otpSrc44,0,0,32)}set_id_key(t){let e=t.indexOf(".");if(-1==e)return;let r=t.substring(0,e),n=t.substring(e+1);this.set_id8(r),this.set_key(n)}copy_id8(t){t.copy(this._id8,0,0,8)}copy_key(t){t.copy(this._otpSrc44,0,0,32)}sha256_n(t,e){let r=X.hash(t);for(let t=0;t<e;t++)r=X.hash(r);return r}set_clock_rand(){let t=Date.now(),e=parseInt(t/1e3);t%=4294967295;y.Buffer.concat([b("32L",e),b("32L",t),ot(4)]).copy(this._otpSrc44,32)}set_clock_nonce(t){let e=Date.now(),r=parseInt(e/1e3);e%=4294967295;y.Buffer.concat([b("32L",r),b("32L",e),t]).copy(this._otpSrc44,32)}set_salt12(t){t.copy(this._otpSrc44,32)}resetOTP(){U(X.hash(this._otpSrc44)).copy(this._otp36,0,0,32)}getIndexOTP(t){return this._otp36.writeUInt32LE(t,32),X.hash(this._otp36)}generateHMAC(t){let e=y.Buffer.concat([this._otpSrc44,t]);this._hmac=U(X.hash(e))}getHMAC8(t){let e=y.Buffer.concat([this._otpSrc44,t]);return this._hmac=U(X.hash(e)),this._hmac.subarray(0,8)}xotp(t,e=0,r=!1){let n=(t=U(t,r)).byteLength,i=e,o=0,s=0;for(;n>0;){s=n<32?n:32;let e=this.getIndexOTP(++i);for(let r=0;r<s;r++)t[o++]^=e[r];n-=32}return t}auth_req(){return L(m("#type","8",tt.AUTH_REQ),m("#reserved","8",0))}auth_nonce(){let t=Date.now(),e=Math.floor(t/1e3),r=t%1e3;return this.localNonce=ot(4),this.auth_salt12=y.Buffer.concat([b("32L",e),b("32L",r),this.localNonce]),y.Buffer.concat([b("8",tt.AUTH_NONCE),this.auth_salt12])}auth_hmac(t){let e=T(t,et.AUTH_NONCE);if(e){let t=y.Buffer.concat([b("32L",e.unixTime),b("32L",e.milTime),e.nonce]);return this.set_salt12(t),this.localNonce=ot(4),this.generateHMAC(this.localNonce),this.remoteNonce=e.nonce,L(m("#header","8",tt.AUTH_HMAC),m("#id8",this._id8),m("#nonce",this.localNonce),m("#hmac32",this._hmac))}return!1}check_auth_hmac(t){let e;if(t instanceof Uint8Array){if(e=T(t,et.AUTH_HMAC),!e)return}else e=t;this.set_salt12(this.auth_salt12),this.generateHMAC(e.nonce);let r=this._hmac;if(M(e.hmac32,r)){this.remoteNonce=e.nonce;let t=y.Buffer.concat([this.localNonce,this.remoteNonce,this.localNonce]);this.set_salt12(t),this.generateHMAC(e.nonce);let r=this._hmac,n=F(m("header","8",tt.AUTH_ACK),m("hmac32",r));return this.isAuthorized=!0,n}return!1}check_auth_ack_hmac(t){let e=T(t,et.AUTH_ACK);if(e){let t=y.Buffer.concat([this.remoteNonce,this.localNonce,this.remoteNonce]);if(this.set_salt12(t),this.generateHMAC(this.localNonce),M(this._hmac,e.hmac32))return this.isAuthorized=!0,!0}}encrypt_488(t){if(!this.isAuthorized)return;t=U(t),this.set_clock_nonce(this.remoteNonce),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return L(m("#type","8",tt.ENC_488),m("#len","32L",t.byteLength),m("#otpSrc8",this._otpSrc44.subarray(32,40)),m("#hmac8",e),m("#xdata",r))}decrypt_488(t){let e=T(t=U(t),et.ENC_488);if(e){let t=y.Buffer.concat([e.otpSrc8,this.localNonce]);this.set_salt12(t),this.resetOTP();let r=e.$OTHERS.subarray(0,e.len),n=this.xotp(r);if(M(this.getHMAC8(n),e.hmac8))return n}}encryptPack(t){t=U(t),this.set_clock_rand(),this.resetOTP();let e=this.getHMAC8(t),r=this.xotp(t);return L(m("#type","8",tt.ENC_PACK),m("#len","32L",t.byteLength),m("#salt12",this._otpSrc44.subarray(32)),m("#hmac8",e),m("#xdata",r))}decryptPack(t){if(t[0]!==tt.ENC_PACK)return;if(t.readUint32LE(1)==t.byteLength-nt.ENC_PACK)try{let e=T(t,et.ENC_PACK);if(!e)return;this.set_salt12(e.salt12),this.resetOTP();let r=e.$OTHERS,n=this.xotp(r),i=this.getHMAC8(n);if(M(e.hmac,i))return e.data=n,e}catch(t){}}encrypt_e2e(t,e){let r=y.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.encryptPack(t);return this._otpSrc44.set(r),n}decrypt_e2e(t,e){let r=y.Buffer.alloc(32);r.set(this._otpSrc44.subarray(0,32)),this.set_key(e);let n=this.decryptPack(t);return this._otpSrc44.set(r),n}}const ft={OPENING:0,OPEN:1,CLOSING:2,CLOSED:3,SERVER_READY:4,AUTH_FAIL:5,AUTH_READY:6,READY:7,REDIRECTING:8};for(let t in ft)ft[ft[t]]=t;let ht={NO:0,YES:1,AUTO:2};for(let t in ht)ht[ht[t]]=t;const ut=255,at=65535,ct=3e3,lt=5e3;let pt={EMPTY:0,TEXT:1,BINARY:2,OBJECT:3,MJSON:4,MBA:5};for(let t in pt)pt[pt[t]]=t;let yt={SERVER_READY:192,CID_REQ:193,CID_RES:194,QUOTA_LEVEL:195,SERVER_CLEAR_AUTH:196,SERVER_REDIRECT:197,LOOP:203,ECHO:204,PING:205,PONG:206,CLOSE:207,SIGNAL:208,SIGNAL_REQ:209,SIGNAL_E2E:210,SUBSCRIBE:211,SUBSCRIBE_REQ:212,UNSUBSCRIBE:213,SERVER_SIGNAL:214,IAM:217,IAM_RES:218,SET:219,RESPONSE_CODE:220,RESPONSE_MBP:221,REQUEST:222,RESPONSE:223,FLOW_MODE:240,WAIT:241,RESUME:242,TIME_OUT:253,OVER_SIZE:254,OVER_FLOW:255};for(let t in yt)yt[yt[t]]=t;let gt={0:{signalSize:1500,publishCounter:10,trafficRate:1e4},1:{signalSize:255,publishCounter:10,trafficRate:1e5},2:{signalSize:65535,publishCounter:10,trafficRate:1048576},3:{signalSize:1048576,publishCounter:10,trafficRate:20971520},10:{signalSize:1500,publishCounter:5,trafficRate:20971520},11:{signalSize:65535,publishCounter:10,trafficRate:20971520},12:{signalSize:1048576,publishCounter:100,trafficRate:20971520},200:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600},255:{signalSize:20971520,publishCounter:1e4,trafficRate:104857600}};const dt=new TextEncoder;function bt(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r,n=dt.encode(t),i=function(t){let e,r;if(0==t.length)e=pt.EMPTY,r=null;else if(1==t.length)if("string"==typeof t[0]||"number"==typeof t[0])e=pt.TEXT,r=dt.encode(t[0]+"."),r[r.byteLength-1]=0;else if(ArrayBuffer.isView(t[0])||t[0]instanceof ArrayBuffer)e=pt.BINARY,r=U(t[0]);else{if("object"!=typeof t[0])throw new Error("unknown payload arguments");e=pt.OBJECT,r=dt.encode(JSON.stringify(t[0]))}else{let n=!1;t.forEach((t=>{(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)&&(n=!0)})),n?e=pt.MBA:(e=pt.MJSON,r=dt.encode(JSON.stringify(t)))}return{type:e,buffer:r}}(e);if(i.type==pt.EMPTY)r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type));else if(i.type==pt.MBA){let t=L(w(...e));r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type),m("#mbaBuffer",t))}else r=L(m("#MsgType","8",yt.SIGNAL),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",i.type),m("#payload",i.buffer));return r}const Et=new TextEncoder,mt=new TextDecoder;class _t extends Y{constructor(t){super(),this.cid="",this.ip="",this.socket=null,this.url=t,this.state=ft.CLOSED,this.stateName=this.getStateName(),this.txCounter=0,this.rxCounter=0,this.txBytes=0,this.rxBytes=0,this.lastTxRxTime=Date.now(),this.connectionCheckerPeriod=ct,this.connectionCheckerIntervalID=null,this.boho=new st,this.TLS=!1,this.encMode=ht.AUTO,this.useAuth=!1,this.nick="",this.channels=new Set,this.promiseMap=new Map,this.promiseTimeOut=lt,this.mid=0,this.level=3,this.quota=gt[this.level],this.serverSet={},this.linkMap=new Map,this.on("open",this.onOpen.bind(this)),this.on("close",this.onClose.bind(this)),this.on("socket_data",this.onData.bind(this))}redirect(t){this.close(),this.stateChange("redirecting"),this.createConnection(t)}open(t){if(t||this.url){if(t)if(this.url){if(t!==this.url&&(this.url=t,this.socket))return void this.close()}else this.url=t;this.createConnection(this.url),this.connectionCheckerIntervalID||(this.connectionCheckerIntervalID=setInterval(this.keepAlive.bind(this),this.connectionCheckerPeriod))}}onOpen(){this.url.includes("wss://")?this.TLS=!0:this.TLS=!1,this.stateChange("open")}onClose(){this.boho.isAuthorized=!1,this.cid="",this.stateChange("closed")}login(t,e){if(!t&&!e)return void console.log("no id and key.");if(console.log("manual login: ",t),!e&&t.includes("."))this.boho.set_id_key(t);else{if(!t||!e)return void console.log("no id or key.");this.boho.set_id8(t),this.boho.set_key(e)}this.useAuth=!0;let r=this.boho.auth_req();this.send(r)}auth(t,e){if(t||e){if(!e&&t.includes("."))this.boho.set_id_key(t);else{if(!t||!e)return void console.log("no id or key.");this.boho.set_id8(t),this.boho.set_key(e)}this.useAuth=!0}else console.log("no id and key.")}onData(t){let e,r=t[0];if(r===tt.ENC_488)e=this.boho.decrypt_488(t),e&&(r=e[0],t=e);else if(r===tt.ENC_E2E)try{if(e=this.boho.decrypt_488(t),!e)return;r=e[0],t.set(e,nt.ENC_488),t=t.subarray(nt.ENC_488)}catch(t){return}let n=yt[r];switch(n||(n=tt[r]),r){case yt.OVER_SIZE:console.log("## server sent: over_size event."),this.emit("over_size","over_size");break;case yt.PING:this.pong();break;case yt.PONG:break;case yt.IAM_RES:try{let e=mt.decode(t.subarray(1)),r=JSON.parse(e);r.ip&&(this.ip=r.ip),console.log("<IAM_RES>",JSON.stringify(r))}catch(t){}break;case yt.CID_RES:let r=mt.decode(t.subarray(1));this.cid=r,this.stateChange("ready","cid_ready"),this.subscribe_memory_channels();break;case yt.QUOTA_LEVEL:let n=t[1];this.level=n,this.quota=gt[n],console.log("## QUOTA:",n,JSON.stringify(this.quota));break;case yt.SERVER_CLEAR_AUTH:this.useAuth=!1,this.boho.clearAuth(),this.stop();break;case yt.SERVER_REDIRECT:let i,o,s;7==t.byteLength?(i=function(t){if(6!=t.byteLength)return;return t[0].toString()+"."+t[1].toString()+"."+t[2].toString()+"."+t[3].toString()+":"+((t[4]<<8)+t[5]).toString()}(t.subarray(1)),s="cong://"):(i=mt.decode(t.subarray(1)),s=""),o=s+i,this.redirect(o);break;case yt.SERVER_READY:this.stateChange("server_ready","server_ready"),this.useAuth?this.send(this.boho.auth_req()):this.send(y.Buffer.from([yt.CID_REQ]));break;case yt.SERVER_SIGNAL:try{let e=mt.decode(t.subarray(1)),r=JSON.parse(e);r.event&&r.data&&(this.serverSet=r.data,this.emit(r.event,r.data))}catch(t){}break;case yt.SET:try{let e=T(t);e&&this.emit(e.topic,...e.args)}catch(t){}break;case yt.SIGNAL_E2E:case yt.SIGNAL:try{let e=t.readUint8(1),r=t.subarray(2,2+e),n=mt.decode(r),i=t.readUint8(2+e),o=t.subarray(3+e);switch(i){case pt.EMPTY:0===n.indexOf("@")?this.emit("@",null,n):this.emit(n,null,n);break;case pt.TEXT:let t=o.subarray(0,o.byteLength-1),e=mt.decode(t);0===n.indexOf("@")&&this.emit("@",e,n),"@"!==n&&this.emit(n,e,n);break;case pt.BINARY:0===n.indexOf("@")&&this.emit("@",o,n),"@"!==n&&this.emit(n,o,n);break;case pt.OBJECT:let r=mt.decode(o),i=JSON.parse(r);0===n.indexOf("@")&&this.emit("@",i,n),"@"!==n&&this.emit(n,i,n);break;case pt.MJSON:let s=mt.decode(o),f=JSON.parse(s);0===n.indexOf("@")&&this.emit("@",...f,n),"@"!==n&&this.emit(n,...f,n);break;case pt.MBA:let h=T(o);0===n.indexOf("@")&&this.emit("@",...h.args,n),"@"!==n&&this.emit(n,...h.args,n)}}catch(t){}break;case yt.RESPONSE_MBP:this.testPromise(t);break;case tt.AUTH_NONCE:let f=this.boho.auth_hmac(t);f?this.send(f):this.stateChange("auth_fail","Invalid local auth_hmac.");break;case tt.AUTH_FAIL:this.stateChange("auth_fail","server reject auth.");break;case tt.AUTH_ACK:this.boho.check_auth_ack_hmac(t)?(this.stateChange("auth_ready","server sent auth_ack"),this.send(y.Buffer.from([yt.CID_REQ]))):this.stateChange("auth_fail","invalid server_hmac");break;default:try{e=mt.decode(t),this.emit("text_message",e)}catch(t){}}}iam(t){t?this.send_enc_mode(L(m("#MsgType","8",yt.IAM),m("#",t))):this.send_enc_mode(L(m("#MsgType","8",yt.IAM)))}ping(){this.send(y.Buffer.from([yt.PING]))}pong(){this.send(y.Buffer.from([yt.PONG]))}echo(t){t?(console.log("echo args:",t),this.send_enc_mode(L(m("#MsgType","8",yt.ECHO),m("#msg",t)))):this.send(y.Buffer.from([yt.ECHO]))}bin(...t){this.send(N(...t))}send(t){if(t.byteLength>this.quota.signalSize)return this.emit("over_size"),console.log("## QUOTA LIMIT OVER!! \nsignal message.byteLength: ",t.byteLength),void console.log("## your maximum signalSize(bytes) is:",this.quota.signalSize);this.socket_send(t)}getEncryptionMode(){return!(this.encMode!==ht.YES&&(this.encMode!==ht.AUTO||this.TLS||!this.boho.isAuthorized))}send_enc_mode(t,e){if(void 0===e&&(e=this.getEncryptionMode()),t[0]==yt.SIGNAL_E2E&&e){let e=t[1],r=this.boho.encrypt_488(t.subarray(0,3+e));r[0]=tt.ENC_E2E,this.send(y.Buffer.concat([r,t.subarray(3+e)]))}else if(e){let e=this.boho.encrypt_488(t);this.send(e)}else this.send(t)}setMsgPromise(t){return new Promise(((e,r)=>{this.promiseMap.set(t,[e,r]),setTimeout((e=>{this.promiseMap.has(t)&&(r("timeout"),this.promiseMap.delete(t))}),this.promiseTimeOut)}))}testPromise(t){let e=T(t);if(e)if(this.promiseMap.has(e.mid)){let[t,r]=this.promiseMap.get(e.mid);this.promiseMap.delete(e.mid),e.status<128?(e.ok=!0,t(e)):(e.ok=!1,r(e))}else console.log("no promise id")}publish(...t){this.signal(...t)}signal(t,...e){if("string"!=typeof t)throw TypeError("tag should be string.");let r=bt(t,...e);this.send_enc_mode(r)}decrypt_e2e(t,e){return this.boho.decrypt_e2e(t,e)}signal_e2e(t,e,r){if("string"!=typeof t)throw TypeError("tag should be string.");let n=Et.encode(t),i=U(e),o=this.boho.encrypt_e2e(i,r),s=L(m("#MsgType","8",yt.SIGNAL_E2E),m("#tagLen","8",n.byteLength),m("#tag",n),m("#payloadType","8",pt.BINARY),m("#payload",o));this.send_enc_mode(s)}set(t,...e){return t&&0!=e.length?this.req("store","set",t,...e):Promise.reject(new Error("set need storeName and value)"))}async get(t){if(!t)return Promise.reject(new Error("store get need storeName)"));let e=await this.req("store","get",t),{$:r}=T(e.body);return r}req(t,e,...r){if(!t||!e)return Promise.reject(new Error("request need target and topic)"));let n;return n=r.length>0?L(m("#MsgType","8",yt.REQUEST),m("mid","16",++this.mid),m("target",t),m("topic",e),w(...r)):L(m("#MsgType","8",yt.REQUEST),m("mid","16",++this.mid),m("target",t),m("topic",e)),this.send_enc_mode(n),this.setMsgPromise(this.mid)}subscribe(t){if("string"!=typeof t)throw TypeError("tag should be string.");if(this.state!==ft.READY)return;t.split(",").forEach((t=>{this.channels.add(t)}));let e=Et.encode(t);if(e.byteLength>ut)throw TypeError("please use tag string bytelength below:"+ut);this.send_enc_mode(y.Buffer.concat([b("8",yt.SUBSCRIBE),b("8",e.byteLength),e]))}subscribe_promise(t){if("string"!=typeof t)throw TypeError("tag should be string.");if(this.state!==ft.READY)return Promise.reject("subscribe_promise:: connection is not ready");let e=Et.encode(t);if(e.byteLength>at)throw TypeError("please use tag string bytelength: "+at);return this.send_enc_mode(y.Buffer.concat([b("8",yt.SUBSCRIBE_REQ),b("16",++this.mid),b("16",e.byteLength),e])),this.setMsgPromise(this.mid)}subscribe_memory_channels(){if(0==this.channels.size)return;let t=Array.from(this.channels).join(",");this.subscribe_promise(t).then((t=>{})).catch((t=>{console.log(">> SUBSCRIBE FAIL:",t)}))}unsubscribe(t=""){if("string"!=typeof t)throw TypeError("tag should be string.");if(""==t)this.channels.clear();else{t.split(",").forEach((t=>{this.channels.delete(t)}))}let e=Et.encode(t);if(e.byteLength>ut)throw TypeError("please use tag string bytelength below:"+ut);this.send_enc_mode(y.Buffer.concat([b("8",yt.UNSUBSCRIBE),b("8",e.byteLength),e]))}listen(t,e){if("string"!=typeof t)throw TypeError("tag should be string.");if(t.length>255||0==t.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof e)throw TypeError("handler is not a function.");0!==t.indexOf("@")&&this.channels.add(t),this.on(t,e)}link(t,e,r){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");if("function"!=typeof r)throw TypeError("handler is not a function.");let n;0!==e.indexOf("@")&&this.channels.add(e),n=this.linkMap.has(t)?this.linkMap.get(t):new Set,n.add(e),this.linkMap.set(t,n),this.on(e,r),this.subscribe(e)}unlink(t,e){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if("string"!=typeof e)throw TypeError("tag is not a string.");if(e.length>255||0==e.length)throw TypeError("tag string length range: 1~255");if(!this.linkMap.has(t))return;let r=this.linkMap.get(t),n=Array.from(r);for(let i=0;i<n.length;i++)if(n[i]==e){this.unsubscribe(e),this.removeAllListeners(e),r.delete(e),this.linkMap.set(t,r);break}}unlinkAll(t){if("string"!=typeof t)throw TypeError("to(local link target) is not a string.");if(!this.linkMap.has(t))return;let e=this.linkMap.get(t),r=Array.from(e);for(let t=0;t<r.length;t++)this.unsubscribe(r[t]),this.removeAllListeners(r[t]),e.delete(r[t]);this.linkMap.delete(t)}getMetric(){return{tx:this.txCounter,rx:this.rxCounter,txb:this.txBytes,rxb:this.rxBytes,last:(Date.now()-this.lastTxRxTime)/1e3}}getState(){return this.state}getStateName(){return ft[this.state].toLowerCase()}getSecurity(){return{useAuth:this.useAuth,isTLS:this.TLS,isAuthorized:this.boho.isAuthorized,encMode:this.encMode,usingEncryption:this.getEncryptionMode()}}stateChange(t,e){let r=t.toLowerCase();this.state=ft[t.toUpperCase()],e&&this.emit(r,e),this.stateName!==r&&(this.stateName=r,this.emit("change",r))}}class wt extends _t{constructor(t){super(t),document.addEventListener("visibilitychange",this.browserVisiblePing.bind(this)),t&&this.open()}browserVisiblePing(){"visible"===document.visibilityState&&this.ping()}close(){this.socket&&(this.socket.onclose=null,this.socket.onmessage=null,this.socket.onerror=null,this.socket.close(),this.socket=null),this.emit("close")}stop(){this.close(),clearInterval(this.connectionCheckerIntervalID),this.connectionCheckerIntervalID=null}keepAlive(){this.socket&&3!==this.socket?.readyState||this.open()}createConnection(t){this.socket=new WebSocket(t),this.stateChange("opening"),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{this.socket.onmessage=this.onWebSocketMessage.bind(this),this.emit("open")},this.socket.onerror=t=>{this.emit("error",t)},this.socket.onclose=()=>{this.emit("close")}}onWebSocketMessage(t){let e;this.rxCounter++,this.lastTxRxTime=Date.now(),e=y.Buffer.from(t.data),this.rxBytes+=e.byteLength,this.emit("socket_data",e)}socket_send(t){1===this.socket?.readyState?(this.socket.send(t),this.txCounter++,this.txBytes+=t.byteLength,this.lastTxRxTime=Date.now()):console.log(".")}}return st.RAND=ot,st.BohoMsg=tt,st.Meta=et,st.MetaSize=nt,st.sha256=X,wt.Boho=st,wt.MBP=G,wt.Buffer=y.Buffer,wt}();
3
3
  //# sourceMappingURL=iosignal.min.js.map