skapi-js 1.5.0-beta.9 → 1.5.0

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.
@@ -203,8 +203,8 @@
203
203
  limitations under the License.
204
204
 
205
205
  */
206
- var Ds=Object.create;var Pe=Object.defineProperty;var Lr=Object.getOwnPropertyDescriptor;var ks=Object.getOwnPropertyNames;var Ns=Object.getPrototypeOf,Fs=Object.prototype.hasOwnProperty;var Ls=(r,e,t)=>e in r?Pe(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Or=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var xe=(r,e)=>()=>(r&&(e=r(r=0)),e);var j=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),nt=(r,e)=>{for(var t in e)Pe(r,t,{get:e[t],enumerable:true});},Mr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ks(e))!Fs.call(r,i)&&i!==t&&Pe(r,i,{get:()=>e[i],enumerable:!(n=Lr(e,i))||n.enumerable});return r};var Ae=(r,e,t)=>(t=r!=null?Ds(Ns(r)):{},Mr(!r||!r.__esModule?Pe(t,"default",{value:r,enumerable:true}):t,r)),re=r=>Mr(Pe({},"__esModule",{value:true}),r),E=(r,e,t,n)=>{for(var i=Lr(e,t),s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=(o(e,t,i))||i);return i&&Pe(e,t,i),i};var de=(r,e,t)=>Ls(r,typeof e!="symbol"?e+"":e,t);var Ee={};nt(Ee,{default:()=>Ms});var Os,Ms,ve=xe(()=>{Os={},Ms=Os;});var qr=j(st=>{st.byteLength=qs;st.toByteArray=js;st.fromByteArray=Ws;var oe=[],Y=[],Bs=typeof Uint8Array<"u"?Uint8Array:Array,qt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Te=0,Vr=qt.length;Te<Vr;++Te)oe[Te]=qt[Te],Y[qt.charCodeAt(Te)]=Te;var Te,Vr;Y[45]=62;Y[95]=63;function Br(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return [t,n]}function qs(r){var e=Br(r),t=e[0],n=e[1];return (t+n)*3/4-n}function $s(r,e,t){return (e+t)*3/4-t}function js(r){var e,t=Br(r),n=t[0],i=t[1],s=new Bs($s(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=Y[r.charCodeAt(u)]<<18|Y[r.charCodeAt(u+1)]<<12|Y[r.charCodeAt(u+2)]<<6|Y[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Y[r.charCodeAt(u)]<<2|Y[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=Y[r.charCodeAt(u)]<<10|Y[r.charCodeAt(u+1)]<<4|Y[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function Ks(r){return oe[r>>18&63]+oe[r>>12&63]+oe[r>>6&63]+oe[r&63]}function Hs(r,e,t){for(var n,i=[],s=e;s<t;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(Ks(n));return i.join("")}function Ws(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(Hs(r,o,o+s>a?a:o+s));return n===1?(e=r[t-1],i.push(oe[e>>2]+oe[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(oe[e>>10]+oe[e>>4&63]+oe[e<<2&63]+"=")),i.join("")}});var $r=j($t=>{$t.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,d=-7,l=t?i-1:0,h=t?-1:1,p=r[e+l];for(l+=h,s=p&(1<<-d)-1,p>>=-d,d+=a;d>0;s=s*256+r[e+l],l+=h,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+r[e+l],l+=h,d-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (p?-1:1)*o*Math.pow(2,s-n)};$t.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,d=(1<<c)-1,l=d>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,g=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+l>=1?e+=h/u:e+=h*Math.pow(2,1-l),e*u>=2&&(o++,u/=2),o+l>=d?(a=0,o=d):o+l>=1?(a=(e*u-1)*Math.pow(2,i),o=o+l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;r[t+p]=a&255,p+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+p]=o&255,p+=g,o/=256,c-=8);r[t+p-g]|=_*128;};});var Kr=j((Qu,jr)=>{var Js={}.toString;jr.exports=Array.isArray||function(r){return Js.call(r)=="[object Array]"};});var dt=j(Ce=>{var jt=qr(),Ue=$r(),Jr=Kr();Ce.Buffer=b;Ce.SlowBuffer=Zs;Ce.INSPECT_MAX_BYTES=50;b.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:Qs();Ce.kMaxLength=ot();function Qs(){try{var r=new Uint8Array(1);return r.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},r.foo()===42&&typeof r.subarray=="function"&&r.subarray(1,1).byteLength===0}catch{return false}}function ot(){return b.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function he(r,e){if(ot()<e)throw new RangeError("Invalid typed array length");return b.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(e),r.__proto__=b.prototype):(r===null&&(r=new b(e)),r.length=e),r}function b(r,e,t){if(!b.TYPED_ARRAY_SUPPORT&&!(this instanceof b))return new b(r,e,t);if(typeof r=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Ht(this,r)}return Qr(this,r,e,t)}b.poolSize=8192;b._augment=function(r){return r.__proto__=b.prototype,r};function Qr(r,e,t,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?Ys(r,e,t,n):typeof e=="string"?zs(r,e,t):Xs(r,e)}b.from=function(r,e,t){return Qr(null,r,e,t)};b.TYPED_ARRAY_SUPPORT&&(b.prototype.__proto__=Uint8Array.prototype,b.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&b[Symbol.species]===b&&Object.defineProperty(b,Symbol.species,{value:null,configurable:true}));function Gr(r){if(typeof r!="number")throw new TypeError('"size" argument must be a number');if(r<0)throw new RangeError('"size" argument must not be negative')}function Gs(r,e,t,n){return Gr(e),e<=0?he(r,e):t!==void 0?typeof n=="string"?he(r,e).fill(t,n):he(r,e).fill(t):he(r,e)}b.alloc=function(r,e,t){return Gs(null,r,e,t)};function Ht(r,e){if(Gr(e),r=he(r,e<0?0:Wt(e)|0),!b.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}b.allocUnsafe=function(r){return Ht(null,r)};b.allocUnsafeSlow=function(r){return Ht(null,r)};function zs(r,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!b.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=zr(e,t)|0;r=he(r,n);var i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function Kt(r,e){var t=e.length<0?0:Wt(e.length)|0;r=he(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function Ys(r,e,t,n){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");return t===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,t):e=new Uint8Array(e,t,n),b.TYPED_ARRAY_SUPPORT?(r=e,r.__proto__=b.prototype):r=Kt(r,e),r}function Xs(r,e){if(b.isBuffer(e)){var t=Wt(e.length)|0;return r=he(r,t),r.length===0||e.copy(r,0,0,t),r}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||yo(e.length)?he(r,0):Kt(r,e);if(e.type==="Buffer"&&Jr(e.data))return Kt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Wt(r){if(r>=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return r|0}function Zs(r){return +r!=r&&(r=0),b.alloc(+r)}b.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};b.compare=function(e,t){if(!b.isBuffer(e)||!b.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==t[s]){n=e[s],i=t[s];break}return n<i?-1:i<n?1:0};b.isEncoding=function(e){switch(String(e).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 true;default:return false}};b.concat=function(e,t){if(!Jr(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return b.alloc(0);var n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=b.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!b.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function zr(r,e){if(b.isBuffer(r))return r.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;typeof r!="string"&&(r=""+r);var t=r.length;if(t===0)return 0;for(var n=false;;)switch(e){case "ascii":case "latin1":case "binary":return t;case "utf8":case "utf-8":case void 0:return at(r).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return t*2;case "hex":return t>>>1;case "base64":return nn(r).length;default:if(n)return at(r).length;e=(""+e).toLowerCase(),n=true;}}b.byteLength=zr;function eo(r,e,t){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return "";for(r||(r="utf8");;)switch(r){case "hex":return lo(this,e,t);case "utf8":case "utf-8":return Zr(this,e,t);case "ascii":return uo(this,e,t);case "latin1":case "binary":return co(this,e,t);case "base64":return oo(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return fo(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=true;}}b.prototype._isBuffer=true;function Re(r,e,t){var n=r[e];r[e]=r[t],r[t]=n;}b.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Re(this,t,t+1);return this};b.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Re(this,t,t+3),Re(this,t+1,t+2);return this};b.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Re(this,t,t+7),Re(this,t+1,t+6),Re(this,t+2,t+5),Re(this,t+3,t+4);return this};b.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?Zr(this,0,e):eo.apply(this,arguments)};b.prototype.equals=function(e){if(!b.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:b.compare(this,e)===0};b.prototype.inspect=function(){var e="",t=Ce.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"};b.prototype.compare=function(e,t,n,i,s){if(!b.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),t<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&t>=n)return 0;if(i>=s)return -1;if(t>=n)return 1;if(t>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-t,u=Math.min(o,a),c=this.slice(i,s),d=e.slice(t,n),l=0;l<u;++l)if(c[l]!==d[l]){o=c[l],a=d[l];break}return o<a?-1:a<o?1:0};function Yr(r,e,t,n,i){if(r.length===0)return -1;if(typeof t=="string"?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return -1;t=r.length-1;}else if(t<0)if(i)t=0;else return -1;if(typeof e=="string"&&(e=b.from(e,n)),b.isBuffer(e))return e.length===0?-1:Hr(r,e,t,n,i);if(typeof e=="number")return e=e&255,b.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Hr(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function Hr(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(p,g){return s===1?p[g]:p.readUInt16BE(g*s)}var c;if(i){var d=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,d===-1?0:c-d)){if(d===-1&&(d=c),c-d+1===a)return d*s}else d!==-1&&(c-=c-d),d=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var l=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){l=false;break}if(l)return c}return -1}b.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1};b.prototype.indexOf=function(e,t,n){return Yr(this,e,t,n,true)};b.prototype.lastIndexOf=function(e,t,n){return Yr(this,e,t,n,false)};function to(r,e,t,n){t=Number(t)||0;var i=r.length-t;n?(n=Number(n),n>i&&(n=i)):n=i;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;r[t+o]=a;}return o}function ro(r,e,t,n){return lt(at(e,r.length-t),r,t,n)}function Xr(r,e,t,n){return lt(_o(e),r,t,n)}function no(r,e,t,n){return Xr(r,e,t,n)}function io(r,e,t,n){return lt(nn(e),r,t,n)}function so(r,e,t,n){return lt(bo(e,r.length-t),r,t,n)}b.prototype.write=function(e,t,n,i){if(t===void 0)i="utf8",n=this.length,t=0;else if(n===void 0&&typeof t=="string")i=t,n=this.length,t=0;else if(isFinite(t))t=t|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s=this.length-t;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=false;;)switch(i){case "hex":return to(this,e,t,n);case "utf8":case "utf-8":return ro(this,e,t,n);case "ascii":return Xr(this,e,t,n);case "latin1":case "binary":return no(this,e,t,n);case "base64":return io(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return so(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};b.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function oo(r,e,t){return e===0&&t===r.length?jt.fromByteArray(r):jt.fromByteArray(r.slice(e,t))}function Zr(r,e,t){t=Math.min(r.length,t);for(var n=[],i=e;i<t;){var s=r[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=t){var u,c,d,l;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(l=(s&31)<<6|u&63,l>127&&(o=l));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(l=(s&15)<<12|(u&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:u=r[i+1],c=r[i+2],d=r[i+3],(u&192)===128&&(c&192)===128&&(d&192)===128&&(l=(s&15)<<18|(u&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l));}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a;}return ao(n)}var Wr=4096;function ao(r){var e=r.length;if(e<=Wr)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Wr));return t}function uo(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]&127);return n}function co(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}function lo(r,e,t){var n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var i="",s=e;s<t;++s)i+=mo(r[s]);return i}function fo(r,e,t){for(var n=r.slice(e,t),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}b.prototype.slice=function(e,t){var n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var i;if(b.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=b.prototype;else {var s=t-e;i=new b(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function V(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}b.prototype.readUIntLE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return i};b.prototype.readUIntBE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e+--t],s=1;t>0&&(s*=256);)i+=this[e+--t]*s;return i};b.prototype.readUInt8=function(e,t){return t||V(e,1,this.length),this[e]};b.prototype.readUInt16LE=function(e,t){return t||V(e,2,this.length),this[e]|this[e+1]<<8};b.prototype.readUInt16BE=function(e,t){return t||V(e,2,this.length),this[e]<<8|this[e+1]};b.prototype.readUInt32LE=function(e,t){return t||V(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};b.prototype.readUInt32BE=function(e,t){return t||V(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};b.prototype.readIntLE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*t)),i};b.prototype.readIntBE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=t,s=1,o=this[e+--i];i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*t)),o};b.prototype.readInt8=function(e,t){return t||V(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};b.prototype.readInt16LE=function(e,t){t||V(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};b.prototype.readInt16BE=function(e,t){t||V(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};b.prototype.readInt32LE=function(e,t){return t||V(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};b.prototype.readInt32BE=function(e,t){return t||V(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};b.prototype.readFloatLE=function(e,t){return t||V(e,4,this.length),Ue.read(this,e,true,23,4)};b.prototype.readFloatBE=function(e,t){return t||V(e,4,this.length),Ue.read(this,e,false,23,4)};b.prototype.readDoubleLE=function(e,t){return t||V(e,8,this.length),Ue.read(this,e,true,52,8)};b.prototype.readDoubleBE=function(e,t){return t||V(e,8,this.length),Ue.read(this,e,false,52,8)};function Q(r,e,t,n,i,s){if(!b.isBuffer(r))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(t+n>r.length)throw new RangeError("Index out of range")}b.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=1,a=0;for(this[t]=e&255;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n};b.prototype.writeUIntBE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=n-1,a=1;for(this[t+o]=e&255;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n};b.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,255,0),b.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function ut(r,e,t,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(r.length-t,2);i<s;++i)r[t+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8;}b.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),b.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):ut(this,e,t,true),t+2};b.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),b.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):ut(this,e,t,false),t+2};function ct(r,e,t,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(r.length-t,4);i<s;++i)r[t+i]=e>>>(n?i:3-i)*8&255;}b.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),b.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):ct(this,e,t,true),t+4};b.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),b.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):ct(this,e,t,false),t+4};b.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=0,a=1,u=0;for(this[t]=e&255;++o<n&&(a*=256);)e<0&&u===0&&this[t+o-1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};b.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=n-1,a=1,u=0;for(this[t+o]=e&255;--o>=0&&(a*=256);)e<0&&u===0&&this[t+o+1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};b.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,127,-128),b.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};b.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),b.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):ut(this,e,t,true),t+2};b.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),b.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):ut(this,e,t,false),t+2};b.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),b.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):ct(this,e,t,true),t+4};b.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),b.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):ct(this,e,t,false),t+4};function en(r,e,t,n,i,s){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function tn(r,e,t,n,i){return i||en(r,e,t,4),Ue.write(r,e,t,n,23,4),t+4}b.prototype.writeFloatLE=function(e,t,n){return tn(this,e,t,true,n)};b.prototype.writeFloatBE=function(e,t,n){return tn(this,e,t,false,n)};function rn(r,e,t,n,i){return i||en(r,e,t,8),Ue.write(r,e,t,n,52,8),t+8}b.prototype.writeDoubleLE=function(e,t,n){return rn(this,e,t,true,n)};b.prototype.writeDoubleBE=function(e,t,n){return rn(this,e,t,false,n)};b.prototype.copy=function(e,t,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var s=i-n,o;if(this===e&&n<t&&t<i)for(o=s-1;o>=0;--o)e[o+t]=this[o+n];else if(s<1e3||!b.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s};b.prototype.fill=function(e,t,n,i){if(typeof e=="string"){if(typeof t=="string"?(i=t,t=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),e.length===1){var s=e.charCodeAt(0);s<256&&(e=s);}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!b.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o<n;++o)this[o]=e;else {var a=b.isBuffer(e)?e:at(new b(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var ho=/[^+\/0-9A-Za-z-_]/g;function go(r){if(r=po(r).replace(ho,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function po(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function mo(r){return r<16?"0"+r.toString(16):r.toString(16)}function at(r,e){e=e||1/0;for(var t,n=r.length,i=null,s=[],o=0;o<n;++o){if(t=r.charCodeAt(o),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),i=t;continue}t=(i-55296<<10|t-56320)+65536;}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,t<128){if((e-=1)<0)break;s.push(t);}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128);}else if(t<65536){if((e-=3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128);}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128);}else throw new Error("Invalid code point")}return s}function _o(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function bo(r,e){for(var t,n,i,s=[],o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(o),n=t>>8,i=t%256,s.push(i),s.push(n);return s}function nn(r){return jt.toByteArray(go(r))}function lt(r,e,t,n){for(var i=0;i<n&&!(i+t>=e.length||i>=r.length);++i)e[i+t]=r[i];return i}function yo(r){return r!==r}});var sn=j(()=>{});var Xt={};nt(Xt,{__assign:()=>zt,__asyncDelegator:()=>ko,__asyncGenerator:()=>Do,__asyncValues:()=>No,__await:()=>Ke,__awaiter:()=>Ro,__classPrivateFieldGet:()=>Mo,__classPrivateFieldSet:()=>Vo,__createBinding:()=>Po,__decorate:()=>Eo,__exportStar:()=>xo,__extends:()=>So,__generator:()=>Io,__importDefault:()=>Oo,__importStar:()=>Lo,__makeTemplateObject:()=>Fo,__metadata:()=>To,__param:()=>vo,__read:()=>on,__rest:()=>Ao,__spread:()=>Uo,__spreadArrays:()=>Co,__values:()=>Yt});function So(r,e){Gt(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function Ao(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function Eo(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function vo(r,e){return function(t,n){e(t,n,r);}}function To(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Ro(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s);})}return new(t||(t=Promise))(function(s,o){function a(d){try{c(n.next(d));}catch(l){o(l);}}function u(d){try{c(n.throw(d));}catch(l){o(l);}}function c(d){d.done?s(d.value):i(d.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function Io(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(d){return u([c,d])}}function u(c){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t);}catch(d){c=[6,d],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function Po(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function xo(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function Yt(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return {next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function on(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value);}catch(a){o={error:a};}finally{try{i&&!i.done&&(t=n.return)&&t.call(n);}finally{if(o)throw o.error}}return s}function Uo(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(on(arguments[e]));return r}function Co(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function Ke(r){return this instanceof Ke?(this.v=r,this):new Ke(r)}function Do(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(p){return new Promise(function(g,_){s.push([h,p,g,_])>1||a(h,p);})});}function a(h,p){try{u(n[h](p));}catch(g){l(s[0][3],g);}}function u(h){h.value instanceof Ke?Promise.resolve(h.value.v).then(c,d):l(s[0][2],h);}function c(h){a("next",h);}function d(h){a("throw",h);}function l(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function ko(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(o){return (t=!t)?{value:Ke(r[i](o)),done:i==="return"}:s?s(o):o}:s;}}function No(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof Yt=="function"?Yt(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(o){return new Promise(function(a,u){o=r[s](o),i(a,u,o.done,o.value);})};}function i(s,o,a,u){Promise.resolve(u).then(function(c){s({value:c,done:a});},o);}}function Fo(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function Lo(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e}function Oo(r){return r&&r.__esModule?r:{default:r}}function Mo(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Vo(r,e,t){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,t),t}var Gt,zt,Zt=xe(()=>{Gt=function(r,e){return Gt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n;}||function(t,n){for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i]);},Gt(r,e)};zt=function(){return zt=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);}return e},zt.apply(this,arguments)};});var er=j(Z=>{Object.defineProperty(Z,"__esModule",{value:true});Z.MAX_HASHABLE_LENGTH=Z.INIT=Z.KEY=Z.DIGEST_LENGTH=Z.BLOCK_SIZE=void 0;Z.BLOCK_SIZE=64;Z.DIGEST_LENGTH=32;Z.KEY=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]);Z.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];Z.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var an=j(ft=>{Object.defineProperty(ft,"__esModule",{value:true});ft.RawSha256=void 0;var ee=er(),Bo=(function(){function r(){this.state=Int32Array.from(ee.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=false;}return r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>ee.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===ee.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0);},r.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%ee.BLOCK_SIZE>=ee.BLOCK_SIZE-8){for(var i=this.bufferLength;i<ee.BLOCK_SIZE;i++)t.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<ee.BLOCK_SIZE-8;i++)t.setUint8(i,0);t.setUint32(ee.BLOCK_SIZE-8,Math.floor(e/4294967296),true),t.setUint32(ee.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(ee.DIGEST_LENGTH),i=0;i<8;i++)s[i*4]=this.state[i]>>>24&255,s[i*4+1]=this.state[i]>>>16&255,s[i*4+2]=this.state[i]>>>8&255,s[i*4+3]=this.state[i]>>>0&255;return s},r.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,i=n[0],s=n[1],o=n[2],a=n[3],u=n[4],c=n[5],d=n[6],l=n[7],h=0;h<ee.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var p=this.temp[h-2],g=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10;p=this.temp[h-15];var _=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(_+this.temp[h-16]|0);}var S=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&d)|0)+(l+(ee.KEY[h]+this.temp[h]|0)|0)|0,y=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;l=d,d=c,c=u,u=a+S|0,a=o,o=s,s=i,i=S+y|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=d,n[7]+=l;},r})();ft.RawSha256=Bo;});var un,cn,ln=xe(()=>{un=r=>{let e=[];for(let t=0,n=r.length;t<n;t++){let i=r.charCodeAt(t);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192,i&63|128);else if(t+1<r.length&&(i&64512)===55296&&(r.charCodeAt(t+1)&64512)===56320){let s=65536+((i&1023)<<10)+(r.charCodeAt(++t)&1023);e.push(s>>18|240,s>>12&63|128,s>>6&63|128,s&63|128);}else e.push(i>>12|224,i>>6&63|128,i&63|128);}return Uint8Array.from(e)},cn=r=>{let e="";for(let t=0,n=r.length;t<n;t++){let i=r[t];if(i<128)e+=String.fromCharCode(i);else if(192<=i&&i<224){let s=r[++t];e+=String.fromCharCode((i&31)<<6|s&63);}else if(240<=i&&i<365){let o="%"+[i,r[++t],r[++t],r[++t]].map(a=>a.toString(16)).join("%");e+=decodeURIComponent(o);}else e+=String.fromCharCode((i&15)<<12|(r[++t]&63)<<6|r[++t]&63);}return e};});function dn(r){return new TextEncoder().encode(r)}function fn(r){return new TextDecoder("utf-8").decode(r)}var hn=xe(()=>{});var gn={};nt(gn,{fromUtf8:()=>qo,toUtf8:()=>$o});var qo,$o,pn=xe(()=>{ln();hn();qo=r=>typeof TextEncoder=="function"?dn(r):un(r),$o=r=>typeof TextDecoder=="function"?fn(r):cn(r);});var mn=j(ht=>{Object.defineProperty(ht,"__esModule",{value:true});ht.convertToBuffer=void 0;var jo=(pn(),re(gn)),Ko=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:jo.fromUtf8;function Ho(r){return r instanceof Uint8Array?r:typeof r=="string"?Ko(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}ht.convertToBuffer=Ho;});var _n=j(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.isEmptyData=void 0;function Wo(r){return typeof r=="string"?r.length===0:r.byteLength===0}gt.isEmptyData=Wo;});var bn=j(pt=>{Object.defineProperty(pt,"__esModule",{value:true});pt.numToUint8=void 0;function Jo(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}pt.numToUint8=Jo;});var yn=j(mt=>{Object.defineProperty(mt,"__esModule",{value:true});mt.uint32ArrayFrom=void 0;function Qo(r){if(!Array.from){for(var e=new Uint32Array(r.length),t=0;t<r.length;)e[t]=r[t];return e}return Uint32Array.from(r)}mt.uint32ArrayFrom=Qo;});var wn=j(ae=>{Object.defineProperty(ae,"__esModule",{value:true});ae.uint32ArrayFrom=ae.numToUint8=ae.isEmptyData=ae.convertToBuffer=void 0;var Go=mn();Object.defineProperty(ae,"convertToBuffer",{enumerable:true,get:function(){return Go.convertToBuffer}});var zo=_n();Object.defineProperty(ae,"isEmptyData",{enumerable:true,get:function(){return zo.isEmptyData}});var Yo=bn();Object.defineProperty(ae,"numToUint8",{enumerable:true,get:function(){return Yo.numToUint8}});var Xo=yn();Object.defineProperty(ae,"uint32ArrayFrom",{enumerable:true,get:function(){return Xo.uint32ArrayFrom}});});var An=j(bt=>{Object.defineProperty(bt,"__esModule",{value:true});bt.Sha256=void 0;var Sn=(Zt(),re(Xt)),_t=er(),tr=an(),rr=wn(),Zo=(function(){function r(e){if(this.hash=new tr.RawSha256,e){this.outer=new tr.RawSha256;var t=ea(e),n=new Uint8Array(_t.BLOCK_SIZE);n.set(t);for(var i=0;i<_t.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;this.hash.update(t),this.outer.update(n);for(var i=0;i<t.byteLength;i++)t[i]=0;}}return r.prototype.update=function(e){if(!((0, rr.isEmptyData)(e)||this.error))try{this.hash.update((0,rr.convertToBuffer)(e));}catch(t){this.error=t;}},r.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},r.prototype.digest=function(){return (0, Sn.__awaiter)(this,void 0,void 0,function(){return (0, Sn.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();bt.Sha256=Zo;function ea(r){var e=(0, rr.convertToBuffer)(r);if(e.byteLength>_t.BLOCK_SIZE){var t=new tr.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(_t.BLOCK_SIZE);return n.set(e),n}});var ir=j(nr=>{Object.defineProperty(nr,"__esModule",{value:true});var ta=(Zt(),re(Xt));(0, ta.__exportStar)(An(),nr);});var hr={};nt(hr,{default:()=>Ga});function Ga(r,e){return e=e||{},new Promise(function(t,n){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return {ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return o},get:function(d){return a[d.toLowerCase()]},has:function(d){return d.toLowerCase()in a}}}};for(var c in i.open(e.method||"get",r,true),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(d,l,h){s.push(l=l.toLowerCase()),o.push([l,h]),a[l]=a[l]?a[l]+","+h:h;}),t(u());},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(c,e.headers[c]);i.send(e.body||null);})}var gr=xe(()=>{});var Cn=j((jc,Un)=>{Un.exports=self.fetch||(self.fetch=(gr(),re(hr)).default||(gr(),re(hr)));});var Mn=j((Ln,On)=>{(function(r){var e;if(typeof define=="function"&&define.amd&&(define(r),e=true),typeof Ln=="object"&&(On.exports=r(),e=true),!e){var t=window.Cookies,n=window.Cookies=r();n.noConflict=function(){return window.Cookies=t,n};}})(function(){function r(){for(var n=0,i={};n<arguments.length;n++){var s=arguments[n];for(var o in s)i[o]=s[o];}return i}function e(n){return n.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function t(n){function i(){}function s(a,u,c){if(!(typeof document>"u")){c=r({path:"/"},i.defaults,c),typeof c.expires=="number"&&(c.expires=new Date(new Date*1+c.expires*864e5)),c.expires=c.expires?c.expires.toUTCString():"";try{var d=JSON.stringify(u);/^[\{\[]/.test(d)&&(u=d);}catch{}u=n.write?n.write(u,a):encodeURIComponent(String(u)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),a=encodeURIComponent(String(a)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var h in c)c[h]&&(l+="; "+h,c[h]!==true&&(l+="="+c[h].split(";")[0]));return document.cookie=a+"="+u+l}}function o(a,u){if(!(typeof document>"u")){for(var c={},d=document.cookie?document.cookie.split("; "):[],l=0;l<d.length;l++){var h=d[l].split("="),p=h.slice(1).join("=");!u&&p.charAt(0)==='"'&&(p=p.slice(1,-1));try{var g=e(h[0]);if(p=(n.read||n)(p,g)||e(p),u)try{p=JSON.parse(p);}catch{}if(c[g]=p,a===g)break}catch{}}return a?c[a]:c}}return i.set=s,i.get=function(a){return o(a,false)},i.getJSON=function(a){return o(a,true)},i.remove=function(a,u){s(a,"",r(u,{expires:-1}));},i.defaults={},i.withConverter=t,i}return t(function(){})});});var fe=typeof globalThis<"u"?globalThis:void 0,it=fe?.window;function Vs(r){if(Buffer)return Buffer.from(r).toString("base64");let e="",t=new Uint8Array(r),n=32768;for(let i=0;i<t.length;i+=n){let s=t.subarray(i,i+n);e+=String.fromCharCode.apply(null,Array.from(s));}if(typeof btoa=="function")return btoa(e);throw new Error("No base64 encoder available in this environment.")}if(it)it.global=it,it.global._runningInNodeJS=false;else if(fe&&(fe.global=fe,typeof fe.window>"u")){class r{constructor(){this.result=null;this.error=null;this.onload=null;this.onloadend=null;this.onerror=null;}readAsDataURL(n){n.arrayBuffer().then(i=>{let s=Vs(i),o=n.type||"application/octet-stream";this.result=`data:${o};base64,${s}`,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsArrayBuffer(n){n.arrayBuffer().then(i=>{this.result=i,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsText(n,i="utf-8"){n.text().then(s=>{this.result=s,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(s=>{this.error=s,this.onerror&&this.onerror({target:this});});}}fe.FileReader=r;class e{constructor(){this.status=0;this.statusText="";this.readyState=0;this.responseText="";this.response=null;this.responseType="";this.responseURL="";this.timeout=0;this.withCredentials=false;this.onload=null;this.onerror=null;this.onabort=null;this.ontimeout=null;this.onprogress=null;this.onreadystatechange=null;this.upload={onprogress:null};this._method="GET";this._url="";this._headers={};this._aborted=false;}open(n,i){this._method=n,this._url=i,this.readyState=1;}setRequestHeader(n,i){this._headers[n]=i;}getResponseHeader(n){return null}abort(){this._aborted=true,this.onabort&&this.onabort({});}send(n){if(this._aborted)return;let i={method:this._method,headers:this._headers};n&&this._method!=="GET"&&this._method!=="HEAD"&&(i.body=n),fetch(this._url,i).then(async s=>{if(!this._aborted){if(this.status=s.status,this.statusText=s.statusText,this.responseURL=s.url,this.readyState=4,this.responseType==="blob")this.response=await s.blob();else if(this.responseType==="json")try{this.response=await s.json();}catch{this.response=null;}else this.responseType==="arraybuffer"?this.response=await s.arrayBuffer():(this.responseText=await s.text(),this.response=this.responseText);this.onload&&this.onload({});}}).catch(s=>{this._aborted||this.onerror&&this.onerror(s);});}}fe.XMLHttpRequest=e,fe.window={_runningInNodeJS:true,alert:t=>console.error("[Alert]",t),sessionStorage:{getItem:t=>null,setItem:(t,n)=>{},removeItem:t=>{}},localStorage:{getItem:t=>{let n=(ve(),re(Ee)),i=(ve(),re(Ee));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);return n.existsSync(s)?n.readFileSync(s,"utf8"):null}catch{return null}},setItem:(t,n)=>{let i=(ve(),re(Ee)),s=(ve(),re(Ee));try{let o=s.resolve(process.cwd(),"states","localStorage");i.existsSync(o)||i.mkdirSync(o,{recursive:!0});let a=s.resolve(o,`${t}.skapi`);i.writeFileSync(a,n,"utf8");}catch{}},removeItem:t=>{let n=(ve(),re(Ee)),i=(ve(),re(Ee));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);n.existsSync(s)&&n.unlinkSync(s);}catch{}}},location:{href:"",origin:"",hostname:"",protocol:"",replace:t=>{}},navigator:{userAgent:`nodejs/${fe?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async t=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var Bt=(function(){function r(t){var n=t||{},i=n.ValidationData,s=n.Username,o=n.Password,a=n.AuthParameters,u=n.ClientMetadata;this.validationData=i||{},this.authParameters=a||{},this.clientMetadata=u||{},this.username=s,this.password=o;}var e=r.prototype;return e.getUsername=function(){return this.username},e.getPassword=function(){return this.password},e.getValidationData=function(){return this.validationData},e.getAuthParameters=function(){return this.authParameters},e.getClientMetadata=function(){return this.clientMetadata},r})();var ge=Ae(dt());var X;typeof window<"u"&&window.crypto&&(X=window.crypto);!X&&typeof window<"u"&&window.msCrypto&&(X=window.msCrypto);!X&&typeof globalThis<"u"&&globalThis.crypto&&(X=globalThis.crypto);if(!X&&typeof Or=="function")try{X=sn();}catch{}function Jt(){if(X){if(typeof X.getRandomValues=="function")try{return X.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof X.randomBytes=="function")try{return X.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function wo(r){for(var e=r.words,t=r.sigBytes,n=[],i=0;i<t;i++){var s=e[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((s&15).toString(16));}return n.join("")}var Qt=(function(){function r(t,n){t=this.words=t||[],n!=null?this.sigBytes=n:this.sigBytes=t.length*4;}var e=r.prototype;return e.random=function(n){for(var i=[],s=0;s<n;s+=4)i.push(Jt());return new r(i,n)},e.toString=function(){return wo(this)},r})();var wt=Ae(ir());var M=P;function P(r,e){r!=null&&this.fromString(r,e);}function H(){return new P(null)}var _e,ra=0xdeadbeefcafe,En=(ra&16777215)==15715070;function na(r,e,t,n,i,s){for(;--s>=0;){var o=e*this[r++]+t[n]+i;i=Math.floor(o/67108864),t[n++]=o&67108863;}return i}function ia(r,e,t,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var u=this[r]&32767,c=this[r++]>>15,d=a*u+c*o;u=o*u+((d&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(d>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function sa(r,e,t,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var u=this[r]&16383,c=this[r++]>>14,d=a*u+c*o;u=o*u+((d&16383)<<14)+t[n]+i,i=(u>>28)+(d>>14)+a*c,t[n++]=u&268435455;}return i}var vn=typeof navigator<"u";vn&&En&&navigator.appName=="Microsoft Internet Explorer"?(P.prototype.am=ia,_e=30):vn&&En&&navigator.appName!="Netscape"?(P.prototype.am=na,_e=26):(P.prototype.am=sa,_e=28);P.prototype.DB=_e;P.prototype.DM=(1<<_e)-1;P.prototype.DV=1<<_e;var sr=52;P.prototype.FV=Math.pow(2,sr);P.prototype.F1=sr-_e;P.prototype.F2=2*_e-sr;var oa="0123456789abcdefghijklmnopqrstuvwxyz",yt=new Array,De,te;De=48;for(te=0;te<=9;++te)yt[De++]=te;De=97;for(te=10;te<36;++te)yt[De++]=te;De=65;for(te=10;te<36;++te)yt[De++]=te;function Tn(r){return oa.charAt(r)}function aa(r,e){var t=yt[r.charCodeAt(e)];return t??-1}function ua(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function ca(r){this.t=1,this.s=r<0?-1:0,r>0?this[0]=r:r<-1?this[0]=r+this.DV:this.t=0;}function or(r){var e=H();return e.fromInt(r),e}function la(r,e){var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");this.t=0,this.s=0;for(var n=r.length,i=false,s=0;--n>=0;){var o=aa(r,n);if(o<0){r.charAt(n)=="-"&&(i=true);continue}i=false,s==0?this[this.t++]=o:s+t>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,s+=t,s>=this.DB&&(s-=this.DB);}this.clamp(),i&&P.ZERO.subTo(this,this);}function da(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function fa(r){if(this.s<0)return "-"+this.negate().toString(r);var e;if(r==16)e=4;else if(r==8)e=3;else if(r==2)e=1;else if(r==32)e=5;else if(r==4)e=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");var t=(1<<e)-1,n,i=false,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=true,s=Tn(n));o>=0;)a<e?(n=(this[o]&(1<<a)-1)<<e-a,n|=this[--o]>>(a+=this.DB-e)):(n=this[o]>>(a-=e)&t,a<=0&&(a+=this.DB,--o)),n>0&&(i=true),i&&(s+=Tn(n));return i?s:"0"}function ha(){var r=H();return P.ZERO.subTo(this,r),r}function ga(){return this.s<0?this.negate():this}function pa(r){var e=this.s-r.s;if(e!=0)return e;var t=this.t;if(e=t-r.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-r[t])!=0)return e;return 0}function ar(r){var e=1,t;return (t=r>>>16)!=0&&(r=t,e+=16),(t=r>>8)!=0&&(r=t,e+=8),(t=r>>4)!=0&&(r=t,e+=4),(t=r>>2)!=0&&(r=t,e+=2),(t=r>>1)!=0&&(r=t,e+=1),e}function ma(){return this.t<=0?0:this.DB*(this.t-1)+ar(this[this.t-1]^this.s&this.DM)}function _a(r,e){var t;for(t=this.t-1;t>=0;--t)e[t+r]=this[t];for(t=r-1;t>=0;--t)e[t]=0;e.t=this.t+r,e.s=this.s;}function ba(r,e){for(var t=r;t<this.t;++t)e[t-r]=this[t];e.t=Math.max(this.t-r,0),e.s=this.s;}function ya(r,e){var t=r%this.DB,n=this.DB-t,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<t&this.DM,a;for(a=this.t-1;a>=0;--a)e[a+s+1]=this[a]>>n|o,o=(this[a]&i)<<t;for(a=s-1;a>=0;--a)e[a]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp();}function wa(r,e){e.s=this.s;var t=Math.floor(r/this.DB);if(t>=this.t){e.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;e[0]=this[t]>>n;for(var o=t+1;o<this.t;++o)e[o-t-1]|=(this[o]&s)<<i,e[o-t]=this[o]>>n;n>0&&(e[this.t-t-1]|=(this.s&s)<<i),e.t=this.t-t,e.clamp();}function Sa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]-r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n-=r[t],e[t++]=n&this.DM,n>>=this.DB;n-=r.s;}e.s=n<0?-1:0,n<-1?e[t++]=this.DV+n:n>0&&(e[t++]=n),e.t=t,e.clamp();}function Aa(r,e){var t=this.abs(),n=r.abs(),i=t.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+t.t]=t.am(0,n[i],e,i,0,t.t);e.s=0,e.clamp(),this.s!=r.s&&P.ZERO.subTo(e,e);}function Ea(r){for(var e=this.abs(),t=r.t=2*e.t;--t>=0;)r[t]=0;for(t=0;t<e.t-1;++t){var n=e.am(t,e[t],r,2*t,0,1);(r[t+e.t]+=e.am(t+1,2*e[t],r,2*t+1,n,e.t-t-1))>=e.DV&&(r[t+e.t]-=e.DV,r[t+e.t+1]=1);}r.t>0&&(r[r.t-1]+=e.am(t,e[t],r,2*t,0,1)),r.s=0,r.clamp();}function va(r,e,t){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),t!=null&&this.copyTo(t);return}t==null&&(t=H());var s=H(),o=this.s,a=r.s,u=this.DB-ar(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,d=s[c-1];if(d!=0){var l=d*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/l,p=(1<<this.F1)/l,g=1<<this.F2,_=t.t,S=_-c,y=e??H();for(s.dlShiftTo(S,y),t.compareTo(y)>=0&&(t[t.t++]=1,t.subTo(y,t)),P.ONE.dlShiftTo(c,y),y.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--S>=0;){var R=t[--_]==d?this.DM:Math.floor(t[_]*h+(t[_-1]+g)*p);if((t[_]+=s.am(0,R,t,S,0,c))<R)for(s.dlShiftTo(S,y),t.subTo(y,t);t[_]<--R;)t.subTo(y,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&P.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&P.ZERO.subTo(t,t);}}}function Ta(r){var e=H();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(P.ZERO)>0&&r.subTo(e,e),e}function Ra(){if(this.t<1)return 0;var r=this[0];if((r&1)==0)return 0;var e=r&3;return e=e*(2-(r&15)*e)&15,e=e*(2-(r&255)*e)&255,e=e*(2-((r&65535)*e&65535))&65535,e=e*(2-r*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Ia(r){return this.compareTo(r)==0}function Pa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]+r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n+=r[t],e[t++]=n&this.DM,n>>=this.DB;n+=r.s;}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp();}function xa(r){var e=H();return this.addTo(r,e),e}function Ua(r){var e=H();return this.subTo(r,e),e}function Ca(r){var e=H();return this.multiplyTo(r,e),e}function Da(r){var e=H();return this.divRemTo(r,e,null),e}function ke(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t;}function ka(r){var e=H();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(P.ZERO)>0&&this.m.subTo(e,e),e}function Na(r){var e=H();return r.copyTo(e),this.reduce(e),e}function Fa(r){for(;r.t<=this.mt2;)r[r.t++]=0;for(var e=0;e<this.m.t;++e){var t=r[e]&32767,n=t*this.mpl+((t*this.mph+(r[e]>>15)*this.mpl&this.um)<<15)&r.DM;for(t=e+this.m.t,r[t]+=this.m.am(0,n,r,e,0,this.m.t);r[t]>=r.DV;)r[t]-=r.DV,r[++t]++;}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r);}function La(r,e){r.squareTo(e),this.reduce(e);}function Oa(r,e,t){r.multiplyTo(e,t),this.reduce(t);}ke.prototype.convert=ka;ke.prototype.revert=Na;ke.prototype.reduce=Fa;ke.prototype.mulTo=Oa;ke.prototype.sqrTo=La;function Ma(r,e,t){var n=r.bitLength(),i,s=or(1),o=new ke(e);if(n<=0)return s;n<18?i=1:n<48?i=3:n<144?i=4:n<768?i=5:i=6;var a=new Array,u=3,c=i-1,d=(1<<i)-1;if(a[1]=o.convert(this),i>1){var l=H();for(o.sqrTo(a[1],l);u<=d;)a[u]=H(),o.mulTo(l,a[u-2],a[u]),u+=2;}var h=r.t-1,p,g=true,_=H(),S;for(n=ar(r[h])-1;h>=0;){for(n>=c?p=r[h]>>n-c&d:(p=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(p|=r[h-1]>>this.DB+n-c)),u=i;(p&1)==0;)p>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[p].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,_),o.sqrTo(_,s),u-=2;u>0?o.sqrTo(s,_):(S=s,s=_,_=S),o.mulTo(_,a[p],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,_),S=s,s=_,_=S,--n<0&&(n=this.DB-1,--h);}var y=o.revert(s);return t(null,y),y}P.prototype.copyTo=ua;P.prototype.fromInt=ca;P.prototype.fromString=la;P.prototype.clamp=da;P.prototype.dlShiftTo=_a;P.prototype.drShiftTo=ba;P.prototype.lShiftTo=ya;P.prototype.rShiftTo=wa;P.prototype.subTo=Sa;P.prototype.multiplyTo=Aa;P.prototype.squareTo=Ea;P.prototype.divRemTo=va;P.prototype.invDigit=Ra;P.prototype.addTo=Pa;P.prototype.toString=fa;P.prototype.negate=ha;P.prototype.abs=ga;P.prototype.compareTo=pa;P.prototype.bitLength=ma;P.prototype.mod=Ta;P.prototype.equals=Ia;P.prototype.add=xa;P.prototype.subtract=Ua;P.prototype.multiply=Ca;P.prototype.divide=Da;P.prototype.modPow=Ma;P.ZERO=or(0);P.ONE=or(1);function ur(r){return ge.Buffer.from(new Qt().random(r).toString(),"hex")}var Va=/^[89a-f]/i,Ba="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",qa="userAttributes.",be=(function(){function r(t){this.N=new M(Ba,16),this.g=new M("2",16),this.k=new M(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=ge.Buffer.from("Caldera Derived Key","utf8"),this.poolName=t;}var e=r.prototype;return e.getSmallAValue=function(){return this.smallAValue},e.getLargeAValue=function(n){var i=this;this.largeAValue?n(null,this.largeAValue):this.calculateA(this.smallAValue,function(s,o){s&&n(s,null),i.largeAValue=o,n(null,i.largeAValue);});},e.generateRandomSmallA=function(){var n=ur(128).toString("hex"),i=new M(n,16);return i},e.generateRandomString=function(){return ur(40).toString("base64")},e.getRandomPassword=function(){return this.randomPassword},e.getSaltDevices=function(){return this.SaltToHashDevices},e.getVerifierDevices=function(){return this.verifierDevices},e.generateHashDevice=function(n,i,s){var o=this;this.randomPassword=this.generateRandomString();var a=""+n+i+":"+this.randomPassword,u=this.hash(a),c=ur(16).toString("hex");this.SaltToHashDevices=this.padHex(new M(c,16)),this.g.modPow(new M(this.hexHash(this.SaltToHashDevices+u),16),this.N,function(d,l){d&&s(d,null),o.verifierDevices=o.padHex(l),s(null,null);});},e.calculateA=function(n,i){var s=this;this.g.modPow(n,this.N,function(o,a){o&&i(o,null),a.mod(s.N).equals(M.ZERO)&&i(new Error("Illegal paramater. A mod N cannot be 0."),null),i(null,a);});},e.calculateU=function(n,i){this.UHexHash=this.hexHash(this.padHex(n)+this.padHex(i));var s=new M(this.UHexHash,16);return s},e.hash=function(n){var i=new wt.Sha256;i.update(n);var s=i.digestSync(),o=ge.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(ge.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=ge.Buffer.concat([this.infoBits,ge.Buffer.from("","utf8")]),o=new wt.Sha256(i);o.update(n);var a=o.digestSync(),u=new wt.Sha256(a);u.update(s);var c=u.digestSync(),d=c,l=d.slice(0,16);return l},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var u=this;if(s.mod(this.N).equals(M.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(M.ZERO))throw new Error("U cannot be zero.");var c=""+this.poolName+n+":"+i,d=this.hash(c),l=new M(this.hexHash(this.padHex(o)+d),16);this.calculateS(l,s,function(h,p){h&&a(h,null);var g=u.computehkdf(ge.Buffer.from(u.padHex(p),"hex"),ge.Buffer.from(u.padHex(u.UValue),"hex"));a(null,g);});},e.calculateS=function(n,i,s){var o=this;this.g.modPow(n,this.N,function(a,u){a&&s(a,null);var c=i.subtract(o.k.multiply(u));c.modPow(o.smallAValue.add(o.UValue.multiply(n)),o.N,function(d,l){d&&s(d,null),s(null,l.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return qa},e.padHex=function(n){if(!(n instanceof M))throw new Error("Not a BigInteger");var i=n.compareTo(M.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=Va.test(s)?"00"+s:s,i){var o=s.split("").map(function(u){var c=~parseInt(u,16)&15;return "0123456789ABCDEF".charAt(c)}).join(""),a=new M(o,16).add(M.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},r})();var Rn=Ae(dt());var St=(function(){function r(t){this.jwtToken=t||"",this.payload=this.decodePayload();}var e=r.prototype;return e.getJwtToken=function(){return this.jwtToken},e.getExpiration=function(){return this.payload.exp},e.getIssuedAt=function(){return this.payload.iat},e.decodePayload=function(){var n=this.jwtToken.split(".")[1];try{return JSON.parse(Rn.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function $a(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,cr(r,e);}function cr(r,e){return cr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},cr(r,e)}var Ne=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return $a(e,r),e})(St);function ja(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,lr(r,e);}function lr(r,e){return lr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},lr(r,e)}var Fe=(function(r){function e(t){var n=t===void 0?{}:t,i=n.IdToken;return r.call(this,i||"")||this}return ja(e,r),e})(St);var Le=(function(){function r(t){var n=t===void 0?{}:t,i=n.RefreshToken;this.token=i||"";}var e=r.prototype;return e.getToken=function(){return this.token},r})();var B=Ae(dt()),fr=Ae(ir());var In="5.0.4";var Ka="aws-amplify/"+In,dr={userAgent:Ka,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Pn=function(){return dr.userAgent};var Oe=(function(){function r(t){var n=t===void 0?{}:t,i=n.IdToken,s=n.RefreshToken,o=n.AccessToken,a=n.ClockDrift;if(o==null||i==null)throw new Error("Id token and Access Token must be present.");this.idToken=i,this.refreshToken=s,this.accessToken=o,this.clockDrift=a===void 0?this.calculateClockDrift():a;}var e=r.prototype;return e.getIdToken=function(){return this.idToken},e.getRefreshToken=function(){return this.refreshToken},e.getAccessToken=function(){return this.accessToken},e.getClockDrift=function(){return this.clockDrift},e.calculateClockDrift=function(){var n=Math.floor(new Date/1e3),i=Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt());return n-i},e.isValid=function(){var n=Math.floor(new Date/1e3),i=n-this.clockDrift;return i<this.accessToken.getExpiration()&&i<this.idToken.getExpiration()},r})();var Ha=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Wa=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],At=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=Wa[n.getUTCDay()],s=Ha[n.getUTCMonth()],o=n.getUTCDate(),a=n.getUTCHours();a<10&&(a="0"+a);var u=n.getUTCMinutes();u<10&&(u="0"+u);var c=n.getUTCSeconds();c<10&&(c="0"+c);var d=n.getUTCFullYear(),l=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+d;return l},r})();var ue=(function(){function r(t){var n=t===void 0?{}:t,i=n.Name,s=n.Value;this.Name=i||"",this.Value=s||"";}var e=r.prototype;return e.getValue=function(){return this.Value},e.setValue=function(n){return this.Value=n,this},e.getName=function(){return this.Name},e.setName=function(n){return this.Name=n,this},e.toString=function(){return JSON.stringify(this)},e.toJSON=function(){return {Name:this.Name,Value:this.Value}},r})();var Ie={},Ja=(function(){function r(){}return r.setItem=function(t,n){return Ie[t]=n,Ie[t]},r.getItem=function(t){return Object.prototype.hasOwnProperty.call(Ie,t)?Ie[t]:void 0},r.removeItem=function(t){return delete Ie[t]},r.clear=function(){return Ie={},Ie},r})(),Et=(function(){function r(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls");}catch{this.storageWindow=Ja;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var Qa=typeof navigator<"u",xn=Qa?dr.isReactNative?"react-native":navigator.userAgent:"nodejs",pe=(function(){function r(t){if(t==null||t.Username==null||t.Pool==null)throw new Error("Username and Pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||new Et().getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData";}var e=r.prototype;return e.setSignInUserSession=function(n){this.clearCachedUserData(),this.signInUserSession=n,this.cacheTokens();},e.getSignInUserSession=function(){return this.signInUserSession},e.getUsername=function(){return this.username},e.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.setAuthenticationFlowType=function(n){this.authenticationFlowType=n;},e.initiateAuth=function(n,i){var s=this,o=n.getAuthParameters();o.USERNAME=this.username;var a=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),u={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:a};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",u,function(c,d){if(c)return i.onFailure(c);var l=d.ChallengeName,h=d.ChallengeParameters;return l==="CUSTOM_CHALLENGE"?(s.Session=d.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(d.AuthenticationResult),s.cacheTokens(),i.onSuccess(s.signInUserSession))});},e.authenticateUser=function(n,i){return this.authenticationFlowType==="USER_PASSWORD_AUTH"?this.authenticateUserPlainUsernamePassword(n,i):this.authenticationFlowType==="USER_SRP_AUTH"||this.authenticationFlowType==="CUSTOM_AUTH"?this.authenticateUserDefaultAuth(n,i):i.onFailure(new Error("Authentication flow type is invalid."))},e.authenticateUserDefaultAuth=function(n,i){var s=this,o=new be(this.pool.getUserPoolName()),a=new At,u,c,d={};this.deviceKey!=null&&(d.DEVICE_KEY=this.deviceKey),d.USERNAME=this.username,o.getLargeAValue(function(l,h){l&&i.onFailure(l),d.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(d.CHALLENGE_NAME="SRP_A");var p=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:d,ClientMetadata:p};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(_,S){if(_)return i.onFailure(_);var y=S.ChallengeParameters;s.username=y.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new M(y.SRP_B,16),c=new M(y.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,U){R&&i.onFailure(R);var x=a.getNowString(),L=B.Buffer.concat([B.Buffer.from(s.pool.getUserPoolName(),"utf8"),B.Buffer.from(s.username,"utf8"),B.Buffer.from(y.SECRET_BLOCK,"base64"),B.Buffer.from(x,"utf8")]),$=new fr.Sha256(U);$.update(L);var K=$.digestSync(),C=B.Buffer.from(K).toString("base64"),D={};D.USERNAME=s.username,D.PASSWORD_CLAIM_SECRET_BLOCK=y.SECRET_BLOCK,D.TIMESTAMP=x,D.PASSWORD_CLAIM_SIGNATURE=C,s.deviceKey!=null&&(D.DEVICE_KEY=s.deviceKey);var k=function(tt,Fr){return s.client.request("RespondToAuthChallenge",tt,function(rt,Cs){return rt&&rt.code==="ResourceNotFoundException"&&rt.message.toLowerCase().indexOf("device")!==-1?(D.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(tt,Fr)):Fr(rt,Cs)})},O={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:D,Session:S.Session,ClientMetadata:p};s.getUserContextData()&&(O.UserContextData=s.getUserContextData()),k(O,function(Vt,tt){return Vt?i.onFailure(Vt):s.authenticateUserInternal(tt,o,i)});});});});},e.authenticateUserPlainUsernamePassword=function(n,i){var s=this,o={};if(o.USERNAME=this.username,o.PASSWORD=n.getPassword(),!o.PASSWORD){i.onFailure(new Error("PASSWORD parameter is required"));return}var a=new be(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(o.DEVICE_KEY=this.deviceKey);var u=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),c={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:u};this.getUserContextData(this.username)&&(c.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",c,function(d,l){return d?i.onFailure(d):s.authenticateUserInternal(l,a,i)});},e.authenticateUserInternal=function(n,i,s){var o=this,a=n.ChallengeName,u=n.ChallengeParameters;if(a==="SMS_MFA")return this.Session=n.Session,s.mfaRequired(a,u);if(a==="SELECT_MFA_TYPE")return this.Session=n.Session,s.selectMFAType(a,u);if(a==="MFA_SETUP")return this.Session=n.Session,s.mfaSetup(a,u);if(a==="SOFTWARE_TOKEN_MFA")return this.Session=n.Session,s.totpRequired(a,u);if(a==="CUSTOM_CHALLENGE")return this.Session=n.Session,s.customChallenge(u);if(a==="NEW_PASSWORD_REQUIRED"){this.Session=n.Session;var c=null,d=null,l=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),d=JSON.parse(n.ChallengeParameters.requiredAttributes)),d)for(var p=0;p<d.length;p++)l[p]=d[p].substr(h.length);return s.newPasswordRequired(c,l)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return s.onFailure(_);var S={Salt:B.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=S.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:S,DeviceName:xn},function(y,R){return y?s.onFailure(y):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,R.UserConfirmationNecessary):s.onSuccess(o.signInUserSession))});});},e.completeNewPasswordChallenge=function(n,i,s,o){var a=this;if(!n)return s.onFailure(new Error("New password is required."));var u=new be(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),d={};i&&Object.keys(i).forEach(function(h){d[c+h]=i[h];}),d.NEW_PASSWORD=n,d.USERNAME=this.username;var l={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:d,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(h,p){return h?s.onFailure(h):a.authenticateUserInternal(p,u,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new be(this.deviceGroupKey),a=new At,u={};u.USERNAME=this.username,u.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(c,d){c&&n.onFailure(c),u.SRP_A=d.toString(16);var l={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(l.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",l,function(h,p){if(h)return n.onFailure(h);var g=p.ChallengeParameters,_=new M(g.SRP_B,16),S=new M(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,_,S,function(y,R){if(y)return n.onFailure(y);var U=a.getNowString(),x=B.Buffer.concat([B.Buffer.from(s.deviceGroupKey,"utf8"),B.Buffer.from(s.deviceKey,"utf8"),B.Buffer.from(g.SECRET_BLOCK,"base64"),B.Buffer.from(U,"utf8")]),L=new fr.Sha256(R);L.update(x);var $=L.digestSync(),K=B.Buffer.from($).toString("base64"),C={};C.USERNAME=s.username,C.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,C.TIMESTAMP=U,C.PASSWORD_CLAIM_SIGNATURE=K,C.DEVICE_KEY=s.deviceKey;var D={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:C,Session:p.Session};s.getUserContextData()&&(D.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",D,function(k,O){return k?n.onFailure(k):(s.signInUserSession=s.getCognitoUserSession(O.AuthenticationResult),s.cacheTokens(),n.onSuccess(s.signInUserSession))});});});});},e.confirmRegistration=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),ConfirmationCode:n,Username:this.username,ForceAliasCreation:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",a,function(u){return u?s(u,null):s(null,"SUCCESS")});},e.sendCustomChallengeAnswer=function(n,i,s){var o=this,a={};a.USERNAME=this.username,a.ANSWER=n;var u=new be(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(a.DEVICE_KEY=this.deviceKey);var c={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:a,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:s};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(d,l){return d?i.onFailure(d):o.authenticateUserInternal(l,u,i)});},e.sendMFACode=function(n,i,s,o){var a=this,u={};u.USERNAME=this.username,u.SMS_MFA_CODE=n;var c=s||"SMS_MFA";c==="SOFTWARE_TOKEN_MFA"&&(u.SOFTWARE_TOKEN_MFA_CODE=n),this.deviceKey!=null&&(u.DEVICE_KEY=this.deviceKey);var d={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(l,h){if(l)return i.onFailure(l);var p=h.ChallengeName;if(p==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new be(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return i.onFailure(_);var S={Salt:B.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=S.PasswordVerifier,a.deviceGroupKey=h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,a.randomPassword=g.getRandomPassword(),a.client.request("ConfirmDevice",{DeviceKey:h.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:a.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:S,DeviceName:xn},function(y,R){return y?i.onFailure(y):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,R.UserConfirmationNecessary):i.onSuccess(a.signInUserSession))});});});},e.changePassword=function(n,i,s,o){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return s(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:n,ProposedPassword:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:o},function(a){return a?s(a,null):s(null,"SUCCESS")});},e.enableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[],s={DeliveryMedium:"SMS",AttributeName:"phone_number"};i.push(s),this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?n(o,null):n(null,"SUCCESS")});},e.setUserMfaPreference=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:n,SoftwareTokenMfaSettings:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s(o,null):s(null,"SUCCESS")});},e.disableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[];this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n(s,null):n(null,"SUCCESS")});},e.deleteUser=function(n,i){var s=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:i},function(o){return o?n(o,null):(s.clearCachedUser(),n(null,"SUCCESS"))});},e.updateAttributes=function(n,i,s){var o=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return i(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:n,ClientMetadata:s},function(a,u){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",u)},{bypassCache:true})});},e.getUserAttributes=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){if(i)return n(i,null);for(var o=[],a=0;a<s.UserAttributes.length;a++){var u={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},c=new ue(u);o.push(c);}return n(null,o)});},e.getMFAOptions=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){return i?n(i,null):n(null,s.MFAOptions)});},e.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},e.refreshSessionIfPossible=function(n){var i=this;return n===void 0&&(n={}),new Promise(function(s){var o=i.signInUserSession.getRefreshToken();o&&o.getToken()?i.refreshSession(o,s,n.clientMetadata):s();})},e.getUserData=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return this.clearCachedUserData(),n(new Error("User is not authenticated"),null);var o=this.getUserDataFromCache();if(!o){this.fetchUserData().then(function(a){n(null,a);}).catch(n);return}if(this.isFetchUserDataAndTokenRequired(i)){this.fetchUserData().then(function(a){return s.refreshSessionIfPossible(i).then(function(){return a})}).then(function(a){return n(null,a)}).catch(n);return}try{n(null,JSON.parse(o));return}catch(a){this.clearCachedUserData(),n(a,null);return}},e.getUserDataFromCache=function(){var n=this.storage.getItem(this.userDataKey);return n},e.isFetchUserDataAndTokenRequired=function(n){var i=n||{},s=i.bypassCache,o=s===void 0?false:s;return o},e.fetchUserData=function(){var n=this;return this.createGetUserRequest().then(function(i){return n.cacheUserData(i),i})},e.deleteAttributes=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return i(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?i(o,null):s.getUserData(function(){return i(null,"SUCCESS")},{bypassCache:true})});},e.resendConfirmationCode=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.client.request("ResendConfirmationCode",s,function(o,a){return o?n(o,null):n(null,a)});},e.getSession=function(n,i){if(i===void 0&&(i={}),this.username==null)return n(new Error("Username is null. Cannot retrieve a new session"),null);if(this.signInUserSession!=null&&this.signInUserSession.isValid())return n(null,this.signInUserSession);var s="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,o=s+".idToken",a=s+".accessToken",u=s+".refreshToken",c=s+".clockDrift";if(this.storage.getItem(o)){var d=new Fe({IdToken:this.storage.getItem(o)}),l=new Ne({AccessToken:this.storage.getItem(a)}),h=new Le({RefreshToken:this.storage.getItem(u)}),p=parseInt(this.storage.getItem(c),0)||0,g={IdToken:d,AccessToken:l,RefreshToken:h,ClockDrift:p},_=new Oe(g);if(_.isValid())return this.signInUserSession=_,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),d=c+".LastAuthUser";if(this.storage.getItem(d)){this.username=this.storage.getItem(d);var l=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(l),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(p,g){if(p)return p.code==="NotAuthorizedException"&&o.clearCachedUser(),a(p,null);if(g){var _=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(_,"RefreshToken")||(_.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(_),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new Fe(n),s=new Ne(n),o=new Le(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new Oe(a)},e.forgotPassword=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",s,function(o,a){return o?n.onFailure(o):typeof n.inputVerificationCode=="function"?n.inputVerificationCode(a):n.onSuccess(a)});},e.confirmPassword=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:n,Password:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",a,function(u){return u?s.onFailure(u):s.onSuccess("SUCCESS")});},e.getAttributeVerificationCode=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:s},function(o,a){return o?i.onFailure(o):typeof i.inputVerificationCode=="function"?i.inputVerificationCode(a):i.onSuccess("SUCCESS")});},e.verifyAttribute=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:n,Code:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s.onFailure(o):s.onSuccess("SUCCESS")});},e.getDevice=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(i,s){return i?n.onFailure(i):n.onSuccess(s)});},e.forgetSpecificDevice=function(n,i){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:n},function(s){return s?i.onFailure(s):i.onSuccess("SUCCESS")});},e.forgetDevice=function(n){var i=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:n.onFailure,onSuccess:function(o){return i.deviceKey=null,i.deviceGroupKey=null,i.randomPassword=null,i.clearCachedDeviceKeyAndPassword(),n.onSuccess(o)}});},e.setDeviceStatusRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.setDeviceStatusNotRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.listDevices=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));var o={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:n};i&&(o.PaginationToken=i),this.client.request("ListDevices",o,function(a,u){return a?s.onFailure(a):s.onSuccess(u)});},e.globalSignOut=function(n){var i=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n.onFailure(s):(i.clearCachedUser(),n.onSuccess("SUCCESS"))});},e.signOut=function(n){var i=this;if(!n||typeof n!="function"){this.cleanClientData();return}this.getSession(function(s,o){if(s)return n(s);i.revokeTokens(function(a){i.cleanClientData(),n(a);});});},e.revokeTokens=function(n){if(n===void 0&&(n=function(){}),typeof n!="function")throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession){var s=new Error("User is not authenticated");return n(s)}if(!this.signInUserSession.getAccessToken()){var o=new Error("No Access token available");return n(o)}var a=this.signInUserSession.getRefreshToken().getToken(),u=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(u)&&a)return this.revokeToken({token:a,callback:n});n();},e.isSessionRevocable=function(n){if(n&&typeof n.decodePayload=="function")try{var i=n.decodePayload(),s=i.origin_jti;return !!s}catch{}return false},e.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser();},e.revokeToken=function(n){var i=n.token,s=n.callback;this.client.requestWithRetry("RevokeToken",{Token:i,ClientId:this.pool.getClientId()},function(o){if(o)return s(o);s();});},e.sendMFASelectionAnswer=function(n,i){var s=this,o={};o.USERNAME=this.username,o.ANSWER=n;var a={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,function(u,c){if(u)return i.onFailure(u);if(s.Session=c.Session,n==="SMS_MFA")return i.mfaRequired(c.ChallengeName,c.ChallengeParameters);if(n==="SOFTWARE_TOKEN_MFA")return i.totpRequired(c.ChallengeName,c.ChallengeParameters)});},e.getUserContextData=function(){var n=this.pool;return n.getUserContextData(this.username)},e.associateSoftwareToken=function(n){var i=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s,o){return s?n.onFailure(s):n.associateSecretCode(o.SecretCode)}):this.client.request("AssociateSoftwareToken",{Session:this.Session},function(s,o){return s?n.onFailure(s):(i.Session=o.Session,n.associateSecretCode(o.SecretCode))});},e.verifySoftwareToken=function(n,i,s){var o=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:n,FriendlyDeviceName:i},function(a,u){return a?s.onFailure(a):s.onSuccess(u)}):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:n,FriendlyDeviceName:i},function(a,u){if(a)return s.onFailure(a);o.Session=u.Session;var c={};c.USERNAME=o.username;var d={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(d.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",d,function(l,h){return l?s.onFailure(l):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Ae(Cn());function Me(){}Me.prototype.userAgent=Pn();var Dn=function(e){var t=Me.category?" "+Me.category:"",n=Me.framework?" framework/"+Me.framework:"",i=""+Me.prototype.userAgent+t+n;return i};function za(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,He(r,e);}function pr(r){var e=typeof Map=="function"?new Map:void 0;return pr=function(n){if(n===null||!Xa(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,i);}function i(){return Ya(n,arguments,mr(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),He(i,n)},pr(r)}function Ya(r,e,t){if(kn())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(r.bind.apply(r,n));return t&&He(i,t.prototype),i}function kn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (kn=function(){return !!r})()}function Xa(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}}function He(r,e){return He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},He(r,e)}function mr(r){return mr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},mr(r)}var Za=(function(r){function e(t,n,i,s){var o;return o=r.call(this,t)||this,o.code=n,o.name=i,o.statusCode=s,o}return za(e,r),e})(pr(Error)),Nn=(function(){function r(t,n,i){this.endpoint=n||"https://cognito-idp."+t+".amazonaws.com/";var s=i||{},o=s.credentials;this.fetchOptions=o?{credentials:o}:{};}var e=r.prototype;return e.promisifyRequest=function(n,i){var s=this;return new Promise(function(o,a){s.request(n,i,function(u,c){u?a(new Za(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;nu(function(u){return new Promise(function(c,d){o.request(n,u,function(l,h){l?d(l):c(h);});})},[i],a).then(function(u){return s(null,u)}).catch(function(u){return s(u)});},e.request=function(n,i,s){var o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+n,"X-Amz-User-Agent":Dn(),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(i)}),u;fetch(this.endpoint,a).then(function(d){return u=d,d},function(d){throw d instanceof TypeError?new Error("Network error"):d}).then(function(d){return d.json().catch(function(){return {}})}).then(function(d){if(u.ok)return s(null,d);var l=(d.__type||d.code).split("#").pop(),h=new Error(d.message||d.Message||null);return h.name=l,h.code=l,s(h)}).catch(function(d){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var l=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=l,h.name=l,h.statusCode=u.status,s(h)}catch{return s(d)}else d instanceof Error&&d.message==="Network error"&&(d.code="NetworkError");return s(d)});},r})();var vt={debug:function(){}};var eu=function(e){var t="nonRetryable";return e&&e[t]};function Fn(r,e,t,n){if(n===void 0&&(n=1),typeof r!="function")throw Error("functionToRetry must be a function");return vt.debug(r.name+" attempt #"+n+" with args: "+JSON.stringify(e)),r.apply(void 0,e).catch(function(i){if(vt.debug("error on "+r.name,i),eu(i))throw vt.debug(r.name+" non retryable error",i),i;var s=t(n,e,i);if(vt.debug(r.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return Fn(r,e,t,n+1)});throw i})}function tu(r){var e=100,t=100;return function(n){var i=Math.pow(2,n)*e+t*Math.random();return i>r?false:i}}function nu(r,e,t){return Fn(r,e,tu(t))}var iu=55,_r=(function(){function r(t,n){var i=t||{},s=i.UserPoolId,o=i.ClientId,a=i.endpoint,u=i.fetchOptions,c=i.AdvancedSecurityDataCollectionFlag;if(!s||!o)throw new Error("Both UserPoolId and ClientId are required.");if(s.length>iu||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var d=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new Nn(d,a,u),this.advancedSecurityDataCollectionFlag=c!==false,this.storage=t.Storage||new Et().getStorage(),n&&(this.wrapRefreshSessionCallback=n);}var e=r.prototype;return e.getUserPoolId=function(){return this.userPoolId},e.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},e.getClientId=function(){return this.clientId},e.signUp=function(n,i,s,o,a,u){var c=this,d={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(d.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",d,function(l,h){if(l)return a(l,null);var p={Username:n,Pool:c,Storage:c.storage},g={user:new pe(p),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new pe(s)}return null},e.getUserContextData=function(n){if(!(typeof AmazonCognitoAdvancedSecurityData>"u")){var i=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var s=i.getData(n,this.userPoolId,this.clientId);if(s){var o={EncodedData:s};return o}}return {}}},r})();Ae(Mn());var f=class extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let i=2;i<e.length&&typeof e[i]=="string";i++)n+=e[i];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause);}else super((e?.message||(typeof e=="string"?e:"Something went wrong.")).trim()),typeof e=="string"?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):typeof e=="object"&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause);}};var Ve="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",yr=BigInt(Ve.length),su=2*1024*1024,ou=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],Vn={auth_time:"log",sub:"user_id"},au=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Jn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],w=class w{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let t=w.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,u,c,d;for(let l=0;l<t.length;l+=16)a=n,u=i,c=s,d=o,n=w.ff(n,i,s,o,t[l],7,-680876936),o=w.ff(o,n,i,s,t[l+1],12,-389564586),s=w.ff(s,o,n,i,t[l+2],17,606105819),i=w.ff(i,s,o,n,t[l+3],22,-1044525330),n=w.ff(n,i,s,o,t[l+4],7,-176418897),o=w.ff(o,n,i,s,t[l+5],12,1200080426),s=w.ff(s,o,n,i,t[l+6],17,-1473231341),i=w.ff(i,s,o,n,t[l+7],22,-45705983),n=w.ff(n,i,s,o,t[l+8],7,1770035416),o=w.ff(o,n,i,s,t[l+9],12,-1958414417),s=w.ff(s,o,n,i,t[l+10],17,-42063),i=w.ff(i,s,o,n,t[l+11],22,-1990404162),n=w.ff(n,i,s,o,t[l+12],7,1804603682),o=w.ff(o,n,i,s,t[l+13],12,-40341101),s=w.ff(s,o,n,i,t[l+14],17,-1502002290),i=w.ff(i,s,o,n,t[l+15],22,1236535329),n=w.gg(n,i,s,o,t[l+1],5,-165796510),o=w.gg(o,n,i,s,t[l+6],9,-1069501632),s=w.gg(s,o,n,i,t[l+11],14,643717713),i=w.gg(i,s,o,n,t[l],20,-373897302),n=w.gg(n,i,s,o,t[l+5],5,-701558691),o=w.gg(o,n,i,s,t[l+10],9,38016083),s=w.gg(s,o,n,i,t[l+15],14,-660478335),i=w.gg(i,s,o,n,t[l+4],20,-405537848),n=w.gg(n,i,s,o,t[l+9],5,568446438),o=w.gg(o,n,i,s,t[l+14],9,-1019803690),s=w.gg(s,o,n,i,t[l+3],14,-187363961),i=w.gg(i,s,o,n,t[l+8],20,1163531501),n=w.gg(n,i,s,o,t[l+13],5,-1444681467),o=w.gg(o,n,i,s,t[l+2],9,-51403784),s=w.gg(s,o,n,i,t[l+7],14,1735328473),i=w.gg(i,s,o,n,t[l+12],20,-1926607734),n=w.hh(n,i,s,o,t[l+5],4,-378558),o=w.hh(o,n,i,s,t[l+8],11,-2022574463),s=w.hh(s,o,n,i,t[l+11],16,1839030562),i=w.hh(i,s,o,n,t[l+14],23,-35309556),n=w.hh(n,i,s,o,t[l+1],4,-1530992060),o=w.hh(o,n,i,s,t[l+4],11,1272893353),s=w.hh(s,o,n,i,t[l+7],16,-155497632),i=w.hh(i,s,o,n,t[l+10],23,-1094730640),n=w.hh(n,i,s,o,t[l+13],4,681279174),o=w.hh(o,n,i,s,t[l],11,-358537222),s=w.hh(s,o,n,i,t[l+3],16,-722521979),i=w.hh(i,s,o,n,t[l+6],23,76029189),n=w.hh(n,i,s,o,t[l+9],4,-640364487),o=w.hh(o,n,i,s,t[l+12],11,-421815835),s=w.hh(s,o,n,i,t[l+15],16,530742520),i=w.hh(i,s,o,n,t[l+2],23,-995338651),n=w.ii(n,i,s,o,t[l],6,-198630844),o=w.ii(o,n,i,s,t[l+7],10,1126891415),s=w.ii(s,o,n,i,t[l+14],15,-1416354905),i=w.ii(i,s,o,n,t[l+5],21,-57434055),n=w.ii(n,i,s,o,t[l+12],6,1700485571),o=w.ii(o,n,i,s,t[l+3],10,-1894986606),s=w.ii(s,o,n,i,t[l+10],15,-1051523),i=w.ii(i,s,o,n,t[l+1],21,-2054922799),n=w.ii(n,i,s,o,t[l+8],6,1873313359),o=w.ii(o,n,i,s,t[l+15],10,-30611744),s=w.ii(s,o,n,i,t[l+6],15,-1560198380),i=w.ii(i,s,o,n,t[l+13],21,1309151649),n=w.ii(n,i,s,o,t[l+4],6,-145523070),o=w.ii(o,n,i,s,t[l+11],10,-1120210379),s=w.ii(s,o,n,i,t[l+2],15,718787259),i=w.ii(i,s,o,n,t[l+9],21,-343485551),n=w.ad(n,a),i=w.ad(i,u),s=w.ad(s,c),o=w.ad(o,d);return w.rh(n)+w.rh(i)+w.rh(s)+w.rh(o)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=w.alphabet.charAt(e>>n*8+4&15)+w.alphabet.charAt(e>>n*8&15);return t}static ad(e,t){let n=(e&65535)+(t&65535);return (e>>16)+(t>>16)+(n>>16)<<16|n&65535}static rl(e,t){return e<<t|e>>>32-t}static cm(e,t,n,i,s,o){return w.ad(w.rl(w.ad(w.ad(t,e),w.ad(i,o)),s),n)}static ff(e,t,n,i,s,o,a){return w.cm(t&n|~t&i,e,t,s,o,a)}static gg(e,t,n,i,s,o,a){return w.cm(t&i|n&~i,e,t,s,o,a)}static hh(e,t,n,i,s,o,a){return w.cm(t^n^i,e,t,s,o,a)}static ii(e,t,n,i,s,o,a){return w.cm(n^(t|~i),e,t,s,o,a)}static sb(e){let t,n=(e.length+8>>6)+1,i=new Array(n*16);for(t=0;t<n*16;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[n*16-2]=e.length*8,i}};w.alphabet="0123456789abcdef";var G=w;function Qn(r){if(r===0)return Ve[0];let e="";for(;r>0;)e=Ve[r%62]+e,r=Math.floor(r/62);return e}function ne(r){return r.split("").reverse().reduce((e,t,n)=>e+Ve.indexOf(t)*62**n,0)}function We(r=6){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t.length,i=0;for(;i<r;)e+=t.charAt(Math.floor(Math.random()*n)),i+=1;return e}function wr(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !wr()&&typeof document<"u"&&typeof document.createElement=="function"}function Tt(r){let e;try{e=JSON.stringify(r);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>su)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function Bn(r){return r===""||r==="on"||r==="true"}function qn(r){return r==="false"}function $n(r,e,t){e.name&&t(r,e.name,e.value);}var Rt=z(),uu=typeof SubmitEvent<"u",cu=typeof HTMLFormElement<"u";function N(r,e,t){let n={},i=[];function s(u,c,d){if(e?.ignoreEmpty&&d==="")return;if(e?.nullIfEmpty&&d===""&&(d=null),typeof t=="function"){let p=t(c,d);p!==void 0&&(d=p);}let l=c.split("[").map(p=>{let g=p.replace("]",""),_=Number(g);return !isNaN(_)&&!g.includes(".")?g=_:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof l[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let p=0;p<l.length;p++){let g=l[p];p<l.length-1?(h[g]===void 0&&(typeof l[p+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=d:Array.isArray(h[g])?h[g].push(d):h[g]=[h[g],d];}}function o(u,c,d){if(d instanceof File)u.push({name:c,file:d});else if(d instanceof FileList&&d&&d.length>0)for(let l=0;l<=d.length-1;l++){let h=d.item(l);h&&u.push({name:c,file:h});}}let a=u=>{u.name&&(u.type==="number"?u.value&&s(n,u.name,Number(u.value)):u.type==="checkbox"||u.type==="radio"?u.checked?u.type==="checkbox"&&u.value===""||Bn(u.value)?s(n,u.name,true):qn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(Bn(u.value)?s(n,u.name,false):qn(u.value)&&s(n,u.name,true)):u.type==="file"?u.files&&u.files.length>0&&o(i,u.name,u.files):s(n,u.name,u.value));};if(Rt&&(r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement))return a(r),Tt(n),{data:n,files:i};if(Rt&&r instanceof FormData){for(let u of r.entries()){let c=u[0],d=u[1];if(d instanceof File||d instanceof FileList)o(i,c,d);else if(d instanceof Blob){let l=d;if(l.type==="application/json")try{let h=JSON.parse(l.text());s(n,c,h);}catch{s(n,c,l);}}else s(n,c,d);}return Tt(n),{data:n,files:i}}if(Rt&&uu&&r instanceof SubmitEvent&&(r=r.target),Rt&&cu&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),d=r.querySelectorAll("textarea");for(let l=0;l<c.length;l++)$n(n,c[l],s);for(let l=0;l<d.length;l++)$n(n,d[l],s);for(let l=0;l<u.length;l++)a(u[l]);return Tt(n),{data:n,files:i}}return Tt(r),{data:r,files:i}}function Je(r){let e={};for(let t in r){let n=r[t];if(!ou.includes(t))if(Vn[t])e[Vn[t]]=n;else if(t.includes("custom:"))e[t.replace("custom:","")]=n;else if(t==="address"){let i=n;if(i&&typeof i=="object"&&Object.keys(i).length){if(i?.formatted)try{e[t]=JSON.parse(i.formatted);}catch{e[t]=i.formatted;}}else e[t]=i;}else e[t]=n;}for(let t of ["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])t.includes("_public")?e.hasOwnProperty(t.split("_")[0])?e[t]=e.hasOwnProperty(t)?!!Number(e[t]):false:delete e[t]:e[t]=e.hasOwnProperty(t)?Number(e[t]):0;for(let t of ["email","phone_number"])e.hasOwnProperty(t)?e[t+"_verified"]=e[t+"_verified"]===true:delete e[t+"_verified"];return e}function Sr(r){if(r=pu(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=Jn[ne(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid.")}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid.");return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function Gn(r,e){let t=Jn.indexOf(r.slice(0,4)),n=au[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return gu(s)}function jn(r){let e=0n;for(let t of r){let n=Ve.indexOf(t);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${t}`);e=e*yr+BigInt(n);}return e}function Kn(r,e=1){if(r<0n)throw new Error("INVALID_PARAMETER: Negative values are not supported.");if(r===0n)return "0".repeat(Math.max(1,e));let t="",n=r;for(;n>0n;){let i=Number(n%yr);t=Ve[i]+t,n/=yr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function Hn(r){if(r===0n)return Buffer.from([0]);let e=[],t=r;for(;t>0n;)e.push(Number(t&0xffn)),t>>=8n;return e.reverse(),Buffer.from(e)}function Wn(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function lu(r){let e=String(r).replace(/-/g,"");if(!/^[0-9a-fA-F]{32}$/.test(e))throw new Error("INVALID_PARAMETER: Invalid UUID format.");return Buffer.from(e,"hex")}function du(r){let e=Buffer.from(r).toString("hex");return [e.slice(0,8),e.slice(8,12),e.slice(12,16),e.slice(16,20),e.slice(20)].join("-")}function fu(r){if(Buffer)return Buffer.from(r).toString("base64");let e="",t=new Uint8Array(r),n=32768;for(let i=0;i<t.length;i+=n){let s=t.subarray(i,i+n);e+=String.fromCharCode.apply(null,Array.from(s));}if(typeof btoa=="function")return btoa(e);throw new Error("No base64 encoder available in this environment.")}function hu(r,e=false){let t=String(r).replace(/-/g,"+").replace(/_/g,"/"),n=t.length%4?"=".repeat(4-t.length%4):"",i=Buffer.from(t+n,"base64");return e?JSON.parse(i.toString("utf8")):i}function gu(r){let e=String(r).match(/^([0-9A-Za-z]+)-([0-9A-Za-z]+)-([0-9a-fA-F-]{36})$/);if(!e)throw new Error("INVALID_PARAMETER: Input must match <base62>-<base62>-<uuid>.");let[,t,n,i]=e,s=jn(t),o=jn(n),a=Hn(s),u=Hn(o),c=lu(i);if(t.length>255||n.length>255||a.length>255||u.length>255)throw new Error("INVALID_PARAMETER: Input parts are too long to encode.");let d=Buffer.concat([Buffer.from([1,t.length,n.length,a.length,u.length]),a,u,c]);return `s1_${fu(d).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}`}function pu(r){let e=String(r);if(!e.startsWith("s1_"))return e;let t=hu(e.slice(3));if(t.length<21)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let n=t[0];if(n!==1)throw new Error(`INVALID_PARAMETER: Unsupported token version: ${n}`);let i=t[1],s=t[2],o=t[3],a=t[4],u=5,c=u+o,d=c+a;if(t.length!==d+16)throw new Error("INVALID_PARAMETER: Corrupt compressed token length.");let l=Kn(Wn(t.subarray(u,c)),i),h=Kn(Wn(t.subarray(c,d)),s),p=du(t.subarray(d,d+16));return `${l}-${h}-${p}`}function Qe(r,e,t=[],n=null){let i=["string","number","boolean","object","array","function","null","undefined"];function s(g){return g!==null&&typeof g=="object"&&!Array.isArray(g)}function o(g){return s(g)}function a(g){return Array.isArray(g)}function u(g){return typeof g=="string"&&i.indexOf(g)!==-1}function c(g){return Array.isArray(g)?"array":g===null?"null":typeof g}function d(g){try{return JSON.stringify(g)}catch{return String(g)}}function l(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(_,S)=>typeof S=="function"?"custom validator":S)}catch{return String(g)}}function h(g,_){return _==="array"?Array.isArray(g):_==="object"?s(g):_==="null"?g===null:_==="undefined"?typeof g>"u":typeof g===_}function p(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
207
- `+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let _=p(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=Qe(r[g],e[g],t,_);else {if(t.indexOf(_)!==-1)throw new Error(`Key "${_}" is required.`);let S=e[g];a(S)&&S.length>1&&typeof S[S.length-1]=="function"&&(r[g]=S[S.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let _=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let S=0;S<r.length;S++){let y=r[S];if(u(_)){if(!h(y,_))throw new Error(`Type <${c(y)}> is invalid in "${n}". Expected a list of Type <${_}>.`)}else if(typeof _=="function")r[S]=_(y);else if(y!==_)throw new Error(`Value ${d(y)} is invalid in "${n}". Expected a list of ${d(_)}.`)}g=true;}else if(Array.isArray(r)&&e.every(S=>!a(S)&&S!=="array")){for(let S=0;S<r.length;S++){let y=false,R="";for(let U of e)try{r[S]=Qe(r[S],U,t,n),y=!0;break}catch(x){typeof U=="function"&&(R=x?.message||String(x));}if(!y&&R)throw new Error(R);if(!y){let U=e.map(l).join(", ");throw new Error(`${d(r[S])} is invalid in "${n}". allowed types or values are: ${U}.`)}}g=true;}else {let S="";for(let y of e)try{r=Qe(r,y,t,n),g=!0;break}catch(R){typeof y=="function"&&(S=R?.message||String(R));}if(!g&&S)throw new Error(S)}if(!g){let _=e.map(l).join(", ");throw new Error(`${d(r)} is invalid in "${n}". allowed types or values are: ${_}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${d(r)} is invalid in "${n}". allowed type or value is: ${l(e)}.`)}function mu(r,e="User ID"){let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;if(r){if(typeof r!="string")throw new f(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!r.match(t))throw new f(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new f(`${e} is empty.`,{code:"INVALID_PARAMETER"});return r}function _u(r){if(r&&(typeof r!="string"||r.charAt(0)!=="+"||isNaN(Number(r.substring(1)))))throw new f('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return r||""}function bu(r){if(r){if(typeof r!="string")throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let e=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(r.length!==10||r.split("-").length!==3||!e.test(r))throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return r||""}function yu(r){if(r){if(typeof r!="string")throw new f('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(r.length<6)throw new f('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(r.length>60)throw new f('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"})}else throw new f('"password" is required.',{code:"INVALID_PARAMETER"});return r}function wu(r,e="email"){if(r){if(typeof r!="string")throw new f(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(r.length<5)throw new f(`"${e}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r)&&(r=r.trim(),r.split("@")[1].split(".").length>=2))return r.toLowerCase()}else throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new f(`"${r}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function Su(r){let e=typeof window<"u",t=(()=>{let i=e&&window.location.origin||null;return i&&i.slice(-1)==="/"&&(i=i.slice(0,-1)),i})(),n=i=>{if(typeof i=="string"){if(i==="*")return "*";{let s=i.trim();if(s[0]==="/"&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=t+s;}else if(s[0]==="."&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let a=e?window.location.href.split("?")[0]:"";a.slice(-1)!=="/"&&(a+="/"),s=a+s.slice(1);}let o;try{o=new URL(s);}catch{throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(r)?r.map(i=>n(i)):n(r)}function Au(r,e,t=[],n){let i=N(r,n),s=i.data;e.service="string",e.owner="string";let o={};for(let a in e)if(s&&typeof s=="object"&&!Array.isArray(s)&&s.hasOwnProperty(a))if(typeof s[a]=="function")o[a]=s[a];else try{o[a]=JSON.parse(JSON.stringify(s[a]));}catch{o[a]=s[a];}n?.precall&&n.precall({data:o,files:i?.files||[]});try{return Qe(o,e,t)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var m={UserId:mu,PhoneNumber:_u,Birthdate:bu,Password:yu,Email:wu,Url:Su,Params:Au};var F=null;function Ar(r){let e={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},t={};for(let n in r)if(n==="tkid"){let i=r[n].split("#");if(i.length===1){t.ticket_id=i[0];continue}t.ticket_id=i[1],t.consume_id=i[2],t.user_id=i[3];let s=i[2].slice(-4);if(t.is_test=s===":CHK",!r.stmp){let o=i[2].slice(0,-4);/^[0-9]+$/.test(o)?t.timestamp=parseInt(o,10):t.timestamp=ne(i[2].slice(0,-4));}}else e[n]?t[e[n]]=r[n]:t[n]=r[n];return t}async function Yn(r){if(!r.ticket_id)throw new f("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!r.method)throw new f('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let e=r.ticket_id;await this.__connection;let t=await T.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${e}`,r?.data||{},{method:r.method,auth:!!r?.auth});return Ar(t)}async function Xn(r,e){await this.__connection;let t=await T.bind(this)("ticket",Object.assign({exec:"list"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Ar),t}async function Zn(r,e){await this.__connection;let t=await T.bind(this)("ticket",Object.assign({exec:"consumed"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Ar),t}async function ei(r){return T.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function ti(r){return T.bind(this)("register-ticket",Object.assign({exec:"unreg"},r),{auth:true})}async function Be(){if(await this.__connection,this.session){let r=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(t<r){this.log("request:requesting new token",null);try{await W.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session?.idToken?.payload?.exp,currentTime:r,expiresIn:t-r,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(n){throw this.log("request:new token error",n),new f("User login is required.",{code:"INVALID_REQUEST"})}}else this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:r,expiresIn:t-r,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token});return this.session?.idToken?.jwtToken}else throw this.log("request:no session",null),me.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function zn(r,e){return new Promise((t,n)=>{e.refreshSession(r.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(me.bind(this)(),n(i)):s.isValid()?t(s):(me.bind(this)(),n(new f("Invalid session.",{code:"INVALID_REQUEST"})));});})}function W(){if(!this.userPool)throw new f("User pool is missing",{code:"INVALID_REQUEST"});let r=()=>{let s=F.getSignInUserSession().getIdToken().payload||null,o=Je(s);return this.log("normalized user attribute",o),this.__user=o,o},e=async s=>new Promise((o,a)=>{this.log("getSession:option",s);let{refreshToken:u=false,skipUserUpdateEventTrigger:c=false}=s||{};if(u&&c&&(c=false),F=this.userPool.getCurrentUser(),!F){this.log("getSession:cognitoUser",F),me.bind(this)(),a(null);return}let d=l=>{let h=l.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),me.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=l,r(),c||this._runOnUserUpdateListeners(this.user),this.session};F.getSession((l,h)=>{if(this.log("getSession:getSessionCallback",{err:l,session:h}),!h){me.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(l){zn.bind(this)(h,F).then(y=>o(d(y))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),_=g.getExpiration(),S=_<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",_),this.log("getSession:isExpired",S),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),S||u||!h.isValid())zn.bind(this)(h,F).then(y=>o(d(y))).catch(a);else try{o(d(h));}catch(y){a(y);}});}),t=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+G.hash(s);return {cognitoUser:new pe({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,u=false)=>new Promise((c,d)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let l=t(s,a),h=l.cognitoUsername,p=new Bt({Username:h,Password:o});l.cognitoUser.authenticateUser(p,{newPasswordRequired:(g,_)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?l.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:S=>{F=l.cognitoUser,e().then(y=>c(this.user));},onFailure:S=>{d(new f(S.message||"Failed to authenticate user.",{code:S.code}));}}):d(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(_=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let _=[],{parsed:S,code:y}=It(g),R=typeof g?.message=="string"?g.message:"";if(y==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,_=["This account is disabled.","USER_IS_DISABLED"]):u?_=["The account already exists.","ACCOUNT_EXISTS"]:_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:y==="UserNotFoundException"?_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:y==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,_=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(y==="TooManyRequestsException"||y==="LimitExceededException")&&(_=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),S.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),_.length){let U=_[1],x=_[0];d(new f(x,{code:U,cause:g}));}else d(S);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(d,l)=>{if(d){let{parsed:h,code:p}=It(d),g=[];p==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:p==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:p==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:p==="TooManyRequestsException"||p==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:p==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:p==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:d})):c(h);return}u(l);});})}}function It(r){let e=typeof r?.code=="string"&&r.code.trim()?r.code.trim():"ERROR",n=((typeof r?.message=="string"?r.message:typeof r=="string"?r:"An error occurred.")||"An error occurred.").trim();n||(n="An error occurred.");let i=n.match(/#([A-Za-z0-9_]+)\s*:\s*([\s\S]+)/),s=i?.[1]?.trim()||e,o=i?.[2]?.trim()||n;return {parsed:new f(o,{code:s,cause:r}),code:e}}async function ri(r){await this.__authConnection;let e=r?.refreshToken||false;if(!e)return this.user;try{return await W.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},r)),this.user}catch{return null}}async function ni(r){await this.__connection,r=m.Params(r,{token:"string",id:"string",merge:s=>{if(s===void 0)return false;if(typeof s=="string")return [s];if(Array.isArray(s)){for(let o of s)if(typeof o!="string")throw new f('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"})}if(typeof s!="boolean"&&!Array.isArray(s))throw new f('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return s}});let e=await T.bind(this)("openid-logger",r),t=e.logger.split("#"),n=this.service+"-"+t[0],i=t[1];return {userProfile:await W.bind(this)().authenticateUser(n,i,true,true),openid:e.openid}}function Eu(r){let e=typeof globalThis<"u"?globalThis:void 0;if(e?.Buffer)return e.Buffer.from(r,"base64").toString("utf8");if(typeof atob=="function"){let t=atob(r),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return typeof TextDecoder<"u"?new TextDecoder().decode(n):t}throw new Error("No base64 decoder available in this environment")}function vu(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Eu(n);return JSON.parse(i)}async function ii(r){await this.__authConnection,this.log("loginWithToken:params",r),r=m.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=vu(r.idToken);if(this.log("loginWithToken:idTokenPayload",e),e["custom:service"]!==this.service)throw new f("Token does not belong to this service.",{code:"INVALID_REQUEST"});let t=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<t)throw new f("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=Je(e),this.session=null,r.accessToken&&r.refreshToken)try{if(this.session=new Oe({IdToken:new Fe({IdToken:r.idToken}),AccessToken:new Ne({AccessToken:r.accessToken}),RefreshToken:new Le({RefreshToken:r.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",pe),this.log("loginWithToken:userPool",this.userPool),pe&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),F=new pe(n),F.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof F,cognitoUserKeys:Object.keys(F||{}),cognitoUser:F});}}catch(n){this.log("loginWithToken:err",n);try{this.log("loginWithToken:err:stringified",JSON.stringify(n));}catch{this.log("loginWithToken:err:stringifyFail",String(n));}try{let i=Object.keys(n||{}),s=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(n||{}):[],o=Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors(n||{}):{};this.log("loginWithToken:createSessionError:allKeys",{keys:i,symbols:s,descriptors:o});}catch(i){this.log("loginWithToken:createSessionError:allKeysFail",String(i));}}return this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),this.user}async function J(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Ge.bind(this)(),false)}async function me(r=false){let e=null;F&&(r?e=new Promise((n,i)=>{F.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):F.signOut());let t={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};e&&(e=await e);for(let n in t)this[n]=t[n];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),e}async function Ge(r){await this.__connection;let{data:e}=N(r);return await me.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function si(){if(!this.__request_signup_confirmation)throw new f("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await T.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function oi(r=false){if(typeof r=="string")r=m.Url(r);else if(typeof r!="boolean")throw new f("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new f("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await T.bind(this)("recover-account",{username:this.__disabledAccount,redirect:r}),"SUCCESS: Recovery e-mail has been sent."}async function Er(r){let e=m.Params(r,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,e.email)try{m.Email(e.email);}catch{e.username=e.email,delete e.email;}if(!e.username&&!e.email)throw new f('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await W.bind(this)().authenticateUser(e.username||e.email,e.password)}async function ai(r,e){await this.__authConnection;let t={username:"string",password:c=>m.Password(c),email:c=>m.Email(c),name:"string",address:c=>{if(!c)return "";if(typeof c=="string")return c;if(typeof c=="object")return JSON.stringify(c)},gender:"string",birthdate:c=>c?m.Birthdate(c):"",phone_number:c=>c?m.PhoneNumber(c):"",email_public:["boolean",()=>false],address_public:["boolean",()=>false],gender_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:"number",misc:"string",picture:c=>c?m.Url(c):"",profile:c=>c?m.Url(c):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:c=>c?m.Url(c):""},n=m.Params(r||{},t,["email","password"]);await Ge.bind(this)(),e=m.Params(e||{},{email_subscription:c=>{if(typeof c!="boolean")throw new f('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return c},signup_confirmation:c=>{let d=c;if(typeof c=="string")d=m.Url(c);else if(typeof c=="boolean")d=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(d&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return d},login:c=>{if(typeof c=="boolean"){if(e.signup_confirmation&&c)throw new f('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return c}throw new f('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let i=e?.login||false;if(n.signup_confirmation=e?.signup_confirmation||false,n.email_subscription=e?.email_subscription||false,n.email_public&&!n.signup_confirmation)throw new f('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});n.service=this.service,n.owner=this.owner;let s=W.bind(this)().createCognitoUser(n.username||n.email);for(let c of ["email_public","address_public","gender_public","birthdate_public","phone_number_public"])n[c]=n[c]?"1":"0";n.access_group&&(n.access_group=n.access_group.toString());let o=(await T.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:typeof n.signup_confirmation=="boolean"?JSON.stringify(n.signup_confirmation):n.signup_confirmation,email_subscription:n.email_subscription})).split(":"),a=o.slice(1).join(":"),u=[new ue({Name:"custom:signup",Value:o[0]}),new ue({Name:"locale",Value:a.split("#")[1]}),new ue({Name:"custom:signup_ticket",Value:a})];for(let c in t){let d=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(d.includes(c)?u.push(new ue({Name:"custom:"+c,Value:n[c]})):u.push(new ue({Name:c,Value:n[c]}))));}return await W.bind(this)().signup(s.cognitoUsername,n.password,u),n.signup_confirmation?(F=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?Er.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function ui(){await this.__connection;let r=await T.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await Ge.bind(this)(),r}async function ci(r){await this.__connection;let e=m.Params(r,{email:i=>m.Email(i),code:["number","string"],new_password:i=>m.Password(i)},["email","code","new_password"]),t=e.code,n=e.new_password;return typeof t=="number"&&(t=t.toString()),new Promise(async(i,s)=>{W.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(t,n,{onSuccess:a=>{i("SUCCESS: New password has been set.");},onFailure:a=>{s(new f(a?.message||"Failed to reset password.",{code:a?.code||"ERROR",cause:a}));}});})}async function li(r,e){await this.__connection;let t;if(!F)throw new f("The user has to be logged in.",{code:"INVALID_REQUEST"});if(r==="email"||r==="phone_number"){if(!this.__user.hasOwnProperty(r))throw new f(`No ${r==="email"?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});if(this.__user?.[`${r}_verified`])return `SUCCESS: "${r}" is verified.`;t=(e?m.Params(e,{code:"string"}):{}).code||"";}else return;return new Promise((n,i)=>{let s={onSuccess:o=>{t?W.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[r+"_verified"]=true),n(`SUCCESS: "${r}" is verified.`);}).catch(a=>{i(a);}):n("SUCCESS: Verification code has been sent.");},onFailure:o=>{i(new f(o.message||"Failed to request verification code.",{code:o?.code}));}};t?F?.verifyAttribute(r,t,s):(s.inputVerificationCode=null,F?.getAttributeVerificationCode(r,s));})}function di(r){return li.bind(this)("phone_number",r)}function fi(r){return li.bind(this)("email",r)}async function hi(r){await this.__connection;let e=m.Params(r,{email:t=>m.Email(t)},["email"]);return new Promise(async(t,n)=>{W.bind(this)().createCognitoUser(e.email).cognitoUser.forgotPassword({onSuccess:s=>{t("SUCCESS: Verification code has been sent.");},onFailure:s=>{let{parsed:o,code:a}=It(s),u={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[a]||o.code||a||"ERROR";n(new f(o.message,{code:u,cause:s}));}});})}async function gi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new f('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new f('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return m.Password(e.current_password),m.Password(e.new_password),new Promise((t,n)=>{F.changePassword(e.current_password,e.new_password,(i,s)=>{if(i){if(i?.code==="InvalidParameterException")n(new f("Invalid password parameter.",{code:"INVALID_PARAMETER"}));else if(i?.code==="NotAuthorizedException")n(new f("Incorrect password.",{code:"INVALID_REQUEST"}));else if(i?.code==="TooManyRequestsException"||i?.code==="LimitExceededException")n(new f("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}));else {let{parsed:o}=It(i);n(o);}return}t("SUCCESS: Password has been changed.");});})}async function pi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r||{},{user_id:i=>m.UserId(i),email:i=>m.Email(i),address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},name:"string",gender:"string",birthdate:i=>i?m.Birthdate(i):"",phone_number:i=>i?m.PhoneNumber(i):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:i=>i?m.Url(i):"",profile:i=>i?m.Url(i):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:i=>i?m.Url(i):""});if(e&&typeof e=="object"&&!Object.keys(e).length)return this.user;e.email&&(e.preferred_username=this.service+"-"+G.hash(e.email));let t=[["email_public","email_verified","User's e-mail should be verified to set"],["phone_number_public","phone_number_verified","User's phone number should be verified to set"]];if(this.__user){for(let i of t)if(e[i[0]]&&!this.__user[i[1]])throw new f(`${i[2]} "${i[0]}" to true.`,{code:"INVALID_REQUEST"})}let n=[];for(let i in e){if(e[i]===this.user[i]){n.push(i);continue}if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(i)){let o=e[i];typeof o=="boolean"&&(o=o?"1":"0"),e["custom:"+i]=o,n.push(i);}}for(let i of n)delete e[i];if(e.user_id)if(e.user_id===this.user.user_id)delete e.user_id;else return T.bind(this)("admin-edit-profile",{attributes:e},{auth:true});if(e&&typeof e=="object"&&Object.keys(e).length){let i=[];for(let s in e)i.push(new ue({Name:s,Value:e[s]}));return await new Promise((s,o)=>{F?.updateAttributes(i,(a,u)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(u);});}),await W.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function mi(r,e){r=N(r).data,r||(r={searchFor:"timestamp",condition:">",value:0},e||(e={}),e.ascending=false),await this.__connection;let t={user_id:i=>Array.isArray(i)?i.map(s=>m.UserId(s)):m.UserId(i),email:"string",phone_number:"string",locale:i=>{if(typeof i!="string"||typeof i=="string"&&i.length>5)throw new f('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>m.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(r=m.Params(r,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Value does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i},range:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Range does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i}},n),r?.condition&&r?.condition!=="="&&r.hasOwnProperty("range"))throw new f("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(r.searchFor==="user_id"&&(r.condition!=="="||r.range))throw new f(`Conditions are not allowed on "${r.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof r?.value=="string"&&!r?.value)throw new f("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof r?.searchFor=="string"&&!r?.searchFor)throw new f('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return T.bind(this)("get-users",r,{auth:true,fetchOptions:e})}async function _i(r){await this.__connection;let e=await T.bind(this)("last-verified-email",r,{auth:true});return e.includes("SUCCESS")?(await W.bind(this)().getSession({refreshToken:true}),this.user):e}async function bi(r){return await this.__connection,r=m.Params(r,{username:m.Email,redirect:m.Url},["username"]),await T.bind(this)("request-username-change",r,{auth:true})}var Tu="1.1.0",Ru=class{constructor(r){de(this,"version",Tu);de(this,"items",[]);de(this,"breakWhenError",false);de(this,"batchSize",1);de(this,"onProgress");de(this,"activeCount",0);de(this,"currentCycleCompleted",[]);de(this,"stopProcessing",false);if(this.breakWhenError=!!r?.breakWhenError,this.batchSize=r?.batchSize??1,typeof this.batchSize!="number"||this.batchSize<1)throw new Error("batchSize must be at least 1");if(r?.onProgress)if(typeof r.onProgress=="function")this.onProgress=r.onProgress;else throw new Error("onProgress must be a function")}get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}add(r){let e=Array.isArray(r)?r:[r];for(let t of e){if(typeof t!="function")throw new Error("Each job must be a function that returns a Promise");this.items.push(t);}this.processNext();}processNext(){if(this.stopProcessing||this.items.length===0||this.activeCount>0)return;let r=this.items.splice(0,this.batchSize);this.activeCount=r.length,this.currentCycleCompleted=new Array(r.length),r.forEach((e,t)=>{Promise.resolve().then(()=>e()).then(n=>(this.finalizeJob(t,n,false),n)).catch(n=>(this.finalizeJob(t,n,true),n));});}finalizeJob(r,e,t){if(this.currentCycleCompleted[r]=e,this.activeCount-=1,t&&this.breakWhenError&&(this.stopProcessing=true,this.items=[]),this.activeCount!==0)return;let n=this.currentCycleCompleted.slice();this.currentCycleCompleted=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:n}),this.processNext();}terminate(){this.items=[];}},yi=Ru;var qe=null,Si=typeof SubmitEvent<"u",Iu=typeof HTMLFormElement<"u",Ye=z(),vr=0;function Ai(r){if(!r)return null;let e=Number(r);if(Number.isFinite(e))return Math.max(0,e*1e3);let t=Date.parse(r);return Number.isNaN(t)?null:Math.max(0,t-Date.now())}function Tr(r,e){return e>0?r/e*100:0}var wi=r=>{let{auth:e,type:t,endpoints:n}=r,i=n[0],s=n[1];if(vr++,t==="admin"){let o=Object.entries(i).filter(([a,u])=>a.includes(e?"_private":"_public")&&a!=="get_users_private"&&a!=="service_public"&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available admin gateways.",{code:"INVALID_REQUEST"});return o[vr%o.length]}if(t==="record"){let o=Object.entries(s).filter(([a,u])=>a.includes(e?"record_private":"record_public")&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available record gateways.",{code:"INVALID_REQUEST"});return o[vr%o.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Pu(r,e){let t=await Promise.all([this.admin_endpoint,this.record_endpoint]),n=t[0],i=t[1],s=r.split("?"),o=s.length>1?"?"+s[1]:"";switch(r=s[0],r){case "get-users":return n.get_users_private+r+o;case "service":return n.service_public+r+o;case "get-newsletters":case "get-public-newsletters":case "subscribe-newsletter":case "subscribe-public-newsletter":case "signupkey":case "admin-newsletter-request":case "admin-signup":case "confirm-signup":case "openid-logger":case "block-account":case "admin-edit-profile":case "remove-account":case "post-secure":case "recover-account":case "mock":case "grant-access":case "last-verified-email":case "ticket":case "register-ticket":case "get-newsletter-subscription":case "request-username-change":case "send-inquiry":case "register-newsletter-group":case "newsletter-group-endpoint":case "invitation-list":case "csr":return wi.bind(this)({auth:e,type:"admin",endpoints:t})+r+o;case "post-record":return (e?i.post_private:i.post_public)+r+o;case "get-records":return (e?i.get_private:i.get_public)+r+o;case "del-files":case "del-records":return i.del_private+r+o;case "store-subscription":case "get-vapid-public-key":case "push-notification":case "delete-subscription":case "subscription":case "get-subscription":case "get-table":case "get-tag":case "get-uniqueid":case "get-index":case "get-signed-url":case "grant-private-access":case "request-private-access-key":case "get-ws-group":case "check-schema":case "get-feed":case "castspell":case "dopamine":case "getspell":return wi.bind(this)({auth:e,type:"record",endpoints:t})+r+o;default:return m.Url(r)+o}}var ze={};function Ei(){qe&&(qe.terminate(),qe=null);}async function T(r,e=null,t,n){this.log("request",{url:r,data:e,options:t,_etc:n||{}}),t=t||{};let{auth:i=false,method:s="post",bypassAwaitConnection:o=false}=t;s=s.toUpperCase();let a=null,u=e?.service||this.service,c=e?.owner||this.owner,d=null,l=await Pu.bind(this)(r,!!i);if(!o&&(a=await this.__connection,!a))throw new f("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});i&&(d=await Be.bind(this)());let h={},{fetchMore:p=false,progress:g}=t?.fetchOptions||{};if(t?.fetchOptions&&Object.keys(t.fetchOptions).length){for(let C of ["limit","startKey","ascending"])t.fetchOptions.hasOwnProperty(C)&&(h[C]=t.fetchOptions[C]);h=m.Params(h,{limit:C=>{if(typeof C!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(C>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return C},startKey:C=>C,ascending:"boolean"});}let _=n?.ignoreService?{}:{service:u,owner:c};Object.assign(_,h),e=N(e).data,e?e&&typeof e=="object"&&(e=Object.assign(_,e)):e=_;let S=`${s}:${i?"auth":"public"}:${r}`,y=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(Ye&&e instanceof FormData)){let C=function(D){return typeof D=="object"&&D!==null?Object.keys(D).sort().reduce((k,O)=>(typeof D[O]=="object"&&D[O]!==null?k[O]=C(D[O]):k[O]=D[O],k),{}):D};return G.hash(S+"/"+JSON.stringify(C(e)))}return G.hash(S+"/"+u)})(),{requestKey:R,requestKeyWithStartKey:U}=xu.bind(this)({params:e,url:r,fetchMore:p,hashedParams:y});if(!R||R&&typeof R=="object")return R;if(this.log("requestKey",U),typeof U=="string"&&ze[U]instanceof Promise)return this.log("request:returning pending",U),ze[U];let x={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(t,"contentType")&&t.contentType!==void 0){let C=t.contentType===null?"application/x-www-form-urlencoded":t.contentType;C&&(x["Content-Type"]=C);}else x["Content-Type"]="application/json";d&&(x.Authorization=d);let $={public_identifier:this.__public_identifier,service:u,owner:c};x["Content-Meta"]=JSON.stringify($);let K={headers:x};if(t?.responseType&&(K.responseType=t.responseType),s==="GET"){if(e){let C=[];if(Ye&&e instanceof FormData?C=Array.from(e.entries()).map(([D,k])=>{let O=typeof k=="string"?k:k.name;return encodeURIComponent(D)+"="+encodeURIComponent(O)}):C=Object.keys(e).map(D=>{let k=e[D];return typeof k!="string"&&(k=JSON.stringify(k)),encodeURIComponent(D)+"="+encodeURIComponent(k)}),C.length){let D=l.includes("?")?l.endsWith("?")||l.endsWith("&")?"":"&":"?";l+=D+C.join("&");}}K.body=null;}else if(Ye&&e instanceof FormData)K.body=e;else if(x["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let C=new URLSearchParams;for(let D of Object.keys(e)){let k=e[D];C.append(D,typeof k=="string"?k:JSON.stringify(k));}K.body=C.toString();}else typeof e=="string"?K.body=e:K.body=e?JSON.stringify(e):null;if(K.method=s,qe===null){let C={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:D=>{this.onBatchProcess.forEach(k=>k(D));}};qe=new yi(C);}return this.log("request-opt",K),new Promise((C,D)=>{qe.add([async()=>{let k=vi.bind(this)(l,K,g);ze[U]=k;try{let O=Uu.bind(this)({hashedParam:R,requestKeyWithStartKey:U,url:r,fetched:await k});return delete ze[U],this.log("request:end",O),C(O),O}catch(O){throw delete ze[U],this.log("request:err",O),D(O),O}}]);})}function xu(r){let{params:e={},url:t,fetchMore:n=false,hashedParams:i}=r||{};if(e.startKey){if(!(typeof e.startKey=="object"&&Object.keys(e.startKey).length)&&e.startKey!=="start"&&e.startKey!=="end")throw new f(`"${e.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});e.startKey==="start"&&(n=false,delete e.startKey);}if(!n){if(this.__cached_requests?.[t]?.[i]&&delete this.__cached_requests[t][i],this.__startKeyHistory?.[t]?.[i]){if(Array.isArray(this.__startKeyHistory[t][i])&&this.__startKeyHistory[t][i].length)for(let u of this.__startKeyHistory[t][i]){let c=i+G.hash(u);this.__cached_requests?.[t]&&this.__cached_requests?.[t]?.[c]&&delete this.__cached_requests[t][c];}delete this.__startKeyHistory[t][i];}return {requestKeyWithStartKey:i,requestKey:i}}if(!Array.isArray(this.__startKeyHistory?.[t]?.[i]))return {requestKeyWithStartKey:i,requestKey:i};let s=this.__startKeyHistory[t][i],o=s[s.length-1],a=i;if(o){if(o==="end")return {requestKey:{list:[],startKey:"end",endOfList:true,startKeyHistory:s},requestKeyWithStartKey:a};a+=G.hash(o),e.startKey=JSON.parse(o);}return this.__cached_requests?.[t]?.[a]?{requestKey:this.__cached_requests[t][a],requestKeyWithStartKey:a}:{requestKeyWithStartKey:a,requestKey:i}}function vi(r,e,t){return new Promise((n,i)=>{let s=new XMLHttpRequest;s.open(e.method||"GET",r);for(var o in e.headers||{})s.setRequestHeader(o,e.headers[o]);e.responseType&&(s.responseType=e.responseType),s.onload=()=>{if(s.status<400)if(e.responseType=="json"||e.responseType=="blob")n(s.response);else {let a=s.responseText;try{a=JSON.parse(a);}catch{}n(a);}else if(s.status===429){let a=s.getResponseHeader("Retry-After"),u=Ai(a);u!==null?setTimeout(()=>{vi(r,e,t).then(n,i);},u):i("Too many requests");}else {let a=s.status,u=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],c=e.responseType=="blob"?s.response:s.responseText;try{c=JSON.parse(c);}catch{}if(typeof c=="string"){let d=c.split(":"),l=d.splice(0,1)[0].trim(),h=d.join(":").trim();i(new f(h||c,{code:u.includes(l)?l:"ERROR"}));}else if(typeof c=="object"&&c?.message){let d=c?.code||(a?a.toString():null)||"ERROR",l=c.message,h=c?.cause;typeof l=="string"&&(l=l.trim()),i(new f(l,{cause:h,code:d}));}else i(c);}},s.onerror=()=>i("Network error"),s.onabort=()=>i("Aborted"),s.ontimeout=()=>i("Timeout"),typeof t=="function"&&(s.onprogress=a=>{t({status:"download",progress:Tr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Tr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Uu(r){let{hashedParam:e,requestKeyWithStartKey:t,url:n,fetched:i}=r;if(!i?.startKey)return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__startKeyHistory[n].hasOwnProperty(e)||(this.__startKeyHistory[n][e]=[]);let s=i.startKey==="end"?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][e].includes(s)||this.__startKeyHistory[n][e].push(s),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][e]},i)}async function xt(r,e){await this.__connection;let{record_id:t,service:n=this.service,progress:i}=e;if(!t)throw new f('"record_id" is required.',{code:"INVALID_PARAMETER"});if(Si&&r instanceof SubmitEvent&&(r=r.target),Iu&&r instanceof HTMLFormElement&&(r=new FormData(r)),!Ye||!(r instanceof FormData))throw new f('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:We(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,u=(p,g,_)=>new Promise((S,y)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)S(R);else if(a.status===429){let U=a.getResponseHeader("Retry-After"),x=Ai(U);x!==null?setTimeout(()=>{u(p,g,_).then(S,y);},x):y("Too many requests");}else y(R);},a.onerror=()=>y("Network error"),a.onabort=()=>y("Aborted"),a.ontimeout=()=>y("Timeout"),a.upload&&typeof _=="function"&&(a.upload.onprogress=_),a.send(g);});function c(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let _="";for(;p>0;)_=g[p%62]+_,p=Math.floor(p/62);return _}let d=[],l=[],h=[];for(let[p,g]of r.entries()){if(!(g instanceof File))continue;let _=Object.assign({key:p+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:S=null,url:y,cdn:R}=await T.bind(this)("get-signed-url",_,{auth:!!this.__user});h.push(R);let U=new FormData;for(let x in S)U.append(x,S[x]);U.append("file",g);try{await u(y,U,typeof i=="function"?x=>i({status:"upload",progress:Tr(x.loaded,x.total),currentFile:g,completed:d,failed:l,loaded:x.loaded,total:x.total,abort:()=>a.abort()}):null),d.push(g);}catch{l.push(g);}}return {completed:d,failed:l,bin_endpoints:h}}var Pt={};function v(r){let{preventMultipleCalls:e=false}=r||{};return function(t,n,i){let s=i.value;i.value=function(...o){let a=o[0],u=true,c=null,d="",l={},h=false;if(Si&&a instanceof SubmitEvent){a.preventDefault();let y=window.location.href;c=a.target;let R=new URL(c.action);d=R.href;let U=d?d.match(/(?<=\{).*?(?=\})/g):"";if(U)for(let x of U){if(!x)continue;let L=c.querySelector(`[name="${x}"]`);if(L)if(L.type==="file")for(let $=0;$<=L.files.length-1;$++)L.files[$]&&(l[x]||(l[x]=[]),l[x].push(new Promise((K,C)=>{let D=new FileReader;D.onload=function(){K(D.result);},D.readAsDataURL(L.files[$]),D.onerror=C;})));else d=d.replace(`{${x}}`,L.value);}c.getAttribute("action")===null?u=false:h=R.href===y;}let p=async y=>{if(d)for(let R in l)l[R].length&&(d=d.replace(`{${R}}`,(await Promise.all(l[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${G.hash(d)}`,JSON.stringify(y)),h?window.location.replace(d):window.location.href=d),y},g,_=y=>{throw y instanceof f?y.name=n+"()":y=y instanceof Error?y:new f(y,{name:n+"()"}),y},S=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let y=await g;return p(y)}return p(g)}catch(y){throw _(y)}};if(e){let y=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Pt?.[y]||(Pt[y]=S().finally(()=>{delete Pt[y];})),Pt[y]}return S()};}}async function Ti(){await this.__connection;let r=`${this.service}:${G.hash(window.location.href.split("?")[0])}`,e=window.sessionStorage.getItem(r);if(window.sessionStorage.removeItem(r),e!==null){try{e=JSON.parse(e);}catch{}return e}return null}var Cu=128,Du=64,ku=128,Nu=256,Fu="\u{10FFFF}",Lu=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,Ou=/[\/!*#]/;function ye(r,e,t={}){let{allowEmpty:n=false,maxLength:i,blockKeyDelimiters:s=false,disallowLeadingDollar:o=false,onlyAlphanumeric:a=false}=t;if(typeof r!="string")throw new f(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(r))throw new f(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&r.length===0)throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&r.length>i)throw new f(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(Lu.test(r)||r.includes(Fu))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&Ou.test(r))throw new f(`"${e}" cannot include reserved delimiters: / ! * #`,{code:"INVALID_PARAMETER"});if(o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function Rr(r,e="table.name"){return ye(r,e,{allowEmpty:false,maxLength:Cu,blockKeyDelimiters:true})}function Ir(r,e="tag"){return ye(r,e,{allowEmpty:false,maxLength:Du,blockKeyDelimiters:true})}function Xe(r,e="index.name"){return ye(r,e,{allowEmpty:false,maxLength:ku,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Ri(r,e="index.value"){return ye(r,e,{allowEmpty:true,maxLength:Nu})}function Ii(r){if(!r.record_id&&!r.unique_id)return null;let e={};return r?.service&&(e.service=r.service),r?.owner&&(e.owner=r.owner),r?.record_id?e.record_id=ye(r.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):r?.unique_id&&(e.unique_id=r.unique_id),e}function Pr(r){if(r===void 0)return 0;if(typeof r=="number"){if(r>99||r<0)throw new f('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else if(typeof r=="string"){if(r={private:"private",public:0,authorized:1,admin:99}[r],r===void 0)throw new f('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}else throw new f('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(!this.__user&&r)throw new f("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return r}var Ut=4503599627370496;function Ct(r){if(typeof r=="number"){if(r>Ut||r<-Ut)throw new f(`Number value should be within range -${Ut} ~ +${Ut}`,{code:"INVALID_PARAMETER"});return r}if(typeof r=="boolean")return r;if(typeof r=="string")return Ri(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function Pi(r,e){if(!e.index||!("value"in e.index))throw new f('"index.value" is required.',{code:"INVALID_PARAMETER"});if(e.index.name==="$record_id")throw new f(`Cannot do "index.range" on ${e.index.name}`,{code:"INVALID_PARAMETER"});if(typeof e.index.value!=typeof r)throw new f('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof r=="string"?Ri(r,"index.range"):r}var Dt={};async function $e(r,e){let t={user_id:"",record_id:"",updated:0,uploaded:0,readonly:false,table:{name:"",access_group:0,subscription:{is_subscription_record:false,upload_to_feed:false,notify_subscribers:false,feed_referencing_records:false,notify_referencing_records:false}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:false,can_remove_referencing_records:false,only_granted_can_reference:false},ip:"",bin:{}},n=false;function i(o){let a=o=="**"?"private":parseInt(o);return a=a==0?"public":a==1?"authorized":a==99?"admin":a,a}let s={ip:o=>{let a=o.split("#"),u=a[0];a.length>1&&(t.unique_id=a[1]),u.slice(-1)==="R"?(t.readonly=true,u=u.slice(0,-1)):t.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(u)&&(u=u.split("-").join("."),n=true),t.ip=u;},rec:o=>{if(!o)return;t.record_id=o;let a=o.substring(0,o.length-9),u=ne(a);t.uploaded=u;},usr:o=>{t.user_id=o;},tbl:o=>{if(o&&!t.table.name){let a=o.split("/");t.table.name=a[0],t.table.access_group=i(a[2]),a?.[3]&&(t.table.subscription.is_subscription_record=true);}},usr_tbl:o=>{let a=o.split("/");t.user_id||(t.user_id=a[0]),t.table.name||(t.table.name=a[1],t.table.access_group=i(a[3]),a?.[4]&&(t.table.subscription.is_subscription_record=true));},idx:o=>{if(!o)return;let a=o.split("!"),u=a.splice(0,1)[0],c=Mu("!"+a.join("!"));t.index={name:u,value:c};},ref:o=>{o&&(t.reference=o.split("/")[0]);},tags:o=>{t.tags=o;},upd:o=>{t.updated=o;},acpt_mrf:o=>{t.source.prevent_multiple_referencing=!o;},ref_limt:o=>{t.source.referencing_limit=o;},rfd:o=>{t.referenced_count=o;},bin:async o=>{let a={},u=t?.reference||null;if(Array.isArray(o)){let c=await Promise.all(o.map(async d=>{try{let l=d.split("/").slice(3).join("/"),h=l.split("/");if(h.length<12)return null;let p=decodeURIComponent(h[h.length-1]),g=decodeURIComponent(h[10]),_=h[9],S=h[8],y=i(h[6]),R=d;if(y!=="public")try{R=await kt.bind(this)(d,{dataType:"endpoint",_ref:u});}catch(x){console.error("Error getting signed url for private file:",x),R=d;}let U={access_group:y,filename:p,url:R,path:l,size:ne(_),uploaded:ne(S),getFile:(x,L)=>{let $={dataType:x||"download",progress:L,_ref:u,_update:U};return kt.bind(this)(R,$)}};return {pathKey:g,obj:U}}catch{return null}}));for(let d of c)if(d){if(a[d.pathKey]){a[d.pathKey].push(d.obj);continue}a[d.pathKey]=[d.obj];}}t.bin=a;},prv_acs:o=>{for(let a in o)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(a)?t.table.subscription[a]=o[a]:t.source[a]=o[a];},data:o=>{let a=o;o==="!D%{}"?a={}:o==="!L%[]"&&(a=[]),t.data=a;}};if(r.record_id)return r;for(let o in s)if(r.hasOwnProperty(o)){let a=s[o](r[o]);a instanceof Promise&&await a;}return n&&(t.user_id="anonymous:"+t.user_id),t}function Mu(r){let e=r.substring(3);switch(r.substring(0,3)){case "!S%":return e;case "!N%":let n=e.split("."),i=Number(n[0])-4503599627370496;return n.length===1?i:parseFloat(i.toString()+"."+n[1]);case "!B%":return e==="1";case "!L%":case "!D%":try{return JSON.parse(e)}catch{throw new f("Value parse error.",{code:"PARSE_ERROR"})}default:return r}}async function xi(r){let{endpoints:e}=r;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new f('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let t=await T.bind(this)("del-files",{endpoints:e,storage:"records"},{auth:true,method:"post"}),n=[];for(let i in t)n.push($e.bind(this)(t[i]));return Promise.all(n)}async function kt(r,e){if(typeof r!="string")throw new f('"url" should be type: string.',{code:"INVALID_PARAMETER"});let t=r.split("?"),n=t.shift()||"",i=t.length?"?"+t.join("?"):"",s=m.Url(n);r=s+i;let o=false,a=s.split("/"),c=a[2].split("."),d=null;c.length===3&&c[1]==="skapi"&&(d=c[0],o=true);let l=a.slice(3),h=false;if(!o&&(l[0]==="auth"||l[0]==="publ"))try{m.UserId(l[2]),m.UserId(l[3]),h=l[0]=="auth",o=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let p=d?null:l[1];if(e=m.Params(e,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:"function",_ref:[null,"string"],_update:y=>y}),e?.dataType==="info")return {url:r,filename:l[l.length-1],fileKey:l[l.length-2],access_group:l[6]==="**"?"private":l[6]==="01"?"authorized":l[6]==="00"?"public":parseInt(l[6]),uploader:l[3],record_id:l[4]==="records"?l[5]:"N/A",filesize:ne(l[9]),uploaded:ne(l[8])};let g=r.split("/").slice(-1)[0],_=e.expires;if(_){if(!o)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(_<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let y={request:d?"get-host":"get",id:d||l[5],key:r,expires:_};p&&(y.service=p),r=(await T.bind(this)("get-signed-url",y,{auth:true})).url;}else if(h){let y=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<y)){this.log("getFile:requesting new token",null);try{await W.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:y,expiresIn:this.session?.idToken?.payload?.exp-y,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(L){throw this.log("getFile:new token error",L),new f("User login is required.",{code:"INVALID_REQUEST"})}}let R=this.bearerToken||this.session?.idToken?.jwtToken;if(!R||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(R)}`;let U=l[6]==="**"?"**":parseInt(l[6]),x=this.user?.access_group??-1;if(this.user.user_id!==l[3]&&(U==="**"||x<U)){let L=l[5];if(this.__private_access_key[L]&&typeof this.__private_access_key[L]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[L])}`;else if(this.owner!==this.host)try{let $=await this.requestPrivateRecordAccessKey({record_id:L,reference_id:e?._ref});r+=`&p=${encodeURIComponent($)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let y=document.createElement("a");return y.href=r,document.body.appendChild(y),y.setAttribute("download",g),y.target="_blank",y.click(),document.body.removeChild(y),null}return new Promise(async(y,R)=>{try{let U=await T.bind(this)(r,null,{method:"get",contentType:null,responseType:e?.dataType==="text"?"text":"blob",fetchOptions:{progress:e?.progress}},{ignoreService:!0});if(e?.dataType==="base64"){let x=new FileReader;x.onloadend=()=>y(x.result),x.readAsDataURL(U);}else y(U);}catch(U){R(U);}})}async function Ui(r,e=false){r=N(r,{ignoreEmpty:true}).data||{};let t="",n=Ii(r);if(n)r=n,t=r.record_id||r.unique_id,typeof t=="string"&&(typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),this.__my_unique_ids[t]&&(e?delete this.__my_unique_ids[t]:r.record_id=this.__my_unique_ids[t]));else {let i=await J.bind(this)(),s=r?.reference,o=false;typeof s=="object"&&Object.keys(s).length&&(s?.record_id||s?.unique_id?(t=s.record_id||s.unique_id,t&&typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),r.reference=t):s?.user_id&&(o=s.user_id===this.user?.user_id,r.reference=s.user_id)),typeof r?.table=="string"&&(r.table={name:r.table,access_group:0}),r.index&&r.index.hasOwnProperty("range")&&r.index.hasOwnProperty("condition")&&delete r.index.range;let a=u=>({table:{name:c=>Rr(c,"table.name"),access_group:Pr.bind(this),subscription:c=>m.UserId(c,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",c=>Xe(c,"index.name")],value:c=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:m.UserId};if(d.hasOwnProperty(u.index.name)){let l=d[u.index.name];if(typeof l=="function")return l(c);if(l!==typeof c)throw new f(`"index.value" should be type: ${l}.`,{code:"INVALID_PARAMETER"});return c}return typeof c=="string"&&!c?"":Ct(c)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:c=>Pi(c,u)},tag:c=>{if(c==null)return c;if(typeof c=="string")return Ir(c,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=m.Params(r||{},a(r),o||i?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:t}}async function Ci(r,e){await this.__connection;let t=await Ui.bind(this)(r),n=t.is_reference_fetch,i=await T.bind(this)("get-records",t.query,{fetchOptions:e,auth:!!this.__user,method:this.__user?"post":"get"});n&&i?.reference_private_key&&typeof i.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key);let s=[];for(let o in i.list)s.push($e.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function Di(r){let e="",t=[],n=m.Params(r||{},{record_id:s=>ye(s,"record_id",{allowEmpty:false,onlyAlphanumeric:true}),unique_id:"string",readonly:"boolean",table:{name:s=>Rr(s,"table.name"),subscription:{is_subscription_record:"boolean",upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"},access_group:Pr.bind(this)},source:{referencing_limit:s=>{if(s===null)return null;if(typeof s=="number"){if(0>s)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(s>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return s}throw new f('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:s=>{if(s===void 0)return;if(!s||Array.isArray(s)&&!s.length)return null;let o={name:u=>Xe(u,'"name" in "index_restrictions"'),value:u=>Ct(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof s.value!=typeof u)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!s.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return u}};Array.isArray(s)||(s=[s]);let a=s.map(u=>m.Params(u,o,["name"]));if(a.length)for(let u of a)u.condition&&u.hasOwnProperty("range")&&delete u.range;return a}},reference:s=>{if(s===null)return {record_id:null};if(s){if(typeof s=="string")return e=s,this.__my_unique_ids[s]?this.__my_unique_ids[s]:s;if(typeof s!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return m.Params(s,{unique_id:"string",record_id:o=>o==null?o:(e=o,typeof this.__private_access_key?.[o]=="string"&&(r.reference_private_key=this.__private_access_key[o]||void 0),ye(o,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:{name:s=>Xe(s,"index.name"),value:s=>Ct(s)},tags:s=>{if(s==null)return s;if(typeof s=="string"&&(s=s.split(",").map(o=>o.trim())),!Array.isArray(s))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return s.map(o=>Ir(o,"tag"))},remove_bin:s=>{if(!s)return null;let o=[];if(Array.isArray(s))for(let a of s)if(typeof a=="string")o.push(decodeURIComponent(a.split("?")[0]));else if(a.url&&a.size&&a.filename){let c=a.url.split("/").slice(0,3).join("/")+"/"+a.path;o.push(c);}else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});return o},progress:"function",data:s=>s},[],{precall:s=>{let o=s?.data||{};if(!o?.record_id&&!o.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof o.table=="string"&&(o.table={name:o.table,access_group:0}),s.files&&(t=s.files);}}),i=r.progress||null;if(delete n.progress,!this.__user){let s=!!(n.table?.subscription?.is_subscription_record||n.table?.subscription?.upload_to_feed||n.table?.subscription?.notify_subscribers||n.table?.subscription?.feed_referencing_records||n.table?.subscription?.notify_referencing_records);if(n.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(n.table.access_group!=="public"&&n.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(n.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(n.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:n,progress:i,is_reference_post:e,files:t}}async function ki(r){if(await this.__connection,!Array.isArray(r)||!r.length)throw new f('"params" should be a non-empty array.',{code:"INVALID_PARAMETER"});!this.__user;let t=[],n,i,s=null,a={_is_bulk_:r.map((h,p)=>{if(!h||typeof h!="object"||Array.isArray(h))throw new f(`"params[${p}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let g=Di.bind(this)(h),_=g.config;if(g.is_reference_post&&t.push(g.is_reference_post),typeof _.progress=="function"&&s===null&&(s=_.progress),_.service!==void 0){if(n===void 0)n=_.service;else if(n!==_.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(_.owner!==void 0){if(i===void 0)i=_.owner;else if(i!==_.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete _.progress,delete _.service,delete _.owner,_}),service:"",owner:""};n!==void 0&&(a.service=n),i!==void 0&&(a.owner=i);let u={auth:!!this.__user,method:"post"},c={};Object.keys(c).length&&Object.assign(u,{fetchOptions:c});let d=await T.bind(this)("post-record",a,u),l=await Promise.all(d.map(h=>$e.bind(this)(h,"called from postRecord")));for(let h=0;h<d.length;h++){let p=d[h],g=l[h];if(typeof p?.reference_private_key=="string")for(let _ of t)this.__private_access_key[_]=p.reference_private_key;g?.unique_id&&(this.__my_unique_ids[g.unique_id]=g.record_id);}return l}async function Ni(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Di.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},u=[],c=N(r);t&&Array.isArray(t)&&t.length&&(u=u.concat(t)),c.files&&Array.isArray(c.files)&&c.files.length&&(u=u.concat(c.files));let d=null;d=Object.assign({data:c.data},i);let l={};typeof s=="function"&&(l.progress=s),Object.keys(l).length&&Object.assign(a,{fetchOptions:l});let h=await T.bind(this)("post-record",d,a);if(z()&&u.length){let g=new FormData;for(let y of u)g.append(y.name,y.file,y.file.name);let _={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(_.service=i.service);let{bin_endpoints:S}=await xt.bind(this)(g,_);h.bin?h.bin.push(...S):h.bin=S;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let p=await $e.bind(this)(h,"called from postRecord");return p.unique_id&&(this.__my_unique_ids[p.unique_id]=p.record_id,z()&&window.sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids))),p}async function Fi(r,e){let t=await T.bind(this)("get-table",m.Params(r||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e})),n={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(t?.list))for(let i of t.list)for(let s in n)i.hasOwnProperty(s)&&(i[n[s]]=i[s],delete i[s]);return t}async function Li(r,e){if(!r?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let t=m.Params(r||{},{table:"string",index:s=>Xe(s,"index.name"),order:{by:["average_number","total_number","number_count","average_bool","total_bool","bool_count","string_count","index_name","number_of_records"],value:["string","number","boolean"],condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}},["table"]);if(t.hasOwnProperty("order")){if(!t.order?.by)throw new f('"order.by" is required.',{code:"INVALID_PARAMETER"});if(t.order.hasOwnProperty("condition")&&!t.order.hasOwnProperty("value"))throw new f('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("index")&&t.index.substring(t.index.length-1)!==".")throw new f('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let n=await T.bind(this)("get-index",t,Object.assign({auth:!!this.__user},{fetchOptions:e})),i={cnt_bool:"boolean_count",cnt_numb:"number_count",totl_numb:"total_number",totl_bool:"total_bool",avrg_numb:"average_number",avrg_bool:"average_bool",cnt_str:"string_count"};return Array.isArray(n?.list)&&(n.list=n.list.map(s=>{let o=s.idx.split("/"),a={table:o[1],index:o[2],number_of_records:s.cnt_rec};for(let u in i)Object.prototype.hasOwnProperty.call(s,u)&&(a[i[u]]=s[u]);return a})),n}async function Oi(r,e){let t=await T.bind(this)("get-tag",m.Params(r||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));return Array.isArray(t?.list)&&(t.list=t.list.map(n=>{let i=n.tag.split("/");return {table:i[1],tag:i[0],number_of_records:n.cnt_rec}})),t}async function Mi(r,e){let t=await T.bind(this)("get-uniqueid",m.Params(r||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));if(Array.isArray(t?.list))for(let n in t.list){let i=t.list[n];t.list[n]={unique_id:i.unq,record_id:i.rec};}return t}async function Vi(r,e){await this.__connection;let t=await Ui.bind(this)(r,true),n=t.is_reference_fetch,i=await T.bind(this)("del-records",t.query,{auth:true,fetchOptions:e});return n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),i?.message||i}function Bi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function qi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function $i(r,e){let t={record_id:r.record_id||void 0,user_id:r.user_id||void 0,execute:"list"};if(!t.record_id&&!t.user_id)throw new f("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(t.user_id)if(typeof t.user_id=="string")m.UserId(t.user_id),t.user_id=[t.user_id];else if(Array.isArray(t.user_id))for(let s of t.user_id)m.UserId(s);else throw new f("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});let n=s=>(s.rec_usr?(s.record_id=s.rec_usr.split("/")[0],s.user_id=s.rec_usr.split("/")[1]):s.usr_rec&&(s.user_id=s.usr_rec.split("/")[0],s.record_id=s.usr_rec.split("/")[1]),s),i=await T.bind(this)("grant-private-access",t,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function ji(r){let e=r.record_id,t=r.reference_id||void 0;if(!e)throw new f("Record ID is required.",{code:"INVALID_PARAMETER"});if(typeof e!="string")throw new f("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(t&&typeof t!="string")throw new f("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(typeof this.__private_access_key[e]=="string")return Promise.resolve(this.__private_access_key[e]);if(Dt[e])return Dt[e];let n=T.bind(this)("request-private-access-key",{record_id:e,reference_id:t},{auth:true}).then(i=>{let s=typeof i=="string"?i:i?.private_key;if(typeof s!="string")throw new f("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete Dt[e];});return Dt[e]=n,n}function Ki(r){r.execute;let t=m.Params(r,{record_id:"string",user_id:n=>{if(!n)throw new f("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new f("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)m.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),T.bind(this)("grant-private-access",t,{auth:true})}var I={},q={},ie={},le={},ce={},Nt={},Ft={};function Hi(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function Lt(r,e,t){let n=[];if(r[e]){for(let i of r[e])if(i){let s=t(i);s instanceof Promise&&(s=await s),n.push(s);}delete r[e];}return n}async function Ur(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let t=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await I[s].setRemoteDescription(new RTCSessionDescription(i));let a=await I[s].createAnswer();await I[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}I?.[e]?r?(await Lt(Ft,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await Lt(Ft,e,i=>n.bind(this)(i,e,t)):r&&Hi(Ft,e,r);}async function Cr(r,e){if(this.log("receiveIceCandidate",r),I?.[e]&&I[e]?.remoteDescription&&I[e]?.remoteDescription?.type){if(!r)return Lt(Nt,e,t=>I[e].addIceCandidate(t));await Lt(Nt,e,t=>I[e].addIceCandidate(t)),await I[e].addIceCandidate(r);}else Hi(Nt,e,r);}async function se(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});m.Params(r,{cid:s=>{if(typeof s!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(s&&s.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return s},close:"boolean"});let e=await this.__socket,{cid:t,close_all:n=false}=r||{};if(!n&&!t)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});let i=s=>{if(!s)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete Ft[s],delete Nt[s],q[s]&&Object.values(q[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete q[s],I?.[s]){I[s].connectionState!=="closed"&&(I[s].close(),e.send(JSON.stringify({action:"rtc",uid:s,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let o={type:"connectionstatechange",target:I[s],timestamp:new Date().toISOString(),state:I[s].connectionState,iceState:I[s].iceConnectionState,signalingState:I[s].signalingState};ce[s]&&ce[s](o),this.log("closeRTC",o);}delete ce[s],delete le[s],delete ie[s],delete I[s];};if(n)for(let s in I)i(s);else i(t);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function Wi(r){if(r instanceof MediaStream)return r;if(!r.video&&!r.audio){let e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;let i=t.captureStream().getVideoTracks()[0];return e.addTrack(i),e}return window.navigator.mediaDevices.getUserMedia(r)}async function Ji(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof e!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});r=m.Params(r,{cid:o=>{if(typeof o!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&o.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return o},ice:["string",()=>"stun:stun.skapi.com:3468"],media:o=>o,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:true,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:t,ice:n}=r;if(!(r?.media instanceof MediaStream)&&(r?.media?.video||r?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(i.readyState!==1)throw new f("Realtime connection is not ready.",{code:"INVALID_REQUEST"});let s={iceServers:[{urls:n}]};I?.[t]||(I[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Wi(r.media),this.__mediaStream.getTracks().forEach(o=>{I[t].addTrack(o,this.__mediaStream);})),ce[t]=e,q[t]||(q[t]={});for(let o=0;o<r.channels.length;o++){let a=r.channels[o];if(typeof a=="string")switch(a){case "text-chat":a={ordered:true,maxRetransmits:10,protocol:"text-chat"};break;case "file-transfer":a={ordered:false,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case "video-chat":a={ordered:true,maxRetransmits:10,protocol:"video-chat"};break;case "voice-chat":a={ordered:true,maxRetransmits:10,protocol:"voice-chat"};break;case "gaming":a={ordered:false,maxPacketLifeTime:100,protocol:"gaming"};break;default:a={ordered:true,maxRetransmits:10,protocol:"default"};break}let u=a.protocol||"default";if(Object.keys(q[t]).includes(u))throw new f(`Data channel with the protocol "${u}" already exists.`,{code:"INVALID_REQUEST"});let c=I[t].createDataChannel(u,a);q[t][u]=c;}for(let o in q[t]){let a=q[t][o];zi.bind(this)(t,a);}return Gi.bind(this)(t,["onnegotiationneeded"]),await xr.bind(this)(t),{hangup:()=>ie[t]&&ie[t](false),connection:new Promise(o=>{ie[t]=(a=>{if(this.log("receiver picked up the call",t),!a)return se.bind(this)({cid:t}),null;I[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),xr.bind(this)(t),ce[t]&&ce[t]({type:"negotiationneeded",target:I[t],timestamp:new Date().toISOString(),signalingState:I[t].signalingState,connectionState:I[t].iceConnectionState,gatheringState:I[t].iceGatheringState});},o({target:I[t],channels:q[t],hangup:()=>se.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function Qi(r){return async(e,t)=>{e=e||{},e=N(e).data;let n=r.sender_cid,i=await this.__socket;if(!le[n])return null;if(typeof t!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=e;return I?.[n]||(I[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Wi(e.media),this.__mediaStream.getTracks().forEach(o=>{I[n].addTrack(o,this.__mediaStream);})),delete le[n],ce[n]=t,q[n]||(q[n]={}),I[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;q[n][a.label]=a,zi.bind(this)(n,a);},Gi.bind(this)(n,["onnegotiationneeded"]),await Ur.bind(this)(null,n),await Cr.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:I[n],channels:q[n],hangup:()=>se.bind(this)({cid:n}),media:this.__mediaStream}}}async function xr(r){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",r);let e=await this.__socket,t=await I[r].createOffer();await I[r].setLocalDescription(t);let n=I[r].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:r,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function Vu(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",e);let t=await this.__socket;if(!r.candidate){this.log("candidate-end","all ice candidates have been sent");return}let n=ce[e]||(()=>{}),i=r.candidate;this.log("ice gathering state set to",I[e].iceGatheringState),n({type:"icecandidate",target:I[e],timestamp:new Date().toISOString(),candidate:r.candidate.candidate,sdpMid:r.candidate.sdpMid,sdpMLineIndex:r.candidate.sdpMLineIndex,usernameFragment:r.candidate.usernameFragment,protocol:r.candidate.protocol,gatheringState:I[e].iceGatheringState,connectionState:I[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Gi(r,e){let t=new Set(e),n=ce[r]||(o=>{}),i=I[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{Vu.bind(this)(o,r),o.candidate?n({type:"icecandidate",target:i,timestamp:new Date().toISOString(),candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex,usernameFragment:o.candidate.usernameFragment,protocol:o.candidate.protocol,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState}):n({type:"icecandidateend",target:i,timestamp:new Date().toISOString()});},onicecandidateerror:o=>{n({type:"icecandidateerror",target:i,timestamp:new Date().toISOString(),errorCode:o.errorCode,errorText:o.errorText,url:o.url,hostCandidate:o.hostCandidate,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState});},oniceconnectionstatechange:()=>{n({type:"iceconnectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceConnectionState,gatheringState:i.iceGatheringState,signalingState:i.signalingState});},onicegatheringstatechange:()=>{n({type:"icegatheringstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceGatheringState,connectionState:i.iceConnectionState,signalingState:i.signalingState});},onsignalingstatechange:()=>{n({type:"signalingstatechange",target:i,timestamp:new Date().toISOString(),state:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onnegotiationneeded:()=>{xr.bind(this)(r),n({type:"negotiationneeded",target:i,timestamp:new Date().toISOString(),signalingState:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onconnectionstatechange:()=>{n({type:"connectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.connectionState,iceState:i.iceConnectionState,signalingState:i.signalingState});let o=i.connectionState;(o==="disconnected"||o==="failed"||o==="closed")&&se.bind(this)({cid:r});}};for(let[o,a]of Object.entries(s))t.has(o)||(i[o]=a);}function zi(r,e,t){let n=new Set(t),i=ce[r]||(o=>{}),s={onmessage:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,data:o.data,lastEventId:o.lastEventId,origin:o.origin,readyState:e.readyState,bufferedAmount:e.bufferedAmount};this.log(`${e.label}: message`,o.data),i(a);},onerror:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,error:o.error.message,errorCode:o.error.errorDetail,readyState:e.readyState,label:e.label};this.log(`${e.label}: error`,o.error.message),i(a);},onclose:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id};this.log(`${e.label}: closed`,null),i(a),q[r]&&(delete q[r][e.label],Object.keys(q[r]).length===0&&se.bind(this)({cid:r}));},onbufferedamountlow:o=>{let a={target:e,bufferedAmount:e.bufferedAmount,bufferedAmountLowThreshold:e.bufferedAmountLowThreshold,type:o.type,timeStamp:o.timeStamp};this.log(`${e.label}: bufferedamountlow`,e.bufferedAmount),i(a);},onopen:o=>{this.log("dataChannel",`data channel: "${e.label}" is open and ready to send messages.`);let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id,ordered:e.ordered,maxRetransmits:e.maxRetransmits,protocol:e.protocol};i(a);}};for(let[o,a]of Object.entries(s))n.has(o)||(e[o]=a);}var Se,we=null,Ze=true,je=0;async function Bu(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.getProfile(),!this.session)throw new f("No access.",{code:"INVALID_REQUEST"});let r=await this.record_endpoint;return new WebSocket(r.websocket_private+"?token="+this.session.accessToken.jwtToken)}var Dr=null;async function Yi(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});Ze=true;let r=this.__socket?await this.__socket:this.__socket;se.bind(this)({close_all:true}),Se&&kr.bind(this)({group:null}),je=0,we&&(we.terminate(),we=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",Dr),this.__socket=null,null}async function Ot(r,e=50,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof r!="function")throw new f("Callback must be a function.",{code:"INVALID_REQUEST"});if(t==="reconnect"){if(this.__socket instanceof Promise){let n=await this.__socket;if(n.readyState!==WebSocket.CLOSED&&n.readyState!==WebSocket.CLOSING)return this.__socket}}else if(Ze&&(Dr=()=>{!document.hidden&&!Ze&&Ot.bind(this)(r,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;we&&(we.terminate(),we=null),this.__socket=new Promise(async n=>{await Be.bind(this)(),setTimeout(async()=>{let i=await Bu.bind(this)();i.onopen=()=>{Ze=false,je=0,t!=="reconnect"&&window.addEventListener("visibilitychange",Dr),this.log("realtime onopen","Connected to WebSocket server."),r({type:"success",message:"Connected to WebSocket server."}),Se&&i.send(JSON.stringify({action:"joinRoom",rid:Se,token:this.session.accessToken.jwtToken}));let s=`
206
+ var xs=Object.create;var xe=Object.defineProperty;var Lr=Object.getOwnPropertyDescriptor;var Us=Object.getOwnPropertyNames;var Cs=Object.getPrototypeOf,Ds=Object.prototype.hasOwnProperty;var ks=(r,e,t)=>e in r?xe(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Or=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Ue=(r,e)=>()=>(r&&(e=r(r=0)),e);var j=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),nt=(r,e)=>{for(var t in e)xe(r,t,{get:e[t],enumerable:true});},Mr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Us(e))!Ds.call(r,i)&&i!==t&&xe(r,i,{get:()=>e[i],enumerable:!(n=Lr(e,i))||n.enumerable});return r};var Ee=(r,e,t)=>(t=r!=null?xs(Cs(r)):{},Mr(!r||!r.__esModule?xe(t,"default",{value:r,enumerable:true}):t,r)),re=r=>Mr(xe({},"__esModule",{value:true}),r),E=(r,e,t,n)=>{for(var i=Lr(e,t),s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=(o(e,t,i))||i);return i&&xe(e,t,i),i};var de=(r,e,t)=>ks(r,typeof e!="symbol"?e+"":e,t);var ve={};nt(ve,{default:()=>Fs});var Ns,Fs,Te=Ue(()=>{Ns={},Fs=Ns;});var qr=j(st=>{st.byteLength=Ms;st.toByteArray=Bs;st.fromByteArray=js;var oe=[],Y=[],Os=typeof Uint8Array<"u"?Uint8Array:Array,qt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Re=0,Vr=qt.length;Re<Vr;++Re)oe[Re]=qt[Re],Y[qt.charCodeAt(Re)]=Re;var Re,Vr;Y[45]=62;Y[95]=63;function Br(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return [t,n]}function Ms(r){var e=Br(r),t=e[0],n=e[1];return (t+n)*3/4-n}function Vs(r,e,t){return (e+t)*3/4-t}function Bs(r){var e,t=Br(r),n=t[0],i=t[1],s=new Os(Vs(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=Y[r.charCodeAt(u)]<<18|Y[r.charCodeAt(u+1)]<<12|Y[r.charCodeAt(u+2)]<<6|Y[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Y[r.charCodeAt(u)]<<2|Y[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=Y[r.charCodeAt(u)]<<10|Y[r.charCodeAt(u+1)]<<4|Y[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function qs(r){return oe[r>>18&63]+oe[r>>12&63]+oe[r>>6&63]+oe[r&63]}function $s(r,e,t){for(var n,i=[],s=e;s<t;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(qs(n));return i.join("")}function js(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push($s(r,o,o+s>a?a:o+s));return n===1?(e=r[t-1],i.push(oe[e>>2]+oe[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(oe[e>>10]+oe[e>>4&63]+oe[e<<2&63]+"=")),i.join("")}});var $r=j($t=>{$t.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,d=-7,l=t?i-1:0,h=t?-1:1,p=r[e+l];for(l+=h,s=p&(1<<-d)-1,p>>=-d,d+=a;d>0;s=s*256+r[e+l],l+=h,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+r[e+l],l+=h,d-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (p?-1:1)*o*Math.pow(2,s-n)};$t.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,d=(1<<c)-1,l=d>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,g=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+l>=1?e+=h/u:e+=h*Math.pow(2,1-l),e*u>=2&&(o++,u/=2),o+l>=d?(a=0,o=d):o+l>=1?(a=(e*u-1)*Math.pow(2,i),o=o+l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;r[t+p]=a&255,p+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+p]=o&255,p+=g,o/=256,c-=8);r[t+p-g]|=_*128;};});var Kr=j((zu,jr)=>{var Ks={}.toString;jr.exports=Array.isArray||function(r){return Ks.call(r)=="[object Array]"};});var dt=j(De=>{var jt=qr(),Ce=$r(),Jr=Kr();De.Buffer=y;De.SlowBuffer=zs;De.INSPECT_MAX_BYTES=50;y.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:Hs();De.kMaxLength=ot();function Hs(){try{var r=new Uint8Array(1);return r.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},r.foo()===42&&typeof r.subarray=="function"&&r.subarray(1,1).byteLength===0}catch{return false}}function ot(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function he(r,e){if(ot()<e)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(e),r.__proto__=y.prototype):(r===null&&(r=new y(e)),r.length=e),r}function y(r,e,t){if(!y.TYPED_ARRAY_SUPPORT&&!(this instanceof y))return new y(r,e,t);if(typeof r=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Ht(this,r)}return Gr(this,r,e,t)}y.poolSize=8192;y._augment=function(r){return r.__proto__=y.prototype,r};function Gr(r,e,t,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?Gs(r,e,t,n):typeof e=="string"?Js(r,e,t):Qs(r,e)}y.from=function(r,e,t){return Gr(null,r,e,t)};y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&y[Symbol.species]===y&&Object.defineProperty(y,Symbol.species,{value:null,configurable:true}));function Qr(r){if(typeof r!="number")throw new TypeError('"size" argument must be a number');if(r<0)throw new RangeError('"size" argument must not be negative')}function Ws(r,e,t,n){return Qr(e),e<=0?he(r,e):t!==void 0?typeof n=="string"?he(r,e).fill(t,n):he(r,e).fill(t):he(r,e)}y.alloc=function(r,e,t){return Ws(null,r,e,t)};function Ht(r,e){if(Qr(e),r=he(r,e<0?0:Wt(e)|0),!y.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}y.allocUnsafe=function(r){return Ht(null,r)};y.allocUnsafeSlow=function(r){return Ht(null,r)};function Js(r,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!y.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=zr(e,t)|0;r=he(r,n);var i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function Kt(r,e){var t=e.length<0?0:Wt(e.length)|0;r=he(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function Gs(r,e,t,n){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");return t===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,t):e=new Uint8Array(e,t,n),y.TYPED_ARRAY_SUPPORT?(r=e,r.__proto__=y.prototype):r=Kt(r,e),r}function Qs(r,e){if(y.isBuffer(e)){var t=Wt(e.length)|0;return r=he(r,t),r.length===0||e.copy(r,0,0,t),r}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||mo(e.length)?he(r,0):Kt(r,e);if(e.type==="Buffer"&&Jr(e.data))return Kt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Wt(r){if(r>=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return r|0}function zs(r){return +r!=r&&(r=0),y.alloc(+r)}y.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};y.compare=function(e,t){if(!y.isBuffer(e)||!y.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==t[s]){n=e[s],i=t[s];break}return n<i?-1:i<n?1:0};y.isEncoding=function(e){switch(String(e).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 true;default:return false}};y.concat=function(e,t){if(!Jr(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return y.alloc(0);var n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=y.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!y.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function zr(r,e){if(y.isBuffer(r))return r.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;typeof r!="string"&&(r=""+r);var t=r.length;if(t===0)return 0;for(var n=false;;)switch(e){case "ascii":case "latin1":case "binary":return t;case "utf8":case "utf-8":case void 0:return at(r).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return t*2;case "hex":return t>>>1;case "base64":return nn(r).length;default:if(n)return at(r).length;e=(""+e).toLowerCase(),n=true;}}y.byteLength=zr;function Ys(r,e,t){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return "";for(r||(r="utf8");;)switch(r){case "hex":return ao(this,e,t);case "utf8":case "utf-8":return Zr(this,e,t);case "ascii":return so(this,e,t);case "latin1":case "binary":return oo(this,e,t);case "base64":return no(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return uo(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=true;}}y.prototype._isBuffer=true;function Ie(r,e,t){var n=r[e];r[e]=r[t],r[t]=n;}y.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Ie(this,t,t+1);return this};y.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Ie(this,t,t+3),Ie(this,t+1,t+2);return this};y.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Ie(this,t,t+7),Ie(this,t+1,t+6),Ie(this,t+2,t+5),Ie(this,t+3,t+4);return this};y.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?Zr(this,0,e):Ys.apply(this,arguments)};y.prototype.equals=function(e){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:y.compare(this,e)===0};y.prototype.inspect=function(){var e="",t=De.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"};y.prototype.compare=function(e,t,n,i,s){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),t<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&t>=n)return 0;if(i>=s)return -1;if(t>=n)return 1;if(t>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-t,u=Math.min(o,a),c=this.slice(i,s),d=e.slice(t,n),l=0;l<u;++l)if(c[l]!==d[l]){o=c[l],a=d[l];break}return o<a?-1:a<o?1:0};function Yr(r,e,t,n,i){if(r.length===0)return -1;if(typeof t=="string"?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return -1;t=r.length-1;}else if(t<0)if(i)t=0;else return -1;if(typeof e=="string"&&(e=y.from(e,n)),y.isBuffer(e))return e.length===0?-1:Hr(r,e,t,n,i);if(typeof e=="number")return e=e&255,y.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Hr(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function Hr(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(p,g){return s===1?p[g]:p.readUInt16BE(g*s)}var c;if(i){var d=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,d===-1?0:c-d)){if(d===-1&&(d=c),c-d+1===a)return d*s}else d!==-1&&(c-=c-d),d=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var l=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){l=false;break}if(l)return c}return -1}y.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1};y.prototype.indexOf=function(e,t,n){return Yr(this,e,t,n,true)};y.prototype.lastIndexOf=function(e,t,n){return Yr(this,e,t,n,false)};function Xs(r,e,t,n){t=Number(t)||0;var i=r.length-t;n?(n=Number(n),n>i&&(n=i)):n=i;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;r[t+o]=a;}return o}function Zs(r,e,t,n){return lt(at(e,r.length-t),r,t,n)}function Xr(r,e,t,n){return lt(go(e),r,t,n)}function eo(r,e,t,n){return Xr(r,e,t,n)}function to(r,e,t,n){return lt(nn(e),r,t,n)}function ro(r,e,t,n){return lt(po(e,r.length-t),r,t,n)}y.prototype.write=function(e,t,n,i){if(t===void 0)i="utf8",n=this.length,t=0;else if(n===void 0&&typeof t=="string")i=t,n=this.length,t=0;else if(isFinite(t))t=t|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s=this.length-t;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=false;;)switch(i){case "hex":return Xs(this,e,t,n);case "utf8":case "utf-8":return Zs(this,e,t,n);case "ascii":return Xr(this,e,t,n);case "latin1":case "binary":return eo(this,e,t,n);case "base64":return to(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return ro(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};y.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function no(r,e,t){return e===0&&t===r.length?jt.fromByteArray(r):jt.fromByteArray(r.slice(e,t))}function Zr(r,e,t){t=Math.min(r.length,t);for(var n=[],i=e;i<t;){var s=r[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=t){var u,c,d,l;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(l=(s&31)<<6|u&63,l>127&&(o=l));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(l=(s&15)<<12|(u&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:u=r[i+1],c=r[i+2],d=r[i+3],(u&192)===128&&(c&192)===128&&(d&192)===128&&(l=(s&15)<<18|(u&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l));}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a;}return io(n)}var Wr=4096;function io(r){var e=r.length;if(e<=Wr)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Wr));return t}function so(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]&127);return n}function oo(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}function ao(r,e,t){var n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var i="",s=e;s<t;++s)i+=ho(r[s]);return i}function uo(r,e,t){for(var n=r.slice(e,t),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}y.prototype.slice=function(e,t){var n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var i;if(y.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=y.prototype;else {var s=t-e;i=new y(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function V(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUIntLE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return i};y.prototype.readUIntBE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e+--t],s=1;t>0&&(s*=256);)i+=this[e+--t]*s;return i};y.prototype.readUInt8=function(e,t){return t||V(e,1,this.length),this[e]};y.prototype.readUInt16LE=function(e,t){return t||V(e,2,this.length),this[e]|this[e+1]<<8};y.prototype.readUInt16BE=function(e,t){return t||V(e,2,this.length),this[e]<<8|this[e+1]};y.prototype.readUInt32LE=function(e,t){return t||V(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};y.prototype.readUInt32BE=function(e,t){return t||V(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};y.prototype.readIntLE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*t)),i};y.prototype.readIntBE=function(e,t,n){e=e|0,t=t|0,n||V(e,t,this.length);for(var i=t,s=1,o=this[e+--i];i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*t)),o};y.prototype.readInt8=function(e,t){return t||V(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};y.prototype.readInt16LE=function(e,t){t||V(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};y.prototype.readInt16BE=function(e,t){t||V(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};y.prototype.readInt32LE=function(e,t){return t||V(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};y.prototype.readInt32BE=function(e,t){return t||V(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};y.prototype.readFloatLE=function(e,t){return t||V(e,4,this.length),Ce.read(this,e,true,23,4)};y.prototype.readFloatBE=function(e,t){return t||V(e,4,this.length),Ce.read(this,e,false,23,4)};y.prototype.readDoubleLE=function(e,t){return t||V(e,8,this.length),Ce.read(this,e,true,52,8)};y.prototype.readDoubleBE=function(e,t){return t||V(e,8,this.length),Ce.read(this,e,false,52,8)};function G(r,e,t,n,i,s){if(!y.isBuffer(r))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(t+n>r.length)throw new RangeError("Index out of range")}y.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;G(this,e,t,n,s,0);}var o=1,a=0;for(this[t]=e&255;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n};y.prototype.writeUIntBE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;G(this,e,t,n,s,0);}var o=n-1,a=1;for(this[t+o]=e&255;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n};y.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,1,255,0),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function ut(r,e,t,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(r.length-t,2);i<s;++i)r[t+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8;}y.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):ut(this,e,t,true),t+2};y.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):ut(this,e,t,false),t+2};function ct(r,e,t,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(r.length-t,4);i<s;++i)r[t+i]=e>>>(n?i:3-i)*8&255;}y.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):ct(this,e,t,true),t+4};y.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):ct(this,e,t,false),t+4};y.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);G(this,e,t,n,s-1,-s);}var o=0,a=1,u=0;for(this[t]=e&255;++o<n&&(a*=256);)e<0&&u===0&&this[t+o-1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);G(this,e,t,n,s-1,-s);}var o=n-1,a=1,u=0;for(this[t+o]=e&255;--o>=0&&(a*=256);)e<0&&u===0&&this[t+o+1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,1,127,-128),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};y.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):ut(this,e,t,true),t+2};y.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):ut(this,e,t,false),t+2};y.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):ct(this,e,t,true),t+4};y.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t|0,n||G(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):ct(this,e,t,false),t+4};function en(r,e,t,n,i,s){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function tn(r,e,t,n,i){return i||en(r,e,t,4),Ce.write(r,e,t,n,23,4),t+4}y.prototype.writeFloatLE=function(e,t,n){return tn(this,e,t,true,n)};y.prototype.writeFloatBE=function(e,t,n){return tn(this,e,t,false,n)};function rn(r,e,t,n,i){return i||en(r,e,t,8),Ce.write(r,e,t,n,52,8),t+8}y.prototype.writeDoubleLE=function(e,t,n){return rn(this,e,t,true,n)};y.prototype.writeDoubleBE=function(e,t,n){return rn(this,e,t,false,n)};y.prototype.copy=function(e,t,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var s=i-n,o;if(this===e&&n<t&&t<i)for(o=s-1;o>=0;--o)e[o+t]=this[o+n];else if(s<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s};y.prototype.fill=function(e,t,n,i){if(typeof e=="string"){if(typeof t=="string"?(i=t,t=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),e.length===1){var s=e.charCodeAt(0);s<256&&(e=s);}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!y.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o<n;++o)this[o]=e;else {var a=y.isBuffer(e)?e:at(new y(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var co=/[^+\/0-9A-Za-z-_]/g;function lo(r){if(r=fo(r).replace(co,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function fo(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function ho(r){return r<16?"0"+r.toString(16):r.toString(16)}function at(r,e){e=e||1/0;for(var t,n=r.length,i=null,s=[],o=0;o<n;++o){if(t=r.charCodeAt(o),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),i=t;continue}t=(i-55296<<10|t-56320)+65536;}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,t<128){if((e-=1)<0)break;s.push(t);}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128);}else if(t<65536){if((e-=3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128);}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128);}else throw new Error("Invalid code point")}return s}function go(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function po(r,e){for(var t,n,i,s=[],o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(o),n=t>>8,i=t%256,s.push(i),s.push(n);return s}function nn(r){return jt.toByteArray(lo(r))}function lt(r,e,t,n){for(var i=0;i<n&&!(i+t>=e.length||i>=r.length);++i)e[i+t]=r[i];return i}function mo(r){return r!==r}});var sn=j(()=>{});var Xt={};nt(Xt,{__assign:()=>zt,__asyncDelegator:()=>Uo,__asyncGenerator:()=>xo,__asyncValues:()=>Co,__await:()=>Ke,__awaiter:()=>Eo,__classPrivateFieldGet:()=>Fo,__classPrivateFieldSet:()=>Lo,__createBinding:()=>To,__decorate:()=>wo,__exportStar:()=>Ro,__extends:()=>bo,__generator:()=>vo,__importDefault:()=>No,__importStar:()=>ko,__makeTemplateObject:()=>Do,__metadata:()=>So,__param:()=>Ao,__read:()=>on,__rest:()=>yo,__spread:()=>Io,__spreadArrays:()=>Po,__values:()=>Yt});function bo(r,e){Qt(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function yo(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function wo(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function Ao(r,e){return function(t,n){e(t,n,r);}}function So(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Eo(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s);})}return new(t||(t=Promise))(function(s,o){function a(d){try{c(n.next(d));}catch(l){o(l);}}function u(d){try{c(n.throw(d));}catch(l){o(l);}}function c(d){d.done?s(d.value):i(d.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function vo(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(d){return u([c,d])}}function u(c){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t);}catch(d){c=[6,d],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function To(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function Ro(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function Yt(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return {next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function on(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value);}catch(a){o={error:a};}finally{try{i&&!i.done&&(t=n.return)&&t.call(n);}finally{if(o)throw o.error}}return s}function Io(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(on(arguments[e]));return r}function Po(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function Ke(r){return this instanceof Ke?(this.v=r,this):new Ke(r)}function xo(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(p){return new Promise(function(g,_){s.push([h,p,g,_])>1||a(h,p);})});}function a(h,p){try{u(n[h](p));}catch(g){l(s[0][3],g);}}function u(h){h.value instanceof Ke?Promise.resolve(h.value.v).then(c,d):l(s[0][2],h);}function c(h){a("next",h);}function d(h){a("throw",h);}function l(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function Uo(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(o){return (t=!t)?{value:Ke(r[i](o)),done:i==="return"}:s?s(o):o}:s;}}function Co(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof Yt=="function"?Yt(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(o){return new Promise(function(a,u){o=r[s](o),i(a,u,o.done,o.value);})};}function i(s,o,a,u){Promise.resolve(u).then(function(c){s({value:c,done:a});},o);}}function Do(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function ko(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e}function No(r){return r&&r.__esModule?r:{default:r}}function Fo(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Lo(r,e,t){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,t),t}var Qt,zt,Zt=Ue(()=>{Qt=function(r,e){return Qt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n;}||function(t,n){for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i]);},Qt(r,e)};zt=function(){return zt=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);}return e},zt.apply(this,arguments)};});var er=j(Z=>{Object.defineProperty(Z,"__esModule",{value:true});Z.MAX_HASHABLE_LENGTH=Z.INIT=Z.KEY=Z.DIGEST_LENGTH=Z.BLOCK_SIZE=void 0;Z.BLOCK_SIZE=64;Z.DIGEST_LENGTH=32;Z.KEY=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]);Z.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];Z.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var an=j(ft=>{Object.defineProperty(ft,"__esModule",{value:true});ft.RawSha256=void 0;var ee=er(),Oo=(function(){function r(){this.state=Int32Array.from(ee.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=false;}return r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>ee.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===ee.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0);},r.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%ee.BLOCK_SIZE>=ee.BLOCK_SIZE-8){for(var i=this.bufferLength;i<ee.BLOCK_SIZE;i++)t.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<ee.BLOCK_SIZE-8;i++)t.setUint8(i,0);t.setUint32(ee.BLOCK_SIZE-8,Math.floor(e/4294967296),true),t.setUint32(ee.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(ee.DIGEST_LENGTH),i=0;i<8;i++)s[i*4]=this.state[i]>>>24&255,s[i*4+1]=this.state[i]>>>16&255,s[i*4+2]=this.state[i]>>>8&255,s[i*4+3]=this.state[i]>>>0&255;return s},r.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,i=n[0],s=n[1],o=n[2],a=n[3],u=n[4],c=n[5],d=n[6],l=n[7],h=0;h<ee.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var p=this.temp[h-2],g=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10;p=this.temp[h-15];var _=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(_+this.temp[h-16]|0);}var w=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&d)|0)+(l+(ee.KEY[h]+this.temp[h]|0)|0)|0,b=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;l=d,d=c,c=u,u=a+w|0,a=o,o=s,s=i,i=w+b|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=d,n[7]+=l;},r})();ft.RawSha256=Oo;});var un,cn,ln=Ue(()=>{un=r=>{let e=[];for(let t=0,n=r.length;t<n;t++){let i=r.charCodeAt(t);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192,i&63|128);else if(t+1<r.length&&(i&64512)===55296&&(r.charCodeAt(t+1)&64512)===56320){let s=65536+((i&1023)<<10)+(r.charCodeAt(++t)&1023);e.push(s>>18|240,s>>12&63|128,s>>6&63|128,s&63|128);}else e.push(i>>12|224,i>>6&63|128,i&63|128);}return Uint8Array.from(e)},cn=r=>{let e="";for(let t=0,n=r.length;t<n;t++){let i=r[t];if(i<128)e+=String.fromCharCode(i);else if(192<=i&&i<224){let s=r[++t];e+=String.fromCharCode((i&31)<<6|s&63);}else if(240<=i&&i<365){let o="%"+[i,r[++t],r[++t],r[++t]].map(a=>a.toString(16)).join("%");e+=decodeURIComponent(o);}else e+=String.fromCharCode((i&15)<<12|(r[++t]&63)<<6|r[++t]&63);}return e};});function dn(r){return new TextEncoder().encode(r)}function fn(r){return new TextDecoder("utf-8").decode(r)}var hn=Ue(()=>{});var gn={};nt(gn,{fromUtf8:()=>Mo,toUtf8:()=>Vo});var Mo,Vo,pn=Ue(()=>{ln();hn();Mo=r=>typeof TextEncoder=="function"?dn(r):un(r),Vo=r=>typeof TextDecoder=="function"?fn(r):cn(r);});var mn=j(ht=>{Object.defineProperty(ht,"__esModule",{value:true});ht.convertToBuffer=void 0;var Bo=(pn(),re(gn)),qo=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:Bo.fromUtf8;function $o(r){return r instanceof Uint8Array?r:typeof r=="string"?qo(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}ht.convertToBuffer=$o;});var _n=j(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.isEmptyData=void 0;function jo(r){return typeof r=="string"?r.length===0:r.byteLength===0}gt.isEmptyData=jo;});var bn=j(pt=>{Object.defineProperty(pt,"__esModule",{value:true});pt.numToUint8=void 0;function Ko(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}pt.numToUint8=Ko;});var yn=j(mt=>{Object.defineProperty(mt,"__esModule",{value:true});mt.uint32ArrayFrom=void 0;function Ho(r){if(!Array.from){for(var e=new Uint32Array(r.length),t=0;t<r.length;)e[t]=r[t];return e}return Uint32Array.from(r)}mt.uint32ArrayFrom=Ho;});var wn=j(ae=>{Object.defineProperty(ae,"__esModule",{value:true});ae.uint32ArrayFrom=ae.numToUint8=ae.isEmptyData=ae.convertToBuffer=void 0;var Wo=mn();Object.defineProperty(ae,"convertToBuffer",{enumerable:true,get:function(){return Wo.convertToBuffer}});var Jo=_n();Object.defineProperty(ae,"isEmptyData",{enumerable:true,get:function(){return Jo.isEmptyData}});var Go=bn();Object.defineProperty(ae,"numToUint8",{enumerable:true,get:function(){return Go.numToUint8}});var Qo=yn();Object.defineProperty(ae,"uint32ArrayFrom",{enumerable:true,get:function(){return Qo.uint32ArrayFrom}});});var Sn=j(bt=>{Object.defineProperty(bt,"__esModule",{value:true});bt.Sha256=void 0;var An=(Zt(),re(Xt)),_t=er(),tr=an(),rr=wn(),zo=(function(){function r(e){if(this.hash=new tr.RawSha256,e){this.outer=new tr.RawSha256;var t=Yo(e),n=new Uint8Array(_t.BLOCK_SIZE);n.set(t);for(var i=0;i<_t.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;this.hash.update(t),this.outer.update(n);for(var i=0;i<t.byteLength;i++)t[i]=0;}}return r.prototype.update=function(e){if(!((0, rr.isEmptyData)(e)||this.error))try{this.hash.update((0,rr.convertToBuffer)(e));}catch(t){this.error=t;}},r.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},r.prototype.digest=function(){return (0, An.__awaiter)(this,void 0,void 0,function(){return (0, An.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();bt.Sha256=zo;function Yo(r){var e=(0, rr.convertToBuffer)(r);if(e.byteLength>_t.BLOCK_SIZE){var t=new tr.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(_t.BLOCK_SIZE);return n.set(e),n}});var ir=j(nr=>{Object.defineProperty(nr,"__esModule",{value:true});var Xo=(Zt(),re(Xt));(0, Xo.__exportStar)(Sn(),nr);});var hr={};nt(hr,{default:()=>Wa});function Wa(r,e){return e=e||{},new Promise(function(t,n){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return {ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return o},get:function(d){return a[d.toLowerCase()]},has:function(d){return d.toLowerCase()in a}}}};for(var c in i.open(e.method||"get",r,true),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(d,l,h){s.push(l=l.toLowerCase()),o.push([l,h]),a[l]=a[l]?a[l]+","+h:h;}),t(u());},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(c,e.headers[c]);i.send(e.body||null);})}var gr=Ue(()=>{});var Cn=j((Hc,Un)=>{Un.exports=self.fetch||(self.fetch=(gr(),re(hr)).default||(gr(),re(hr)));});var Mn=j((Ln,On)=>{(function(r){var e;if(typeof define=="function"&&define.amd&&(define(r),e=true),typeof Ln=="object"&&(On.exports=r(),e=true),!e){var t=window.Cookies,n=window.Cookies=r();n.noConflict=function(){return window.Cookies=t,n};}})(function(){function r(){for(var n=0,i={};n<arguments.length;n++){var s=arguments[n];for(var o in s)i[o]=s[o];}return i}function e(n){return n.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function t(n){function i(){}function s(a,u,c){if(!(typeof document>"u")){c=r({path:"/"},i.defaults,c),typeof c.expires=="number"&&(c.expires=new Date(new Date*1+c.expires*864e5)),c.expires=c.expires?c.expires.toUTCString():"";try{var d=JSON.stringify(u);/^[\{\[]/.test(d)&&(u=d);}catch{}u=n.write?n.write(u,a):encodeURIComponent(String(u)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),a=encodeURIComponent(String(a)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var h in c)c[h]&&(l+="; "+h,c[h]!==true&&(l+="="+c[h].split(";")[0]));return document.cookie=a+"="+u+l}}function o(a,u){if(!(typeof document>"u")){for(var c={},d=document.cookie?document.cookie.split("; "):[],l=0;l<d.length;l++){var h=d[l].split("="),p=h.slice(1).join("=");!u&&p.charAt(0)==='"'&&(p=p.slice(1,-1));try{var g=e(h[0]);if(p=(n.read||n)(p,g)||e(p),u)try{p=JSON.parse(p);}catch{}if(c[g]=p,a===g)break}catch{}}return a?c[a]:c}}return i.set=s,i.get=function(a){return o(a,false)},i.getJSON=function(a){return o(a,true)},i.remove=function(a,u){s(a,"",r(u,{expires:-1}));},i.defaults={},i.withConverter=t,i}return t(function(){})});});var fe=typeof globalThis<"u"?globalThis:void 0,it=fe?.window;function Ls(r){if(Buffer)return Buffer.from(r).toString("base64");let e="",t=new Uint8Array(r),n=32768;for(let i=0;i<t.length;i+=n){let s=t.subarray(i,i+n);e+=String.fromCharCode.apply(null,Array.from(s));}if(typeof btoa=="function")return btoa(e);throw new Error("No base64 encoder available in this environment.")}if(it)it.global=it,it.global._runningInNodeJS=false;else if(fe&&(fe.global=fe,typeof fe.window>"u")){class r{constructor(){this.result=null;this.error=null;this.onload=null;this.onloadend=null;this.onerror=null;}readAsDataURL(n){n.arrayBuffer().then(i=>{let s=Ls(i),o=n.type||"application/octet-stream";this.result=`data:${o};base64,${s}`,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsArrayBuffer(n){n.arrayBuffer().then(i=>{this.result=i,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsText(n,i="utf-8"){n.text().then(s=>{this.result=s,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(s=>{this.error=s,this.onerror&&this.onerror({target:this});});}}fe.FileReader=r;class e{constructor(){this.status=0;this.statusText="";this.readyState=0;this.responseText="";this.response=null;this.responseType="";this.responseURL="";this.timeout=0;this.withCredentials=false;this.onload=null;this.onerror=null;this.onabort=null;this.ontimeout=null;this.onprogress=null;this.onreadystatechange=null;this.upload={onprogress:null};this._method="GET";this._url="";this._headers={};this._aborted=false;}open(n,i){this._method=n,this._url=i,this.readyState=1;}setRequestHeader(n,i){this._headers[n]=i;}getResponseHeader(n){return null}abort(){this._aborted=true,this.onabort&&this.onabort({});}send(n){if(this._aborted)return;let i={method:this._method,headers:this._headers};n&&this._method!=="GET"&&this._method!=="HEAD"&&(i.body=n),fetch(this._url,i).then(async s=>{if(!this._aborted){if(this.status=s.status,this.statusText=s.statusText,this.responseURL=s.url,this.readyState=4,this.responseType==="blob")this.response=await s.blob();else if(this.responseType==="json")try{this.response=await s.json();}catch{this.response=null;}else this.responseType==="arraybuffer"?this.response=await s.arrayBuffer():(this.responseText=await s.text(),this.response=this.responseText);this.onload&&this.onload({});}}).catch(s=>{this._aborted||this.onerror&&this.onerror(s);});}}fe.XMLHttpRequest=e,fe.window={_runningInNodeJS:true,alert:t=>console.error("[Alert]",t),sessionStorage:{getItem:t=>null,setItem:(t,n)=>{},removeItem:t=>{}},localStorage:{getItem:t=>{let n=(Te(),re(ve)),i=(Te(),re(ve));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);return n.existsSync(s)?n.readFileSync(s,"utf8"):null}catch{return null}},setItem:(t,n)=>{let i=(Te(),re(ve)),s=(Te(),re(ve));try{let o=s.resolve(process.cwd(),"states","localStorage");i.existsSync(o)||i.mkdirSync(o,{recursive:!0});let a=s.resolve(o,`${t}.skapi`);i.writeFileSync(a,n,"utf8");}catch{}},removeItem:t=>{let n=(Te(),re(ve)),i=(Te(),re(ve));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);n.existsSync(s)&&n.unlinkSync(s);}catch{}}},location:{href:"",origin:"",hostname:"",protocol:"",replace:t=>{}},navigator:{userAgent:`nodejs/${fe?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async t=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var Bt=(function(){function r(t){var n=t||{},i=n.ValidationData,s=n.Username,o=n.Password,a=n.AuthParameters,u=n.ClientMetadata;this.validationData=i||{},this.authParameters=a||{},this.clientMetadata=u||{},this.username=s,this.password=o;}var e=r.prototype;return e.getUsername=function(){return this.username},e.getPassword=function(){return this.password},e.getValidationData=function(){return this.validationData},e.getAuthParameters=function(){return this.authParameters},e.getClientMetadata=function(){return this.clientMetadata},r})();var ge=Ee(dt());var X;typeof window<"u"&&window.crypto&&(X=window.crypto);!X&&typeof window<"u"&&window.msCrypto&&(X=window.msCrypto);!X&&typeof globalThis<"u"&&globalThis.crypto&&(X=globalThis.crypto);if(!X&&typeof Or=="function")try{X=sn();}catch{}function Jt(){if(X){if(typeof X.getRandomValues=="function")try{return X.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof X.randomBytes=="function")try{return X.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function _o(r){for(var e=r.words,t=r.sigBytes,n=[],i=0;i<t;i++){var s=e[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((s&15).toString(16));}return n.join("")}var Gt=(function(){function r(t,n){t=this.words=t||[],n!=null?this.sigBytes=n:this.sigBytes=t.length*4;}var e=r.prototype;return e.random=function(n){for(var i=[],s=0;s<n;s+=4)i.push(Jt());return new r(i,n)},e.toString=function(){return _o(this)},r})();var wt=Ee(ir());var M=P;function P(r,e){r!=null&&this.fromString(r,e);}function H(){return new P(null)}var be,Zo=0xdeadbeefcafe,En=(Zo&16777215)==15715070;function ea(r,e,t,n,i,s){for(;--s>=0;){var o=e*this[r++]+t[n]+i;i=Math.floor(o/67108864),t[n++]=o&67108863;}return i}function ta(r,e,t,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var u=this[r]&32767,c=this[r++]>>15,d=a*u+c*o;u=o*u+((d&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(d>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function ra(r,e,t,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var u=this[r]&16383,c=this[r++]>>14,d=a*u+c*o;u=o*u+((d&16383)<<14)+t[n]+i,i=(u>>28)+(d>>14)+a*c,t[n++]=u&268435455;}return i}var vn=typeof navigator<"u";vn&&En&&navigator.appName=="Microsoft Internet Explorer"?(P.prototype.am=ta,be=30):vn&&En&&navigator.appName!="Netscape"?(P.prototype.am=ea,be=26):(P.prototype.am=ra,be=28);P.prototype.DB=be;P.prototype.DM=(1<<be)-1;P.prototype.DV=1<<be;var sr=52;P.prototype.FV=Math.pow(2,sr);P.prototype.F1=sr-be;P.prototype.F2=2*be-sr;var na="0123456789abcdefghijklmnopqrstuvwxyz",yt=new Array,ke,te;ke=48;for(te=0;te<=9;++te)yt[ke++]=te;ke=97;for(te=10;te<36;++te)yt[ke++]=te;ke=65;for(te=10;te<36;++te)yt[ke++]=te;function Tn(r){return na.charAt(r)}function ia(r,e){var t=yt[r.charCodeAt(e)];return t??-1}function sa(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function oa(r){this.t=1,this.s=r<0?-1:0,r>0?this[0]=r:r<-1?this[0]=r+this.DV:this.t=0;}function or(r){var e=H();return e.fromInt(r),e}function aa(r,e){var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");this.t=0,this.s=0;for(var n=r.length,i=false,s=0;--n>=0;){var o=ia(r,n);if(o<0){r.charAt(n)=="-"&&(i=true);continue}i=false,s==0?this[this.t++]=o:s+t>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,s+=t,s>=this.DB&&(s-=this.DB);}this.clamp(),i&&P.ZERO.subTo(this,this);}function ua(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function ca(r){if(this.s<0)return "-"+this.negate().toString(r);var e;if(r==16)e=4;else if(r==8)e=3;else if(r==2)e=1;else if(r==32)e=5;else if(r==4)e=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");var t=(1<<e)-1,n,i=false,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=true,s=Tn(n));o>=0;)a<e?(n=(this[o]&(1<<a)-1)<<e-a,n|=this[--o]>>(a+=this.DB-e)):(n=this[o]>>(a-=e)&t,a<=0&&(a+=this.DB,--o)),n>0&&(i=true),i&&(s+=Tn(n));return i?s:"0"}function la(){var r=H();return P.ZERO.subTo(this,r),r}function da(){return this.s<0?this.negate():this}function fa(r){var e=this.s-r.s;if(e!=0)return e;var t=this.t;if(e=t-r.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-r[t])!=0)return e;return 0}function ar(r){var e=1,t;return (t=r>>>16)!=0&&(r=t,e+=16),(t=r>>8)!=0&&(r=t,e+=8),(t=r>>4)!=0&&(r=t,e+=4),(t=r>>2)!=0&&(r=t,e+=2),(t=r>>1)!=0&&(r=t,e+=1),e}function ha(){return this.t<=0?0:this.DB*(this.t-1)+ar(this[this.t-1]^this.s&this.DM)}function ga(r,e){var t;for(t=this.t-1;t>=0;--t)e[t+r]=this[t];for(t=r-1;t>=0;--t)e[t]=0;e.t=this.t+r,e.s=this.s;}function pa(r,e){for(var t=r;t<this.t;++t)e[t-r]=this[t];e.t=Math.max(this.t-r,0),e.s=this.s;}function ma(r,e){var t=r%this.DB,n=this.DB-t,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<t&this.DM,a;for(a=this.t-1;a>=0;--a)e[a+s+1]=this[a]>>n|o,o=(this[a]&i)<<t;for(a=s-1;a>=0;--a)e[a]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp();}function _a(r,e){e.s=this.s;var t=Math.floor(r/this.DB);if(t>=this.t){e.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;e[0]=this[t]>>n;for(var o=t+1;o<this.t;++o)e[o-t-1]|=(this[o]&s)<<i,e[o-t]=this[o]>>n;n>0&&(e[this.t-t-1]|=(this.s&s)<<i),e.t=this.t-t,e.clamp();}function ba(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]-r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n-=r[t],e[t++]=n&this.DM,n>>=this.DB;n-=r.s;}e.s=n<0?-1:0,n<-1?e[t++]=this.DV+n:n>0&&(e[t++]=n),e.t=t,e.clamp();}function ya(r,e){var t=this.abs(),n=r.abs(),i=t.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+t.t]=t.am(0,n[i],e,i,0,t.t);e.s=0,e.clamp(),this.s!=r.s&&P.ZERO.subTo(e,e);}function wa(r){for(var e=this.abs(),t=r.t=2*e.t;--t>=0;)r[t]=0;for(t=0;t<e.t-1;++t){var n=e.am(t,e[t],r,2*t,0,1);(r[t+e.t]+=e.am(t+1,2*e[t],r,2*t+1,n,e.t-t-1))>=e.DV&&(r[t+e.t]-=e.DV,r[t+e.t+1]=1);}r.t>0&&(r[r.t-1]+=e.am(t,e[t],r,2*t,0,1)),r.s=0,r.clamp();}function Aa(r,e,t){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),t!=null&&this.copyTo(t);return}t==null&&(t=H());var s=H(),o=this.s,a=r.s,u=this.DB-ar(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,d=s[c-1];if(d!=0){var l=d*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/l,p=(1<<this.F1)/l,g=1<<this.F2,_=t.t,w=_-c,b=e??H();for(s.dlShiftTo(w,b),t.compareTo(b)>=0&&(t[t.t++]=1,t.subTo(b,t)),P.ONE.dlShiftTo(c,b),b.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--w>=0;){var R=t[--_]==d?this.DM:Math.floor(t[_]*h+(t[_-1]+g)*p);if((t[_]+=s.am(0,R,t,w,0,c))<R)for(s.dlShiftTo(w,b),t.subTo(b,t);t[_]<--R;)t.subTo(b,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&P.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&P.ZERO.subTo(t,t);}}}function Sa(r){var e=H();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(P.ZERO)>0&&r.subTo(e,e),e}function Ea(){if(this.t<1)return 0;var r=this[0];if((r&1)==0)return 0;var e=r&3;return e=e*(2-(r&15)*e)&15,e=e*(2-(r&255)*e)&255,e=e*(2-((r&65535)*e&65535))&65535,e=e*(2-r*e%this.DV)%this.DV,e>0?this.DV-e:-e}function va(r){return this.compareTo(r)==0}function Ta(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]+r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n+=r[t],e[t++]=n&this.DM,n>>=this.DB;n+=r.s;}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp();}function Ra(r){var e=H();return this.addTo(r,e),e}function Ia(r){var e=H();return this.subTo(r,e),e}function Pa(r){var e=H();return this.multiplyTo(r,e),e}function xa(r){var e=H();return this.divRemTo(r,e,null),e}function Ne(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t;}function Ua(r){var e=H();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(P.ZERO)>0&&this.m.subTo(e,e),e}function Ca(r){var e=H();return r.copyTo(e),this.reduce(e),e}function Da(r){for(;r.t<=this.mt2;)r[r.t++]=0;for(var e=0;e<this.m.t;++e){var t=r[e]&32767,n=t*this.mpl+((t*this.mph+(r[e]>>15)*this.mpl&this.um)<<15)&r.DM;for(t=e+this.m.t,r[t]+=this.m.am(0,n,r,e,0,this.m.t);r[t]>=r.DV;)r[t]-=r.DV,r[++t]++;}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r);}function ka(r,e){r.squareTo(e),this.reduce(e);}function Na(r,e,t){r.multiplyTo(e,t),this.reduce(t);}Ne.prototype.convert=Ua;Ne.prototype.revert=Ca;Ne.prototype.reduce=Da;Ne.prototype.mulTo=Na;Ne.prototype.sqrTo=ka;function Fa(r,e,t){var n=r.bitLength(),i,s=or(1),o=new Ne(e);if(n<=0)return s;n<18?i=1:n<48?i=3:n<144?i=4:n<768?i=5:i=6;var a=new Array,u=3,c=i-1,d=(1<<i)-1;if(a[1]=o.convert(this),i>1){var l=H();for(o.sqrTo(a[1],l);u<=d;)a[u]=H(),o.mulTo(l,a[u-2],a[u]),u+=2;}var h=r.t-1,p,g=true,_=H(),w;for(n=ar(r[h])-1;h>=0;){for(n>=c?p=r[h]>>n-c&d:(p=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(p|=r[h-1]>>this.DB+n-c)),u=i;(p&1)==0;)p>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[p].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,_),o.sqrTo(_,s),u-=2;u>0?o.sqrTo(s,_):(w=s,s=_,_=w),o.mulTo(_,a[p],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,_),w=s,s=_,_=w,--n<0&&(n=this.DB-1,--h);}var b=o.revert(s);return t(null,b),b}P.prototype.copyTo=sa;P.prototype.fromInt=oa;P.prototype.fromString=aa;P.prototype.clamp=ua;P.prototype.dlShiftTo=ga;P.prototype.drShiftTo=pa;P.prototype.lShiftTo=ma;P.prototype.rShiftTo=_a;P.prototype.subTo=ba;P.prototype.multiplyTo=ya;P.prototype.squareTo=wa;P.prototype.divRemTo=Aa;P.prototype.invDigit=Ea;P.prototype.addTo=Ta;P.prototype.toString=ca;P.prototype.negate=la;P.prototype.abs=da;P.prototype.compareTo=fa;P.prototype.bitLength=ha;P.prototype.mod=Sa;P.prototype.equals=va;P.prototype.add=Ra;P.prototype.subtract=Ia;P.prototype.multiply=Pa;P.prototype.divide=xa;P.prototype.modPow=Fa;P.ZERO=or(0);P.ONE=or(1);function ur(r){return ge.Buffer.from(new Gt().random(r).toString(),"hex")}var La=/^[89a-f]/i,Oa="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",Ma="userAttributes.",ye=(function(){function r(t){this.N=new M(Oa,16),this.g=new M("2",16),this.k=new M(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=ge.Buffer.from("Caldera Derived Key","utf8"),this.poolName=t;}var e=r.prototype;return e.getSmallAValue=function(){return this.smallAValue},e.getLargeAValue=function(n){var i=this;this.largeAValue?n(null,this.largeAValue):this.calculateA(this.smallAValue,function(s,o){s&&n(s,null),i.largeAValue=o,n(null,i.largeAValue);});},e.generateRandomSmallA=function(){var n=ur(128).toString("hex"),i=new M(n,16);return i},e.generateRandomString=function(){return ur(40).toString("base64")},e.getRandomPassword=function(){return this.randomPassword},e.getSaltDevices=function(){return this.SaltToHashDevices},e.getVerifierDevices=function(){return this.verifierDevices},e.generateHashDevice=function(n,i,s){var o=this;this.randomPassword=this.generateRandomString();var a=""+n+i+":"+this.randomPassword,u=this.hash(a),c=ur(16).toString("hex");this.SaltToHashDevices=this.padHex(new M(c,16)),this.g.modPow(new M(this.hexHash(this.SaltToHashDevices+u),16),this.N,function(d,l){d&&s(d,null),o.verifierDevices=o.padHex(l),s(null,null);});},e.calculateA=function(n,i){var s=this;this.g.modPow(n,this.N,function(o,a){o&&i(o,null),a.mod(s.N).equals(M.ZERO)&&i(new Error("Illegal paramater. A mod N cannot be 0."),null),i(null,a);});},e.calculateU=function(n,i){this.UHexHash=this.hexHash(this.padHex(n)+this.padHex(i));var s=new M(this.UHexHash,16);return s},e.hash=function(n){var i=new wt.Sha256;i.update(n);var s=i.digestSync(),o=ge.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(ge.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=ge.Buffer.concat([this.infoBits,ge.Buffer.from("","utf8")]),o=new wt.Sha256(i);o.update(n);var a=o.digestSync(),u=new wt.Sha256(a);u.update(s);var c=u.digestSync(),d=c,l=d.slice(0,16);return l},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var u=this;if(s.mod(this.N).equals(M.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(M.ZERO))throw new Error("U cannot be zero.");var c=""+this.poolName+n+":"+i,d=this.hash(c),l=new M(this.hexHash(this.padHex(o)+d),16);this.calculateS(l,s,function(h,p){h&&a(h,null);var g=u.computehkdf(ge.Buffer.from(u.padHex(p),"hex"),ge.Buffer.from(u.padHex(u.UValue),"hex"));a(null,g);});},e.calculateS=function(n,i,s){var o=this;this.g.modPow(n,this.N,function(a,u){a&&s(a,null);var c=i.subtract(o.k.multiply(u));c.modPow(o.smallAValue.add(o.UValue.multiply(n)),o.N,function(d,l){d&&s(d,null),s(null,l.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return Ma},e.padHex=function(n){if(!(n instanceof M))throw new Error("Not a BigInteger");var i=n.compareTo(M.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=La.test(s)?"00"+s:s,i){var o=s.split("").map(function(u){var c=~parseInt(u,16)&15;return "0123456789ABCDEF".charAt(c)}).join(""),a=new M(o,16).add(M.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},r})();var Rn=Ee(dt());var At=(function(){function r(t){this.jwtToken=t||"",this.payload=this.decodePayload();}var e=r.prototype;return e.getJwtToken=function(){return this.jwtToken},e.getExpiration=function(){return this.payload.exp},e.getIssuedAt=function(){return this.payload.iat},e.decodePayload=function(){var n=this.jwtToken.split(".")[1];try{return JSON.parse(Rn.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function Va(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,cr(r,e);}function cr(r,e){return cr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},cr(r,e)}var Fe=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return Va(e,r),e})(At);function Ba(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,lr(r,e);}function lr(r,e){return lr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},lr(r,e)}var Le=(function(r){function e(t){var n=t===void 0?{}:t,i=n.IdToken;return r.call(this,i||"")||this}return Ba(e,r),e})(At);var Oe=(function(){function r(t){var n=t===void 0?{}:t,i=n.RefreshToken;this.token=i||"";}var e=r.prototype;return e.getToken=function(){return this.token},r})();var B=Ee(dt()),fr=Ee(ir());var In="5.0.4";var qa="aws-amplify/"+In,dr={userAgent:qa,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Pn=function(){return dr.userAgent};var Me=(function(){function r(t){var n=t===void 0?{}:t,i=n.IdToken,s=n.RefreshToken,o=n.AccessToken,a=n.ClockDrift;if(o==null||i==null)throw new Error("Id token and Access Token must be present.");this.idToken=i,this.refreshToken=s,this.accessToken=o,this.clockDrift=a===void 0?this.calculateClockDrift():a;}var e=r.prototype;return e.getIdToken=function(){return this.idToken},e.getRefreshToken=function(){return this.refreshToken},e.getAccessToken=function(){return this.accessToken},e.getClockDrift=function(){return this.clockDrift},e.calculateClockDrift=function(){var n=Math.floor(new Date/1e3),i=Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt());return n-i},e.isValid=function(){var n=Math.floor(new Date/1e3),i=n-this.clockDrift;return i<this.accessToken.getExpiration()&&i<this.idToken.getExpiration()},r})();var $a=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ja=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],St=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=ja[n.getUTCDay()],s=$a[n.getUTCMonth()],o=n.getUTCDate(),a=n.getUTCHours();a<10&&(a="0"+a);var u=n.getUTCMinutes();u<10&&(u="0"+u);var c=n.getUTCSeconds();c<10&&(c="0"+c);var d=n.getUTCFullYear(),l=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+d;return l},r})();var ue=(function(){function r(t){var n=t===void 0?{}:t,i=n.Name,s=n.Value;this.Name=i||"",this.Value=s||"";}var e=r.prototype;return e.getValue=function(){return this.Value},e.setValue=function(n){return this.Value=n,this},e.getName=function(){return this.Name},e.setName=function(n){return this.Name=n,this},e.toString=function(){return JSON.stringify(this)},e.toJSON=function(){return {Name:this.Name,Value:this.Value}},r})();var Pe={},Ka=(function(){function r(){}return r.setItem=function(t,n){return Pe[t]=n,Pe[t]},r.getItem=function(t){return Object.prototype.hasOwnProperty.call(Pe,t)?Pe[t]:void 0},r.removeItem=function(t){return delete Pe[t]},r.clear=function(){return Pe={},Pe},r})(),Et=(function(){function r(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls");}catch{this.storageWindow=Ka;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var Ha=typeof navigator<"u",xn=Ha?dr.isReactNative?"react-native":navigator.userAgent:"nodejs",pe=(function(){function r(t){if(t==null||t.Username==null||t.Pool==null)throw new Error("Username and Pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||new Et().getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData";}var e=r.prototype;return e.setSignInUserSession=function(n){this.clearCachedUserData(),this.signInUserSession=n,this.cacheTokens();},e.getSignInUserSession=function(){return this.signInUserSession},e.getUsername=function(){return this.username},e.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.setAuthenticationFlowType=function(n){this.authenticationFlowType=n;},e.initiateAuth=function(n,i){var s=this,o=n.getAuthParameters();o.USERNAME=this.username;var a=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),u={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:a};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",u,function(c,d){if(c)return i.onFailure(c);var l=d.ChallengeName,h=d.ChallengeParameters;return l==="CUSTOM_CHALLENGE"?(s.Session=d.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(d.AuthenticationResult),s.cacheTokens(),i.onSuccess(s.signInUserSession))});},e.authenticateUser=function(n,i){return this.authenticationFlowType==="USER_PASSWORD_AUTH"?this.authenticateUserPlainUsernamePassword(n,i):this.authenticationFlowType==="USER_SRP_AUTH"||this.authenticationFlowType==="CUSTOM_AUTH"?this.authenticateUserDefaultAuth(n,i):i.onFailure(new Error("Authentication flow type is invalid."))},e.authenticateUserDefaultAuth=function(n,i){var s=this,o=new ye(this.pool.getUserPoolName()),a=new St,u,c,d={};this.deviceKey!=null&&(d.DEVICE_KEY=this.deviceKey),d.USERNAME=this.username,o.getLargeAValue(function(l,h){l&&i.onFailure(l),d.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(d.CHALLENGE_NAME="SRP_A");var p=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:d,ClientMetadata:p};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(_,w){if(_)return i.onFailure(_);var b=w.ChallengeParameters;s.username=b.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new M(b.SRP_B,16),c=new M(b.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,U){R&&i.onFailure(R);var x=a.getNowString(),L=B.Buffer.concat([B.Buffer.from(s.pool.getUserPoolName(),"utf8"),B.Buffer.from(s.username,"utf8"),B.Buffer.from(b.SECRET_BLOCK,"base64"),B.Buffer.from(x,"utf8")]),$=new fr.Sha256(U);$.update(L);var K=$.digestSync(),C=B.Buffer.from(K).toString("base64"),D={};D.USERNAME=s.username,D.PASSWORD_CLAIM_SECRET_BLOCK=b.SECRET_BLOCK,D.TIMESTAMP=x,D.PASSWORD_CLAIM_SIGNATURE=C,s.deviceKey!=null&&(D.DEVICE_KEY=s.deviceKey);var k=function(tt,Fr){return s.client.request("RespondToAuthChallenge",tt,function(rt,Ps){return rt&&rt.code==="ResourceNotFoundException"&&rt.message.toLowerCase().indexOf("device")!==-1?(D.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(tt,Fr)):Fr(rt,Ps)})},O={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:D,Session:w.Session,ClientMetadata:p};s.getUserContextData()&&(O.UserContextData=s.getUserContextData()),k(O,function(Vt,tt){return Vt?i.onFailure(Vt):s.authenticateUserInternal(tt,o,i)});});});});},e.authenticateUserPlainUsernamePassword=function(n,i){var s=this,o={};if(o.USERNAME=this.username,o.PASSWORD=n.getPassword(),!o.PASSWORD){i.onFailure(new Error("PASSWORD parameter is required"));return}var a=new ye(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(o.DEVICE_KEY=this.deviceKey);var u=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),c={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:u};this.getUserContextData(this.username)&&(c.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",c,function(d,l){return d?i.onFailure(d):s.authenticateUserInternal(l,a,i)});},e.authenticateUserInternal=function(n,i,s){var o=this,a=n.ChallengeName,u=n.ChallengeParameters;if(a==="SMS_MFA")return this.Session=n.Session,s.mfaRequired(a,u);if(a==="SELECT_MFA_TYPE")return this.Session=n.Session,s.selectMFAType(a,u);if(a==="MFA_SETUP")return this.Session=n.Session,s.mfaSetup(a,u);if(a==="SOFTWARE_TOKEN_MFA")return this.Session=n.Session,s.totpRequired(a,u);if(a==="CUSTOM_CHALLENGE")return this.Session=n.Session,s.customChallenge(u);if(a==="NEW_PASSWORD_REQUIRED"){this.Session=n.Session;var c=null,d=null,l=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),d=JSON.parse(n.ChallengeParameters.requiredAttributes)),d)for(var p=0;p<d.length;p++)l[p]=d[p].substr(h.length);return s.newPasswordRequired(c,l)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return s.onFailure(_);var w={Salt:B.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=w.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:xn},function(b,R){return b?s.onFailure(b):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,R.UserConfirmationNecessary):s.onSuccess(o.signInUserSession))});});},e.completeNewPasswordChallenge=function(n,i,s,o){var a=this;if(!n)return s.onFailure(new Error("New password is required."));var u=new ye(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),d={};i&&Object.keys(i).forEach(function(h){d[c+h]=i[h];}),d.NEW_PASSWORD=n,d.USERNAME=this.username;var l={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:d,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(h,p){return h?s.onFailure(h):a.authenticateUserInternal(p,u,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new ye(this.deviceGroupKey),a=new St,u={};u.USERNAME=this.username,u.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(c,d){c&&n.onFailure(c),u.SRP_A=d.toString(16);var l={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(l.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",l,function(h,p){if(h)return n.onFailure(h);var g=p.ChallengeParameters,_=new M(g.SRP_B,16),w=new M(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,_,w,function(b,R){if(b)return n.onFailure(b);var U=a.getNowString(),x=B.Buffer.concat([B.Buffer.from(s.deviceGroupKey,"utf8"),B.Buffer.from(s.deviceKey,"utf8"),B.Buffer.from(g.SECRET_BLOCK,"base64"),B.Buffer.from(U,"utf8")]),L=new fr.Sha256(R);L.update(x);var $=L.digestSync(),K=B.Buffer.from($).toString("base64"),C={};C.USERNAME=s.username,C.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,C.TIMESTAMP=U,C.PASSWORD_CLAIM_SIGNATURE=K,C.DEVICE_KEY=s.deviceKey;var D={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:C,Session:p.Session};s.getUserContextData()&&(D.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",D,function(k,O){return k?n.onFailure(k):(s.signInUserSession=s.getCognitoUserSession(O.AuthenticationResult),s.cacheTokens(),n.onSuccess(s.signInUserSession))});});});});},e.confirmRegistration=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),ConfirmationCode:n,Username:this.username,ForceAliasCreation:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",a,function(u){return u?s(u,null):s(null,"SUCCESS")});},e.sendCustomChallengeAnswer=function(n,i,s){var o=this,a={};a.USERNAME=this.username,a.ANSWER=n;var u=new ye(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(a.DEVICE_KEY=this.deviceKey);var c={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:a,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:s};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(d,l){return d?i.onFailure(d):o.authenticateUserInternal(l,u,i)});},e.sendMFACode=function(n,i,s,o){var a=this,u={};u.USERNAME=this.username,u.SMS_MFA_CODE=n;var c=s||"SMS_MFA";c==="SOFTWARE_TOKEN_MFA"&&(u.SOFTWARE_TOKEN_MFA_CODE=n),this.deviceKey!=null&&(u.DEVICE_KEY=this.deviceKey);var d={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(l,h){if(l)return i.onFailure(l);var p=h.ChallengeName;if(p==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new ye(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return i.onFailure(_);var w={Salt:B.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=w.PasswordVerifier,a.deviceGroupKey=h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,a.randomPassword=g.getRandomPassword(),a.client.request("ConfirmDevice",{DeviceKey:h.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:a.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:xn},function(b,R){return b?i.onFailure(b):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,R.UserConfirmationNecessary):i.onSuccess(a.signInUserSession))});});});},e.changePassword=function(n,i,s,o){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return s(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:n,ProposedPassword:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:o},function(a){return a?s(a,null):s(null,"SUCCESS")});},e.enableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[],s={DeliveryMedium:"SMS",AttributeName:"phone_number"};i.push(s),this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?n(o,null):n(null,"SUCCESS")});},e.setUserMfaPreference=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:n,SoftwareTokenMfaSettings:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s(o,null):s(null,"SUCCESS")});},e.disableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[];this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n(s,null):n(null,"SUCCESS")});},e.deleteUser=function(n,i){var s=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:i},function(o){return o?n(o,null):(s.clearCachedUser(),n(null,"SUCCESS"))});},e.updateAttributes=function(n,i,s){var o=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return i(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:n,ClientMetadata:s},function(a,u){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",u)},{bypassCache:true})});},e.getUserAttributes=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){if(i)return n(i,null);for(var o=[],a=0;a<s.UserAttributes.length;a++){var u={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},c=new ue(u);o.push(c);}return n(null,o)});},e.getMFAOptions=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){return i?n(i,null):n(null,s.MFAOptions)});},e.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},e.refreshSessionIfPossible=function(n){var i=this;return n===void 0&&(n={}),new Promise(function(s){var o=i.signInUserSession.getRefreshToken();o&&o.getToken()?i.refreshSession(o,s,n.clientMetadata):s();})},e.getUserData=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return this.clearCachedUserData(),n(new Error("User is not authenticated"),null);var o=this.getUserDataFromCache();if(!o){this.fetchUserData().then(function(a){n(null,a);}).catch(n);return}if(this.isFetchUserDataAndTokenRequired(i)){this.fetchUserData().then(function(a){return s.refreshSessionIfPossible(i).then(function(){return a})}).then(function(a){return n(null,a)}).catch(n);return}try{n(null,JSON.parse(o));return}catch(a){this.clearCachedUserData(),n(a,null);return}},e.getUserDataFromCache=function(){var n=this.storage.getItem(this.userDataKey);return n},e.isFetchUserDataAndTokenRequired=function(n){var i=n||{},s=i.bypassCache,o=s===void 0?false:s;return o},e.fetchUserData=function(){var n=this;return this.createGetUserRequest().then(function(i){return n.cacheUserData(i),i})},e.deleteAttributes=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return i(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?i(o,null):s.getUserData(function(){return i(null,"SUCCESS")},{bypassCache:true})});},e.resendConfirmationCode=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.client.request("ResendConfirmationCode",s,function(o,a){return o?n(o,null):n(null,a)});},e.getSession=function(n,i){if(i===void 0&&(i={}),this.username==null)return n(new Error("Username is null. Cannot retrieve a new session"),null);if(this.signInUserSession!=null&&this.signInUserSession.isValid())return n(null,this.signInUserSession);var s="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,o=s+".idToken",a=s+".accessToken",u=s+".refreshToken",c=s+".clockDrift";if(this.storage.getItem(o)){var d=new Le({IdToken:this.storage.getItem(o)}),l=new Fe({AccessToken:this.storage.getItem(a)}),h=new Oe({RefreshToken:this.storage.getItem(u)}),p=parseInt(this.storage.getItem(c),0)||0,g={IdToken:d,AccessToken:l,RefreshToken:h,ClockDrift:p},_=new Me(g);if(_.isValid())return this.signInUserSession=_,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),d=c+".LastAuthUser";if(this.storage.getItem(d)){this.username=this.storage.getItem(d);var l=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(l),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(p,g){if(p)return p.code==="NotAuthorizedException"&&o.clearCachedUser(),a(p,null);if(g){var _=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(_,"RefreshToken")||(_.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(_),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new Le(n),s=new Fe(n),o=new Oe(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new Me(a)},e.forgotPassword=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",s,function(o,a){return o?n.onFailure(o):typeof n.inputVerificationCode=="function"?n.inputVerificationCode(a):n.onSuccess(a)});},e.confirmPassword=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:n,Password:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",a,function(u){return u?s.onFailure(u):s.onSuccess("SUCCESS")});},e.getAttributeVerificationCode=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:s},function(o,a){return o?i.onFailure(o):typeof i.inputVerificationCode=="function"?i.inputVerificationCode(a):i.onSuccess("SUCCESS")});},e.verifyAttribute=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:n,Code:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s.onFailure(o):s.onSuccess("SUCCESS")});},e.getDevice=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(i,s){return i?n.onFailure(i):n.onSuccess(s)});},e.forgetSpecificDevice=function(n,i){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:n},function(s){return s?i.onFailure(s):i.onSuccess("SUCCESS")});},e.forgetDevice=function(n){var i=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:n.onFailure,onSuccess:function(o){return i.deviceKey=null,i.deviceGroupKey=null,i.randomPassword=null,i.clearCachedDeviceKeyAndPassword(),n.onSuccess(o)}});},e.setDeviceStatusRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.setDeviceStatusNotRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.listDevices=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));var o={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:n};i&&(o.PaginationToken=i),this.client.request("ListDevices",o,function(a,u){return a?s.onFailure(a):s.onSuccess(u)});},e.globalSignOut=function(n){var i=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n.onFailure(s):(i.clearCachedUser(),n.onSuccess("SUCCESS"))});},e.signOut=function(n){var i=this;if(!n||typeof n!="function"){this.cleanClientData();return}this.getSession(function(s,o){if(s)return n(s);i.revokeTokens(function(a){i.cleanClientData(),n(a);});});},e.revokeTokens=function(n){if(n===void 0&&(n=function(){}),typeof n!="function")throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession){var s=new Error("User is not authenticated");return n(s)}if(!this.signInUserSession.getAccessToken()){var o=new Error("No Access token available");return n(o)}var a=this.signInUserSession.getRefreshToken().getToken(),u=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(u)&&a)return this.revokeToken({token:a,callback:n});n();},e.isSessionRevocable=function(n){if(n&&typeof n.decodePayload=="function")try{var i=n.decodePayload(),s=i.origin_jti;return !!s}catch{}return false},e.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser();},e.revokeToken=function(n){var i=n.token,s=n.callback;this.client.requestWithRetry("RevokeToken",{Token:i,ClientId:this.pool.getClientId()},function(o){if(o)return s(o);s();});},e.sendMFASelectionAnswer=function(n,i){var s=this,o={};o.USERNAME=this.username,o.ANSWER=n;var a={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,function(u,c){if(u)return i.onFailure(u);if(s.Session=c.Session,n==="SMS_MFA")return i.mfaRequired(c.ChallengeName,c.ChallengeParameters);if(n==="SOFTWARE_TOKEN_MFA")return i.totpRequired(c.ChallengeName,c.ChallengeParameters)});},e.getUserContextData=function(){var n=this.pool;return n.getUserContextData(this.username)},e.associateSoftwareToken=function(n){var i=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s,o){return s?n.onFailure(s):n.associateSecretCode(o.SecretCode)}):this.client.request("AssociateSoftwareToken",{Session:this.Session},function(s,o){return s?n.onFailure(s):(i.Session=o.Session,n.associateSecretCode(o.SecretCode))});},e.verifySoftwareToken=function(n,i,s){var o=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:n,FriendlyDeviceName:i},function(a,u){return a?s.onFailure(a):s.onSuccess(u)}):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:n,FriendlyDeviceName:i},function(a,u){if(a)return s.onFailure(a);o.Session=u.Session;var c={};c.USERNAME=o.username;var d={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(d.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",d,function(l,h){return l?s.onFailure(l):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Ee(Cn());function Ve(){}Ve.prototype.userAgent=Pn();var Dn=function(e){var t=Ve.category?" "+Ve.category:"",n=Ve.framework?" framework/"+Ve.framework:"",i=""+Ve.prototype.userAgent+t+n;return i};function Ja(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,He(r,e);}function pr(r){var e=typeof Map=="function"?new Map:void 0;return pr=function(n){if(n===null||!Qa(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,i);}function i(){return Ga(n,arguments,mr(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),He(i,n)},pr(r)}function Ga(r,e,t){if(kn())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(r.bind.apply(r,n));return t&&He(i,t.prototype),i}function kn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (kn=function(){return !!r})()}function Qa(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}}function He(r,e){return He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},He(r,e)}function mr(r){return mr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},mr(r)}var za=(function(r){function e(t,n,i,s){var o;return o=r.call(this,t)||this,o.code=n,o.name=i,o.statusCode=s,o}return Ja(e,r),e})(pr(Error)),Nn=(function(){function r(t,n,i){this.endpoint=n||"https://cognito-idp."+t+".amazonaws.com/";var s=i||{},o=s.credentials;this.fetchOptions=o?{credentials:o}:{};}var e=r.prototype;return e.promisifyRequest=function(n,i){var s=this;return new Promise(function(o,a){s.request(n,i,function(u,c){u?a(new za(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;eu(function(u){return new Promise(function(c,d){o.request(n,u,function(l,h){l?d(l):c(h);});})},[i],a).then(function(u){return s(null,u)}).catch(function(u){return s(u)});},e.request=function(n,i,s){var o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+n,"X-Amz-User-Agent":Dn(),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(i)}),u;fetch(this.endpoint,a).then(function(d){return u=d,d},function(d){throw d instanceof TypeError?new Error("Network error"):d}).then(function(d){return d.json().catch(function(){return {}})}).then(function(d){if(u.ok)return s(null,d);var l=(d.__type||d.code).split("#").pop(),h=new Error(d.message||d.Message||null);return h.name=l,h.code=l,s(h)}).catch(function(d){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var l=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=l,h.name=l,h.statusCode=u.status,s(h)}catch{return s(d)}else d instanceof Error&&d.message==="Network error"&&(d.code="NetworkError");return s(d)});},r})();var vt={debug:function(){}};var Ya=function(e){var t="nonRetryable";return e&&e[t]};function Fn(r,e,t,n){if(n===void 0&&(n=1),typeof r!="function")throw Error("functionToRetry must be a function");return vt.debug(r.name+" attempt #"+n+" with args: "+JSON.stringify(e)),r.apply(void 0,e).catch(function(i){if(vt.debug("error on "+r.name,i),Ya(i))throw vt.debug(r.name+" non retryable error",i),i;var s=t(n,e,i);if(vt.debug(r.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return Fn(r,e,t,n+1)});throw i})}function Xa(r){var e=100,t=100;return function(n){var i=Math.pow(2,n)*e+t*Math.random();return i>r?false:i}}function eu(r,e,t){return Fn(r,e,Xa(t))}var tu=55,_r=(function(){function r(t,n){var i=t||{},s=i.UserPoolId,o=i.ClientId,a=i.endpoint,u=i.fetchOptions,c=i.AdvancedSecurityDataCollectionFlag;if(!s||!o)throw new Error("Both UserPoolId and ClientId are required.");if(s.length>tu||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var d=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new Nn(d,a,u),this.advancedSecurityDataCollectionFlag=c!==false,this.storage=t.Storage||new Et().getStorage(),n&&(this.wrapRefreshSessionCallback=n);}var e=r.prototype;return e.getUserPoolId=function(){return this.userPoolId},e.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},e.getClientId=function(){return this.clientId},e.signUp=function(n,i,s,o,a,u){var c=this,d={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(d.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",d,function(l,h){if(l)return a(l,null);var p={Username:n,Pool:c,Storage:c.storage},g={user:new pe(p),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new pe(s)}return null},e.getUserContextData=function(n){if(!(typeof AmazonCognitoAdvancedSecurityData>"u")){var i=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var s=i.getData(n,this.userPoolId,this.clientId);if(s){var o={EncodedData:s};return o}}return {}}},r})();Ee(Mn());var f=class extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let i=2;i<e.length&&typeof e[i]=="string";i++)n+=e[i];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause);}else super((e?.message||(typeof e=="string"?e:"Something went wrong.")).trim()),typeof e=="string"?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):typeof e=="object"&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause);}};var me="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",yr=BigInt(me.length),ru=2*1024*1024,nu=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],Vn={auth_time:"log",sub:"user_id"},iu=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Kn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Bn=typeof TextEncoder<"u"?new TextEncoder:null;function su(){if(typeof globalThis<"u")return globalThis.Buffer}function ou(r){if(Bn)return Bn.encode(r);let e=unescape(encodeURIComponent(r)),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function au(r){if(r instanceof Uint8Array)return r;if(typeof r=="string")return ou(r);if(typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer)return new Uint8Array(r);if(typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);if(Array.isArray(r))return Uint8Array.from(r);let e=su();if(e)return new Uint8Array(e.from(r));throw new Error("No byte conversion available in this environment.")}var A=class A{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let t=A.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,u,c,d;for(let l=0;l<t.length;l+=16)a=n,u=i,c=s,d=o,n=A.ff(n,i,s,o,t[l],7,-680876936),o=A.ff(o,n,i,s,t[l+1],12,-389564586),s=A.ff(s,o,n,i,t[l+2],17,606105819),i=A.ff(i,s,o,n,t[l+3],22,-1044525330),n=A.ff(n,i,s,o,t[l+4],7,-176418897),o=A.ff(o,n,i,s,t[l+5],12,1200080426),s=A.ff(s,o,n,i,t[l+6],17,-1473231341),i=A.ff(i,s,o,n,t[l+7],22,-45705983),n=A.ff(n,i,s,o,t[l+8],7,1770035416),o=A.ff(o,n,i,s,t[l+9],12,-1958414417),s=A.ff(s,o,n,i,t[l+10],17,-42063),i=A.ff(i,s,o,n,t[l+11],22,-1990404162),n=A.ff(n,i,s,o,t[l+12],7,1804603682),o=A.ff(o,n,i,s,t[l+13],12,-40341101),s=A.ff(s,o,n,i,t[l+14],17,-1502002290),i=A.ff(i,s,o,n,t[l+15],22,1236535329),n=A.gg(n,i,s,o,t[l+1],5,-165796510),o=A.gg(o,n,i,s,t[l+6],9,-1069501632),s=A.gg(s,o,n,i,t[l+11],14,643717713),i=A.gg(i,s,o,n,t[l],20,-373897302),n=A.gg(n,i,s,o,t[l+5],5,-701558691),o=A.gg(o,n,i,s,t[l+10],9,38016083),s=A.gg(s,o,n,i,t[l+15],14,-660478335),i=A.gg(i,s,o,n,t[l+4],20,-405537848),n=A.gg(n,i,s,o,t[l+9],5,568446438),o=A.gg(o,n,i,s,t[l+14],9,-1019803690),s=A.gg(s,o,n,i,t[l+3],14,-187363961),i=A.gg(i,s,o,n,t[l+8],20,1163531501),n=A.gg(n,i,s,o,t[l+13],5,-1444681467),o=A.gg(o,n,i,s,t[l+2],9,-51403784),s=A.gg(s,o,n,i,t[l+7],14,1735328473),i=A.gg(i,s,o,n,t[l+12],20,-1926607734),n=A.hh(n,i,s,o,t[l+5],4,-378558),o=A.hh(o,n,i,s,t[l+8],11,-2022574463),s=A.hh(s,o,n,i,t[l+11],16,1839030562),i=A.hh(i,s,o,n,t[l+14],23,-35309556),n=A.hh(n,i,s,o,t[l+1],4,-1530992060),o=A.hh(o,n,i,s,t[l+4],11,1272893353),s=A.hh(s,o,n,i,t[l+7],16,-155497632),i=A.hh(i,s,o,n,t[l+10],23,-1094730640),n=A.hh(n,i,s,o,t[l+13],4,681279174),o=A.hh(o,n,i,s,t[l],11,-358537222),s=A.hh(s,o,n,i,t[l+3],16,-722521979),i=A.hh(i,s,o,n,t[l+6],23,76029189),n=A.hh(n,i,s,o,t[l+9],4,-640364487),o=A.hh(o,n,i,s,t[l+12],11,-421815835),s=A.hh(s,o,n,i,t[l+15],16,530742520),i=A.hh(i,s,o,n,t[l+2],23,-995338651),n=A.ii(n,i,s,o,t[l],6,-198630844),o=A.ii(o,n,i,s,t[l+7],10,1126891415),s=A.ii(s,o,n,i,t[l+14],15,-1416354905),i=A.ii(i,s,o,n,t[l+5],21,-57434055),n=A.ii(n,i,s,o,t[l+12],6,1700485571),o=A.ii(o,n,i,s,t[l+3],10,-1894986606),s=A.ii(s,o,n,i,t[l+10],15,-1051523),i=A.ii(i,s,o,n,t[l+1],21,-2054922799),n=A.ii(n,i,s,o,t[l+8],6,1873313359),o=A.ii(o,n,i,s,t[l+15],10,-30611744),s=A.ii(s,o,n,i,t[l+6],15,-1560198380),i=A.ii(i,s,o,n,t[l+13],21,1309151649),n=A.ii(n,i,s,o,t[l+4],6,-145523070),o=A.ii(o,n,i,s,t[l+11],10,-1120210379),s=A.ii(s,o,n,i,t[l+2],15,718787259),i=A.ii(i,s,o,n,t[l+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,u),s=A.ad(s,c),o=A.ad(o,d);return A.rh(n)+A.rh(i)+A.rh(s)+A.rh(o)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=A.alphabet.charAt(e>>n*8+4&15)+A.alphabet.charAt(e>>n*8&15);return t}static ad(e,t){let n=(e&65535)+(t&65535);return (e>>16)+(t>>16)+(n>>16)<<16|n&65535}static rl(e,t){return e<<t|e>>>32-t}static cm(e,t,n,i,s,o){return A.ad(A.rl(A.ad(A.ad(t,e),A.ad(i,o)),s),n)}static ff(e,t,n,i,s,o,a){return A.cm(t&n|~t&i,e,t,s,o,a)}static gg(e,t,n,i,s,o,a){return A.cm(t&i|n&~i,e,t,s,o,a)}static hh(e,t,n,i,s,o,a){return A.cm(t^n^i,e,t,s,o,a)}static ii(e,t,n,i,s,o,a){return A.cm(n^(t|~i),e,t,s,o,a)}static sb(e){let t,n=(e.length+8>>6)+1,i=new Array(n*16);for(t=0;t<n*16;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[n*16-2]=e.length*8,i}};A.alphabet="0123456789abcdef";var Q=A;function Hn(r){if(r===0)return me[0];let e="";for(;r>0;)e=me[r%62]+e,r=Math.floor(r/62);return e}function ne(r){return r.split("").reverse().reduce((e,t,n)=>e+me.indexOf(t)*62**n,0)}function We(r=6){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t.length,i=0;for(;i<r;)e+=t.charAt(Math.floor(Math.random()*n)),i+=1;return e}function wr(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !wr()&&typeof document<"u"&&typeof document.createElement=="function"}function Tt(r){let e;try{e=JSON.stringify(r);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>ru)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function qn(r){return r===""||r==="on"||r==="true"}function $n(r){return r==="false"}function jn(r,e,t){e.name&&t(r,e.name,e.value);}var Rt=z(),uu=typeof SubmitEvent<"u",cu=typeof HTMLFormElement<"u";function N(r,e,t){let n={},i=[];function s(u,c,d){if(e?.ignoreEmpty&&d==="")return;if(e?.nullIfEmpty&&d===""&&(d=null),typeof t=="function"){let p=t(c,d);p!==void 0&&(d=p);}let l=c.split("[").map(p=>{let g=p.replace("]",""),_=Number(g);return !isNaN(_)&&!g.includes(".")?g=_:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof l[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let p=0;p<l.length;p++){let g=l[p];p<l.length-1?(h[g]===void 0&&(typeof l[p+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=d:Array.isArray(h[g])?h[g].push(d):h[g]=[h[g],d];}}function o(u,c,d){if(d instanceof File)u.push({name:c,file:d});else if(d instanceof FileList&&d&&d.length>0)for(let l=0;l<=d.length-1;l++){let h=d.item(l);h&&u.push({name:c,file:h});}}let a=u=>{u.name&&(u.type==="number"?u.value&&s(n,u.name,Number(u.value)):u.type==="checkbox"||u.type==="radio"?u.checked?u.type==="checkbox"&&u.value===""||qn(u.value)?s(n,u.name,true):$n(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(qn(u.value)?s(n,u.name,false):$n(u.value)&&s(n,u.name,true)):u.type==="file"?u.files&&u.files.length>0&&o(i,u.name,u.files):s(n,u.name,u.value));};if(Rt&&(r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement))return a(r),Tt(n),{data:n,files:i};if(Rt&&r instanceof FormData){for(let u of r.entries()){let c=u[0],d=u[1];if(d instanceof File||d instanceof FileList)o(i,c,d);else if(d instanceof Blob){let l=d;if(l.type==="application/json")try{let h=JSON.parse(l.text());s(n,c,h);}catch{s(n,c,l);}}else s(n,c,d);}return Tt(n),{data:n,files:i}}if(Rt&&uu&&r instanceof SubmitEvent&&(r=r.target),Rt&&cu&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),d=r.querySelectorAll("textarea");for(let l=0;l<c.length;l++)jn(n,c[l],s);for(let l=0;l<d.length;l++)jn(n,d[l],s);for(let l=0;l<u.length;l++)a(u[l]);return Tt(n),{data:n,files:i}}return Tt(r),{data:r,files:i}}function Je(r){let e={};for(let t in r){let n=r[t];if(!nu.includes(t))if(Vn[t])e[Vn[t]]=n;else if(t.includes("custom:"))e[t.replace("custom:","")]=n;else if(t==="address"){let i=n;if(i&&typeof i=="object"&&Object.keys(i).length){if(i?.formatted)try{e[t]=JSON.parse(i.formatted);}catch{e[t]=i.formatted;}}else e[t]=i;}else e[t]=n;}for(let t of ["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])t.includes("_public")?e.hasOwnProperty(t.split("_")[0])?e[t]=e.hasOwnProperty(t)?!!Number(e[t]):false:delete e[t]:e[t]=e.hasOwnProperty(t)?Number(e[t]):0;for(let t of ["email","phone_number"])e.hasOwnProperty(t)?e[t+"_verified"]=e[t+"_verified"]===true:delete e[t+"_verified"];return e}function Ar(r){if(r=_u(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=Kn[ne(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid.")}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid.");return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function Wn(r,e){let t=Kn.indexOf(r.slice(0,4)),n=iu[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return mu(s)}function lu(r){let e=0n;for(let t of r){let n=me.indexOf(t);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${t}`);e=e*yr+BigInt(n);}return e}function du(r,e=1){if(r<0n)throw new Error("INVALID_PARAMETER: Negative values are not supported.");if(r===0n)return "0".repeat(Math.max(1,e));let t="",n=r;for(;n>0n;){let i=Number(n%yr);t=me[i]+t,n/=yr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function fu(r){if(r===0n)return Uint8Array.from([0]);let e=[],t=r;for(;t>0n;)e.push(Number(t&0xffn)),t>>=8n;return e.reverse(),Uint8Array.from(e)}function hu(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function gu(r){let e=String(r).replace(/-/g,"");if(!/^[0-9a-fA-F]{32}$/.test(e))throw new Error("INVALID_PARAMETER: Invalid UUID format.");let t=new Uint8Array(16);for(let n=0;n<16;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}function pu(r){let e=Array.from(au(r),t=>t.toString(16).padStart(2,"0")).join("");return [e.slice(0,8),e.slice(8,12),e.slice(12,16),e.slice(16,20),e.slice(20)].join("-")}function mu(r){let e=String(r);if(e.split("-").length===2)return e;let t=e.match(/^([0-9A-Za-z]+)-([0-9A-Za-z]+)-([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/);if(!t)throw new Error("INVALID_PARAMETER: Input must match <base62>-<base62>-<uuid>.");let[,n,i,s]=t;if(n.length<2)throw new Error("INVALID_PARAMETER: The first part must contain at least 2 characters.");if(i.length>=me.length)throw new Error("INVALID_PARAMETER: The middle section is too long to encode.");let o=n.slice(0,2),a=n.slice(2),u=i+o,c=me[i.length]+a+u,d=gu(s),l=du(hu(d));return `${c}-${l}`}function _u(r){let e=String(r);if(e.split("-").length!==2)return e;let t=e.split("-");if(t.length!==2||!t[0]||!t[1])throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let[n,i]=t,s=me.indexOf(n[0]);if(s<0)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let o=n.slice(1),a=s+2;if(o.length<a)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let u=o.slice(0,o.length-a),c=o.slice(o.length-a),d=c.slice(s),l=c.slice(0,s),h=d+u;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(l))throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let p=lu(i),g=fu(p);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let _=new Uint8Array(16);_.set(g,16-g.length);let w=pu(_);return `${h}-${l}-${w}`}function Ge(r,e,t=[],n=null){let i=["string","number","boolean","object","array","function","null","undefined"];function s(g){return g!==null&&typeof g=="object"&&!Array.isArray(g)}function o(g){return s(g)}function a(g){return Array.isArray(g)}function u(g){return typeof g=="string"&&i.indexOf(g)!==-1}function c(g){return Array.isArray(g)?"array":g===null?"null":typeof g}function d(g){try{return JSON.stringify(g)}catch{return String(g)}}function l(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(_,w)=>typeof w=="function"?"custom validator":w)}catch{return String(g)}}function h(g,_){return _==="array"?Array.isArray(g):_==="object"?s(g):_==="null"?g===null:_==="undefined"?typeof g>"u":typeof g===_}function p(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
207
+ `+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let _=p(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=Ge(r[g],e[g],t,_);else {if(t.indexOf(_)!==-1)throw new Error(`Key "${_}" is required.`);let w=e[g];a(w)&&w.length>1&&typeof w[w.length-1]=="function"&&(r[g]=w[w.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let _=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let w=0;w<r.length;w++){let b=r[w];if(u(_)){if(!h(b,_))throw new Error(`Type <${c(b)}> is invalid in "${n}". Expected a list of Type <${_}>.`)}else if(typeof _=="function")r[w]=_(b);else if(b!==_)throw new Error(`Value ${d(b)} is invalid in "${n}". Expected a list of ${d(_)}.`)}g=true;}else if(Array.isArray(r)&&e.every(w=>!a(w)&&w!=="array")){for(let w=0;w<r.length;w++){let b=false,R="";for(let U of e)try{r[w]=Ge(r[w],U,t,n),b=!0;break}catch(x){typeof U=="function"&&(R=x?.message||String(x));}if(!b&&R)throw new Error(R);if(!b){let U=e.map(l).join(", ");throw new Error(`${d(r[w])} is invalid in "${n}". allowed types or values are: ${U}.`)}}g=true;}else {let w="";for(let b of e)try{r=Ge(r,b,t,n),g=!0;break}catch(R){typeof b=="function"&&(w=R?.message||String(R));}if(!g&&w)throw new Error(w)}if(!g){let _=e.map(l).join(", ");throw new Error(`${d(r)} is invalid in "${n}". allowed types or values are: ${_}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${d(r)} is invalid in "${n}". allowed type or value is: ${l(e)}.`)}function bu(r,e="User ID"){let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;if(r){if(typeof r!="string")throw new f(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!r.match(t))throw new f(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new f(`${e} is empty.`,{code:"INVALID_PARAMETER"});return r}function yu(r){if(r&&(typeof r!="string"||r.charAt(0)!=="+"||isNaN(Number(r.substring(1)))))throw new f('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return r||""}function wu(r){if(r){if(typeof r!="string")throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let e=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(r.length!==10||r.split("-").length!==3||!e.test(r))throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return r||""}function Au(r){if(r){if(typeof r!="string")throw new f('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(r.length<6)throw new f('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(r.length>60)throw new f('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"})}else throw new f('"password" is required.',{code:"INVALID_PARAMETER"});return r}function Su(r,e="email"){if(r){if(typeof r!="string")throw new f(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(r.length<5)throw new f(`"${e}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r)&&(r=r.trim(),r.split("@")[1].split(".").length>=2))return r.toLowerCase()}else throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new f(`"${r}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function Eu(r){let e=typeof window<"u",t=(()=>{let i=e&&window.location.origin||null;return i&&i.slice(-1)==="/"&&(i=i.slice(0,-1)),i})(),n=i=>{if(typeof i=="string"){if(i==="*")return "*";{let s=i.trim();if(s[0]==="/"&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=t+s;}else if(s[0]==="."&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let a=e?window.location.href.split("?")[0]:"";a.slice(-1)!=="/"&&(a+="/"),s=a+s.slice(1);}let o;try{o=new URL(s);}catch{throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(r)?r.map(i=>n(i)):n(r)}function vu(r,e,t=[],n){let i=N(r,n),s=i.data;e.service="string",e.owner="string";let o={};for(let a in e)if(s&&typeof s=="object"&&!Array.isArray(s)&&s.hasOwnProperty(a))if(typeof s[a]=="function")o[a]=s[a];else try{o[a]=JSON.parse(JSON.stringify(s[a]));}catch{o[a]=s[a];}n?.precall&&n.precall({data:o,files:i?.files||[]});try{return Ge(o,e,t)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var m={UserId:bu,PhoneNumber:yu,Birthdate:wu,Password:Au,Email:Su,Url:Eu,Params:vu};var F=null;function Sr(r){let e={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},t={};for(let n in r)if(n==="tkid"){let i=r[n].split("#");if(i.length===1){t.ticket_id=i[0];continue}t.ticket_id=i[1],t.consume_id=i[2],t.user_id=i[3];let s=i[2].slice(-4);if(t.is_test=s===":CHK",!r.stmp){let o=i[2].slice(0,-4);/^[0-9]+$/.test(o)?t.timestamp=parseInt(o,10):t.timestamp=ne(i[2].slice(0,-4));}}else e[n]?t[e[n]]=r[n]:t[n]=r[n];return t}async function Gn(r){if(!r.ticket_id)throw new f("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!r.method)throw new f('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let e=r.ticket_id;await this.__connection;let t=await T.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${e}`,r?.data||{},{method:r.method,auth:!!r?.auth});return Sr(t)}async function Qn(r,e){await this.__connection;let t=await T.bind(this)("ticket",Object.assign({exec:"list"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Sr),t}async function zn(r,e){await this.__connection;let t=await T.bind(this)("ticket",Object.assign({exec:"consumed"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Sr),t}async function Yn(r){return T.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function Xn(r){return T.bind(this)("register-ticket",Object.assign({exec:"unreg"},r),{auth:true})}async function Be(){if(await this.__connection,this.session){let r=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(t<r){this.log("request:requesting new token",null);try{await W.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session?.idToken?.payload?.exp,currentTime:r,expiresIn:t-r,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(n){throw this.log("request:new token error",n),new f("User login is required.",{code:"INVALID_REQUEST"})}}else this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:r,expiresIn:t-r,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token});return this.session?.idToken?.jwtToken}else throw this.log("request:no session",null),_e.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function Jn(r,e){return new Promise((t,n)=>{e.refreshSession(r.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(_e.bind(this)(),n(i)):s.isValid()?t(s):(_e.bind(this)(),n(new f("Invalid session.",{code:"INVALID_REQUEST"})));});})}function W(){if(!this.userPool)throw new f("User pool is missing",{code:"INVALID_REQUEST"});let r=()=>{let s=F.getSignInUserSession().getIdToken().payload||null,o=Je(s);return this.log("normalized user attribute",o),this.__user=o,o},e=async s=>new Promise((o,a)=>{this.log("getSession:option",s);let{refreshToken:u=false,skipUserUpdateEventTrigger:c=false}=s||{};if(u&&c&&(c=false),F=this.userPool.getCurrentUser(),!F){this.log("getSession:cognitoUser",F),_e.bind(this)(),a(null);return}let d=l=>{let h=l.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),_e.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=l,r(),c||this._runOnUserUpdateListeners(this.user),this.session};F.getSession((l,h)=>{if(this.log("getSession:getSessionCallback",{err:l,session:h}),!h){_e.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(l){Jn.bind(this)(h,F).then(b=>o(d(b))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),_=g.getExpiration(),w=_<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",_),this.log("getSession:isExpired",w),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),w||u||!h.isValid())Jn.bind(this)(h,F).then(b=>o(d(b))).catch(a);else try{o(d(h));}catch(b){a(b);}});}),t=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+Q.hash(s);return {cognitoUser:new pe({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,u=false)=>new Promise((c,d)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let l=t(s,a),h=l.cognitoUsername,p=new Bt({Username:h,Password:o});l.cognitoUser.authenticateUser(p,{newPasswordRequired:(g,_)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?l.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:w=>{F=l.cognitoUser,e().then(b=>c(this.user));},onFailure:w=>{d(new f(w.message||"Failed to authenticate user.",{code:w.code}));}}):d(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(_=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let _=[],{parsed:w,code:b}=It(g),R=typeof g?.message=="string"?g.message:"";if(b==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,_=["This account is disabled.","USER_IS_DISABLED"]):u?_=["The account already exists.","ACCOUNT_EXISTS"]:_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotFoundException"?_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,_=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(b==="TooManyRequestsException"||b==="LimitExceededException")&&(_=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),w.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),_.length){let U=_[1],x=_[0];d(new f(x,{code:U,cause:g}));}else d(w);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(d,l)=>{if(d){let{parsed:h,code:p}=It(d),g=[];p==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:p==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:p==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:p==="TooManyRequestsException"||p==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:p==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:p==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:d})):c(h);return}u(l);});})}}function It(r){let e=typeof r?.code=="string"&&r.code.trim()?r.code.trim():"ERROR",n=((typeof r?.message=="string"?r.message:typeof r=="string"?r:"An error occurred.")||"An error occurred.").trim();n||(n="An error occurred.");let i=n.match(/#([A-Za-z0-9_]+)\s*:\s*([\s\S]+)/),s=i?.[1]?.trim()||e,o=i?.[2]?.trim()||n;return {parsed:new f(o,{code:s,cause:r}),code:e}}async function Zn(r){await this.__authConnection;let e=r?.refreshToken||false;if(!e)return this.user;try{return await W.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},r)),this.user}catch{return null}}async function ei(r){await this.__connection,r=m.Params(r,{token:"string",id:"string",merge:s=>{if(s===void 0)return false;if(typeof s=="string")return [s];if(Array.isArray(s)){for(let o of s)if(typeof o!="string")throw new f('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"})}if(typeof s!="boolean"&&!Array.isArray(s))throw new f('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return s}});let e=await T.bind(this)("openid-logger",r),t=e.logger.split("#"),n=this.service+"-"+t[0],i=t[1];return {userProfile:await W.bind(this)().authenticateUser(n,i,true,true),openid:e.openid}}function Tu(r){let e=typeof globalThis<"u"?globalThis:void 0;if(e?.Buffer)return e.Buffer.from(r,"base64").toString("utf8");if(typeof atob=="function"){let t=atob(r),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return typeof TextDecoder<"u"?new TextDecoder().decode(n):t}throw new Error("No base64 decoder available in this environment")}function Ru(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Tu(n);return JSON.parse(i)}async function ti(r){await this.__authConnection,this.log("loginWithToken:params",r),r=m.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Ru(r.idToken);if(this.log("loginWithToken:idTokenPayload",e),e["custom:service"]!==this.service)throw new f("Token does not belong to this service.",{code:"INVALID_REQUEST"});let t=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<t)throw new f("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=Je(e),this.session=null,r.accessToken&&r.refreshToken)try{if(this.session=new Me({IdToken:new Le({IdToken:r.idToken}),AccessToken:new Fe({AccessToken:r.accessToken}),RefreshToken:new Oe({RefreshToken:r.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",pe),this.log("loginWithToken:userPool",this.userPool),pe&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),F=new pe(n),F.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof F,cognitoUserKeys:Object.keys(F||{}),cognitoUser:F});}}catch(n){this.log("loginWithToken:err",n);try{this.log("loginWithToken:err:stringified",JSON.stringify(n));}catch{this.log("loginWithToken:err:stringifyFail",String(n));}try{let i=Object.keys(n||{}),s=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(n||{}):[],o=Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors(n||{}):{};this.log("loginWithToken:createSessionError:allKeys",{keys:i,symbols:s,descriptors:o});}catch(i){this.log("loginWithToken:createSessionError:allKeysFail",String(i));}}return this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),this.user}async function J(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Qe.bind(this)(),false)}async function _e(r=false){let e=null;F&&(r?e=new Promise((n,i)=>{F.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):F.signOut());let t={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};e&&(e=await e);for(let n in t)this[n]=t[n];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),e}async function Qe(r){await this.__connection;let{data:e}=N(r);return await _e.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function ri(){if(!this.__request_signup_confirmation)throw new f("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await T.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function ni(r=false){if(typeof r=="string")r=m.Url(r);else if(typeof r!="boolean")throw new f("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new f("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await T.bind(this)("recover-account",{username:this.__disabledAccount,redirect:r}),"SUCCESS: Recovery e-mail has been sent."}async function Er(r){let e=m.Params(r,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,e.email)try{m.Email(e.email);}catch{e.username=e.email,delete e.email;}if(!e.username&&!e.email)throw new f('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await W.bind(this)().authenticateUser(e.username||e.email,e.password)}async function ii(r,e){await this.__authConnection;let t={username:"string",password:c=>m.Password(c),email:c=>m.Email(c),name:"string",address:c=>{if(!c)return "";if(typeof c=="string")return c;if(typeof c=="object")return JSON.stringify(c)},gender:"string",birthdate:c=>c?m.Birthdate(c):"",phone_number:c=>c?m.PhoneNumber(c):"",email_public:["boolean",()=>false],address_public:["boolean",()=>false],gender_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:"number",misc:"string",picture:c=>c?m.Url(c):"",profile:c=>c?m.Url(c):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:c=>c?m.Url(c):""},n=m.Params(r||{},t,["email","password"]);await Qe.bind(this)(),e=m.Params(e||{},{email_subscription:c=>{if(typeof c!="boolean")throw new f('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return c},signup_confirmation:c=>{let d=c;if(typeof c=="string")d=m.Url(c);else if(typeof c=="boolean")d=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(d&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return d},login:c=>{if(typeof c=="boolean"){if(e.signup_confirmation&&c)throw new f('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return c}throw new f('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let i=e?.login||false;if(n.signup_confirmation=e?.signup_confirmation||false,n.email_subscription=e?.email_subscription||false,n.email_public&&!n.signup_confirmation)throw new f('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});n.service=this.service,n.owner=this.owner;let s=W.bind(this)().createCognitoUser(n.username||n.email);for(let c of ["email_public","address_public","gender_public","birthdate_public","phone_number_public"])n[c]=n[c]?"1":"0";n.access_group&&(n.access_group=n.access_group.toString());let o=(await T.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:typeof n.signup_confirmation=="boolean"?JSON.stringify(n.signup_confirmation):n.signup_confirmation,email_subscription:n.email_subscription})).split(":"),a=o.slice(1).join(":"),u=[new ue({Name:"custom:signup",Value:o[0]}),new ue({Name:"locale",Value:a.split("#")[1]}),new ue({Name:"custom:signup_ticket",Value:a})];for(let c in t){let d=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(d.includes(c)?u.push(new ue({Name:"custom:"+c,Value:n[c]})):u.push(new ue({Name:c,Value:n[c]}))));}return await W.bind(this)().signup(s.cognitoUsername,n.password,u),n.signup_confirmation?(F=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?Er.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function si(){await this.__connection;let r=await T.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await Qe.bind(this)(),r}async function oi(r){await this.__connection;let e=m.Params(r,{email:i=>m.Email(i),code:["number","string"],new_password:i=>m.Password(i)},["email","code","new_password"]),t=e.code,n=e.new_password;return typeof t=="number"&&(t=t.toString()),new Promise(async(i,s)=>{W.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(t,n,{onSuccess:a=>{i("SUCCESS: New password has been set.");},onFailure:a=>{s(new f(a?.message||"Failed to reset password.",{code:a?.code||"ERROR",cause:a}));}});})}async function ai(r,e){await this.__connection;let t;if(!F)throw new f("The user has to be logged in.",{code:"INVALID_REQUEST"});if(r==="email"||r==="phone_number"){if(!this.__user.hasOwnProperty(r))throw new f(`No ${r==="email"?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});if(this.__user?.[`${r}_verified`])return `SUCCESS: "${r}" is verified.`;t=(e?m.Params(e,{code:"string"}):{}).code||"";}else return;return new Promise((n,i)=>{let s={onSuccess:o=>{t?W.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[r+"_verified"]=true),n(`SUCCESS: "${r}" is verified.`);}).catch(a=>{i(a);}):n("SUCCESS: Verification code has been sent.");},onFailure:o=>{i(new f(o.message||"Failed to request verification code.",{code:o?.code}));}};t?F?.verifyAttribute(r,t,s):(s.inputVerificationCode=null,F?.getAttributeVerificationCode(r,s));})}function ui(r){return ai.bind(this)("phone_number",r)}function ci(r){return ai.bind(this)("email",r)}async function li(r){await this.__connection;let e=m.Params(r,{email:t=>m.Email(t)},["email"]);return new Promise(async(t,n)=>{W.bind(this)().createCognitoUser(e.email).cognitoUser.forgotPassword({onSuccess:s=>{t("SUCCESS: Verification code has been sent.");},onFailure:s=>{let{parsed:o,code:a}=It(s),u={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[a]||o.code||a||"ERROR";n(new f(o.message,{code:u,cause:s}));}});})}async function di(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new f('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new f('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return m.Password(e.current_password),m.Password(e.new_password),new Promise((t,n)=>{F.changePassword(e.current_password,e.new_password,(i,s)=>{if(i){if(i?.code==="InvalidParameterException")n(new f("Invalid password parameter.",{code:"INVALID_PARAMETER"}));else if(i?.code==="NotAuthorizedException")n(new f("Incorrect password.",{code:"INVALID_REQUEST"}));else if(i?.code==="TooManyRequestsException"||i?.code==="LimitExceededException")n(new f("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}));else {let{parsed:o}=It(i);n(o);}return}t("SUCCESS: Password has been changed.");});})}async function fi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r||{},{user_id:i=>m.UserId(i),email:i=>m.Email(i),address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},name:"string",gender:"string",birthdate:i=>i?m.Birthdate(i):"",phone_number:i=>i?m.PhoneNumber(i):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:i=>i?m.Url(i):"",profile:i=>i?m.Url(i):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:i=>i?m.Url(i):""});if(e&&typeof e=="object"&&!Object.keys(e).length)return this.user;e.email&&(e.preferred_username=this.service+"-"+Q.hash(e.email));let t=[["email_public","email_verified","User's e-mail should be verified to set"],["phone_number_public","phone_number_verified","User's phone number should be verified to set"]];if(this.__user){for(let i of t)if(e[i[0]]&&!this.__user[i[1]])throw new f(`${i[2]} "${i[0]}" to true.`,{code:"INVALID_REQUEST"})}let n=[];for(let i in e){if(e[i]===this.user[i]){n.push(i);continue}if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(i)){let o=e[i];typeof o=="boolean"&&(o=o?"1":"0"),e["custom:"+i]=o,n.push(i);}}for(let i of n)delete e[i];if(e.user_id)if(e.user_id===this.user.user_id)delete e.user_id;else return T.bind(this)("admin-edit-profile",{attributes:e},{auth:true});if(e&&typeof e=="object"&&Object.keys(e).length){let i=[];for(let s in e)i.push(new ue({Name:s,Value:e[s]}));return await new Promise((s,o)=>{F?.updateAttributes(i,(a,u)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(u);});}),await W.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function hi(r,e){r=N(r).data,r||(r={searchFor:"timestamp",condition:">",value:0},e||(e={}),e.ascending=false),await this.__connection;let t={user_id:i=>Array.isArray(i)?i.map(s=>m.UserId(s)):m.UserId(i),email:"string",phone_number:"string",locale:i=>{if(typeof i!="string"||typeof i=="string"&&i.length>5)throw new f('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>m.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(r=m.Params(r,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Value does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i},range:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Range does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i}},n),r?.condition&&r?.condition!=="="&&r.hasOwnProperty("range"))throw new f("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(r.searchFor==="user_id"&&(r.condition!=="="||r.range))throw new f(`Conditions are not allowed on "${r.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof r?.value=="string"&&!r?.value)throw new f("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof r?.searchFor=="string"&&!r?.searchFor)throw new f('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return T.bind(this)("get-users",r,{auth:true,fetchOptions:e})}async function gi(r){await this.__connection;let e=await T.bind(this)("last-verified-email",r,{auth:true});return e.includes("SUCCESS")?(await W.bind(this)().getSession({refreshToken:true}),this.user):e}async function pi(r){return await this.__connection,r=m.Params(r,{username:m.Email,redirect:m.Url},["username"]),await T.bind(this)("request-username-change",r,{auth:true})}var Iu="1.1.0",Pu=class{constructor(r){de(this,"version",Iu);de(this,"items",[]);de(this,"breakWhenError",false);de(this,"batchSize",1);de(this,"onProgress");de(this,"activeCount",0);de(this,"currentCycleCompleted",[]);de(this,"stopProcessing",false);if(this.breakWhenError=!!r?.breakWhenError,this.batchSize=r?.batchSize??1,typeof this.batchSize!="number"||this.batchSize<1)throw new Error("batchSize must be at least 1");if(r?.onProgress)if(typeof r.onProgress=="function")this.onProgress=r.onProgress;else throw new Error("onProgress must be a function")}get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}add(r){let e=Array.isArray(r)?r:[r];for(let t of e){if(typeof t!="function")throw new Error("Each job must be a function that returns a Promise");this.items.push(t);}this.processNext();}processNext(){if(this.stopProcessing||this.items.length===0||this.activeCount>0)return;let r=this.items.splice(0,this.batchSize);this.activeCount=r.length,this.currentCycleCompleted=new Array(r.length),r.forEach((e,t)=>{Promise.resolve().then(()=>e()).then(n=>(this.finalizeJob(t,n,false),n)).catch(n=>(this.finalizeJob(t,n,true),n));});}finalizeJob(r,e,t){if(this.currentCycleCompleted[r]=e,this.activeCount-=1,t&&this.breakWhenError&&(this.stopProcessing=true,this.items=[]),this.activeCount!==0)return;let n=this.currentCycleCompleted.slice();this.currentCycleCompleted=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:n}),this.processNext();}terminate(){this.items=[];}},mi=Pu;var qe=null,bi=typeof SubmitEvent<"u",xu=typeof HTMLFormElement<"u",Ye=z(),vr=0;function yi(r){if(!r)return null;let e=Number(r);if(Number.isFinite(e))return Math.max(0,e*1e3);let t=Date.parse(r);return Number.isNaN(t)?null:Math.max(0,t-Date.now())}function Tr(r,e){return e>0?r/e*100:0}var _i=r=>{let{auth:e,type:t,endpoints:n}=r,i=n[0],s=n[1];if(vr++,t==="admin"){let o=Object.entries(i).filter(([a,u])=>a.includes(e?"_private":"_public")&&a!=="get_users_private"&&a!=="service_public"&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available admin gateways.",{code:"INVALID_REQUEST"});return o[vr%o.length]}if(t==="record"){let o=Object.entries(s).filter(([a,u])=>a.includes(e?"record_private":"record_public")&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available record gateways.",{code:"INVALID_REQUEST"});return o[vr%o.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Uu(r,e){let t=await Promise.all([this.admin_endpoint,this.record_endpoint]),n=t[0],i=t[1],s=r.split("?"),o=s.length>1?"?"+s[1]:"";switch(r=s[0],r){case "get-users":return n.get_users_private+r+o;case "service":return n.service_public+r+o;case "get-newsletters":case "get-public-newsletters":case "subscribe-newsletter":case "subscribe-public-newsletter":case "signupkey":case "admin-newsletter-request":case "admin-signup":case "confirm-signup":case "openid-logger":case "block-account":case "admin-edit-profile":case "remove-account":case "post-secure":case "recover-account":case "mock":case "grant-access":case "last-verified-email":case "ticket":case "register-ticket":case "get-newsletter-subscription":case "request-username-change":case "send-inquiry":case "register-newsletter-group":case "newsletter-group-endpoint":case "invitation-list":case "csr":return _i.bind(this)({auth:e,type:"admin",endpoints:t})+r+o;case "post-record":return (e?i.post_private:i.post_public)+r+o;case "get-records":return (e?i.get_private:i.get_public)+r+o;case "del-files":case "del-records":return i.del_private+r+o;case "store-subscription":case "get-vapid-public-key":case "push-notification":case "delete-subscription":case "subscription":case "get-subscription":case "get-table":case "get-tag":case "get-uniqueid":case "get-index":case "get-signed-url":case "grant-private-access":case "request-private-access-key":case "get-ws-group":case "check-schema":case "get-feed":case "castspell":case "dopamine":case "getspell":return _i.bind(this)({auth:e,type:"record",endpoints:t})+r+o;default:return m.Url(r)+o}}var ze={};function wi(){qe&&(qe.terminate(),qe=null);}async function T(r,e=null,t,n){this.log("request",{url:r,data:e,options:t,_etc:n||{}}),t=t||{};let{auth:i=false,method:s="post",bypassAwaitConnection:o=false}=t;s=s.toUpperCase();let a=null,u=e?.service||this.service,c=e?.owner||this.owner,d=null,l=await Uu.bind(this)(r,!!i);if(!o&&(a=await this.__connection,!a))throw new f("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});i&&(d=await Be.bind(this)());let h={},{fetchMore:p=false,progress:g}=t?.fetchOptions||{};if(t?.fetchOptions&&Object.keys(t.fetchOptions).length){for(let C of ["limit","startKey","ascending"])t.fetchOptions.hasOwnProperty(C)&&(h[C]=t.fetchOptions[C]);h=m.Params(h,{limit:C=>{if(typeof C!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(C>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return C},startKey:C=>C,ascending:"boolean"});}let _=n?.ignoreService?{}:{service:u,owner:c};Object.assign(_,h),e=N(e).data,e?e&&typeof e=="object"&&(e=Object.assign(_,e)):e=_;let w=`${s}:${i?"auth":"public"}:${r}`,b=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(Ye&&e instanceof FormData)){let C=function(D){return typeof D=="object"&&D!==null?Object.keys(D).sort().reduce((k,O)=>(typeof D[O]=="object"&&D[O]!==null?k[O]=C(D[O]):k[O]=D[O],k),{}):D};return Q.hash(w+"/"+JSON.stringify(C(e)))}return Q.hash(w+"/"+u)})(),{requestKey:R,requestKeyWithStartKey:U}=Cu.bind(this)({params:e,url:r,fetchMore:p,hashedParams:b});if(!R||R&&typeof R=="object")return R;if(this.log("requestKey",U),typeof U=="string"&&ze[U]instanceof Promise)return this.log("request:returning pending",U),ze[U];let x={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(t,"contentType")&&t.contentType!==void 0){let C=t.contentType===null?"application/x-www-form-urlencoded":t.contentType;C&&(x["Content-Type"]=C);}else x["Content-Type"]="application/json";d&&(x.Authorization=d);let $={public_identifier:this.__public_identifier,service:u,owner:c};x["Content-Meta"]=JSON.stringify($);let K={headers:x};if(t?.responseType&&(K.responseType=t.responseType),s==="GET"){if(e){let C=[];if(Ye&&e instanceof FormData?C=Array.from(e.entries()).map(([D,k])=>{let O=typeof k=="string"?k:k.name;return encodeURIComponent(D)+"="+encodeURIComponent(O)}):C=Object.keys(e).map(D=>{let k=e[D];return typeof k!="string"&&(k=JSON.stringify(k)),encodeURIComponent(D)+"="+encodeURIComponent(k)}),C.length){let D=l.includes("?")?l.endsWith("?")||l.endsWith("&")?"":"&":"?";l+=D+C.join("&");}}K.body=null;}else if(Ye&&e instanceof FormData)K.body=e;else if(x["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let C=new URLSearchParams;for(let D of Object.keys(e)){let k=e[D];C.append(D,typeof k=="string"?k:JSON.stringify(k));}K.body=C.toString();}else typeof e=="string"?K.body=e:K.body=e?JSON.stringify(e):null;if(K.method=s,qe===null){let C={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:D=>{this.onBatchProcess.forEach(k=>k(D));}};qe=new mi(C);}return this.log("request-opt",K),new Promise((C,D)=>{qe.add([async()=>{let k=Ai.bind(this)(l,K,g);ze[U]=k;try{let O=Du.bind(this)({hashedParam:R,requestKeyWithStartKey:U,url:r,fetched:await k});return delete ze[U],this.log("request:end",O),C(O),O}catch(O){throw delete ze[U],this.log("request:err",O),D(O),O}}]);})}function Cu(r){let{params:e={},url:t,fetchMore:n=false,hashedParams:i}=r||{};if(e.startKey){if(!(typeof e.startKey=="object"&&Object.keys(e.startKey).length)&&e.startKey!=="start"&&e.startKey!=="end")throw new f(`"${e.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});e.startKey==="start"&&(n=false,delete e.startKey);}if(!n){if(this.__cached_requests?.[t]?.[i]&&delete this.__cached_requests[t][i],this.__startKeyHistory?.[t]?.[i]){if(Array.isArray(this.__startKeyHistory[t][i])&&this.__startKeyHistory[t][i].length)for(let u of this.__startKeyHistory[t][i]){let c=i+Q.hash(u);this.__cached_requests?.[t]&&this.__cached_requests?.[t]?.[c]&&delete this.__cached_requests[t][c];}delete this.__startKeyHistory[t][i];}return {requestKeyWithStartKey:i,requestKey:i}}if(!Array.isArray(this.__startKeyHistory?.[t]?.[i]))return {requestKeyWithStartKey:i,requestKey:i};let s=this.__startKeyHistory[t][i],o=s[s.length-1],a=i;if(o){if(o==="end")return {requestKey:{list:[],startKey:"end",endOfList:true,startKeyHistory:s},requestKeyWithStartKey:a};a+=Q.hash(o),e.startKey=JSON.parse(o);}return this.__cached_requests?.[t]?.[a]?{requestKey:this.__cached_requests[t][a],requestKeyWithStartKey:a}:{requestKeyWithStartKey:a,requestKey:i}}function Ai(r,e,t){return new Promise((n,i)=>{let s=new XMLHttpRequest;s.open(e.method||"GET",r);for(var o in e.headers||{})s.setRequestHeader(o,e.headers[o]);e.responseType&&(s.responseType=e.responseType),s.onload=()=>{if(s.status<400)if(e.responseType=="json"||e.responseType=="blob")n(s.response);else {let a=s.responseText;try{a=JSON.parse(a);}catch{}n(a);}else if(s.status===429){let a=s.getResponseHeader("Retry-After"),u=yi(a);u!==null?setTimeout(()=>{Ai(r,e,t).then(n,i);},u):i("Too many requests");}else {let a=s.status,u=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],c=e.responseType=="blob"?s.response:s.responseText;try{c=JSON.parse(c);}catch{}if(typeof c=="string"){let d=c.split(":"),l=d.splice(0,1)[0].trim(),h=d.join(":").trim();i(new f(h||c,{code:u.includes(l)?l:"ERROR"}));}else if(typeof c=="object"&&c?.message){let d=c?.code||(a?a.toString():null)||"ERROR",l=c.message,h=c?.cause;typeof l=="string"&&(l=l.trim()),i(new f(l,{cause:h,code:d}));}else i(c);}},s.onerror=()=>i("Network error"),s.onabort=()=>i("Aborted"),s.ontimeout=()=>i("Timeout"),typeof t=="function"&&(s.onprogress=a=>{t({status:"download",progress:Tr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Tr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Du(r){let{hashedParam:e,requestKeyWithStartKey:t,url:n,fetched:i}=r;if(!i?.startKey)return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__startKeyHistory[n].hasOwnProperty(e)||(this.__startKeyHistory[n][e]=[]);let s=i.startKey==="end"?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][e].includes(s)||this.__startKeyHistory[n][e].push(s),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][e]},i)}async function xt(r,e){await this.__connection;let{record_id:t,service:n=this.service,progress:i}=e;if(!t)throw new f('"record_id" is required.',{code:"INVALID_PARAMETER"});if(bi&&r instanceof SubmitEvent&&(r=r.target),xu&&r instanceof HTMLFormElement&&(r=new FormData(r)),!Ye||!(r instanceof FormData))throw new f('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:We(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,u=(p,g,_)=>new Promise((w,b)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)w(R);else if(a.status===429){let U=a.getResponseHeader("Retry-After"),x=yi(U);x!==null?setTimeout(()=>{u(p,g,_).then(w,b);},x):b("Too many requests");}else b(R);},a.onerror=()=>b("Network error"),a.onabort=()=>b("Aborted"),a.ontimeout=()=>b("Timeout"),a.upload&&typeof _=="function"&&(a.upload.onprogress=_),a.send(g);});function c(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let _="";for(;p>0;)_=g[p%62]+_,p=Math.floor(p/62);return _}let d=[],l=[],h=[];for(let[p,g]of r.entries()){if(!(g instanceof File))continue;let _=Object.assign({key:p+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:w=null,url:b,cdn:R}=await T.bind(this)("get-signed-url",_,{auth:!!this.__user});h.push(R);let U=new FormData;for(let x in w)U.append(x,w[x]);U.append("file",g);try{await u(b,U,typeof i=="function"?x=>i({status:"upload",progress:Tr(x.loaded,x.total),currentFile:g,completed:d,failed:l,loaded:x.loaded,total:x.total,abort:()=>a.abort()}):null),d.push(g);}catch{l.push(g);}}return {completed:d,failed:l,bin_endpoints:h}}var Pt={};function v(r){let{preventMultipleCalls:e=false}=r||{};return function(t,n,i){let s=i.value;i.value=function(...o){let a=o[0],u=true,c=null,d="",l={},h=false;if(bi&&a instanceof SubmitEvent){a.preventDefault();let b=window.location.href;c=a.target;let R=new URL(c.action);d=R.href;let U=d?d.match(/(?<=\{).*?(?=\})/g):"";if(U)for(let x of U){if(!x)continue;let L=c.querySelector(`[name="${x}"]`);if(L)if(L.type==="file")for(let $=0;$<=L.files.length-1;$++)L.files[$]&&(l[x]||(l[x]=[]),l[x].push(new Promise((K,C)=>{let D=new FileReader;D.onload=function(){K(D.result);},D.readAsDataURL(L.files[$]),D.onerror=C;})));else d=d.replace(`{${x}}`,L.value);}c.getAttribute("action")===null?u=false:h=R.href===b;}let p=async b=>{if(d)for(let R in l)l[R].length&&(d=d.replace(`{${R}}`,(await Promise.all(l[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${Q.hash(d)}`,JSON.stringify(b)),h?window.location.replace(d):window.location.href=d),b},g,_=b=>{throw b instanceof f?b.name=n+"()":b=b instanceof Error?b:new f(b,{name:n+"()"}),b},w=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let b=await g;return p(b)}return p(g)}catch(b){throw _(b)}};if(e){let b=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Pt?.[b]||(Pt[b]=w().finally(()=>{delete Pt[b];})),Pt[b]}return w()};}}async function Si(){await this.__connection;let r=`${this.service}:${Q.hash(window.location.href.split("?")[0])}`,e=window.sessionStorage.getItem(r);if(window.sessionStorage.removeItem(r),e!==null){try{e=JSON.parse(e);}catch{}return e}return null}var ku=128,Nu=64,Fu=128,Lu=256,Ou="\u{10FFFF}",Mu=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,Vu=/[\/!*#]/;function we(r,e,t={}){let{allowEmpty:n=false,maxLength:i,blockKeyDelimiters:s=false,disallowLeadingDollar:o=false,onlyAlphanumeric:a=false}=t;if(typeof r!="string")throw new f(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(r))throw new f(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&r.length===0)throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&r.length>i)throw new f(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(Mu.test(r)||r.includes(Ou))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&Vu.test(r))throw new f(`"${e}" cannot include reserved delimiters: / ! * #`,{code:"INVALID_PARAMETER"});if(o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function Rr(r,e="table.name"){return we(r,e,{allowEmpty:false,maxLength:ku,blockKeyDelimiters:true})}function Ir(r,e="tag"){return we(r,e,{allowEmpty:false,maxLength:Nu,blockKeyDelimiters:true})}function Xe(r,e="index.name"){return we(r,e,{allowEmpty:false,maxLength:Fu,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Ei(r,e="index.value"){return we(r,e,{allowEmpty:true,maxLength:Lu})}function vi(r){if(!r.record_id&&!r.unique_id)return null;let e={};return r?.service&&(e.service=r.service),r?.owner&&(e.owner=r.owner),r?.record_id?e.record_id=we(r.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):r?.unique_id&&(e.unique_id=r.unique_id),e}function Pr(r){if(r===void 0)return 0;if(typeof r=="number"){if(r>99||r<0)throw new f('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else if(typeof r=="string"){if(r={private:"private",public:0,authorized:1,admin:99}[r],r===void 0)throw new f('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}else throw new f('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(!this.__user&&r)throw new f("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return r}var Ut=4503599627370496;function Ct(r){if(typeof r=="number"){if(r>Ut||r<-Ut)throw new f(`Number value should be within range -${Ut} ~ +${Ut}`,{code:"INVALID_PARAMETER"});return r}if(typeof r=="boolean")return r;if(typeof r=="string")return Ei(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function Ti(r,e){if(!e.index||!("value"in e.index))throw new f('"index.value" is required.',{code:"INVALID_PARAMETER"});if(e.index.name==="$record_id")throw new f(`Cannot do "index.range" on ${e.index.name}`,{code:"INVALID_PARAMETER"});if(typeof e.index.value!=typeof r)throw new f('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof r=="string"?Ei(r,"index.range"):r}var Dt={};async function $e(r,e){let t={user_id:"",record_id:"",updated:0,uploaded:0,readonly:false,table:{name:"",access_group:0,subscription:{is_subscription_record:false,upload_to_feed:false,notify_subscribers:false,feed_referencing_records:false,notify_referencing_records:false}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:false,can_remove_referencing_records:false,only_granted_can_reference:false},ip:"",bin:{}},n=false;function i(o){let a=o=="**"?"private":parseInt(o);return a=a==0?"public":a==1?"authorized":a==99?"admin":a,a}let s={ip:o=>{let a=o.split("#"),u=a[0];a.length>1&&(t.unique_id=a[1]),u.slice(-1)==="R"?(t.readonly=true,u=u.slice(0,-1)):t.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(u)&&(u=u.split("-").join("."),n=true),t.ip=u;},rec:o=>{if(!o)return;t.record_id=o;let a=o.substring(0,o.length-9),u=ne(a);t.uploaded=u;},usr:o=>{t.user_id=o;},tbl:o=>{if(o&&!t.table.name){let a=o.split("/");t.table.name=a[0],t.table.access_group=i(a[2]),a?.[3]&&(t.table.subscription.is_subscription_record=true);}},usr_tbl:o=>{let a=o.split("/");t.user_id||(t.user_id=a[0]),t.table.name||(t.table.name=a[1],t.table.access_group=i(a[3]),a?.[4]&&(t.table.subscription.is_subscription_record=true));},idx:o=>{if(!o)return;let a=o.split("!"),u=a.splice(0,1)[0],c=Bu("!"+a.join("!"));t.index={name:u,value:c};},ref:o=>{o&&(t.reference=o.split("/")[0]);},tags:o=>{t.tags=o;},upd:o=>{t.updated=o;},acpt_mrf:o=>{t.source.prevent_multiple_referencing=!o;},ref_limt:o=>{t.source.referencing_limit=o;},rfd:o=>{t.referenced_count=o;},bin:async o=>{let a={},u=t?.reference||null;if(Array.isArray(o)){let c=await Promise.all(o.map(async d=>{try{let l=d.split("/").slice(3).join("/"),h=l.split("/");if(h.length<12)return null;let p=decodeURIComponent(h[h.length-1]),g=decodeURIComponent(h[10]),_=h[9],w=h[8],b=i(h[6]),R=d;if(b!=="public")try{R=await kt.bind(this)(d,{dataType:"endpoint",_ref:u});}catch(x){console.error("Error getting signed url for private file:",x),R=d;}let U={access_group:b,filename:p,url:R,path:l,size:ne(_),uploaded:ne(w),getFile:(x,L)=>{let $={dataType:x||"download",progress:L,_ref:u,_update:U};return kt.bind(this)(R,$)}};return {pathKey:g,obj:U}}catch{return null}}));for(let d of c)if(d){if(a[d.pathKey]){a[d.pathKey].push(d.obj);continue}a[d.pathKey]=[d.obj];}}t.bin=a;},prv_acs:o=>{for(let a in o)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(a)?t.table.subscription[a]=o[a]:t.source[a]=o[a];},data:o=>{let a=o;o==="!D%{}"?a={}:o==="!L%[]"&&(a=[]),t.data=a;}};if(r.record_id)return r;for(let o in s)if(r.hasOwnProperty(o)){let a=s[o](r[o]);a instanceof Promise&&await a;}return n&&(t.user_id="anonymous:"+t.user_id),t}function Bu(r){let e=r.substring(3);switch(r.substring(0,3)){case "!S%":return e;case "!N%":let n=e.split("."),i=Number(n[0])-4503599627370496;return n.length===1?i:parseFloat(i.toString()+"."+n[1]);case "!B%":return e==="1";case "!L%":case "!D%":try{return JSON.parse(e)}catch{throw new f("Value parse error.",{code:"PARSE_ERROR"})}default:return r}}async function Ri(r){let{endpoints:e}=r;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new f('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let t=await T.bind(this)("del-files",{endpoints:e,storage:"records"},{auth:true,method:"post"}),n=[];for(let i in t)n.push($e.bind(this)(t[i]));return Promise.all(n)}async function kt(r,e){if(typeof r!="string")throw new f('"url" should be type: string.',{code:"INVALID_PARAMETER"});let t=r.split("?"),n=t.shift()||"",i=t.length?"?"+t.join("?"):"",s=m.Url(n);r=s+i;let o=false,a=s.split("/"),c=a[2].split("."),d=null;c.length===3&&c[1]==="skapi"&&(d=c[0],o=true);let l=a.slice(3),h=false;if(!o&&(l[0]==="auth"||l[0]==="publ"))try{m.UserId(l[2]),m.UserId(l[3]),h=l[0]=="auth",o=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let p=d?null:l[1];if(e=m.Params(e,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:"function",_ref:[null,"string"],_update:b=>b}),e?.dataType==="info")return {url:r,filename:l[l.length-1],fileKey:l[l.length-2],access_group:l[6]==="**"?"private":l[6]==="01"?"authorized":l[6]==="00"?"public":parseInt(l[6]),uploader:l[3],record_id:l[4]==="records"?l[5]:"N/A",filesize:ne(l[9]),uploaded:ne(l[8])};let g=r.split("/").slice(-1)[0],_=e.expires;if(_){if(!o)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(_<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let b={request:d?"get-host":"get",id:d||l[5],key:r,expires:_};p&&(b.service=p),r=(await T.bind(this)("get-signed-url",b,{auth:true})).url;}else if(h){let b=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<b)){this.log("getFile:requesting new token",null);try{await W.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:b,expiresIn:this.session?.idToken?.payload?.exp-b,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(L){throw this.log("getFile:new token error",L),new f("User login is required.",{code:"INVALID_REQUEST"})}}let R=this.bearerToken||this.session?.idToken?.jwtToken;if(!R||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(R)}`;let U=l[6]==="**"?"**":parseInt(l[6]),x=this.user?.access_group??-1;if(this.user.user_id!==l[3]&&(U==="**"||x<U)){let L=l[5];if(this.__private_access_key[L]&&typeof this.__private_access_key[L]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[L])}`;else if(this.owner!==this.host)try{let $=await this.requestPrivateRecordAccessKey({record_id:L,reference_id:e?._ref});r+=`&p=${encodeURIComponent($)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let b=document.createElement("a");return b.href=r,document.body.appendChild(b),b.setAttribute("download",g),b.target="_blank",b.click(),document.body.removeChild(b),null}return new Promise(async(b,R)=>{try{let U=await T.bind(this)(r,null,{method:"get",contentType:null,responseType:e?.dataType==="text"?"text":"blob",fetchOptions:{progress:e?.progress}},{ignoreService:!0});if(e?.dataType==="base64"){let x=new FileReader;x.onloadend=()=>b(x.result),x.readAsDataURL(U);}else b(U);}catch(U){R(U);}})}async function Ii(r,e=false){r=N(r,{ignoreEmpty:true}).data||{};let t="",n=vi(r);if(n)r=n,t=r.record_id||r.unique_id,typeof t=="string"&&(typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),this.__my_unique_ids[t]&&(e?delete this.__my_unique_ids[t]:r.record_id=this.__my_unique_ids[t]));else {let i=await J.bind(this)(),s=r?.reference,o=false;typeof s=="object"&&Object.keys(s).length&&(s?.record_id||s?.unique_id?(t=s.record_id||s.unique_id,t&&typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),r.reference=t):s?.user_id&&(o=s.user_id===this.user?.user_id,r.reference=s.user_id)),typeof r?.table=="string"&&(r.table={name:r.table,access_group:0}),r.index&&r.index.hasOwnProperty("range")&&r.index.hasOwnProperty("condition")&&delete r.index.range;let a=u=>({table:{name:c=>Rr(c,"table.name"),access_group:Pr.bind(this),subscription:c=>m.UserId(c,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",c=>Xe(c,"index.name")],value:c=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:m.UserId};if(d.hasOwnProperty(u.index.name)){let l=d[u.index.name];if(typeof l=="function")return l(c);if(l!==typeof c)throw new f(`"index.value" should be type: ${l}.`,{code:"INVALID_PARAMETER"});return c}return typeof c=="string"&&!c?"":Ct(c)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:c=>Ti(c,u)},tag:c=>{if(c==null)return c;if(typeof c=="string")return Ir(c,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=m.Params(r||{},a(r),o||i?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:t}}async function Pi(r,e){await this.__connection;let t=await Ii.bind(this)(r),n=t.is_reference_fetch,i=await T.bind(this)("get-records",t.query,{fetchOptions:e,auth:!!this.__user,method:this.__user?"post":"get"});n&&i?.reference_private_key&&typeof i.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key);let s=[];for(let o in i.list)s.push($e.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function xi(r){let e="",t=[],n=m.Params(r||{},{record_id:s=>we(s,"record_id",{allowEmpty:false,onlyAlphanumeric:true}),unique_id:["string",null],readonly:"boolean",table:{name:s=>Rr(s,"table.name"),subscription:[null,{is_subscription_record:"boolean",upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"}],access_group:Pr.bind(this)},source:{referencing_limit:s=>{if(s===null)return null;if(typeof s=="number"){if(0>s)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(s>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return s}throw new f('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:s=>{if(s===void 0)return;if(!s||Array.isArray(s)&&!s.length)return null;let o={name:u=>Xe(u,'"name" in "index_restrictions"'),value:u=>Ct(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof s.value!=typeof u)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!s.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return u}};Array.isArray(s)||(s=[s]);let a=s.map(u=>m.Params(u,o,["name"]));if(a.length)for(let u of a)u.condition&&u.hasOwnProperty("range")&&delete u.range;return a}},reference:s=>{if(s===null)return {record_id:null};if(s){if(typeof s=="string")return e=s,this.__my_unique_ids[s]?this.__my_unique_ids[s]:s;if(typeof s!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return m.Params(s,{unique_id:"string",record_id:o=>o==null?o:(e=o,typeof this.__private_access_key?.[o]=="string"&&(r.reference_private_key=this.__private_access_key[o]||void 0),we(o,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:s=>Xe(s,"index.name"),value:s=>Ct(s)}],tags:s=>{if(s==null)return s;if(typeof s=="string"&&(s=s.split(",").map(o=>o.trim())),!Array.isArray(s))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return s.map(o=>Ir(o,"tag"))},remove_bin:s=>{if(!s)return null;let o=[];if(Array.isArray(s))for(let a of s)if(typeof a=="string")o.push(decodeURIComponent(a.split("?")[0]));else if(a.url&&a.size&&a.filename){let c=a.url.split("/").slice(0,3).join("/")+"/"+a.path;o.push(c);}else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});return o},progress:"function",data:s=>s},[],{precall:s=>{let o=s?.data||{};if(!o?.record_id&&!o.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof o.table=="string"&&(o.table={name:o.table,access_group:0}),s.files&&(t=s.files);}}),i=r.progress||null;if(delete n.progress,!this.__user){let s=!!(n.table?.subscription?.is_subscription_record||n.table?.subscription?.upload_to_feed||n.table?.subscription?.notify_subscribers||n.table?.subscription?.feed_referencing_records||n.table?.subscription?.notify_referencing_records);if(n.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(n.table.access_group!=="public"&&n.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(n.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(n.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:n,progress:i,is_reference_post:e,files:t}}async function Ui(r){if(await this.__connection,!Array.isArray(r)||!r.length)throw new f('"params" should be a non-empty array.',{code:"INVALID_PARAMETER"});!this.__user;let t=[],n,i,s=null,a={_is_bulk_:r.map((h,p)=>{if(!h||typeof h!="object"||Array.isArray(h))throw new f(`"params[${p}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let g=xi.bind(this)(h),_=g.config;if(g.is_reference_post&&t.push(g.is_reference_post),typeof _.progress=="function"&&s===null&&(s=_.progress),_.service!==void 0){if(n===void 0)n=_.service;else if(n!==_.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(_.owner!==void 0){if(i===void 0)i=_.owner;else if(i!==_.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete _.progress,delete _.service,delete _.owner,_}),service:"",owner:""};n!==void 0&&(a.service=n),i!==void 0&&(a.owner=i);let u={auth:!!this.__user,method:"post"},c={};Object.keys(c).length&&Object.assign(u,{fetchOptions:c});let d=await T.bind(this)("post-record",a,u),l=await Promise.all(d.map(h=>$e.bind(this)(h,"called from postRecord")));for(let h=0;h<d.length;h++){let p=d[h],g=l[h];if(typeof p?.reference_private_key=="string")for(let _ of t)this.__private_access_key[_]=p.reference_private_key;g?.unique_id&&(this.__my_unique_ids[g.unique_id]=g.record_id);}return l}async function Ci(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=xi.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},u=[],c=N(r);t&&Array.isArray(t)&&t.length&&(u=u.concat(t)),c.files&&Array.isArray(c.files)&&c.files.length&&(u=u.concat(c.files));let d=null;d=Object.assign({data:c.data},i);let l={};typeof s=="function"&&(l.progress=s),Object.keys(l).length&&Object.assign(a,{fetchOptions:l});let h=await T.bind(this)("post-record",d,a);if(z()&&u.length){let g=new FormData;for(let b of u)g.append(b.name,b.file,b.file.name);let _={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(_.service=i.service);let{bin_endpoints:w}=await xt.bind(this)(g,_);h.bin?h.bin.push(...w):h.bin=w;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let p=await $e.bind(this)(h,"called from postRecord");return p.unique_id&&(this.__my_unique_ids[p.unique_id]=p.record_id,z()&&window.sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids))),p}async function Di(r,e){let t=await T.bind(this)("get-table",m.Params(r||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e})),n={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(t?.list))for(let i of t.list)for(let s in n)i.hasOwnProperty(s)&&(i[n[s]]=i[s],delete i[s]);return t}async function ki(r,e){if(!r?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let t=m.Params(r||{},{table:"string",index:s=>Xe(s,"index.name"),order:{by:["average_number","total_number","number_count","average_bool","total_bool","bool_count","string_count","index_name","number_of_records"],value:["string","number","boolean"],condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}},["table"]);if(t.hasOwnProperty("order")){if(!t.order?.by)throw new f('"order.by" is required.',{code:"INVALID_PARAMETER"});if(t.order.hasOwnProperty("condition")&&!t.order.hasOwnProperty("value"))throw new f('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("index")&&t.index.substring(t.index.length-1)!==".")throw new f('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let n=await T.bind(this)("get-index",t,Object.assign({auth:!!this.__user},{fetchOptions:e})),i={cnt_bool:"boolean_count",cnt_numb:"number_count",totl_numb:"total_number",totl_bool:"total_bool",avrg_numb:"average_number",avrg_bool:"average_bool",cnt_str:"string_count"};return Array.isArray(n?.list)&&(n.list=n.list.map(s=>{let o=s.idx.split("/"),a={table:o[1],index:o[2],number_of_records:s.cnt_rec};for(let u in i)Object.prototype.hasOwnProperty.call(s,u)&&(a[i[u]]=s[u]);return a})),n}async function Ni(r,e){let t=await T.bind(this)("get-tag",m.Params(r||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));return Array.isArray(t?.list)&&(t.list=t.list.map(n=>{let i=n.tag.split("/");return {table:i[1],tag:i[0],number_of_records:n.cnt_rec}})),t}async function Fi(r,e){let t=await T.bind(this)("get-uniqueid",m.Params(r||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));if(Array.isArray(t?.list))for(let n in t.list){let i=t.list[n];t.list[n]={unique_id:i.unq,record_id:i.rec};}return t}async function Li(r,e){await this.__connection;let t=await Ii.bind(this)(r,true),n=t.is_reference_fetch,i=await T.bind(this)("del-records",t.query,{auth:true,fetchOptions:e});return n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),i?.message||i}function Oi(r){return qi.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function Mi(r){return qi.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function Vi(r,e){let t={record_id:r.record_id||void 0,user_id:r.user_id||void 0,execute:"list"};if(!t.record_id&&!t.user_id)throw new f("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(t.user_id)if(typeof t.user_id=="string")m.UserId(t.user_id),t.user_id=[t.user_id];else if(Array.isArray(t.user_id))for(let s of t.user_id)m.UserId(s);else throw new f("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});let n=s=>(s.rec_usr?(s.record_id=s.rec_usr.split("/")[0],s.user_id=s.rec_usr.split("/")[1]):s.usr_rec&&(s.user_id=s.usr_rec.split("/")[0],s.record_id=s.usr_rec.split("/")[1]),s),i=await T.bind(this)("grant-private-access",t,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function Bi(r){let e=r.record_id,t=r.reference_id||void 0;if(!e)throw new f("Record ID is required.",{code:"INVALID_PARAMETER"});if(typeof e!="string")throw new f("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(t&&typeof t!="string")throw new f("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(typeof this.__private_access_key[e]=="string")return Promise.resolve(this.__private_access_key[e]);if(Dt[e])return Dt[e];let n=T.bind(this)("request-private-access-key",{record_id:e,reference_id:t},{auth:true}).then(i=>{let s=typeof i=="string"?i:i?.private_key;if(typeof s!="string")throw new f("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete Dt[e];});return Dt[e]=n,n}function qi(r){r.execute;let t=m.Params(r,{record_id:"string",user_id:n=>{if(!n)throw new f("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new f("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)m.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),T.bind(this)("grant-private-access",t,{auth:true})}var I={},q={},ie={},le={},ce={},Nt={},Ft={};function $i(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function Lt(r,e,t){let n=[];if(r[e]){for(let i of r[e])if(i){let s=t(i);s instanceof Promise&&(s=await s),n.push(s);}delete r[e];}return n}async function Ur(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let t=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await I[s].setRemoteDescription(new RTCSessionDescription(i));let a=await I[s].createAnswer();await I[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}I?.[e]?r?(await Lt(Ft,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await Lt(Ft,e,i=>n.bind(this)(i,e,t)):r&&$i(Ft,e,r);}async function Cr(r,e){if(this.log("receiveIceCandidate",r),I?.[e]&&I[e]?.remoteDescription&&I[e]?.remoteDescription?.type){if(!r)return Lt(Nt,e,t=>I[e].addIceCandidate(t));await Lt(Nt,e,t=>I[e].addIceCandidate(t)),await I[e].addIceCandidate(r);}else $i(Nt,e,r);}async function se(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});m.Params(r,{cid:s=>{if(typeof s!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(s&&s.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return s},close:"boolean"});let e=await this.__socket,{cid:t,close_all:n=false}=r||{};if(!n&&!t)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});let i=s=>{if(!s)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete Ft[s],delete Nt[s],q[s]&&Object.values(q[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete q[s],I?.[s]){I[s].connectionState!=="closed"&&(I[s].close(),e.send(JSON.stringify({action:"rtc",uid:s,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let o={type:"connectionstatechange",target:I[s],timestamp:new Date().toISOString(),state:I[s].connectionState,iceState:I[s].iceConnectionState,signalingState:I[s].signalingState};ce[s]&&ce[s](o),this.log("closeRTC",o);}delete ce[s],delete le[s],delete ie[s],delete I[s];};if(n)for(let s in I)i(s);else i(t);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function ji(r){if(r instanceof MediaStream)return r;if(!r.video&&!r.audio){let e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;let i=t.captureStream().getVideoTracks()[0];return e.addTrack(i),e}return window.navigator.mediaDevices.getUserMedia(r)}async function Ki(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof e!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});r=m.Params(r,{cid:o=>{if(typeof o!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&o.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return o},ice:["string",()=>"stun:stun.skapi.com:3468"],media:o=>o,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:true,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:t,ice:n}=r;if(!(r?.media instanceof MediaStream)&&(r?.media?.video||r?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(i.readyState!==1)throw new f("Realtime connection is not ready.",{code:"INVALID_REQUEST"});let s={iceServers:[{urls:n}]};I?.[t]||(I[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await ji(r.media),this.__mediaStream.getTracks().forEach(o=>{I[t].addTrack(o,this.__mediaStream);})),ce[t]=e,q[t]||(q[t]={});for(let o=0;o<r.channels.length;o++){let a=r.channels[o];if(typeof a=="string")switch(a){case "text-chat":a={ordered:true,maxRetransmits:10,protocol:"text-chat"};break;case "file-transfer":a={ordered:false,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case "video-chat":a={ordered:true,maxRetransmits:10,protocol:"video-chat"};break;case "voice-chat":a={ordered:true,maxRetransmits:10,protocol:"voice-chat"};break;case "gaming":a={ordered:false,maxPacketLifeTime:100,protocol:"gaming"};break;default:a={ordered:true,maxRetransmits:10,protocol:"default"};break}let u=a.protocol||"default";if(Object.keys(q[t]).includes(u))throw new f(`Data channel with the protocol "${u}" already exists.`,{code:"INVALID_REQUEST"});let c=I[t].createDataChannel(u,a);q[t][u]=c;}for(let o in q[t]){let a=q[t][o];Ji.bind(this)(t,a);}return Wi.bind(this)(t,["onnegotiationneeded"]),await xr.bind(this)(t),{hangup:()=>ie[t]&&ie[t](false),connection:new Promise(o=>{ie[t]=(a=>{if(this.log("receiver picked up the call",t),!a)return se.bind(this)({cid:t}),null;I[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),xr.bind(this)(t),ce[t]&&ce[t]({type:"negotiationneeded",target:I[t],timestamp:new Date().toISOString(),signalingState:I[t].signalingState,connectionState:I[t].iceConnectionState,gatheringState:I[t].iceGatheringState});},o({target:I[t],channels:q[t],hangup:()=>se.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function Hi(r){return async(e,t)=>{e=e||{},e=N(e).data;let n=r.sender_cid,i=await this.__socket;if(!le[n])return null;if(typeof t!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=e;return I?.[n]||(I[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await ji(e.media),this.__mediaStream.getTracks().forEach(o=>{I[n].addTrack(o,this.__mediaStream);})),delete le[n],ce[n]=t,q[n]||(q[n]={}),I[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;q[n][a.label]=a,Ji.bind(this)(n,a);},Wi.bind(this)(n,["onnegotiationneeded"]),await Ur.bind(this)(null,n),await Cr.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:I[n],channels:q[n],hangup:()=>se.bind(this)({cid:n}),media:this.__mediaStream}}}async function xr(r){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",r);let e=await this.__socket,t=await I[r].createOffer();await I[r].setLocalDescription(t);let n=I[r].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:r,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function qu(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",e);let t=await this.__socket;if(!r.candidate){this.log("candidate-end","all ice candidates have been sent");return}let n=ce[e]||(()=>{}),i=r.candidate;this.log("ice gathering state set to",I[e].iceGatheringState),n({type:"icecandidate",target:I[e],timestamp:new Date().toISOString(),candidate:r.candidate.candidate,sdpMid:r.candidate.sdpMid,sdpMLineIndex:r.candidate.sdpMLineIndex,usernameFragment:r.candidate.usernameFragment,protocol:r.candidate.protocol,gatheringState:I[e].iceGatheringState,connectionState:I[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Wi(r,e){let t=new Set(e),n=ce[r]||(o=>{}),i=I[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{qu.bind(this)(o,r),o.candidate?n({type:"icecandidate",target:i,timestamp:new Date().toISOString(),candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex,usernameFragment:o.candidate.usernameFragment,protocol:o.candidate.protocol,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState}):n({type:"icecandidateend",target:i,timestamp:new Date().toISOString()});},onicecandidateerror:o=>{n({type:"icecandidateerror",target:i,timestamp:new Date().toISOString(),errorCode:o.errorCode,errorText:o.errorText,url:o.url,hostCandidate:o.hostCandidate,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState});},oniceconnectionstatechange:()=>{n({type:"iceconnectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceConnectionState,gatheringState:i.iceGatheringState,signalingState:i.signalingState});},onicegatheringstatechange:()=>{n({type:"icegatheringstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceGatheringState,connectionState:i.iceConnectionState,signalingState:i.signalingState});},onsignalingstatechange:()=>{n({type:"signalingstatechange",target:i,timestamp:new Date().toISOString(),state:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onnegotiationneeded:()=>{xr.bind(this)(r),n({type:"negotiationneeded",target:i,timestamp:new Date().toISOString(),signalingState:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onconnectionstatechange:()=>{n({type:"connectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.connectionState,iceState:i.iceConnectionState,signalingState:i.signalingState});let o=i.connectionState;(o==="disconnected"||o==="failed"||o==="closed")&&se.bind(this)({cid:r});}};for(let[o,a]of Object.entries(s))t.has(o)||(i[o]=a);}function Ji(r,e,t){let n=new Set(t),i=ce[r]||(o=>{}),s={onmessage:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,data:o.data,lastEventId:o.lastEventId,origin:o.origin,readyState:e.readyState,bufferedAmount:e.bufferedAmount};this.log(`${e.label}: message`,o.data),i(a);},onerror:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,error:o.error.message,errorCode:o.error.errorDetail,readyState:e.readyState,label:e.label};this.log(`${e.label}: error`,o.error.message),i(a);},onclose:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id};this.log(`${e.label}: closed`,null),i(a),q[r]&&(delete q[r][e.label],Object.keys(q[r]).length===0&&se.bind(this)({cid:r}));},onbufferedamountlow:o=>{let a={target:e,bufferedAmount:e.bufferedAmount,bufferedAmountLowThreshold:e.bufferedAmountLowThreshold,type:o.type,timeStamp:o.timeStamp};this.log(`${e.label}: bufferedamountlow`,e.bufferedAmount),i(a);},onopen:o=>{this.log("dataChannel",`data channel: "${e.label}" is open and ready to send messages.`);let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id,ordered:e.ordered,maxRetransmits:e.maxRetransmits,protocol:e.protocol};i(a);}};for(let[o,a]of Object.entries(s))n.has(o)||(e[o]=a);}var Se,Ae=null,Ze=true,je=0;async function $u(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.getProfile(),!this.session)throw new f("No access.",{code:"INVALID_REQUEST"});let r=await this.record_endpoint;return new WebSocket(r.websocket_private+"?token="+this.session.accessToken.jwtToken)}var Dr=null;async function Gi(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});Ze=true;let r=this.__socket?await this.__socket:this.__socket;se.bind(this)({close_all:true}),Se&&kr.bind(this)({group:null}),je=0,Ae&&(Ae.terminate(),Ae=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",Dr),this.__socket=null,null}async function Ot(r,e=50,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof r!="function")throw new f("Callback must be a function.",{code:"INVALID_REQUEST"});if(t==="reconnect"){if(this.__socket instanceof Promise){let n=await this.__socket;if(n.readyState!==WebSocket.CLOSED&&n.readyState!==WebSocket.CLOSING)return this.__socket}}else if(Ze&&(Dr=()=>{!document.hidden&&!Ze&&Ot.bind(this)(r,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;Ae&&(Ae.terminate(),Ae=null),this.__socket=new Promise(async n=>{await Be.bind(this)(),setTimeout(async()=>{let i=await $u.bind(this)();i.onopen=()=>{Ze=false,je=0,t!=="reconnect"&&window.addEventListener("visibilitychange",Dr),this.log("realtime onopen","Connected to WebSocket server."),r({type:"success",message:"Connected to WebSocket server."}),Se&&i.send(JSON.stringify({action:"joinRoom",rid:Se,token:this.session.accessToken.jwtToken}));let s=`
208
208
  let interval = 15000; // Set interval time 15 seconds
209
209
 
210
210
  function runInterval() {
@@ -213,9 +213,9 @@ var Ds=Object.create;var Pe=Object.defineProperty;var Lr=Object.getOwnPropertyDe
213
213
  }
214
214
 
215
215
  runInterval(); // Start interval
216
- `,o=new Blob([s],{type:"application/javascript"});we=new Worker(URL.createObjectURL(o)),we.onmessage=a=>{i.readyState===1&&i.send(JSON.stringify({action:"keepAlive"}));},n(i);},i.onmessage=async s=>{let o="";try{o=JSON.parse(decodeURI(s.data)),this.log("socket onmessage",o);}catch{return}let a;switch(true){case !!o?.["#message"]:a="message";break;case !!o?.["#private"]:a="private";break;case !!o?.["#notice"]:a="notice";break;case !!o?.["#rtc"]:a="rtc";break;case !!o?.["#error"]:a="error";break}if(!a)return;let u={type:a,message:o?.["#rtc"]||o?.["#message"]||o?.["#private"]||o?.["#notice"]||o?.["#error"]||null,sender:o?.["#user_id"]||null,sender_cid:o?.["#scid"]?"cid:"+o["#scid"]:null,sender_rid:o?.["#srid"]||null,code:o?.["#code"]||null};if(a==="notice")r(u);else if(a==="rtc"){if(u.sender!==this.user.user_id){let c=u.message;if(c.hungup){ie[u.sender_cid]&&(ie[u.sender_cid](false),delete ie[u.sender_cid]),le[u.sender_cid]&&delete le[u.sender_cid],I?.[u.sender_cid]&&se.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Cr.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Ur.bind(this)(c.sdpoffer,u.sender_cid),le[u.sender_cid]||(le[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=Qi.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{I[u.sender_cid]?se.bind(this)({cid:u.sender_cid}):le[u.sender_cid]&&(delete le[u.sender_cid],i.send(JSON.stringify({action:"rtc",uid:u.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));}).bind(this),r(u))),c.pickup&&ie[u.sender_cid]&&(ie[u.sender_cid](true),delete ie[u.sender_cid]),c.sdpanswer&&I[u.sender_cid])if(I[u.sender_cid].signalingState==="have-local-offer")await I[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{Ze?(this.log("realtime onclose","WebSocket connection closed."),r({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),r({type:"error",message:"Skapi: WebSocket unexpected close."}),je++,je<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+je),r({type:"reconnect",message:"Reconnecting to WebSocket server..."+je}),Ot.bind(this)(r,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),r({type:"error",message:"Skapi: Max reconnection attempts reached."})));},i.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),r({type:"error",message:"Skapi: WebSocket connection error."});};},e);});}async function Xi(r,e,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!e)throw new f("No recipient.",{code:"INVALID_REQUEST"});await Be.bind(this)(),r=N(r).data;let i="";if(t&&(t=m.Params(t,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),i=JSON.stringify({title:t.title,body:t.body}),new Blob([i]).size>3072))throw new f("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(n.readyState===1){try{m.UserId(e),n.send(JSON.stringify({action:"sendMessage",uid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}catch(s){if(this.log("postRealtime:err",{err:s}),Se!==e)throw new f(`User has not joined to the recipient group. Run joinRealtime({ group: "${e}" })`,{code:"INVALID_REQUEST"});n.send(JSON.stringify({action:"broadcast",rid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}return {type:"success",message:"Message sent."}}throw new f("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function kr(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await Be.bind(this)(),r=N(r,{nullIfEmpty:true}).data;let{group:t=null}=r;if(!t&&!Se)return {type:"success",message:"Left realtime message group."};if(t!==null&&typeof t!="string")throw new f('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:t,token:this.session.accessToken.jwtToken})),Se=t,{type:"success",message:t?`Joined realtime message group: "${t}".`:"Left realtime message group."}}async function Zi(r,e){r=m.Params(r,{user_id:n=>m.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!Se)throw new f('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Se}]});let t=await T.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({user_id:n.uid.split("#")[1],cid:"cid:"+n.cid})),t}async function es(r,e){if(await this.__connection,r||(r={searchFor:"group",value:" ",condition:">"}),r=m.Params(r,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>r?.searchFor&&r?.searchFor==="number_of_users"?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]}),r.condition||(r.value===" "||!r.value?r.condition=">":r.condition="="),r.range&&r.condition&&delete r.condition,r.searchFor==="number_of_users"&&typeof r.value!="number")throw new f('"value" must be a number.',{code:"INVALID_PARAMETER"});if(r.searchFor==="group"&&typeof r.value!="string")throw new f('"value" must be a string.',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("range")&&typeof r.range!=typeof r.value)throw new f(`"range" must be a ${typeof r.value}.`,{code:"INVALID_PARAMETER"});let t=await T.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({group:n.rid.split("#")[1],number_of_users:n.cnt})),t}var qu=typeof FormData<"u",$u=typeof HTMLFormElement<"u",ju=typeof SubmitEvent<"u";async function ts(r){let e=false,t=i=>{for(let s in i)if(typeof i[s]=="string"&&i[s].includes("$CLIENT_SECRET")){e=true;break}};if(r=m.Params(r,{url:i=>{if(!i||typeof i!="string")throw new f('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return m.Url(i),i.includes("$CLIENT_SECRET")&&(e=true),i},clientSecretName:"string",method:i=>{if(i&&typeof i!="string")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let s=i.toLowerCase();if(s!=="get"&&s!=="post"&&s!=="delete"&&s!=="put")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return s},headers:i=>{if(i&&typeof i!="object")throw new f('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i},data:i=>{if(i&&typeof i!="object")throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i},params:i=>{if(i&&typeof i!="object")throw new f('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i}},["clientSecretName","method","url"]),!e)throw new f(`At least one parameter value should include "$CLIENT_SECRET" in ${r.method.toLowerCase()==="post"?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let n=!!this.__user;return T.bind(this)("csr",r,{auth:n})}async function rs(r){await this.__connection;let e={name:"string",email:t=>(m.Email(t),t),subject:"string",message:"string"};return r=m.Params(r,e,["name","email","subject","message"]),await T.bind(this)("send-inquiry",r),"SUCCESS: Inquiry has been sent."}async function ns(r,e){if(await this.__connection,qu&&r instanceof FormData||$u&&r instanceof HTMLFormElement||ju&&r instanceof SubmitEvent){if(!e)throw new f("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=N(r);r={url:e,data:n.data,sync:true};}let t={url:n=>m.Url(n),data:n=>n,sync:["boolean",()=>true]};if(Array.isArray(r))for(let n of r)n=m.Params(n,t);else r=m.Params(r,t);return T.bind(this)("post-secure",r,{auth:true})}async function is(r,e){await this.__connection;let{auth:t=false,method:n="POST",bypassAwaitConnection:i=false,responseType:s,contentType:o,progress:a}=e||{};if(e=Object.assign({auth:t,method:n,bypassAwaitConnection:i,responseType:s,contentType:o},{fetchOptions:{progress:a}}),typeof r!="object"&&(o==="application/json"||o===void 0))throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return T.bind(this)("mock",r,e)}async function ss(r,e){await this.__connection,r=m.Params(r||{},{access_group:n=>{if(n==="authorized"&&(n=1),n==="public"&&(n=0),typeof n!="number")throw new f('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(n<0)throw new f('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(n>this.__user.access_group)throw new f("User has no access.",{code:"INVALID_REQUEST"});return n}});let t=await T.bind(this)("get-feed",r,{auth:true,fetchOptions:e});for(let n in t.list)t.list[n]=await $e.bind(this)(t.list[n]);return t}function et(r){if(r===this.__user.user_id)throw new f(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return m.UserId(r,'"user_id"')}async function os(r,e){if(r=N(r,{ignoreEmpty:true}).data,r=m.Params(r,{subscriber:n=>m.UserId(n,'User ID in "subscriber"'),subscription:et.bind(this),blocked:"boolean"}),!r.subscriber&&!r.subscription)throw new f('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let t=await T.bind(this)("get-subscription",r,Object.assign({auth:true},{fetchOptions:e}));return t.list=t.list.map((n=>{let i={};if(n.sub){let s=n.sub.split("#");i.subscriber=s[2],i.subscription=s[0];}else i.subscriber=n.subscriber,i.subscription=n.subscription;return i.timestamp=n?.timestamp||n.stmp,i.blocked=n?.blocked||n.grp.substring(0,1)==="N",Object.assign(i,n.opt),i})),t}async function as(r){await this.__connection,r=m.Params(r,{user_id:et.bind(this),get_feed:["boolean",()=>false],get_notified:["boolean",()=>false],get_email:n=>{if(n&&!this.__user.email||!this.__user.email_verified)throw new f("User has no verified email address.",{code:"INVALID_REQUEST"});return !!n}},["user_id"]);let e=await T.bind(this)("subscription",{subscribe:r.user_id,option:{get_feed:r.get_feed,get_notified:r.get_notified,get_email:r.get_email||false}},{auth:true}),t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0];}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||e.grp.substring(0,1)==="N",Object.assign(t,e.opt),t}async function us(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function cs(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{block:e},{auth:true})}async function ls(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{unblock:e},{auth:true})}async function ds(r,e){await this.__connection;let t=await J.bind(this)();r=m.Params(r,{user_id:o=>{if(o!==this.__user.user_id&&!t)throw new f("No access.",{code:"INVALID_REQUEST"});return o},group:o=>{if(o==="public"&&(o=0),o==="authorized"&&(o=1),typeof o!="number")throw new f('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return o}});let n=await T.bind(this)("get-newsletter-subscription",r,{auth:true,fetchOptions:e||null}),i=n?.list||n,s=[];Array.isArray(i)||(i=[]);for(let o of i){let a=o.subt.split("#"),u=true;a[0].charAt(0)==="@"&&(u=false,a[0]=a[0].substring(1));let c=parseInt(a[0]);s.push({timestamp:o.stmp,group:c,subscribed_email:a[1],active:u});}return n?.list?(n.list=s,n):s}async function fs(r){await this.__connection;let e=m.Params(r||{},{email:t=>Array.isArray(t)&&t.length>0?t.length===1?m.Email(t[0]):t.map(n=>m.Email(n)):m.Email(t),group:["number","public","authorized","admin",t=>{if(typeof t!="string"||t.length>20||!/^[a-zA-Z0-9]+$/.test(t))throw new f('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return t}],redirect:t=>m.Url(t)},this.__user?["group"]:["email","group"]);return T.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,e,{auth:!!this.__user})}async function hs(r){await this.__connection,r=m.Params(r,{group:["number","public","authorized","admin"]},["group"]);let e=Object.assign({action:"unsubscribe"},r);return T.bind(this)("subscribe-newsletter",e,{auth:true})}async function gs(r,e){let t=await J.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};r||(e=Object.assign({ascending:false},e||{})),r=N(r).data,r=r||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"},r=m.Params(r,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:u=>{if(typeof u!==n[r.searchFor])throw new f(`"value" type does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof u=="string"&&!u)throw new f('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return u},range:u=>{if(!r.hasOwnProperty("value")||typeof u!=typeof r.value)throw new f('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return u},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:u=>{if(u==="public")return 0;if(!this.session)throw new f("User should be logged in.",{code:"INVALID_REQUEST"});if(u==="authorized")return 1;if(typeof u=="number"){if(!t&&u>parseInt(this.user?.access_group||this.session?.idToken?.payload?.access_group))throw new f("User has no access.",{code:"INVALID_REQUEST"});return u}throw new f('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"]);let i=r.group===0?"get-public-newsletters":"get-newsletters",s=await T.bind(this)(i,r,Object.assign({method:"get",auth:i==="get-public-newsletters"?!!this.__user:true},{fetchOptions:e})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:"",url:"",delivered:0};return s.list=s.list.map(u=>{let c={};for(let d in o)c[d]=u[o[d]]||a[d];return c.bounced=String(c.bounced),c}),s}async function ps(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,block:e.user_id}:e={block:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("block-account",e,{auth:true})}async function ms(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,unblock:e.user_id}:e={unblock:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("block-account",e,{auth:true})}async function _s(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,delete:e.user_id}:e={delete:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("remove-account",e,{auth:true})}async function bs(r,e){let t={email:s=>m.Email(s),password:s=>m.Password(s),name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>m.Birthdate(s),phone_number:s=>m.PhoneNumber(s),picture:s=>{if(s)return m.Url(s)},profile:s=>{if(s)return m.Url(s)},website:s=>{if(s)return m.Url(s)},nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],openid_id:"string",access_group:s=>{try{typeof s=="string"&&(s=s==="admin"?99:parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=m.Params(r,t,["email"]);if(e=m.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=m.Url(s);else throw new f('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new f('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new f('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return s},template:s=>{if(typeof s!="object"||!s.url||!s.subject)throw new f('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:m.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("admin-signup",n,{auth:true})}async function ys(r){let e={email:i=>m.Email(i),password:i=>m.Password(i),openid_id:"string",name:"string",username:"string",gender:"string",address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},birthdate:i=>m.Birthdate(i),phone_number:i=>m.PhoneNumber(i),picture:i=>i?m.Url(i):"",profile:i=>i?m.Url(i):"",website:i=>i?m.Url(i):"",nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:i=>{try{typeof i=="string"&&(i=parseInt(i));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof i!="number"||i<1||i>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return i}},t=m.Params(r,e,["email","password"]);if(!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("admin-signup",t,{auth:true})}async function ws(r){if(r=m.Params(r,{user_id:t=>m.UserId(t,'"user_id"'),access_group:t=>{try{typeof t=="string"&&(t=parseInt(t));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof t=="number"&&t>0&&t<100)return t;throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("grant-access",r,{auth:true})}async function Ss(r,e){if(r=m.Params(r,{email:"string"}),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}let n=await T.bind(this)("invitation-list",Object.assign({mode:"search"},r),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>Je(i.user)),n}async function As(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("invitation-list",Object.assign({mode:"cancel"},r),{auth:true})}async function Es(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("invitation-list",Object.assign({mode:"resend"},r),{auth:true})}async function vs(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await T.bind(this)("store-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Subscribed to receive notifications."}async function Ts(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await T.bind(this)("delete-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function Rs(){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});return await this.__connection,{VAPIDPublicKey:await T.bind(this)("get-vapid-public-key",null,{auth:true})}}async function Is(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});await this.__connection;let{title:t,body:n}=N(r||{},{nullIfEmpty:true}).data;if(!t)throw new f("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!n)throw new f("Missing parameter: message body",{code:"INVALID_PARAMETER"});let i={title:t,body:n};return e?(typeof e=="string"&&(e=[e]),i.user_ids=e):i.user_ids="all_users",await T.bind(this)("push-notification",i,{auth:true}),"SUCCESS: Notification sent."}async function Ps(r){await this.__connection,r=m.Params(r,{spell:"string",name:"string",magic:t=>t},["spell","name"]);await T.bind(this)("castspell",r);return `The spell "${r.spell}" has been cast.`}async function xs(r){return await this.__connection,r=m.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await T.bind(this)("getspell",r)}async function Us(r){await this.__connection,r=m.Params(r,{message:"string",name:"string"},["message","name"]);let e=await T.bind(this)("dopamine",r,{auth:true}),t=e?.previous_message?.message,n=e?.previous_message?.name;if(z())t&&n&&window.alert(`${n} said: ${t}`),window.location.href=e.video;else return t&&n?`${n} said: ${t}
216
+ `,o=new Blob([s],{type:"application/javascript"});Ae=new Worker(URL.createObjectURL(o)),Ae.onmessage=a=>{i.readyState===1&&i.send(JSON.stringify({action:"keepAlive"}));},n(i);},i.onmessage=async s=>{let o="";try{o=JSON.parse(decodeURI(s.data)),this.log("socket onmessage",o);}catch{return}let a;switch(true){case !!o?.["#message"]:a="message";break;case !!o?.["#private"]:a="private";break;case !!o?.["#notice"]:a="notice";break;case !!o?.["#rtc"]:a="rtc";break;case !!o?.["#error"]:a="error";break}if(!a)return;let u={type:a,message:o?.["#rtc"]||o?.["#message"]||o?.["#private"]||o?.["#notice"]||o?.["#error"]||null,sender:o?.["#user_id"]||null,sender_cid:o?.["#scid"]?"cid:"+o["#scid"]:null,sender_rid:o?.["#srid"]||null,code:o?.["#code"]||null};if(a==="notice")r(u);else if(a==="rtc"){if(u.sender!==this.user.user_id){let c=u.message;if(c.hungup){ie[u.sender_cid]&&(ie[u.sender_cid](false),delete ie[u.sender_cid]),le[u.sender_cid]&&delete le[u.sender_cid],I?.[u.sender_cid]&&se.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Cr.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Ur.bind(this)(c.sdpoffer,u.sender_cid),le[u.sender_cid]||(le[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=Hi.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{I[u.sender_cid]?se.bind(this)({cid:u.sender_cid}):le[u.sender_cid]&&(delete le[u.sender_cid],i.send(JSON.stringify({action:"rtc",uid:u.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));}).bind(this),r(u))),c.pickup&&ie[u.sender_cid]&&(ie[u.sender_cid](true),delete ie[u.sender_cid]),c.sdpanswer&&I[u.sender_cid])if(I[u.sender_cid].signalingState==="have-local-offer")await I[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{Ze?(this.log("realtime onclose","WebSocket connection closed."),r({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),r({type:"error",message:"Skapi: WebSocket unexpected close."}),je++,je<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+je),r({type:"reconnect",message:"Reconnecting to WebSocket server..."+je}),Ot.bind(this)(r,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),r({type:"error",message:"Skapi: Max reconnection attempts reached."})));},i.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),r({type:"error",message:"Skapi: WebSocket connection error."});};},e);});}async function Qi(r,e,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!e)throw new f("No recipient.",{code:"INVALID_REQUEST"});await Be.bind(this)(),r=N(r).data;let i="";if(t&&(t=m.Params(t,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),i=JSON.stringify({title:t.title,body:t.body}),new Blob([i]).size>3072))throw new f("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(n.readyState===1){try{m.UserId(e),n.send(JSON.stringify({action:"sendMessage",uid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}catch(s){if(this.log("postRealtime:err",{err:s}),Se!==e)throw new f(`User has not joined to the recipient group. Run joinRealtime({ group: "${e}" })`,{code:"INVALID_REQUEST"});n.send(JSON.stringify({action:"broadcast",rid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}return {type:"success",message:"Message sent."}}throw new f("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function kr(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await Be.bind(this)(),r=N(r,{nullIfEmpty:true}).data;let{group:t=null}=r;if(!t&&!Se)return {type:"success",message:"Left realtime message group."};if(t!==null&&typeof t!="string")throw new f('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:t,token:this.session.accessToken.jwtToken})),Se=t,{type:"success",message:t?`Joined realtime message group: "${t}".`:"Left realtime message group."}}async function zi(r,e){r=m.Params(r,{user_id:n=>m.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!Se)throw new f('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Se}]});let t=await T.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({user_id:n.uid.split("#")[1],cid:"cid:"+n.cid})),t}async function Yi(r,e){if(await this.__connection,r||(r={searchFor:"group",value:" ",condition:">"}),r=m.Params(r,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>r?.searchFor&&r?.searchFor==="number_of_users"?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]}),r.condition||(r.value===" "||!r.value?r.condition=">":r.condition="="),r.range&&r.condition&&delete r.condition,r.searchFor==="number_of_users"&&typeof r.value!="number")throw new f('"value" must be a number.',{code:"INVALID_PARAMETER"});if(r.searchFor==="group"&&typeof r.value!="string")throw new f('"value" must be a string.',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("range")&&typeof r.range!=typeof r.value)throw new f(`"range" must be a ${typeof r.value}.`,{code:"INVALID_PARAMETER"});let t=await T.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({group:n.rid.split("#")[1],number_of_users:n.cnt})),t}var ju=typeof FormData<"u",Ku=typeof HTMLFormElement<"u",Hu=typeof SubmitEvent<"u";async function Xi(r){let e=false,t=i=>{for(let s in i)if(typeof i[s]=="string"&&i[s].includes("$CLIENT_SECRET")){e=true;break}};if(r=m.Params(r,{url:i=>{if(!i||typeof i!="string")throw new f('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return m.Url(i),i.includes("$CLIENT_SECRET")&&(e=true),i},clientSecretName:"string",method:i=>{if(i&&typeof i!="string")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let s=i.toLowerCase();if(s!=="get"&&s!=="post"&&s!=="delete"&&s!=="put")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return s},headers:i=>{if(i&&typeof i!="object")throw new f('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i},data:i=>{if(i&&typeof i!="object")throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i},params:i=>{if(i&&typeof i!="object")throw new f('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return t(i),i}},["clientSecretName","method","url"]),!e)throw new f(`At least one parameter value should include "$CLIENT_SECRET" in ${r.method.toLowerCase()==="post"?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let n=!!this.__user;return T.bind(this)("csr",r,{auth:n})}async function Zi(r){await this.__connection;let e={name:"string",email:t=>(m.Email(t),t),subject:"string",message:"string"};return r=m.Params(r,e,["name","email","subject","message"]),await T.bind(this)("send-inquiry",r),"SUCCESS: Inquiry has been sent."}async function es(r,e){if(await this.__connection,ju&&r instanceof FormData||Ku&&r instanceof HTMLFormElement||Hu&&r instanceof SubmitEvent){if(!e)throw new f("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=N(r);r={url:e,data:n.data,sync:true};}let t={url:n=>m.Url(n),data:n=>n,sync:["boolean",()=>true]};if(Array.isArray(r))for(let n of r)n=m.Params(n,t);else r=m.Params(r,t);return T.bind(this)("post-secure",r,{auth:true})}async function ts(r,e){await this.__connection;let{auth:t=false,method:n="POST",bypassAwaitConnection:i=false,responseType:s,contentType:o,progress:a}=e||{};if(e=Object.assign({auth:t,method:n,bypassAwaitConnection:i,responseType:s,contentType:o},{fetchOptions:{progress:a}}),typeof r!="object"&&(o==="application/json"||o===void 0))throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return T.bind(this)("mock",r,e)}async function rs(r,e){await this.__connection,r=m.Params(r||{},{access_group:n=>{if(n==="authorized"&&(n=1),n==="public"&&(n=0),typeof n!="number")throw new f('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(n<0)throw new f('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(n>this.__user.access_group)throw new f("User has no access.",{code:"INVALID_REQUEST"});return n}});let t=await T.bind(this)("get-feed",r,{auth:true,fetchOptions:e});for(let n in t.list)t.list[n]=await $e.bind(this)(t.list[n]);return t}function et(r){if(r===this.__user.user_id)throw new f(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return m.UserId(r,'"user_id"')}async function ns(r,e){if(r=N(r,{ignoreEmpty:true}).data,r=m.Params(r,{subscriber:n=>m.UserId(n,'User ID in "subscriber"'),subscription:et.bind(this),blocked:"boolean"}),!r.subscriber&&!r.subscription)throw new f('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let t=await T.bind(this)("get-subscription",r,Object.assign({auth:true},{fetchOptions:e}));return t.list=t.list.map((n=>{let i={};if(n.sub){let s=n.sub.split("#");i.subscriber=s[2],i.subscription=s[0];}else i.subscriber=n.subscriber,i.subscription=n.subscription;return i.timestamp=n?.timestamp||n.stmp,i.blocked=n?.blocked||n.grp.substring(0,1)==="N",Object.assign(i,n.opt),i})),t}async function is(r){await this.__connection,r=m.Params(r,{user_id:et.bind(this),get_feed:["boolean",()=>false],get_notified:["boolean",()=>false],get_email:n=>{if(n&&!this.__user.email||!this.__user.email_verified)throw new f("User has no verified email address.",{code:"INVALID_REQUEST"});return !!n}},["user_id"]);let e=await T.bind(this)("subscription",{subscribe:r.user_id,option:{get_feed:r.get_feed,get_notified:r.get_notified,get_email:r.get_email||false}},{auth:true}),t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0];}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||e.grp.substring(0,1)==="N",Object.assign(t,e.opt),t}async function ss(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function os(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{block:e},{auth:true})}async function as(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:et.bind(this)},["user_id"]);return await T.bind(this)("subscription",{unblock:e},{auth:true})}async function us(r,e){await this.__connection;let t=await J.bind(this)();r=m.Params(r,{user_id:o=>{if(o!==this.__user.user_id&&!t)throw new f("No access.",{code:"INVALID_REQUEST"});return o},group:o=>{if(o==="public"&&(o=0),o==="authorized"&&(o=1),typeof o!="number")throw new f('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return o}});let n=await T.bind(this)("get-newsletter-subscription",r,{auth:true,fetchOptions:e||null}),i=n?.list||n,s=[];Array.isArray(i)||(i=[]);for(let o of i){let a=o.subt.split("#"),u=true;a[0].charAt(0)==="@"&&(u=false,a[0]=a[0].substring(1));let c=parseInt(a[0]);s.push({timestamp:o.stmp,group:c,subscribed_email:a[1],active:u});}return n?.list?(n.list=s,n):s}async function cs(r){await this.__connection;let e=m.Params(r||{},{email:t=>Array.isArray(t)&&t.length>0?t.length===1?m.Email(t[0]):t.map(n=>m.Email(n)):m.Email(t),group:["number","public","authorized","admin",t=>{if(typeof t!="string"||t.length>20||!/^[a-zA-Z0-9]+$/.test(t))throw new f('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return t}],redirect:t=>m.Url(t)},this.__user?["group"]:["email","group"]);return T.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,e,{auth:!!this.__user})}async function ls(r){await this.__connection,r=m.Params(r,{group:["number","public","authorized","admin"]},["group"]);let e=Object.assign({action:"unsubscribe"},r);return T.bind(this)("subscribe-newsletter",e,{auth:true})}async function ds(r,e){let t=await J.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};r||(e=Object.assign({ascending:false},e||{})),r=N(r).data,r=r||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"},r=m.Params(r,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:u=>{if(typeof u!==n[r.searchFor])throw new f(`"value" type does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof u=="string"&&!u)throw new f('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return u},range:u=>{if(!r.hasOwnProperty("value")||typeof u!=typeof r.value)throw new f('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return u},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:u=>{if(u==="public")return 0;if(!this.session)throw new f("User should be logged in.",{code:"INVALID_REQUEST"});if(u==="authorized")return 1;if(typeof u=="number"){if(!t&&u>parseInt(this.user?.access_group||this.session?.idToken?.payload?.access_group))throw new f("User has no access.",{code:"INVALID_REQUEST"});return u}throw new f('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"]);let i=r.group===0?"get-public-newsletters":"get-newsletters",s=await T.bind(this)(i,r,Object.assign({method:"get",auth:i==="get-public-newsletters"?!!this.__user:true},{fetchOptions:e})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:"",url:"",delivered:0};return s.list=s.list.map(u=>{let c={};for(let d in o)c[d]=u[o[d]]||a[d];return c.bounced=String(c.bounced),c}),s}async function fs(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,block:e.user_id}:e={block:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("block-account",e,{auth:true})}async function hs(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,unblock:e.user_id}:e={unblock:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("block-account",e,{auth:true})}async function gs(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,delete:e.user_id}:e={delete:e.user_id},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("remove-account",e,{auth:true})}async function ps(r,e){let t={email:s=>m.Email(s),password:s=>m.Password(s),name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>m.Birthdate(s),phone_number:s=>m.PhoneNumber(s),picture:s=>{if(s)return m.Url(s)},profile:s=>{if(s)return m.Url(s)},website:s=>{if(s)return m.Url(s)},nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],openid_id:"string",access_group:s=>{try{typeof s=="string"&&(s=s==="admin"?99:parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=m.Params(r,t,["email"]);if(e=m.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=m.Url(s);else throw new f('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new f('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new f('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return s},template:s=>{if(typeof s!="object"||!s.url||!s.subject)throw new f('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:m.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("admin-signup",n,{auth:true})}async function ms(r){let e={email:i=>m.Email(i),password:i=>m.Password(i),openid_id:"string",name:"string",username:"string",gender:"string",address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},birthdate:i=>m.Birthdate(i),phone_number:i=>m.PhoneNumber(i),picture:i=>i?m.Url(i):"",profile:i=>i?m.Url(i):"",website:i=>i?m.Url(i):"",nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:i=>{try{typeof i=="string"&&(i=parseInt(i));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof i!="number"||i<1||i>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return i}},t=m.Params(r,e,["email","password"]);if(!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("admin-signup",t,{auth:true})}async function _s(r){if(r=m.Params(r,{user_id:t=>m.UserId(t,'"user_id"'),access_group:t=>{try{typeof t=="string"&&(t=parseInt(t));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof t=="number"&&t>0&&t<100)return t;throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("grant-access",r,{auth:true})}async function bs(r,e){if(r=m.Params(r,{email:"string"}),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}let n=await T.bind(this)("invitation-list",Object.assign({mode:"search"},r),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>Je(i.user)),n}async function ys(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("invitation-list",Object.assign({mode:"cancel"},r),{auth:true})}async function ws(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await J.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await T.bind(this)("invitation-list",Object.assign({mode:"resend"},r),{auth:true})}async function As(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await T.bind(this)("store-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Subscribed to receive notifications."}async function Ss(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await T.bind(this)("delete-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function Es(){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});return await this.__connection,{VAPIDPublicKey:await T.bind(this)("get-vapid-public-key",null,{auth:true})}}async function vs(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});await this.__connection;let{title:t,body:n}=N(r||{},{nullIfEmpty:true}).data;if(!t)throw new f("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!n)throw new f("Missing parameter: message body",{code:"INVALID_PARAMETER"});let i={title:t,body:n};return e?(typeof e=="string"&&(e=[e]),i.user_ids=e):i.user_ids="all_users",await T.bind(this)("push-notification",i,{auth:true}),"SUCCESS: Notification sent."}async function Ts(r){await this.__connection,r=m.Params(r,{spell:"string",name:"string",magic:t=>t},["spell","name"]);await T.bind(this)("castspell",r);return `The spell "${r.spell}" has been cast.`}async function Rs(r){return await this.__connection,r=m.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await T.bind(this)("getspell",r)}async function Is(r){await this.__connection,r=m.Params(r,{message:"string",name:"string"},["message","name"]);let e=await T.bind(this)("dopamine",r,{auth:true}),t=e?.previous_message?.message,n=e?.previous_message?.name;if(z())t&&n&&window.alert(`${n} said: ${t}`),window.location.href=e.video;else return t&&n?`${n} said: ${t}
217
217
  Watch the video here: ${e.video}`:`Your message has been uploaded for future generations to receive.
218
- Watch the video here: ${e.video}`}var A=class{constructor(e,t,n,i){this.__version="1.5.0-beta.9";this.session=null;this.connection=null;this.__my_unique_ids={};this.userPool=null;this.__socket=null;this.__mediaStream=null;this.host="skapi";this.hostDomain="skapi.com";this.target_cdn="d3e9syvbtso631";this.customApiDomain="skapi.dev";this.requestBatchSize=30;this.__disabledAccount=null;this.__cached_requests={};this.__startKeyHistory={};this.__request_signup_confirmation=null;this.__private_access_key={};this.__class_properties_has_been_cached=false;this.__user=null;this._userProfileListeners=[];this._onLoginListeners=[];this._onBatchProcessListeners=[];this.validate={userId(e){try{return m.UserId(e),!0}catch{return false}},url(e){try{return m.Url(e),!0}catch{return false}},phoneNumber(e){try{return m.PhoneNumber(e),!0}catch{return false}},birthdate(e){try{return m.Birthdate(e),!0}catch{return false}},email(e){try{return m.Email(e),!0}catch{return false}},params(e,t,n){return m.Params(e,t,n)}};this.util={MD5:G,generateRandom:We,toBase62:Qn,fromBase62:ne,decodeServiceId:Sr,formatServiceId:Gn,extractFormData:N,terminatePendingRequests:Ei,request:(e,t,n)=>T.bind(this)(e,t,n,{ignoreService:true})};this.__network_logs=false;this.__endpoint_version="v1";this.__public_identifier="";this.bearerToken="";this.registerTicket=ei.bind(this);this.unregisterTicket=ti.bind(this);if(!e||typeof e!="string")throw this._alert("Service ID is required."),new f("Service ID is required.",{code:"INVALID_PARAMETER"});if(e.startsWith("s1_")||e.split("-").length===7)try{let l=Sr(e);n&&typeof n=="object"&&(i=n),t&&typeof t=="object"&&(n=t),t=l.owner,e=l.service;}catch{throw this._alert("Service ID is invalid."),new f("Service ID is invalid.",{code:"INVALID_PARAMETER"})}if(!t||typeof t!="string")throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(e.toLowerCase()==="service_id")throw this._alert('Replace "service_id" with your actual Service ID.'),new f("Service ID is required.",{code:"INVALID_PARAMETER"});if(t!==this.host)try{m.UserId(t,'"owner"');}catch{throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"})}this.service=e,this.owner=t;let s=true;if(n&&(typeof n.autoLogin=="boolean"&&(s=n.autoLogin),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new f('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize;}n?.eventListener&&typeof n.eventListener=="object"&&(n.eventListener?.onLogin&&typeof n.eventListener.onLogin=="function"&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&typeof n.eventListener.onUserUpdate=="function"&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&typeof n.eventListener.onBatchProcess=="function"&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;let o=`https://${this.target_cdn}.cloudfront.net`,a=e.substring(0,4);this.admin_endpoint=fetch(`${o}/${a}/admin-${this.__endpoint_version}.json`).then(l=>l.blob()).then(l=>new Promise((h,p)=>{let g=new FileReader;g.onloadend=()=>h(g.result),g.onerror=p,g.readAsDataURL(l);})).then(l=>{try{return typeof l=="string"?JSON.parse(atob(l.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${o}/${a}/record-${this.__endpoint_version}.json`).then(l=>l.blob()).then(l=>new Promise((h,p)=>{let g=new FileReader;g.onloadend=()=>h(g.result),g.onerror=p,g.readAsDataURL(l);})).then(l=>{try{return typeof l=="string"?JSON.parse(atob(l.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}});let u=z();if(u&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let c=u?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",c),c?.connection){for(let l in c)this[l]=c[l];c.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${We(16)}`);}this.__authConnection=(async()=>{let l=await this.admin_endpoint,h={UserPoolId:l.userpool_id,ClientId:l.userpool_client};wr()&&(h.Storage=window.localStorage),this.userPool=new _r(h);try{this.user||await W.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!c?.connection&&!s?me.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let d=u?window.sessionStorage.getItem(`${this.service}:uniqueids`):null;if(d)try{this.__my_unique_ids=JSON.parse(d);}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let l=null;await this.record_endpoint,c?.connection||(l=this._updateConnection());let h=()=>{if(this.__class_properties_has_been_cached)return;let p=()=>{let g={},_=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let S of _)g[S]=this[S];u&&window.sessionStorage.setItem(`${e}#${t}`,JSON.stringify(g)),this.__class_properties_has_been_cached=true;}};return l instanceof Promise?l.then(()=>p()):p()};return u&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),h();}),window.addEventListener("visibilitychange",()=>{h();})),await l,await this.__authConnection,this.connection})(),this.__connection.then(l=>{((l?.group||0)<3||this.__network_logs)&&this.version();});}get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){typeof e=="function"&&this._onLoginListeners.push(e);}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){typeof e=="function"&&this._userProfileListeners.push(e);}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)typeof t=="function"&&t(e);}_runOnLoginListeners(e){for(let t of this._onLoginListeners)typeof t=="function"&&t(e);}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){typeof e=="function"&&this._onBatchProcessListeners.push(e);}_alert(e){z()&&typeof window.alert=="function"&&window.alert(e);}async getConnectionInfo(){let e=await this.__connection,t=e?.user_agent||(z()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {user_ip:e.ip,user_agent:t,user_location:e.locale,service_name:e.service_name,version:this.__version}}async _updateConnection(){try{this.connection=await T.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"});}catch(e){throw this.log("connection fail",e),this._alert("Service is not available: "+(e.message||e.toString())),this.connection=null,e}return this.connection}async version(){if(await this.__connection,z()){let t=`Built with:
218
+ Watch the video here: ${e.video}`}var S=class{constructor(e,t,n,i){this.__version="1.5.0";this.session=null;this.connection=null;this.__my_unique_ids={};this.userPool=null;this.__socket=null;this.__mediaStream=null;this.host="skapi";this.hostDomain="skapi.com";this.target_cdn="d3e9syvbtso631";this.customApiDomain="skapi.dev";this.requestBatchSize=30;this.__disabledAccount=null;this.__cached_requests={};this.__startKeyHistory={};this.__request_signup_confirmation=null;this.__private_access_key={};this.__class_properties_has_been_cached=false;this.__user=null;this._userProfileListeners=[];this._onLoginListeners=[];this._onBatchProcessListeners=[];this.validate={userId(e){try{return m.UserId(e),!0}catch{return false}},url(e){try{return m.Url(e),!0}catch{return false}},phoneNumber(e){try{return m.PhoneNumber(e),!0}catch{return false}},birthdate(e){try{return m.Birthdate(e),!0}catch{return false}},email(e){try{return m.Email(e),!0}catch{return false}},params(e,t,n){return m.Params(e,t,n)}};this.util={MD5:Q,generateRandom:We,toBase62:Hn,fromBase62:ne,decodeServiceId:Ar,formatServiceId:Wn,extractFormData:N,terminatePendingRequests:wi,request:(e,t,n)=>T.bind(this)(e,t,n,{ignoreService:true})};this.__network_logs=false;this.__endpoint_version="v1";this.__public_identifier="";this.bearerToken="";this.registerTicket=Yn.bind(this);this.unregisterTicket=Xn.bind(this);if(!e||typeof e!="string")throw this._alert("Service ID is required."),new f("Service ID is required.",{code:"INVALID_PARAMETER"});let s=e.split("-").length;if(s===2||s===7)try{let g=Ar(e);n&&typeof n=="object"&&(i=n),t&&typeof t=="object"&&(n=t),t=g.owner,e=g.service;}catch{throw this._alert("Service ID is invalid."),new f("Service ID is invalid.",{code:"INVALID_PARAMETER"})}if(!t||typeof t!="string")throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(e.toLowerCase()==="service_id")throw this._alert('Replace "service_id" with your actual Service ID.'),new f("Service ID is required.",{code:"INVALID_PARAMETER"});if(t!==this.host)try{m.UserId(t,'"owner"');}catch{throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"})}this.service=e,this.owner=t;let u=true;if(n&&(typeof n.autoLogin=="boolean"&&(u=n.autoLogin),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new f('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize;}n?.eventListener&&typeof n.eventListener=="object"&&(n.eventListener?.onLogin&&typeof n.eventListener.onLogin=="function"&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&typeof n.eventListener.onUserUpdate=="function"&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&typeof n.eventListener.onBatchProcess=="function"&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;let c=`https://${this.target_cdn}.cloudfront.net`,d=e.substring(0,4);this.admin_endpoint=fetch(`${c}/${d}/admin-${this.__endpoint_version}.json`).then(g=>g.blob()).then(g=>new Promise((_,w)=>{let b=new FileReader;b.onloadend=()=>_(b.result),b.onerror=w,b.readAsDataURL(g);})).then(g=>{try{return typeof g=="string"?JSON.parse(atob(g.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${c}/${d}/record-${this.__endpoint_version}.json`).then(g=>g.blob()).then(g=>new Promise((_,w)=>{let b=new FileReader;b.onloadend=()=>_(b.result),b.onerror=w,b.readAsDataURL(g);})).then(g=>{try{return typeof g=="string"?JSON.parse(atob(g.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}});let l=z();if(l&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let h=l?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",h),h?.connection){for(let g in h)this[g]=h[g];h.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${We(16)}`);}this.__authConnection=(async()=>{let g=await this.admin_endpoint,_={UserPoolId:g.userpool_id,ClientId:g.userpool_client};wr()&&(_.Storage=window.localStorage),this.userPool=new _r(_);try{this.user||await W.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!h?.connection&&!u?_e.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let p=l?window.sessionStorage.getItem(`${this.service}:uniqueids`):null;if(p)try{this.__my_unique_ids=JSON.parse(p);}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let g=null;await this.record_endpoint,h?.connection||(g=this._updateConnection());let _=()=>{if(this.__class_properties_has_been_cached)return;let w=()=>{let b={},R=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let U of R)b[U]=this[U];l&&window.sessionStorage.setItem(`${e}#${t}`,JSON.stringify(b)),this.__class_properties_has_been_cached=true;}};return g instanceof Promise?g.then(()=>w()):w()};return l&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),_();}),window.addEventListener("visibilitychange",()=>{_();})),await g,await this.__authConnection,this.connection})(),this.__connection.then(g=>{((g?.group||0)<3||this.__network_logs)&&this.version();});}get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){typeof e=="function"&&this._onLoginListeners.push(e);}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){typeof e=="function"&&this._userProfileListeners.push(e);}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)typeof t=="function"&&t(e);}_runOnLoginListeners(e){for(let t of this._onLoginListeners)typeof t=="function"&&t(e);}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){typeof e=="function"&&this._onBatchProcessListeners.push(e);}_alert(e){z()&&typeof window.alert=="function"&&window.alert(e);}async getConnectionInfo(){let e=await this.__connection,t=e?.user_agent||(z()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {user_ip:e.ip,user_agent:t,user_location:e.locale,service_name:e.service_name,version:this.__version}}async _updateConnection(){try{this.connection=await T.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"});}catch(e){throw this.log("connection fail",e),this._alert("Service is not available: "+(e.message||e.toString())),this.connection=null,e}return this.connection}async version(){if(await this.__connection,z()){let t=`Built with:
219
219
  %c\r
220
220
  $$\\ $$\\ \r
221
221
  $$ | \\__|\r
@@ -230,7 +230,7 @@ $$$$$$$ |$$ | \\$$\\\\$$$$$$$ |$$$$$$$ |$$ |\r
230
230
  \\__| \r
231
231
  Version: ${this.__version}
232
232
 
233
- Full Documentation: https://docs.skapi.com/skapi.md`;console.log(t,"font-family: monospace; color:blue;"),this.connection.group===1&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE.","font-family: monospace; color:red;");}return this.__version}log(e,t){if(this.__network_logs){if(typeof t=="object")try{t=JSON.parse(JSON.stringify(t));}catch{t=String(t);}else typeof t=="string"&&t.length>100&&(t=t.substring(0,100)+"...");console.log(`%c${e}:`,"color: blue;",t);}}getFeed(e,t){return ss.bind(this)(e,t)}closeRTC(e){return se.bind(this)(e)}connectRTC(e,t){return Ji.bind(this)(e,t)}connectRealtime(e){return Ot.bind(this)(e)}spellcast(e){return Ps.bind(this)(e)}getspell(e){return xs.bind(this)(e)}dopamine(e){return Us.bind(this)(e)}getUniqueId(e,t){return Mi.bind(this)(e,t)}resendInvitation(e){return Es.bind(this)(e)}cancelInvitation(e){return As.bind(this)(e)}getInvitations(e,t){return Ss.bind(this)(e,t)}openIdLogin(e){return ni.bind(this)(e)}loginWithToken(e){return ii.bind(this)(e)}clientSecretRequest(e){return ts.bind(this)(e)}consumeTicket(e){return Yn.bind(this)(e)}getConsumedTickets(e,t){return Zn.bind(this)(e,t)}getTickets(e,t){return Xn.bind(this)(e,t)}closeRealtime(){return Yi.bind(this)()}getRealtimeUsers(e,t){return Zi.bind(this)(e,t)}sendInquiry(e){return rs.bind(this)(e)}blockAccount(e){return ps.bind(this)(e)}unblockAccount(e){return ms.bind(this)(e)}deleteAccount(e){return _s.bind(this)(e)}inviteUser(e,t){return bs.bind(this)(e,t)}createAccount(e){return ys.bind(this)(e)}grantAccess(e){return ws.bind(this)(e)}getRealtimeGroups(e,t){return es.bind(this)(e,t)}postRealtime(e,t,n){return Xi.bind(this)(e,t,n)}joinRealtime(e){return kr.bind(this)(e)}getProfile(e){return ri.bind(this)(e)}getFile(e,t){return kt.bind(this)(e,t)}secureRequest(e,t){return ns.bind(this)(e,t)}getFormResponse(){return Ti.bind(this)()}getRecords(e,t){return Ci.bind(this)(e,t)}getTables(e,t){return Fi.bind(this)(e,t)}getIndexes(e,t){return Li.bind(this)(e,t)}getTags(e,t){return Oi.bind(this)(e,t)}deleteRecords(e,t){return Vi.bind(this)(e,t)}resendSignupConfirmation(){return si.bind(this)()}recoverAccount(e=false){return oi.bind(this)(e)}getUsers(e,t){return mi.bind(this)(e,t)}disableAccount(){return ui.bind(this)()}lastVerifiedEmail(e){return _i.bind(this)(e)}unsubscribeNewsletter(e){return hs.bind(this)(e)}subscribeNotification(e,t){return vs.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Ts.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return Rs.bind(this)()}pushNotification(e,t){return Is.bind(this)(e,t)}getNewsletters(e,t){return gs.bind(this)(e,t)}getNewsletterSubscription(e,t){return ds.bind(this)(e,t)}requestUsernameChange(e){return bi.bind(this)(e)}grantPrivateRecordAccess(e){return Bi.bind(this)(e)}removePrivateRecordAccess(e){return qi.bind(this)(e)}listPrivateRecordAccess(e){return $i.bind(this)(e)}requestPrivateRecordAccessKey(e){return ji.bind(this)(e)}deleteFiles(e){return xi.bind(this)(e)}uploadFiles(e,t){return xt.bind(this)(e,t)}mock(e,t){return is.bind(this)(e,t)}login(e){return Er.bind(this)(e)}logout(e){return Ge.bind(this)(e)}signup(e,t){return ai.bind(this)(e,t)}resetPassword(e){return ci.bind(this)(e)}verifyEmail(e){return fi.bind(this)(e)}verifyPhoneNumber(e){return di.bind(this)(e)}forgotPassword(e){return hi.bind(this)(e)}changePassword(e){return gi.bind(this)(e)}updateProfile(e){return pi.bind(this)(e)}postRecord(e,t,n){return Ni.bind(this)(e,t,n)}getSubscriptions(e,t){return os.bind(this)(e,t)}subscribe(e){return as.bind(this)(e)}unsubscribe(e){return us.bind(this)(e)}blockSubscriber(e){return cs.bind(this)(e)}unblockSubscriber(e){return ls.bind(this)(e)}subscribeNewsletter(e){return fs.bind(this)(e)}bulkPostRecords(e){return ki.bind(this)(e)}};E([v()],A.prototype,"getFeed"),E([v()],A.prototype,"closeRTC"),E([v()],A.prototype,"connectRTC"),E([v()],A.prototype,"spellcast"),E([v()],A.prototype,"getspell"),E([v()],A.prototype,"dopamine"),E([v()],A.prototype,"getUniqueId"),E([v()],A.prototype,"resendInvitation"),E([v()],A.prototype,"cancelInvitation"),E([v()],A.prototype,"getInvitations"),E([v()],A.prototype,"openIdLogin"),E([v()],A.prototype,"loginWithToken"),E([v()],A.prototype,"clientSecretRequest"),E([v()],A.prototype,"consumeTicket"),E([v()],A.prototype,"getConsumedTickets"),E([v()],A.prototype,"getTickets"),E([v()],A.prototype,"getRealtimeUsers"),E([v()],A.prototype,"sendInquiry"),E([v()],A.prototype,"blockAccount"),E([v()],A.prototype,"unblockAccount"),E([v()],A.prototype,"deleteAccount"),E([v()],A.prototype,"inviteUser"),E([v()],A.prototype,"createAccount"),E([v()],A.prototype,"grantAccess"),E([v()],A.prototype,"getRealtimeGroups"),E([v()],A.prototype,"postRealtime"),E([v()],A.prototype,"joinRealtime"),E([v()],A.prototype,"getProfile"),E([v()],A.prototype,"getFile"),E([v()],A.prototype,"secureRequest"),E([v()],A.prototype,"getFormResponse"),E([v()],A.prototype,"getRecords"),E([v()],A.prototype,"getTables"),E([v()],A.prototype,"getIndexes"),E([v()],A.prototype,"getTags"),E([v()],A.prototype,"deleteRecords"),E([v()],A.prototype,"resendSignupConfirmation"),E([v()],A.prototype,"recoverAccount"),E([v()],A.prototype,"getUsers"),E([v()],A.prototype,"disableAccount"),E([v()],A.prototype,"lastVerifiedEmail"),E([v()],A.prototype,"unsubscribeNewsletter"),E([v()],A.prototype,"subscribeNotification"),E([v()],A.prototype,"unsubscribeNotification"),E([v()],A.prototype,"vapidPublicKey"),E([v()],A.prototype,"pushNotification"),E([v()],A.prototype,"getNewsletters"),E([v()],A.prototype,"getNewsletterSubscription"),E([v()],A.prototype,"requestUsernameChange"),E([v()],A.prototype,"grantPrivateRecordAccess"),E([v()],A.prototype,"removePrivateRecordAccess"),E([v()],A.prototype,"listPrivateRecordAccess"),E([v()],A.prototype,"requestPrivateRecordAccessKey"),E([v()],A.prototype,"deleteFiles"),E([v()],A.prototype,"uploadFiles"),E([v()],A.prototype,"mock"),E([v({preventMultipleCalls:true})],A.prototype,"login"),E([v()],A.prototype,"logout"),E([v({preventMultipleCalls:true})],A.prototype,"signup"),E([v({preventMultipleCalls:true})],A.prototype,"resetPassword"),E([v({preventMultipleCalls:true})],A.prototype,"verifyEmail"),E([v({preventMultipleCalls:true})],A.prototype,"verifyPhoneNumber"),E([v({preventMultipleCalls:true})],A.prototype,"forgotPassword"),E([v({preventMultipleCalls:true})],A.prototype,"changePassword"),E([v({preventMultipleCalls:true})],A.prototype,"updateProfile"),E([v()],A.prototype,"postRecord"),E([v()],A.prototype,"getSubscriptions"),E([v()],A.prototype,"subscribe"),E([v()],A.prototype,"unsubscribe"),E([v()],A.prototype,"blockSubscriber"),E([v()],A.prototype,"unblockSubscriber"),E([v()],A.prototype,"subscribeNewsletter");var Nr={};var Mt=typeof globalThis<"u"?globalThis:void 0;Mt&&(Mt.Skapi=A,Mt.SkapiError=f,Mt.SkapiTypes=Nr);/*! Bundled license information:
233
+ Full Documentation: https://docs.skapi.com/skapi.md`;console.log(t,"font-family: monospace; color:blue;"),this.connection.group===1&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE.","font-family: monospace; color:red;");}return this.__version}log(e,t){if(this.__network_logs){if(typeof t=="object")try{t=JSON.parse(JSON.stringify(t));}catch{t=String(t);}else typeof t=="string"&&t.length>100&&(t=t.substring(0,100)+"...");console.log(`%c${e}:`,"color: blue;",t);}}getFeed(e,t){return rs.bind(this)(e,t)}closeRTC(e){return se.bind(this)(e)}connectRTC(e,t){return Ki.bind(this)(e,t)}connectRealtime(e){return Ot.bind(this)(e)}spellcast(e){return Ts.bind(this)(e)}getspell(e){return Rs.bind(this)(e)}dopamine(e){return Is.bind(this)(e)}getUniqueId(e,t){return Fi.bind(this)(e,t)}resendInvitation(e){return ws.bind(this)(e)}cancelInvitation(e){return ys.bind(this)(e)}getInvitations(e,t){return bs.bind(this)(e,t)}openIdLogin(e){return ei.bind(this)(e)}loginWithToken(e){return ti.bind(this)(e)}clientSecretRequest(e){return Xi.bind(this)(e)}consumeTicket(e){return Gn.bind(this)(e)}getConsumedTickets(e,t){return zn.bind(this)(e,t)}getTickets(e,t){return Qn.bind(this)(e,t)}closeRealtime(){return Gi.bind(this)()}getRealtimeUsers(e,t){return zi.bind(this)(e,t)}sendInquiry(e){return Zi.bind(this)(e)}blockAccount(e){return fs.bind(this)(e)}unblockAccount(e){return hs.bind(this)(e)}deleteAccount(e){return gs.bind(this)(e)}inviteUser(e,t){return ps.bind(this)(e,t)}createAccount(e){return ms.bind(this)(e)}grantAccess(e){return _s.bind(this)(e)}getRealtimeGroups(e,t){return Yi.bind(this)(e,t)}postRealtime(e,t,n){return Qi.bind(this)(e,t,n)}joinRealtime(e){return kr.bind(this)(e)}getProfile(e){return Zn.bind(this)(e)}getFile(e,t){return kt.bind(this)(e,t)}secureRequest(e,t){return es.bind(this)(e,t)}getFormResponse(){return Si.bind(this)()}getRecords(e,t){return Pi.bind(this)(e,t)}getTables(e,t){return Di.bind(this)(e,t)}getIndexes(e,t){return ki.bind(this)(e,t)}getTags(e,t){return Ni.bind(this)(e,t)}deleteRecords(e,t){return Li.bind(this)(e,t)}resendSignupConfirmation(){return ri.bind(this)()}recoverAccount(e=false){return ni.bind(this)(e)}getUsers(e,t){return hi.bind(this)(e,t)}disableAccount(){return si.bind(this)()}lastVerifiedEmail(e){return gi.bind(this)(e)}unsubscribeNewsletter(e){return ls.bind(this)(e)}subscribeNotification(e,t){return As.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Ss.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return Es.bind(this)()}pushNotification(e,t){return vs.bind(this)(e,t)}getNewsletters(e,t){return ds.bind(this)(e,t)}getNewsletterSubscription(e,t){return us.bind(this)(e,t)}requestUsernameChange(e){return pi.bind(this)(e)}grantPrivateRecordAccess(e){return Oi.bind(this)(e)}removePrivateRecordAccess(e){return Mi.bind(this)(e)}listPrivateRecordAccess(e){return Vi.bind(this)(e)}requestPrivateRecordAccessKey(e){return Bi.bind(this)(e)}deleteFiles(e){return Ri.bind(this)(e)}uploadFiles(e,t){return xt.bind(this)(e,t)}mock(e,t){return ts.bind(this)(e,t)}login(e){return Er.bind(this)(e)}logout(e){return Qe.bind(this)(e)}signup(e,t){return ii.bind(this)(e,t)}resetPassword(e){return oi.bind(this)(e)}verifyEmail(e){return ci.bind(this)(e)}verifyPhoneNumber(e){return ui.bind(this)(e)}forgotPassword(e){return li.bind(this)(e)}changePassword(e){return di.bind(this)(e)}updateProfile(e){return fi.bind(this)(e)}postRecord(e,t,n){return Ci.bind(this)(e,t,n)}getSubscriptions(e,t){return ns.bind(this)(e,t)}subscribe(e){return is.bind(this)(e)}unsubscribe(e){return ss.bind(this)(e)}blockSubscriber(e){return os.bind(this)(e)}unblockSubscriber(e){return as.bind(this)(e)}subscribeNewsletter(e){return cs.bind(this)(e)}bulkPostRecords(e){return Ui.bind(this)(e)}};E([v()],S.prototype,"getFeed"),E([v()],S.prototype,"closeRTC"),E([v()],S.prototype,"connectRTC"),E([v()],S.prototype,"spellcast"),E([v()],S.prototype,"getspell"),E([v()],S.prototype,"dopamine"),E([v()],S.prototype,"getUniqueId"),E([v()],S.prototype,"resendInvitation"),E([v()],S.prototype,"cancelInvitation"),E([v()],S.prototype,"getInvitations"),E([v()],S.prototype,"openIdLogin"),E([v()],S.prototype,"loginWithToken"),E([v()],S.prototype,"clientSecretRequest"),E([v()],S.prototype,"consumeTicket"),E([v()],S.prototype,"getConsumedTickets"),E([v()],S.prototype,"getTickets"),E([v()],S.prototype,"getRealtimeUsers"),E([v()],S.prototype,"sendInquiry"),E([v()],S.prototype,"blockAccount"),E([v()],S.prototype,"unblockAccount"),E([v()],S.prototype,"deleteAccount"),E([v()],S.prototype,"inviteUser"),E([v()],S.prototype,"createAccount"),E([v()],S.prototype,"grantAccess"),E([v()],S.prototype,"getRealtimeGroups"),E([v()],S.prototype,"postRealtime"),E([v()],S.prototype,"joinRealtime"),E([v()],S.prototype,"getProfile"),E([v()],S.prototype,"getFile"),E([v()],S.prototype,"secureRequest"),E([v()],S.prototype,"getFormResponse"),E([v()],S.prototype,"getRecords"),E([v()],S.prototype,"getTables"),E([v()],S.prototype,"getIndexes"),E([v()],S.prototype,"getTags"),E([v()],S.prototype,"deleteRecords"),E([v()],S.prototype,"resendSignupConfirmation"),E([v()],S.prototype,"recoverAccount"),E([v()],S.prototype,"getUsers"),E([v()],S.prototype,"disableAccount"),E([v()],S.prototype,"lastVerifiedEmail"),E([v()],S.prototype,"unsubscribeNewsletter"),E([v()],S.prototype,"subscribeNotification"),E([v()],S.prototype,"unsubscribeNotification"),E([v()],S.prototype,"vapidPublicKey"),E([v()],S.prototype,"pushNotification"),E([v()],S.prototype,"getNewsletters"),E([v()],S.prototype,"getNewsletterSubscription"),E([v()],S.prototype,"requestUsernameChange"),E([v()],S.prototype,"grantPrivateRecordAccess"),E([v()],S.prototype,"removePrivateRecordAccess"),E([v()],S.prototype,"listPrivateRecordAccess"),E([v()],S.prototype,"requestPrivateRecordAccessKey"),E([v()],S.prototype,"deleteFiles"),E([v()],S.prototype,"uploadFiles"),E([v()],S.prototype,"mock"),E([v({preventMultipleCalls:true})],S.prototype,"login"),E([v()],S.prototype,"logout"),E([v({preventMultipleCalls:true})],S.prototype,"signup"),E([v({preventMultipleCalls:true})],S.prototype,"resetPassword"),E([v({preventMultipleCalls:true})],S.prototype,"verifyEmail"),E([v({preventMultipleCalls:true})],S.prototype,"verifyPhoneNumber"),E([v({preventMultipleCalls:true})],S.prototype,"forgotPassword"),E([v({preventMultipleCalls:true})],S.prototype,"changePassword"),E([v({preventMultipleCalls:true})],S.prototype,"updateProfile"),E([v()],S.prototype,"postRecord"),E([v()],S.prototype,"getSubscriptions"),E([v()],S.prototype,"subscribe"),E([v()],S.prototype,"unsubscribe"),E([v()],S.prototype,"blockSubscriber"),E([v()],S.prototype,"unblockSubscriber"),E([v()],S.prototype,"subscribeNewsletter");var Nr={};var Mt=typeof globalThis<"u"?globalThis:void 0;Mt&&(Mt.Skapi=S,Mt.SkapiError=f,Mt.SkapiTypes=Nr);/*! Bundled license information:
234
234
 
235
235
  ieee754/index.js:
236
236
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
@@ -286,5 +286,5 @@ amazon-cognito-identity-js/es/index.js:
286
286
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
287
287
  * SPDX-License-Identifier: Apache-2.0
288
288
  *)
289
- */export{A as Skapi,f as SkapiError,Nr as Types};//# sourceMappingURL=skapi.browser.mjs.map
289
+ */export{S as Skapi,f as SkapiError,Nr as Types};//# sourceMappingURL=skapi.browser.mjs.map
290
290
  //# sourceMappingURL=skapi.browser.mjs.map