skapi-js 1.0.39 → 1.0.40

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.
package/dist/skapi.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see skapi.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>(()=>{var e={742:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,s=a(e),o=s[0],u=s[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,o,u)),l=0,h=u>0?o-4:o;for(n=0;n<h;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[l++]=255&t),1===u&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,s=[],o=16383,a=0,c=r-i;a<c;a+=o)s.push(u(e,a,a+o>c?c:a+o));return 1===i?(t=e[r-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),s.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=s[o],r[s.charCodeAt(o)]=o;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,s,o=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(s=i)>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},764:(e,t,n)=>{"use strict";var r=n(742),i=n(645),s=n(826);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return c(this,e,t,n)}function c(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=f(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(t,n),i=(e=a(e,r)).write(t,n);return i!==r&&(e=e.slice(0,i)),e}(e,t,n):function(e,t){if(u.isBuffer(t)){var n=0|d(t.length);return 0===(e=a(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?a(e,0):f(e,t);if("Buffer"===t.type&&s(t.data))return f(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(l(t),e=a(e,t<0?0:0|d(t)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function f(e,t){var n=t.length<0?0:0|d(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function d(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return $(e).length;default:if(r)return B(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return C(this,t,n);case"utf8":case"utf-8":return R(this,t,n);case"ascii":return D(this,t,n);case"latin1":case"binary":return U(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){var s,o=1,a=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(s=n;s<a;s++)if(c(e,s)===c(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===u)return l*o}else-1!==l&&(s-=s-l),l=-1}else for(n+u>a&&(n=a-u),s=n;s>=0;s--){for(var h=!0,f=0;f<u;f++)if(c(e,s+f)!==c(t,f)){h=!1;break}if(h)return s}return-1}function _(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function b(e,t,n,r){return q(B(t,e.length-n),e,n,r)}function A(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function v(e,t,n,r){return A(e,t,n,r)}function E(e,t,n,r){return q($(t),e,n,r)}function S(e,t,n,r){return q(function(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function I(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function R(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s,o,a,u,c=e[i],l=null,h=c>239?4:c>223?3:c>191?2:1;if(i+h<=n)switch(h){case 1:c<128&&(l=c);break;case 2:128==(192&(s=e[i+1]))&&(u=(31&c)<<6|63&s)>127&&(l=u);break;case 3:s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(u=(15&c)<<12|(63&s)<<6|63&o)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,h=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=h}return function(e){var t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=T));return n}(r)}t.lW=u,t.h2=50,u.TYPED_ARRAY_SUPPORT=void 0!==n.g.TYPED_ARRAY_SUPPORT?n.g.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),o(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,n){return c(null,e,t,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}(null,e,t,n)},u.allocUnsafe=function(e){return h(null,e)},u.allocUnsafeSlow=function(e){return h(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},u.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!0;default:return!1}},u.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=u.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!u.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},u.byteLength=p,u.prototype._isBuffer=!0,u.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)y(this,t,t+1);return this},u.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)y(this,t,t+3),y(this,t+1,t+2);return this},u.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)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?R(this,0,e):g.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.h2;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,n,r,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),c=this.slice(r,i),l=e.slice(t,n),h=0;h<a;++h)if(c[h]!==l[h]){s=c[h],o=l[h];break}return s<o?-1:o<s?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return A(this,e,t,n);case"latin1":case"binary":return v(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var T=4096;function D(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function U(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function C(e,t,n){var r,i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var s="",o=t;o<n;++o)s+=(r=e[o])<16?"0"+r.toString(16):r.toString(16);return s}function P(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function N(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function k(e,t,n,r,i,s){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function O(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function V(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,s){return s||V(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,s){return s||V(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=u.prototype;else{var i=t-e;n=new u(i,void 0);for(var s=0;s<i;++s)n[s]=this[s+e]}return n},u.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},u.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},u.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},u.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);k(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);k(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)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(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},u.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var o=u.isBuffer(e)?e:B(new u(e,r).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var x=/[^+\/0-9A-Za-z-_]/g;function B(e,t){var n;t=t||1/0;for(var r=e.length,i=null,s=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function $(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(x,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}},249:function(e,t,n){var r;e.exports=(r=r||function(e,t){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),"undefined"!=typeof self&&self.crypto&&(r=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(r=globalThis.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==n.g&&n.g.crypto&&(r=n.g.crypto),!r)try{r=n(480)}catch(e){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),o={},a=o.lib={},u=a.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=a.WordArray=u.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s<i;s++){var o=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=o<<24-(r+s)%4*8}else for(var a=0;a<i;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=u.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(i());return new c.init(t,e)}}),l=o.enc={},h=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},f=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},d=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(f.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return f.parse(unescape(encodeURIComponent(e)))}},p=a.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,o=this.blockSize,a=s/(4*o),u=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,l=e.min(4*u,s);if(u){for(var h=0;h<u;h+=o)this._doProcessBlock(i,h);n=i.splice(0,u),r.sigBytes-=l}return new c.init(n,l)},clone:function(){var e=u.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),g=(a.Hasher=p.extend({cfg:u.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new g.HMAC.init(e,n).finalize(t)}}}),o.algo={});return o}(Math),r)},269:function(e,t,n){var r,i,s;e.exports=(r=n(249),s=(i=r).lib.WordArray,i.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s<n;s+=3)for(var o=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<n;a++)i.push(r.charAt(o>>>6*(3-a)&63));var u=r.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<n.length;i++)r[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return function(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=a<<24-i%4*8,i++}return s.create(r,i)}(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)},10:function(e,t,n){var r;e.exports=(r=n(249),n(153),n(824),r.HmacSHA256)},824:function(e,t,n){var r,i,s;e.exports=(i=(r=n(249)).lib.Base,s=r.enc.Utf8,void(r.algo.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=s.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),a=i.words,u=o.words,c=0;c<n;c++)a[c]^=1549556828,u[c]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})))},433:function(e,t,n){var r;e.exports=(r=n(249),function(){if("function"==typeof ArrayBuffer){var e=r.lib.WordArray,t=e.init,n=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};n.prototype=e}}(),r.lib.WordArray)},153:function(e,t,n){var r;e.exports=(r=n(249),function(e){var t=r,n=t.lib,i=n.WordArray,s=n.Hasher,o=t.algo,a=[],u=[];!function(){function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)t(r)&&(i<8&&(a[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++}();var c=[],l=o.SHA256=s.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],o=n[3],a=n[4],l=n[5],h=n[6],f=n[7],d=0;d<64;d++){if(d<16)c[d]=0|e[t+d];else{var p=c[d-15],g=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,y=c[d-2],m=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;c[d]=g+c[d-7]+m+c[d-16]}var w=r&i^r&s^i&s,_=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),b=f+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&h)+u[d]+c[d];f=h,h=l,l=a,a=o+b|0,o=s,s=i,i=r,r=b+(_+w)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+a|0,n[5]=n[5]+l|0,n[6]=n[6]+h|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=s._createHelper(l),t.HmacSHA256=s._createHmacHelper(l)}(Math),r.SHA256)},645:(e,t)=>{t.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,h=n?i-1:0,f=n?-1:1,d=e[t+h];for(h+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+e[t+h],h+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+h],h+=f,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=c}return(d?-1:1)*o*Math.pow(2,s-r)},t.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<<c)-1,h=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+h>=1?f/u:f*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=l?(a=0,o=l):o+h>=1?(a=(t*u-1)*Math.pow(2,i),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[n+d]=255&o,d+=p,o/=256,c-=8);e[n+d-p]|=128*g}},826:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},204:(e,t,n)=>{e.exports=self.fetch||(self.fetch=n(869).default||n(869))},808:(e,t,n)=>{var r,i,s;void 0===(i="function"==typeof(r=s=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function i(){}function s(t,n,s){if("undefined"!=typeof document){"number"==typeof(s=e({path:"/"},i.defaults,s)).expires&&(s.expires=new Date(1*new Date+864e5*s.expires)),s.expires=s.expires?s.expires.toUTCString():"";try{var o=JSON.stringify(n);/^[\{\[]/.test(o)&&(n=o)}catch(e){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var a="";for(var u in s)s[u]&&(a+="; "+u,!0!==s[u]&&(a+="="+s[u].split(";")[0]));return document.cookie=t+"="+n+a}}function o(e,n){if("undefined"!=typeof document){for(var i={},s=document.cookie?document.cookie.split("; "):[],o=0;o<s.length;o++){var a=s[o].split("="),u=a.slice(1).join("=");n||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var c=t(a[0]);if(u=(r.read||r)(u,c)||t(u),n)try{u=JSON.parse(u)}catch(e){}if(i[c]=u,e===c)break}catch(e){}}return e?i[e]:i}}return i.set=s,i.get=function(e){return o(e,!1)},i.getJSON=function(e){return o(e,!0)},i.remove=function(t,n){s(t,"",e(n,{expires:-1}))},i.defaults={},i.withConverter=n,i}((function(){}))})?r.call(t,n,t,e):r)||(e.exports=i),e.exports=s()},869:(e,t,n)=>{"use strict";function r(e,t){return t=t||{},new Promise((function(n,r){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return{ok:2==(i.status/100|0),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(e){return a[e.toLowerCase()]},has:function(e){return e.toLowerCase()in a}}}};for(var c in i.open(t.method||"get",e,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){s.push(t=t.toLowerCase()),o.push([t,n]),a[t]=a[t]?a[t]+","+n:n})),n(u())},i.onerror=r,i.withCredentials="include"==t.credentials,t.headers)i.setRequestHeader(c,t.headers[c]);i.send(t.body||null)}))}n.r(t),n.d(t,{default:()=>r})},296:()=>{},480:()=>{}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{Skapi:()=>Ot,SkapiError:()=>e});class e extends Error{constructor(e,t){Array.isArray(e)&&e.length<=2?(super(e[1]||"Something went wrong."),this.name=t&&t.name||"SKAPI",this.code=e[0]||"ERROR",t&&(t.code&&(this.code=t.code),t.cause&&(this.cause=t.cause))):"string"==typeof e?(super(e||"Something went wrong."),this.name="SKAPI",this.code="ERROR",t&&(t.code&&(this.code=t.code),t.cause&&(this.cause=t.cause))):e instanceof Error&&(super(e.message||"Something went wrong."),this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code))}}class t{static hash(e){"string"!=typeof e&&(console.warn("coercing non-string value to empty string"),e="");const n=t.sb(e);let r,i,s,o,a=1732584193,u=-271733879,c=-1732584194,l=271733878;for(let e=0;e<n.length;e+=16)r=a,i=u,s=c,o=l,a=t.ff(a,u,c,l,n[e],7,-680876936),l=t.ff(l,a,u,c,n[e+1],12,-389564586),c=t.ff(c,l,a,u,n[e+2],17,606105819),u=t.ff(u,c,l,a,n[e+3],22,-1044525330),a=t.ff(a,u,c,l,n[e+4],7,-176418897),l=t.ff(l,a,u,c,n[e+5],12,1200080426),c=t.ff(c,l,a,u,n[e+6],17,-1473231341),u=t.ff(u,c,l,a,n[e+7],22,-45705983),a=t.ff(a,u,c,l,n[e+8],7,1770035416),l=t.ff(l,a,u,c,n[e+9],12,-1958414417),c=t.ff(c,l,a,u,n[e+10],17,-42063),u=t.ff(u,c,l,a,n[e+11],22,-1990404162),a=t.ff(a,u,c,l,n[e+12],7,1804603682),l=t.ff(l,a,u,c,n[e+13],12,-40341101),c=t.ff(c,l,a,u,n[e+14],17,-1502002290),u=t.ff(u,c,l,a,n[e+15],22,1236535329),a=t.gg(a,u,c,l,n[e+1],5,-165796510),l=t.gg(l,a,u,c,n[e+6],9,-1069501632),c=t.gg(c,l,a,u,n[e+11],14,643717713),u=t.gg(u,c,l,a,n[e],20,-373897302),a=t.gg(a,u,c,l,n[e+5],5,-701558691),l=t.gg(l,a,u,c,n[e+10],9,38016083),c=t.gg(c,l,a,u,n[e+15],14,-660478335),u=t.gg(u,c,l,a,n[e+4],20,-405537848),a=t.gg(a,u,c,l,n[e+9],5,568446438),l=t.gg(l,a,u,c,n[e+14],9,-1019803690),c=t.gg(c,l,a,u,n[e+3],14,-187363961),u=t.gg(u,c,l,a,n[e+8],20,1163531501),a=t.gg(a,u,c,l,n[e+13],5,-1444681467),l=t.gg(l,a,u,c,n[e+2],9,-51403784),c=t.gg(c,l,a,u,n[e+7],14,1735328473),u=t.gg(u,c,l,a,n[e+12],20,-1926607734),a=t.hh(a,u,c,l,n[e+5],4,-378558),l=t.hh(l,a,u,c,n[e+8],11,-2022574463),c=t.hh(c,l,a,u,n[e+11],16,1839030562),u=t.hh(u,c,l,a,n[e+14],23,-35309556),a=t.hh(a,u,c,l,n[e+1],4,-1530992060),l=t.hh(l,a,u,c,n[e+4],11,1272893353),c=t.hh(c,l,a,u,n[e+7],16,-155497632),u=t.hh(u,c,l,a,n[e+10],23,-1094730640),a=t.hh(a,u,c,l,n[e+13],4,681279174),l=t.hh(l,a,u,c,n[e],11,-358537222),c=t.hh(c,l,a,u,n[e+3],16,-722521979),u=t.hh(u,c,l,a,n[e+6],23,76029189),a=t.hh(a,u,c,l,n[e+9],4,-640364487),l=t.hh(l,a,u,c,n[e+12],11,-421815835),c=t.hh(c,l,a,u,n[e+15],16,530742520),u=t.hh(u,c,l,a,n[e+2],23,-995338651),a=t.ii(a,u,c,l,n[e],6,-198630844),l=t.ii(l,a,u,c,n[e+7],10,1126891415),c=t.ii(c,l,a,u,n[e+14],15,-1416354905),u=t.ii(u,c,l,a,n[e+5],21,-57434055),a=t.ii(a,u,c,l,n[e+12],6,1700485571),l=t.ii(l,a,u,c,n[e+3],10,-1894986606),c=t.ii(c,l,a,u,n[e+10],15,-1051523),u=t.ii(u,c,l,a,n[e+1],21,-2054922799),a=t.ii(a,u,c,l,n[e+8],6,1873313359),l=t.ii(l,a,u,c,n[e+15],10,-30611744),c=t.ii(c,l,a,u,n[e+6],15,-1560198380),u=t.ii(u,c,l,a,n[e+13],21,1309151649),a=t.ii(a,u,c,l,n[e+4],6,-145523070),l=t.ii(l,a,u,c,n[e+11],10,-1120210379),c=t.ii(c,l,a,u,n[e+2],15,718787259),u=t.ii(u,c,l,a,n[e+9],21,-343485551),a=t.ad(a,r),u=t.ad(u,i),c=t.ad(c,s),l=t.ad(l,o);return t.rh(a)+t.rh(u)+t.rh(c)+t.rh(l)}static rh(e){let n="";for(let r=0;r<=3;r++)n+=t.alphabet.charAt(e>>8*r+4&15)+t.alphabet.charAt(e>>8*r&15);return n}static ad(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}static rl(e,t){return e<<t|e>>>32-t}static cm(e,n,r,i,s,o){return t.ad(t.rl(t.ad(t.ad(n,e),t.ad(i,o)),s),r)}static ff(e,n,r,i,s,o,a){return t.cm(n&r|~n&i,e,n,s,o,a)}static gg(e,n,r,i,s,o,a){return t.cm(n&i|r&~i,e,n,s,o,a)}static hh(e,n,r,i,s,o,a){return t.cm(n^r^i,e,n,s,o,a)}static ii(e,n,r,i,s,o,a){return t.cm(r^(n|~i),e,n,s,o,a)}static sb(e){let t;const n=1+(e.length+8>>6),r=new Array(16*n);for(t=0;t<16*n;t++)r[t]=0;for(t=0;t<e.length;t++)r[t>>2]|=e.charCodeAt(t)<<t%4*8;return r[t>>2]|=128<<t%4*8,r[16*n-2]=8*e.length,r}}function i(e=6){let t="";let n=0;for(;n<e;)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random())),n+=1;return t}function s(t){function n(e,t,n){let r=t.slice(0,1),i=t.slice(-1);if("."===r&&(t=t.slice(1)),"."===i&&(t=t.slice(0,-1)),t.includes(".")){let n=t.split(".");t=n.pop();for(let t of n)t&&(e.hasOwnProperty(t)||(e[t]={}),e=e[t])}e.hasOwnProperty(t)?Array.isArray(e[t])?e[t].push(n):e[t]=[e[t],n]:e[t]=n}let r=[];if(t instanceof FormData){let e={},i=0,s=[];for(let o of t.entries()){let t=o[0],a=o[1];if(a instanceof File){if(i+a.size>4e6){r.push({name:t,file:a});continue}i+=a.size,s.push({name:t,file:a})}else if(a instanceof FileList){if(a&&a.length>0)for(let e=0;e<=a.length-1;e++)i+a.item(e).size>4e6?r.push({name:t,file:a.item(e)}):(i+=a.item(e).size,s.push({name:t,file:a.item(e)}))}else n(e,t,a)}return{meta:e,files:s,to_bin:r}}if(t instanceof SubmitEvent&&(t=t.target),t instanceof HTMLFormElement){let s={},o=[],a=0,u=t.querySelectorAll("input"),c=t.querySelectorAll("textarea");for(let e=0;e<c.length;e++){let t=c[e];t.name&&n(s,t.name,t.value)}for(let e=0;e<u.length;e++){let t=u[e];if(t.name)if("number"===t.type)t.value&&n(s,t.name,Number(t.value));else if("checkbox"===t.type||"radio"===t.type)t.checked?""===t.value&&"checkbox"===t.type||"on"===t.value||"true"===t.value?n(s,t.name,!0):"false"===t.value?n(s,t.name,!1):t.value&&n(s,t.name,t.value):"checkbox"===t.type&&(""===t.value||"on"===t.value||"true"===t.value?n(s,t.name,!1):"false"===t.value?n(s,t.name,!0):n(s,t.name,void 0));else if("file"===t.type){if(t.files&&t.files.length>0)for(let e=0;e<=t.files.length-1;e++)a+t.files.item(e).size>4e6?r.push({name:t.name,file:t.files.item(e)}):(a+=t.files.item(e).size,o.push({name:t.name,file:t.files.item(e)}))}else n(s,t.name,t.value)}if(i=s,new Blob([JSON.stringify(i)]).size>2097152)throw new e("JSON Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{meta:s,files:o,to_bin:r}}var i;return null}t.alphabet="0123456789abcdef";const o={UserId:function(t,n="User ID"){if(!t)throw new e(`${n} is empty.`,{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e(`${n} should be type: string.`,{code:"INVALID_PARAMETER"});if(!t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i))throw new e(`${n} is invalid.`,{code:"INVALID_PARAMETER"});return t},PhoneNumber:function(t){if(t&&("string"!=typeof t||"+"!==t.charAt(0)||isNaN(Number(t.substring(1)))))throw new e('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return t||""},Birthdate:function(t){if(t){if("string"!=typeof t)throw new e('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let n=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(10!==t.length||3!==t.split("-").length||!n.test(t))throw new e('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return t||""},Password:function(t){if(!t)throw new e('"password" is required.',{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(t.length<6)throw new e('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(t.length>60)throw new e('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"});return t},Email:function(t,n="email"){if(!t)throw new e(`"${n}" is required.`,{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e(`"${n}"should be type: string.`,{code:"INVALID_PARAMETER"});if(t.length<5)throw new e(`"${n}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(t)&&(t=t.trim()).split("@")[1].split(".").length>=2)return t.toLowerCase();throw new e(`"${t}" is an invalid email.`,{code:"INVALID_PARAMETER"})},Url:function(t){const n=(()=>{let e=window.location.origin||null;return e&&"/"===e.slice(-1)&&(e=e.slice(0,-1)),e})();let r=t=>{if("string"==typeof t){if("*"===t)return"*";{let r,i=t.trim();if("/"===i[0]&&n){if("file:"===n.slice(0,5))throw new e(`"${t}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});i=n+i}else if("."===i[0]&&n){if("file:"===n.slice(0,5))throw new e(`"${t}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let r=window.location.href.split("?")[0];"/"!==r.slice(-1)&&(r+="/"),i=r+i.slice(1)}try{r=new URL(i)}catch(n){throw new e(`"${t}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(r.protocol)return r.href}}throw new e(`"${t}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(t)?t.map((e=>r(e))):r(t)},specialChars:function(t,n="parameter",r=!1,i=!1){let s=t=>{if("string"!=typeof t)throw new e(`${n} should be type: <string | string[]>.`,{code:"INVALID_PARAMETER"});if(!i&&t.includes(" "))throw new e(`${n} should not have whitespace.`,{code:"INVALID_PARAMETER"});if(!r&&t.includes("."))throw new e(`${n} should not have periods.`,{code:"INVALID_PARAMETER"});if(/[!@#$%&*()+\-={};':"\|,<>\/?~]/.test(t))throw new e(`${n} should not have special characters.`,{code:"INVALID_PARAMETER"})};if(Array.isArray(t))for(let e of t)s(e);else s(t);return t},Params:function t(n,r,i=null,o=[],a=null){function u(t){if(t instanceof Promise)throw new e("Parameter should not be a promise",{code:"INVALID_PARAMETER"});return t&&"object"==typeof t&&!Array.isArray(t)&&Object.keys(t).length}Array.isArray(o)&&(o=o.concat(["service","owner"]));let c,l=n,h=null,f=a?` in "${a}" is invalid.`:". Parameter should be type <object>.";if(null===a){if(u(l)){l=l instanceof HTMLFormElement||l instanceof FormData||l instanceof SubmitEvent?s(n)?.meta:JSON.parse(JSON.stringify(n));for(let t in l)if(!r.hasOwnProperty(t)&&Array.isArray(o)&&!o.includes(t))throw new e(`Key name "${t}" is invalid in parameter.`,{code:"INVALID_PARAMETER"});if(Array.isArray(i)&&i.length)for(let t of i)if(!Object.keys(l).includes(t))throw new e(`Key "${t}" is required in parameter.`,{code:"INVALID_PARAMETER"})}else if((d=l)&&"object"==typeof d&&!Array.isArray(d)&&!Object.keys(d).length||void 0===l){let e={};for(let t in r){let n=r[t];Array.isArray(n)&&"function"==typeof n[n.length-1]&&(e[t]=n[n.length-1]())}return Object.keys(e).length?e:l}if(null===l)return null}var d;if(u(r)&&u(l)){for(let e in r){let n=r[e];if(l.hasOwnProperty(e)&&null===l[e])l[e]=null;else if(l.hasOwnProperty(e)&&void 0!==l[e])l[e]=t(l[e],n,null,null,e);else{let t=Array.isArray(n)&&"function"==typeof n[n.length-1]?n[n.length-1]:null;if(t){let n=t();void 0!==n&&(l[e]=n)}}}c=l}else if(Array.isArray(r))for(let n of r)try{void 0!==typeof l&&"function"!=typeof n&&(c=t(l,n,null,null,a));break}catch(t){if("string"==typeof t&&"BREAK:"===t.substring(0,6)){let n=(t=t.substring(6)).split(":");h=new e(n[1],{code:n[0]});break}h=t}else{if("function"==typeof r)return r(l);if("string"==typeof r)if(Array.isArray(l)){if("array"!==r)throw new e(`Invalid type "${typeof l}"${f}`,{code:"INVALID_PARAMETER"});for(let t of l)if(!["number","string","boolean"].includes(typeof t)&&null!==t)throw new e(`Invalid type "${typeof t}" in "${a}" array value.`,{code:"INVALID_PARAMETER"});c=l}else if(["number","string","boolean","array","function"].includes(r)){if(typeof l!==r)throw new e(`Value: ${l}${f}`,{code:"INVALID_PARAMETER"});if("number"===r&&Math.abs(l)>4503599627370496)throw`BREAK:INVALID_PARAMETER:"${a}" integer value should be within -4503599627370496 ~ +4503599627370546.`;c=l}else{if(l!==r)throw new e(`Value: ${l}${f}`,{code:"INVALID_PARAMETER"});c=l}else null===r&&(c=l)}if(void 0===c&&h)throw h;return c}},a={};function u(){return this.__connection}async function c(t,n=null,r){r=r||{};let{auth:s=!1,method:u="post",meta:c=null,bypassAwaitConnection:f=!1}=r;u=u.toLowerCase();let g=f?null:await this.__connection;if(!g&&!f)throw new e("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});let y=s?this.session?.idToken?.jwtToken:null;if(s){if(!y)throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"});{let t=Date.now()/1e3;if(this.session.idToken.payload.exp<t)try{await this.authentication().getSession({refreshToken:!0}),y=this.session?.idToken?.jwtToken}catch(t){throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"})}}}let m="";try{m=o.Url(t)}catch(e){}let w=m||await(async(e,t)=>{const n=await Promise.all([this.admin_endpoint,this.record_endpoint]),r=n[0],i=n[1];return((()=>{switch(e){case"get-newsletters":case"get-public-newsletters":case"get-users":case"post-userdata":case"remove-account":case"post-secure":case"subscribe-newsletter":case"subscribe-public-newsletter":case"signup":case"confirm-signup":case"recover-account":case"mock":case"service":case"grant-access":case"last-verified-email":case"ticket":case"get-newsletter-subscription":case"request-username-change":case"jwt-login":case"client-secret-request":return{public:r.admin_public,private:r.admin_private};case"post-record":case"get-records":case"subscription":case"get-subscription":case"del-records":case"get-table":case"get-tag":case"get-index":case"get-signed-url":case"grant-private-access":case"request-private-access-key":case"get-ws-group":case"del-files":return{private:i.record_private,public:i.record_public};default:return null}})()?.[t?"private":"public"]||"")+e})(t,!!s),_=this.session?.attributes?.["custom:service"]||g?.service||this.service,b=this.session?.attributes?.["custom:owner"]||g?.owner||this.owner;if(c){if("object"!=typeof c||Array.isArray(c))throw new e("Invalid meta data.",{code:"INVALID_REQUEST"});c=JSON.parse(JSON.stringify(c))}if(Array.isArray(n)||n&&"object"!=typeof n)throw new e("Request data should be a JSON Object | FormData | HTMLFormElement.",{code:"INVALID_REQUEST"});let A="blob"!==r?.responseType?{service:_,owner:b}:{},v={},{fetchMore:E=!1,progress:S}=r?.fetchOptions||{};if(r?.fetchOptions&&Object.keys(r.fetchOptions).length){let t={};for(let e of["limit","startKey","ascending"])r.fetchOptions.hasOwnProperty(e)&&(t[e]=r.fetchOptions[e]);if(t=o.Params(t,{limit:"number",startKey:null,ascending:"boolean"}),t.hasOwnProperty("limit")&&"number"==typeof t.limit){if(t.limit>1e3)throw new e("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});Object.assign(v,{limit:t.limit})}t.hasOwnProperty("startKey")&&"object"==typeof t.startKey&&t.startKey&&Object.keys(t.startKey)&&Object.assign(v,{startKey:t.startKey}),t.hasOwnProperty("ascending")&&"boolean"==typeof t.ascending&&Object.assign(v,{ascending:t.ascending})}Object.assign(A,v);let I=!1;if(n instanceof SubmitEvent&&(n=n?.target),n instanceof HTMLFormElement&&(n=new FormData(n)),n instanceof FormData&&(I=!0),c)c=Object.assign(A,c);else if(n)if(I)for(let e in A)void 0!==A[e]&&n.set(e,new Blob([JSON.stringify(A[e])],{type:"application/json"}));else n=Object.assign(A,n);else n=A;if(I&&"function"==typeof r?.fetchOptions?.formData){let t=r.fetchOptions.formData(n);if(t instanceof Promise&&(t=await t),t instanceof FormData&&(n=t),!(n instanceof FormData))throw new e("Callback for extractFormData() should return FormData",{code:"INVALID_PARAMETER"});{let t=0;for(let e of n.entries()){let n=e[1];if(n instanceof File)t+=n.size;else if(n instanceof FileList&&n&&n.length>0)for(let e=0;e<=n.length-1;e++)t+=n.item(e).size}if(t>42e5)throw new e("Files cannot exceed 4MB. Use skapi.uploadFiles(...) instead.",{code:"INVALID_REQUEST"})}}let R=l.bind(this)({params:n,url:m||t,fetchMore:!I&&E});if(R&&"object"==typeof R)return R;if(!R||"string"!=typeof R)return null;if(!(a[R]instanceof Promise)){let e={Accept:"*/*"};if(y&&(e.Authorization=y),c){let t="__meta__"+i(16);n instanceof FormData&&(e["Content-Meta"]=window.btoa(encodeURIComponent(JSON.stringify({meta_key:t,merge:"data"}))),n.set(t,new Blob([JSON.stringify(c)],{type:"application/json"})))}r.hasOwnProperty("contentType")?r?.contentType&&(e["Content-Type"]=r.contentType):n instanceof FormData||(e["Content-Type"]="application/json");let s={headers:e};r?.responseType&&(s.responseType=r.responseType),"post"===u?a[R]=d.bind(this)(w,n,s,S):"get"===u&&(a[R]=p.bind(this)(w,n,s,S,r?.noParams));try{let e=await a[R];return I?e:h.bind(this)({hashedParam:R,url:t,response:e})}catch(e){throw e}finally{R&&a.hasOwnProperty(R)&&delete a[R]}}}function l(n){let{params:r={},url:i,fetchMore:s=!1}=n||{};if(r.hasOwnProperty("startKey")&&r.startKey){if("object"!=typeof r.startKey&&!Object.keys(r.startKey).length&&"start"!==r.startKey&&"end"!==r.startKey)throw new e(`"${r.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});"start"===r.startKey&&(s=!1,delete r.startKey)}let o=(()=>{if(r&&"object"==typeof r&&Object.keys(r).length){function e(e){function t(e){return"object"==typeof e&&e?Object.keys(e).sort().reduce(((t,n)=>(t[n]=e[n],t)),{}):e}let n=t(e);n.hasOwnProperty("limit")&&delete n.limit;for(let r in n)n[r]&&"object"==typeof n[r]&&(n[r]=t(e[r]));return n}return t.hash(i+"/"+JSON.stringify(e(r)))}return t.hash(i+"/"+this.service)})();if(!s&&this.__startKeyHistory?.[i]?.[o]){if(this.__cached_requests?.[i]&&this.__cached_requests?.[i]?.[o]&&delete this.__cached_requests[i][o],Array.isArray(this.__startKeyHistory[i][o])&&this.__startKeyHistory[i][o].length)for(let e of this.__startKeyHistory[i][o]){let n=o+"/"+t.hash(JSON.stringify(e));this.__cached_requests?.[i]&&this.__cached_requests?.[i]?.[n]&&delete this.__cached_requests[i][n]}return delete this.__startKeyHistory[i][o],o}if(!Array.isArray(this.__startKeyHistory?.[i]?.[o]))return o;let a=this.__startKeyHistory[i][o],u=a[a.length-1],c=o;if(u){if("end"===u)return{list:[],startKey:"end",endOfList:!0,startKeyHistory:this.__startKeyHistory[i][o]};c+=t.hash(u),r.startKey=JSON.parse(u)}return this.__cached_requests?.[i]?.[c]?this.__cached_requests[i][c]:o}async function h(e){let{hashedParam:t,url:n,response:r}=e,i=null;if(i=r instanceof Promise?await r:r,!(i&&"object"==typeof i&&i.hasOwnProperty("startKey")&&t&&n))return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,this.__startKeyHistory[n].hasOwnProperty(t)||(this.__startKeyHistory[n][t]=[]);let s="end"===i.startKey?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][t].includes(s)||this.__startKeyHistory[n][t].push(s),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][t]},i)}async function f(t,n,r){let i=await((t,r,i)=>new Promise(((s,o)=>{let a=new XMLHttpRequest;for(var u in a.open((n.method||"GET").toUpperCase(),t),r.headers||{})a.setRequestHeader(u,r.headers[u]);n.responseType&&(a.responseType=n.responseType),a.onload=()=>{if(a.status>=200&&a.status<300)if("json"==r.responseType||"blob"==r.responseType)s(a.response);else{let e=a.responseText;try{e=JSON.parse(e)}catch(e){}s(e)}else{let t=a.status,n=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],r=a.responseText;try{r=JSON.parse(r)}catch(e){}if("string"==typeof r){let t=a.response.split(":"),r=t.splice(0,1)[0].trim();o(new e(t.join("").trim(),{code:n.includes(r)?r:"ERROR"}))}else if("object"==typeof r&&r?.message){let n=r?.code||(t?t.toString():null)||"ERROR";o(new e(r?.message,{code:n}))}}},a.onerror=()=>o("Network error"),a.onabort=()=>o("Aborted"),a.ontimeout=()=>o("Timeout"),"function"==typeof i&&(a.onprogress=e=>{i({status:"download",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>a.abort()})},a.upload&&(a.upload.onprogress=e=>{i({status:"upload",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>a.abort()})})),a.send(r.body)})))(t,{headers:n?.headers,body:n.body,responseType:n?.responseType},r);if("object"==typeof i&&"GET"===n.method&&i.hasOwnProperty("body"))try{i=JSON.parse(i.body)}catch(e){}return i}async function d(e,t,n,r){let i=Object.assign({method:"POST"},n,{body:t instanceof FormData?t:JSON.stringify(t)});return f.bind(this)(e,i,r)}async function p(e,t,n,r,i){t&&"object"==typeof t&&!i&&Object.keys(t).length&&("?"!==e.substring(e.length-1)&&(e+="?"),e+=Object.keys(t).map((e=>{let n=t[e];return"string"!=typeof n&&(n=JSON.stringify(n)),encodeURIComponent(e)+"="+encodeURIComponent(n)})).join("&"));let s=Object.assign({method:"GET"},n);return f.bind(this)(e,s,r)}async function g(e){let t={url:e=>o.Url(e),data:null,sync:["boolean",()=>!0]};if(Array.isArray(e))for(let n of e)n=o.Params(n,t);else e=o.Params(e,t);return await c.bind(this)("post-secure",e,{auth:!0})}async function y(e,t){let{auth:n=!0,method:r="POST",meta:i,bypassAwaitConnection:s=!1,responseType:o,contentType:a}=t||{},{response:u,onerror:l,formData:h,progress:f}=t||{};return t&&Object.assign({auth:n,method:r,meta:i,bypassAwaitConnection:s,responseType:o,contentType:a},{fetchOptions:{response:u,onerror:l,formData:h,progress:f}}),c.bind(this)("mock",e,t)}async function m(){await this.__connection;let n=`${this.service}:${t.hash(window.location.href.split("?")[0])}`,r=window.sessionStorage.getItem(n);if(null!==r){try{r=JSON.parse(r)}catch(e){}return r}throw new e("Form response doesn't exist.",{code:"NOT_EXISTS"})}const w={};function _(n){let{preventMultipleCalls:r=!1}=n||{};return function(n,i,s){const o=s.value;s.value=function(...n){let s=n[0],a=n?.[1]||{},u=!0,c=null,l="";if(s instanceof SubmitEvent){s.preventDefault();let e=window.location.href;c=s.target;let t=new URL(c.action);l=t.href,c.action&&t.href!==e||(u=!1)}const h=n=>{if(a?.response){if("function"==typeof a.response)return a.response(n);throw new e('Callback "response" should be type: function.',{code:"INVALID_PARAMETER"})}return c&&u&&(window.sessionStorage.setItem(`${this.service}:${t.hash(l)}`,JSON.stringify(n)),window.location.href=l),n};let f,d=t=>(s instanceof SubmitEvent&&s.preventDefault(),t instanceof e?t.name=i+"()":t=t instanceof Error?t:new e(t,{name:i+"()"}),a?.onerror?"function"==typeof a.onerror?a.onerror(t):new e('Callback "onerror" should be type: function.',{code:"INVALID_PARAMETER",name:i+"()"}):t);const p=()=>{try{f=o.bind(this)(...n)}catch(e){let t=d(e);if(t instanceof Error)throw t;return t}if(f instanceof Promise)return(async()=>{try{let e=await f;return h(e)}catch(e){let t=d(e);if(t instanceof Error)throw t;return t}})()};return r?(async()=>(w?.[i]instanceof Promise||(w[i]=p().finally((()=>{w[i]=null}))),w[i]))():p()}}}const b=4503599627370496;function A(e){let t=0;for(let n=0;n<e.length;n++)t=62*t+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(e[n]);return t}function v(t){const n={user_id:"",record_id:"",updated:0,uploaded:0,table:{name:"",access_group:0},reference:{reference_limit:null,allow_multiple_reference:!0,referenced_count:0},ip:"",bin:{}},r={ip:e=>{"R"===e.slice(-1)?(n.readonly=!0,e=e.slice(0,-1)):n.readonly=!1,n.ip=e},rec:e=>{if(!e)return;n.record_id=e;let t=e.substring(0,e.length-9).split("").reverse().reduce(((e,t,n)=>e+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(t)*62**n),0);n.uploaded=t},usr:e=>{n.user_id=e},tbl:e=>{if(!e)return;let t=e.split("/");n.table.name=t[0],n.table.access_group="**"==t[2]?"private":parseInt(t[2]),n.table.subscription=!!t?.[3]},usr_tbl:e=>{let t=e.split("/");n.user_id=t[0],n.table.name=t[1],n.table.access_group="**"==t[3]?"private":parseInt(t[3]),n.table.subscription=!!t?.[4]},idx:t=>{if(!t)return;let r=t.split("!"),i=r.splice(0,1)[0],s=function(t){let n=t.substring(3);switch(t.substring(0,3)){case"!S%":return n;case"!N%":let r=n.split("."),i=Number(r[0])-4503599627370496;return 1===r.length?i:parseFloat(i.toString()+"."+r[1]);case"!B%":return"1"===n;case"!L%":case"!D%":try{return JSON.parse(n)}catch(t){throw new e("Value parse error.",{code:"PARSE_ERROR"})}default:return t}}("!"+r.join("!"));n.index={name:i,value:s}},ref:e=>{e&&(n.reference.record_id=e.split("/")[0])},tags:e=>{n.tags=e},upd:e=>{n.updated=e},acpt_mrf:e=>{n.reference.allow_multiple_reference=e},ref_limt:e=>{n.reference.reference_limit=e},rfd:e=>{n.reference.referenced_count=e},bin:e=>{let t={};if(Array.isArray(e))for(let n of e){let e=n.split("/").slice(3).join("/"),r=e.split("/"),i=decodeURIComponent(r.slice(-1)[0]),s=decodeURIComponent(r[10]),o=r[9],a=r[8],u="**"==r[6]?"private":parseInt(r[6]);u=0==u?"public":1==u?"authorized":u;let c={access_group:u,filename:i,url:n,path:e,size:A(o),uploaded:A(a),getFile:(e,t)=>{let r={dataType:e||"download",progress:t};return I.bind(this)(n,r)}};t[s]?t[s].push(c):t[s]=[c]}n.bin=t},data:e=>{let t=e;"!D%{}"===e?t={}:"!L%[]"===e&&(t=[]),n.data=t}};if(t.record_id)return t;for(let e in r)t.hasOwnProperty(e)&&r[e](t[e]);return t.private_key&&(this.__private_access_key[n.record_id]=t.private_key),n}async function E(t){let{endpoints:n}=t;if("string"==typeof n&&(n=[n]),!Array.isArray(n))throw new e('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});return c.bind(this)("del-files",{endpoints:n,storage:"records"},{auth:!0,method:"post"}).map((e=>v.bind(this)(e)))}async function S(t,n){await this.__connection;let r=n?.request||"post",s=n?.nestKey||"",o=n?.service||this.service;if("post"===r){if(!n?.record_id)throw new e('"record_id" is required.',{code:"INVALID_PARAMETER"})}else{if(o===this.service)throw new e("invalid service.",{code:"INVALID_PARAMETER"});if("host"!==r)throw new e("invalid request.",{code:"INVALID_PARAMETER"})}t instanceof SubmitEvent&&(t=t.target),t instanceof HTMLFormElement&&(t=new FormData(t));let a=[];if(t instanceof FormData){let e=[];for(let n of t.entries()){let t=n[1];if(t instanceof File){let r=n[0];a.push(r),e.push(t)}}t=e}if(!(t[0]instanceof File))throw new e('"fileList" should be a FileList or array of File object.',{code:"INVALID_PARAMETER"});let u,l={reserved_key:i(),service:o,request:r};n?.record_id&&(l.id=n.record_id);let h=(e,t,r)=>new Promise(((i,s)=>{u=new XMLHttpRequest,u.open("POST",e),u.onload=e=>{let t=u.responseText;try{t=JSON.parse(t)}catch(e){}if(u.status>=200&&u.status<300){let e=u.responseText;try{e=JSON.parse(e)}catch(e){}i(e)}else s(t)},u.onerror=()=>s("Network error"),u.onabort=()=>s("Aborted"),u.ontimeout=()=>s("Timeout"),u.upload&&"function"==typeof n.progress&&(u.upload.onprogress=r),u.send(t)})),f=[],d=[];function p(e){const t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(0===e)return t[0];let n="";for(;e>0;)n=t[e%62]+n,e=Math.floor(e/62);return n}let g=[];for(let e=0;e<t.length;e++){let i=t[e],o=a?.[e]||"",y=Object.assign({key:"host"===r?(s?s+"/":"")+i.name:o?o+"/"+i.name:i.name,sizeKey:p(i.size),contentType:i.type||null},l),{fields:m=null,url:w,cdn:_}=await c.bind(this)("get-signed-url",y,{auth:!0});g.push(_);let b=new FormData;for(let e in m)b.append(e,m[e]);b.append("file",i);try{await h(w,b,(e=>{"function"==typeof n.progress&&n.progress({status:"upload",progress:e.loaded/e.total*100,currentFile:i,completed:f,failed:d,loaded:e.loaded,total:e.total,abort:()=>u.abort()})})),f.push(i)}catch(e){d.push(i)}}return{completed:f,failed:d,bin_endpoints:g}}async function I(t,n){if("string"!=typeof t)throw new e('"url" should be type: string.',{code:"INVALID_PARAMETER"});o.Url(t);let r=!1,i=t.split("/"),s=i[2].split("."),a=null;3===s.length&&"skapi"===s[1]&&(a=s[0],r=!0);let u=i.slice(3);if(!r){if("auth"!==u[0]&&"publ"!==u[0])throw new e("Invalid file url.",{code:"INVALID_PARAMETER"});try{o.UserId(u[2]),o.UserId(u[3])}catch{throw new e("Invalid file url.",{code:"INVALID_PARAMETER"})}}let l=a?null:u[1];n=o.Params(n,{expires:"number",dataType:["base64","blob","endpoint","download",()=>"download"],progress:e=>e});let h="auth"==u[0],f=t.split("/").slice(-1)[0],d=n?.expires||0;if(d){if(d<0)throw new e('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let n={request:a?"get-host":"get",id:a||u[5],key:t,expires:d};l&&(n.service=l),t=(await c.bind(this)("get-signed-url",n,{auth:!0})).url}else if(h){let n=this.session?.idToken?.jwtToken,r="**"===u[6]?"**":parseInt(u[6]);if(!n)throw new e("User login is required.",{code:"INVALID_REQUEST"});{let t=Date.now()/1e3;if(this.session.idToken.payload.exp<t)try{await this.authentication().getSession({refreshToken:!0}),n=this.session?.idToken?.jwtToken}catch(t){throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"})}}if("**"===r){if(this.__user.user_id!==u[3])throw new e("User has no access.",{code:"INVALID_REQUEST"})}else if(this.__user.access_group<r)throw new e("User has no access.",{code:"INVALID_REQUEST"});t+=`?t=${n}`}if("endpoint"===n?.dataType)return t;if("download"===n?.dataType){let e=document.createElement("a");return e.href=t,document.body.appendChild(e),e.setAttribute("download",f),e.target="_blank",e.click(),document.body.removeChild(e),null}return new Promise((async(e,r)=>{try{let r=await c.bind(this)(t,{service:l||this.service},{method:"get",noParams:!0,contentType:null,responseType:"blob",fetchOptions:{progress:n?.progress}});if("base64"===n?.dataType){const t=new FileReader;t.onloadend=()=>e(t.result),t.readAsDataURL(r)}}catch(e){r(e)}}))}async function R(t,n){await this.__connection;const r={$updated:"number",$uploaded:"number",$referenced_count:"number"};"string"==typeof t?.table&&(t.table={name:t.table,access_group:0});const i={table:{name:"string",access_group:["number","private","public","authorized"],subscription:e=>o.UserId(e,'User ID in "subscription"')},reference:"string",index:{name:t=>{if("string"!=typeof t)throw new e('"index.name" should be type: string.',{code:"INVALID_PARAMETER"});return r.hasOwnProperty(t)||["$uploaded","$updated","$referenced_count","$user_id"].includes(t)?t:o.specialChars(t,"index.name",!0,!1)},value:n=>{if(t.index?.name&&r.hasOwnProperty(t.index.name)){let i=r[t.index.name];if(typeof n===i)return n;throw new e(`"index.value" should be type: ${i}.`,{code:"INVALID_PARAMETER"})}if("number"==typeof n){if(n>b||n<-4503599627370496)throw new e("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"});return n}return"boolean"==typeof n?n:"$user_id"==t.index?.name?o.UserId(n):o.specialChars(n,"index.value",!1,!0)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"],range:n=>{if(!t.index||!("value"in t.index))throw new e('"index.value" is required.',{code:"INVALID_PARAMETER"});if("$record_id"===t.index.name)throw new e(`Cannot do "index.range" on ${t.index.name}`,{code:"INVALID_PARAMETER"});if(typeof t.index.value!=typeof n)throw new e('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return"string"==typeof n?o.specialChars(n,"index.range",!1,!0):n}},tag:"string",private_key:"string"};if(t?.tag&&o.specialChars(t.tag,"tag",!1,!0),t?.table){if("public"===t.table.access_group?t.table.access_group=0:"authorized"===t.table.access_group&&(t.table.access_group=1),t.table?.name&&o.specialChars(t.table.name,"table name",!0,!0),"number"==typeof t.table.access_group)if(this.__user){if(this.user.access_group<t.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"})}else if(0<t.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"});t.table.hasOwnProperty("access_group")||(t.table.access_group=t.table?.subscription?1:0)}if(t?.index&&!t.index?.name)throw new e('"index.name" is required when using "index" parameter.',{code:"INVALID_REQUEST"});let s="";if(t?.record_id){o.specialChars(t.record_id,"record_id",!1,!1);let e={record_id:t.record_id};t?.service&&(e.service=t.service),t=e,this.__private_access_key[t.record_id]&&(t.private_key=this.__private_access_key[t.record_id])}else{let n;if(!this.session&&"private"===t.table?.access_group)throw new e("Unsigned users have no access to private records.",{code:"INVALID_REQUEST"});if(t.reference)try{n=o.UserId(t.reference)}catch(e){o.specialChars(t.reference,"reference",!1,!1),s=t.reference,this.__private_access_key[s]&&(t.private_key=this.__private_access_key[s])}let r=await this.checkAdmin(),a=o.Params(t||{},i,n||r?[]:["table"]);if("string"!=typeof a.table&&a.table?.subscription){if(!this.session)throw new e("Unsigned users have no access to subscription records.",{code:"INVALID_REQUEST"});a.table.subscription={user_id:a.table.subscription,group:1}}t=a}let a=!(!t.hasOwnProperty("access_group")||"string"==typeof t.table||!t.table.access_group)||!!this.__user,u=await c.bind(this)("get-records",t,{fetchOptions:n,auth:a,method:a?"post":"get"});for(let e in u.list)u.list[e]=v.bind(this)(u.list[e]);return s&&u?.reference_private_key&&(this.__private_access_key[s]=u.reference_private_key),u}async function T(t,n){let r=await this.checkAdmin();if(!n)throw new e('"config" argument is required.',{code:"INVALID_PARAMETER"});if(!this.user)throw new e("Login is required.",{code:"INVALID_REQUEST"});let i={};"function"==typeof n?.formData&&(i.formData=n.formData,delete n.formData),"string"==typeof n.table&&(n.table={name:n.table},n.record_id||(n.table.access_group=0)),"string"==typeof n.reference&&(n.reference={record_id:n.reference});let a=n.progress||null,u=null,l=o.Params(n||{},{record_id:"string",readonly:"boolean",table:{name:"string",subscription:"boolean",access_group:["number","private","public","authorized"]},reference:{record_id:e=>(o.specialChars(e,'"reference.record_id"',!1,!1),this.__private_access_key[e]&&(u=this.__private_access_key[e]),e),reference_limit:t=>{if(null===t)return null;if("number"==typeof t){if(0>t)throw new e('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(t>4503599627370546)throw new e('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return t}throw new e('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},allow_multiple_reference:"boolean"},index:{name:"string",value:["string","number","boolean"]},tags:t=>{if(null===t)return t;if("string"==typeof t)return[t];if(Array.isArray(t)){for(let n of t){if("string"!=typeof n)throw new e('"tags" should be type: <string | string[]>',{code:"INVALID_PARAMETER"});o.specialChars(t,"tag",!1,!0)}return t}throw new e('"tags" should be type: <string | string[]>',{code:"INVALID_PARAMETER"})},remove_bin:t=>{if(!t)return null;let n=[];if(Array.isArray(t))for(let r of t)if("string"==typeof r)n.push(r);else{if(!(r.url&&r.size&&r.filename))throw new e('"remove_bin" should be type: <string | BinaryFile[]>',{code:"INVALID_PARAMETER"});n.push(r.url)}return n}},[],["response","onerror","progress"],null);if(!l?.table&&!l?.record_id)throw new e('Either "record_id" or "table" should have a value.',{code:"INVALID_PARAMETER"});if(l.table){if("public"===l.table.access_group?l.table.access_group=0:"authorized"===l.table.access_group&&(l.table.access_group=1),"number"==typeof l.table.access_group&&!r&&this.user.access_group<l.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"});if(!l.table.name)throw new e('"table.name" cannot be empty string.',{code:"INVALID_PARAMETER"});if(o.specialChars(l.table.name,"table name",!0,!0),r&&"private"===l.table.access_group)throw new e("Service owner cannot write private records.",{code:"INVALID_REQUEST"});if(l.table?.subscription){if(l?.record_id||l.table.hasOwnProperty("access_group")||(l.table.access_group=1),0===l.table.access_group)throw new e("Public records cannot require subscription.",{code:"INVALID_REQUEST"});l.table.subscription_group=1,delete l.table.subscription}}if(delete(n=l).response,delete n.onerror,delete n.progress,u&&(n.reference_private_key=u),n.index){if(!n.index.name||"string"!=typeof n.index.name)throw new e('"index.name" is required. type: string.',{code:"INVALID_PARAMETER"});if(["$uploaded","$updated","$referenced_count","$user_id"].includes(n.index.name)||o.specialChars(n.index.name,"index name",!0),!n.index.hasOwnProperty("value"))throw new e('"index.value" is required.',{code:"INVALID_PARAMETER"});if("string"==typeof n.index.value)o.specialChars(n.index.value,"index value",!1,!0);else if("number"==typeof n.index.value&&(n.index.value>b||n.index.value<-4503599627370496))throw new e("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"})}let h={auth:!0},f=null,d=null;if(t instanceof HTMLFormElement||t instanceof FormData||t instanceof SubmitEvent){let e=s(t=t instanceof SubmitEvent?t.target:t);if(e.to_bin.length&&(d=e.to_bin),e.files.length){d||(d=[]);for(let t of e.files)d.push(t)}f=Object.assign({data:e.meta},n)}else f=Object.assign({data:t},n);"function"==typeof a&&(i.progress=a),Object.keys(i).length&&Object.assign(h,{fetchOptions:i});let p=await c.bind(this)("post-record",f,h);if(d){let e=new FormData;for(let t of d)e.append(t.name,t.file,t.file.name);let t={record_id:p.rec,progress:a};n.hasOwnProperty("service")&&(t.service=n.service);let{bin_endpoints:r}=await S.bind(this)(e,t);p.bin?p.bin.push(...r):p.bin=r}return v.bind(this)(p)}async function D(e,t){let n=await c.bind(this)("get-table",o.Params(e||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!0},{fetchOptions:t})),r={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(n?.list))for(let e of n.list)for(let t in r)e.hasOwnProperty(t)&&(e[r[t]]=e[t],delete e[t]);return n}async function U(t,n){if(!t?.table)throw new e('"table" is required.',{code:"INVALID_PARAMETER"});let r=o.Params(t||{},{table:"string",index:e=>o.specialChars(e,"index name",!0,!1),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(r.hasOwnProperty("order")){if(!r.order?.by)throw new e('"order.by" is required.',{code:"INVALID_PARAMETER"});if(r.order.hasOwnProperty("condition")&&!r.order.hasOwnProperty("value"))throw new e('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("index")&&"."!==r.index.substring(r.index.length-1))throw new e('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let i=await c.bind(this)("get-index",r,Object.assign({auth:!0},{fetchOptions:n})),s={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(i?.list)&&(i.list=i.list.map((e=>{let t=e.idx.split("/"),n={table:t[1],index:t[2],number_of_records:e.cnt_rec};for(let t in s)e?.[t]&&(n[s[t]]=e[t]);return n}))),i}async function C(e,t){let n=await c.bind(this)("get-tag",o.Params(e||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!0},{fetchOptions:t}));if(Array.isArray(n?.list))for(let e in n.list){let t=n.list[e],r=t.tag.split("/");n.list[e]={table:r[1],tag:r[0],number_of_records:t.cnt_rec}}return n}async function P(t){let n=await this.checkAdmin();if(n&&!t?.service)throw new e("Service ID is required.",{code:"INVALID_PARAMETER"});if(t?.record_id)return await c.bind(this)("del-records",{service:t.service||this.service,record_id:(t=>{if("string"==typeof t)return[t];if(!Array.isArray(t))throw new e('"record_id" should be type: <string | string[]>',{code:"INVALID_PARAMETER"});if(t.length>100)throw new e('"record_id" should not exceed 100 items.',{code:"INVALID_PARAMETER"});return o.specialChars(t,"record_id",!1,!1)})(t.record_id)},{auth:!0});{if(!t?.table){if(n)return null;throw new e('Either "table" or "record_id" is required.',{code:"INVALID_PARAMETER"})}let r={access_group:t=>{if("string"==typeof t&&["private","public","authorized"].includes(t))switch(t){case"private":return t;case"public":return 0;case"authorized":return 1}else if("number"==typeof t&&t>=0&&t<100)return t;throw new e('Invalid "table.access_group". Access group should be type <number (0~99) | "private" | "public" | "authorized">.',{code:"INVALID_PARAMETER"})},name:"string",subscription:r=>{if(n&&"string"==typeof t?.table?.subscription)return o.UserId(r,'User ID in "table.subscription"');if("boolean"==typeof r)return r?this.__user.user_id:null;throw new e('"table.subscription" is an invalid parameter key.',{code:"INVALID_PARAMETER"})}},i=o.Params(t.table||{},r,n?[]:["name"]);if(i.hasOwnProperty("subscription"))if(null===i.subscription)delete i.subscription;else{if(!i.hasOwnProperty("access_group"))throw new e('"table.access_group" is required for subscription records.',{code:"INVALID_PARAMETER"});if(0===i.access_group)throw new e("Public tables does not hold subscription records.",{code:"INVALID_REQUEST"});i.subscription_group=1}t.table=i}return await c.bind(this)("del-records",t,{auth:!0})}function N(t){if(!t.record_id)throw new e("Record ID is required.",{code:"INVALID_PARAMETER"});if(!t.user_id||Array.isArray(t.user_id)&&!t.user_id.length)throw new e("User ID is required.",{code:"INVALID_PARAMETER"});return V.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"add"})}function k(t){if(!t.record_id)throw new e("Record ID is required.",{code:"INVALID_PARAMETER"});if(!t.user_id||Array.isArray(t.user_id)&&!t.user_id.length)throw new e("User ID is required.",{code:"INVALID_PARAMETER"});return V.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"remove"})}function O(e){let t=V.bind(this)({record_id:e.record_id,user_id:e.user_id||null,execute:"list"});t.list=t.list.map((e=>(e.record_id=e.rec_usr.split("/")[0],e.user_id=e.rec_usr.split("/")[1],e)))}function M(e){return c.bind(this)("request-private-access-key",{record_id:e},{auth:!0})}function V(t){let n=t.execute,r=o.Params(t,{record_id:"string",user_id:t=>{if(!t){if("list"==n)return null;throw new e("User ID is required.",{code:"INVALID_PARAMETER"})}let r=t;if("string"==typeof r&&(r=[r]),r.length>100)throw new e("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let e of r)o.UserId(e,'User ID in "user_id"');return r},execute:["add","remove","list"]},["execute","record_id","user_id"]);return r.user_id||(r.user_id=null),c.bind(this)("grant-private-access",r,{auth:!0})}async function L(){if(await this.getProfile(),!this.session)throw new e("No access.",{code:"INVALID_REQUEST"});let t=await this.record_endpoint;return new WebSocket(t.websocket_private+"?token="+this.session.accessToken.jwtToken)}let F=0;async function x(){let e=this.__socket?await this.__socket:this.__socket;return e&&e.close(),this.__socket=null,this.__socket_group=null,null}function B(t,n=0){if("function"!=typeof t)throw new e("Callback must be a function.",{code:"INVALID_REQUEST"});return!F&&this.__socket instanceof Promise||(this.__socket=new Promise((async r=>{setTimeout((async()=>{if(await this.__connection,!await this.getProfile())throw new e("No access.",{code:"INVALID_REQUEST"});let n=await L.bind(this)();n.onopen=()=>{F=0,t({status:"success",message:"Connected to WebSocket server."}),this.__socket_group&&n.send(JSON.stringify({action:"joinGroup",rid:this.__socket_group,token:this.session.accessToken.jwtToken})),r(n)},n.onmessage=e=>{let n=JSON.parse(decodeURI(e.data)),r={status:"message",message:n?.["#message"]||null};n?.["#user_id"]&&(r.sender=n["#user_id"]),n?.["#notice"]&&Object.assign(r,{status:"notice",message:n["#notice"]}),t(r)},n.onclose=e=>{if(e.wasClean)t({status:"close",message:"WebSocket connection closed."}),this.__socket=null,this.__socket_group=null;else if(F++,F<10){let e=Math.min(1e3*2**F,3e4);t({status:"error",message:`Skapi: WebSocket connection error. Reconnecting in ${e/1e3} seconds...`}),B.bind(this)(t,e)}else t({status:"error",message:"Skapi: WebSocket connection error. Max reconnection attempts reached."}),this.__socket=null},n.onerror=()=>{throw t({status:"error",message:"Skapi: WebSocket connection error."}),new e("Skapi: WebSocket connection error.",{code:"ERROR"})}}),n)}))),this.__socket}async function $(t,n){let r=this.__socket?await this.__socket:this.__socket;if(!r)throw new e("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!n)throw new e("No recipient.",{code:"INVALID_REQUEST"});if((t instanceof FormData||t instanceof SubmitEvent||t instanceof HTMLFormElement)&&(t=s(t).meta),1===r.readyState){try{o.UserId(n),r.send(JSON.stringify({action:"sendMessage",uid:n,content:t,token:this.session.accessToken.jwtToken}))}catch(i){if(this.__socket_group!==n)throw new e(`User has not joined to the recipient group. Run joinRealtime("${n}")`,{code:"INVALID_REQUEST"});r.send(JSON.stringify({action:"broadcast",rid:n,content:t,token:this.session.accessToken.jwtToken}))}return{status:"success",message:"Message sent."}}throw new e("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function q(t){let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new e("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});(t instanceof FormData||t instanceof SubmitEvent||t instanceof HTMLFormElement)&&(t=s(t).meta);let{group:r=null}=t;if(!r&&!this.__socket_group)return{status:"success",message:"Left realtime message group."};if(null!==r&&"string"!=typeof r)throw new e('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return n.send(JSON.stringify({action:"joinGroup",rid:r,token:this.session.accessToken.jwtToken})),this.__socket_group=r,{status:"success",message:r?`Joined realtime message group: "${r}".`:"Left realtime message group."}}async function K(t,n){if(await this.__connection,!(t=o.Params(t,{user_id:e=>o.UserId(e,'User ID in "user_id"'),group:"string"},["group"])).group)throw new e('"group" is required.',{code:"INVALID_PARAMETER"});let r=await c.bind(this)("get-ws-group",t,{fetchOptions:n,auth:!0,method:"post"});for(let e=0;e<r.list.length;e++)r.list[e]=r.list[e].uid.split("#")[1];return r}async function j(t,n){if(await this.__connection,t||(t={searchFor:"group"}),(t=o.Params(t,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>t?.searchFor&&"number_of_users"===t?.searchFor?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]})).condition||(" "!==t.value&&t.value?t.condition="=":t.condition=">"),t.range&&t.condition&&delete t.condition,"number_of_users"===t.searchFor&&"number"!=typeof t.value)throw new e('"value" must be a number.',{code:"INVALID_PARAMETER"});if("group"===t.searchFor&&"string"!=typeof t.value)throw new e('"value" must be a string.',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("range")&&typeof t.range!=typeof t.value)throw new e(`"range" must be a ${typeof t.value}.`,{code:"INVALID_PARAMETER"});let r=await c.bind(this)("get-ws-group",t,{fetchOptions:n,auth:!0,method:"post"});return r.list=r.list.map((e=>({group:e.rid.split("#")[1],number_of_users:e.cnt}))),r}function H(t){if(t=o.Params(t,{user_id:e=>o.UserId(e,'"user_id"')},["user_id"]),this.__user&&t.user_id===this.__user.user_id)throw new e('"user_id" cannot be the user\'s own ID.',{code:"INVALID_PARAMETER"});return t}async function W(t,n,r){if(!(t=o.Params(t,{subscriber:e=>o.UserId(e,'User ID in "subscriber"'),subscription:e=>o.UserId(e,'User ID in "subscription"'),blocked:"boolean"})).subscriber&&!t.subscription)throw new e('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});Object.assign(t,{group:1});let i=await c.bind(this)("get-subscription",t,Object.assign({auth:!0},{fetchOptions:n}));return i.list=i.list.map(r||(e=>{let t={},n=e.sub.split("#");return t.subscriber=n[2],t.subscription=n[0],t.group=parseInt(n[1]),t.timestamp=e.stmp,t.blocked="N"===e.grp.substring(0,1),t})),i}async function J(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{subscribe:t,group:1},{auth:!0})}async function z(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{unsubscribe:t,group:1},{auth:!0})}async function Y(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{block:t,group:1},{auth:!0})}async function Q(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{unblock:t,group:1},{auth:!0})}async function G(t){await this.__connection;let n=await this.checkAdmin();t=o.Params(t,{user_id:t=>{if(t!==this.__user.user_id&&!n)throw new e("No access.",{code:"INVALID_REQUEST"});return t},group:t=>{if("public"===t&&(t=0),"authorized"===t&&(t=1),"number"!=typeof t)throw new e('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return t}});let r=await c.bind(this)("get-newsletter-subscription",t,{auth:!0}),i=[];for(let e of r){let t=e.subt.split("#"),n=!0;"@"===t[0].charAt(0)&&(n=!1,t[0]=t[0].substring(1));let r=parseInt(t[0]);i.push({timestamp:e.stmp,group:r,subscribed_email:t[1],active:n})}return i}async function Z(e){await this.__connection;let t=o.Params(e||{},{email:e=>o.Email(e),group:["number","public","authorized"],redirect:e=>o.Url(e)},this.__user?["group"]:["email","group"]);return c.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,t,{auth:!!this.__user})}async function X(e){await this.__connection,e=o.Params(e,{group:["number","public","authorized"]},["group"]);let t=Object.assign({action:"unsubscribe"},e);return c.bind(this)("subscribe-newsletter",t,{auth:!0})}async function ee(t,n){let r=await this.checkAdmin(),i={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string"};t||(n||(n={}),n.ascending=!1);let s=t||{searchFor:"timestamp",value:0,condition:">"};t=o.Params(s,{searchFor:["message_id","timestamp","read","complaint","group","subject"],value:t=>{if(typeof t!==i[s.searchFor])throw new e(`"value" type does not match the type of "${s.searchFor}" index.`,{code:"INVALID_PARAMETER"});if("string"==typeof t&&!t)throw new e('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return t},range:t=>{if(!s.hasOwnProperty("value")||typeof t!=typeof s.value)throw new e('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return t},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:t=>{if(!this.session)throw new e("User should be logged in.",{code:"INVALID_REQUEST"});if("public"===t)return 0;if("authorized"===t)return 1;if("number"==typeof t&&!r&&t>parseInt(this.session.idToken.payload.access_group))throw new e("User has no access.",{code:"INVALID_REQUEST"});return t}},["searchFor","value","group"]);let a=await c.bind(this)(0===t.group?"get-public-newsletters":"get-newsletters",t,Object.assign({method:"get",auth:0!==t.group},{fetchOptions:n})),u={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url"},l={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:0,url:""};return a.list=a.list.map((e=>{let t={};for(let n in u)t[n]=e[u[n]]||l[u[n]];return t})),a}var te,ne=function(){function e(e){var t=e||{},n=t.ValidationData,r=t.Username,i=t.Password,s=t.AuthParameters,o=t.ClientMetadata;this.validationData=n||{},this.authParameters=s||{},this.clientMetadata=o||{},this.username=r,this.password=i}var t=e.prototype;return t.getUsername=function(){return this.username},t.getPassword=function(){return this.password},t.getValidationData=function(){return this.validationData},t.getAuthParameters=function(){return this.authParameters},t.getClientMetadata=function(){return this.clientMetadata},e}(),re=n(764),ie=n(249),se=n.n(ie),oe=(n(433),n(153)),ae=n.n(oe),ue=n(10),ce=n.n(ue);if("undefined"!=typeof window&&window.crypto&&(te=window.crypto),!te&&"undefined"!=typeof window&&window.msCrypto&&(te=window.msCrypto),!te&&void 0!==n.g&&n.g.crypto&&(te=n.g.crypto),!te)try{te=n(296)}catch(e){}function le(){if(te){if("function"==typeof te.getRandomValues)try{return te.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof te.randomBytes)try{return te.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}var he=function(){function e(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length}var t=e.prototype;return t.random=function(t){for(var n=[],r=0;r<t;r+=4)n.push(le());return new e(n,t)},t.toString=function(){return function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")}(this)},e}();const fe=de;function de(e,t){null!=e&&this.fromString(e,t)}function pe(){return new de(null)}var ge,ye="undefined"!=typeof navigator;ye&&"Microsoft Internet Explorer"==navigator.appName?(de.prototype.am=function(e,t,n,r,i,s){for(var o=32767&t,a=t>>15;--s>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*o;i=((u=o*u+((32767&l)<<15)+n[r]+(1073741823&i))>>>30)+(l>>>15)+a*c+(i>>>30),n[r++]=1073741823&u}return i},ge=30):ye&&"Netscape"!=navigator.appName?(de.prototype.am=function(e,t,n,r,i,s){for(;--s>=0;){var o=t*this[e++]+n[r]+i;i=Math.floor(o/67108864),n[r++]=67108863&o}return i},ge=26):(de.prototype.am=function(e,t,n,r,i,s){for(var o=16383&t,a=t>>14;--s>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*o;i=((u=o*u+((16383&l)<<14)+n[r]+i)>>28)+(l>>14)+a*c,n[r++]=268435455&u}return i},ge=28),de.prototype.DB=ge,de.prototype.DM=(1<<ge)-1,de.prototype.DV=1<<ge,de.prototype.FV=Math.pow(2,52),de.prototype.F1=52-ge,de.prototype.F2=2*ge-52;var me,we,_e=new Array;for(me="0".charCodeAt(0),we=0;we<=9;++we)_e[me++]=we;for(me="a".charCodeAt(0),we=10;we<36;++we)_e[me++]=we;for(me="A".charCodeAt(0),we=10;we<36;++we)_e[me++]=we;function be(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function Ae(e,t){var n=_e[e.charCodeAt(t)];return null==n?-1:n}function ve(e){var t=pe();return t.fromInt(e),t}function Ee(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function Se(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Ie(e){return re.lW.from((new he).random(e).toString(),"hex")}Se.prototype.convert=function(e){var t=pe();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(de.ZERO)>0&&this.m.subTo(t,t),t},Se.prototype.revert=function(e){var t=pe();return e.copyTo(t),this.reduce(t),t},Se.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],r=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[n=t+this.m.t]+=this.m.am(0,r,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},Se.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},Se.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},de.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},de.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},de.prototype.fromString=function(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");n=2}this.t=0,this.s=0;for(var r=e.length,i=!1,s=0;--r>=0;){var o=Ae(e,r);o<0?"-"==e.charAt(r)&&(i=!0):(i=!1,0==s?this[this.t++]=o:s+n>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+=n)>=this.DB&&(s-=this.DB))}this.clamp(),i&&de.ZERO.subTo(this,this)},de.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},de.prototype.dlShiftTo=function(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s},de.prototype.drShiftTo=function(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s},de.prototype.lShiftTo=function(e,t){var n,r=e%this.DB,i=this.DB-r,s=(1<<i)-1,o=Math.floor(e/this.DB),a=this.s<<r&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>i|a,a=(this[n]&s)<<r;for(n=o-1;n>=0;--n)t[n]=0;t[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()},de.prototype.rShiftTo=function(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var r=e%this.DB,i=this.DB-r,s=(1<<r)-1;t[0]=this[n]>>r;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&s)<<i,t[o-n]=this[o]>>r;r>0&&(t[this.t-n-1]|=(this.s&s)<<i),t.t=this.t-n,t.clamp()}},de.prototype.subTo=function(e,t){for(var n=0,r=0,i=Math.min(e.t,this.t);n<i;)r+=this[n]-e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r-=e.s;n<this.t;)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<e.t;)r-=e[n],t[n++]=r&this.DM,r>>=this.DB;r-=e.s}t.s=r<0?-1:0,r<-1?t[n++]=this.DV+r:r>0&&(t[n++]=r),t.t=n,t.clamp()},de.prototype.multiplyTo=function(e,t){var n=this.abs(),r=e.abs(),i=n.t;for(t.t=i+r.t;--i>=0;)t[i]=0;for(i=0;i<r.t;++i)t[i+n.t]=n.am(0,r[i],t,i,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&de.ZERO.subTo(t,t)},de.prototype.squareTo=function(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var r=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,r,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()},de.prototype.divRemTo=function(e,t,n){var r=e.abs();if(!(r.t<=0)){var i=this.abs();if(i.t<r.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=pe());var s=pe(),o=this.s,a=e.s,u=this.DB-Ee(r[r.t-1]);u>0?(r.lShiftTo(u,s),i.lShiftTo(u,n)):(r.copyTo(s),i.copyTo(n));var c=s.t,l=s[c-1];if(0!=l){var h=l*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),f=this.FV/h,d=(1<<this.F1)/h,p=1<<this.F2,g=n.t,y=g-c,m=null==t?pe():t;for(s.dlShiftTo(y,m),n.compareTo(m)>=0&&(n[n.t++]=1,n.subTo(m,n)),de.ONE.dlShiftTo(c,m),m.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--y>=0;){var w=n[--g]==l?this.DM:Math.floor(n[g]*f+(n[g-1]+p)*d);if((n[g]+=s.am(0,w,n,y,0,c))<w)for(s.dlShiftTo(y,m),n.subTo(m,n);n[g]<--w;)n.subTo(m,n)}null!=t&&(n.drShiftTo(c,t),o!=a&&de.ZERO.subTo(t,t)),n.t=c,n.clamp(),u>0&&n.rShiftTo(u,n),o<0&&de.ZERO.subTo(n,n)}}},de.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},de.prototype.addTo=function(e,t){for(var n=0,r=0,i=Math.min(e.t,this.t);n<i;)r+=this[n]+e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r+=e.s;n<this.t;)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<e.t;)r+=e[n],t[n++]=r&this.DM,r>>=this.DB;r+=e.s}t.s=r<0?-1:0,r>0?t[n++]=r:r<-1&&(t[n++]=this.DV+r),t.t=n,t.clamp()},de.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,r=(1<<t)-1,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=!0,s=be(n));o>=0;)a<t?(n=(this[o]&(1<<a)-1)<<t-a,n|=this[--o]>>(a+=this.DB-t)):(n=this[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=be(n));return i?s:"0"},de.prototype.negate=function(){var e=pe();return de.ZERO.subTo(this,e),e},de.prototype.abs=function(){return this.s<0?this.negate():this},de.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(0!=(t=n-e.t))return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0},de.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+Ee(this[this.t-1]^this.s&this.DM)},de.prototype.mod=function(e){var t=pe();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(de.ZERO)>0&&e.subTo(t,t),t},de.prototype.equals=function(e){return 0==this.compareTo(e)},de.prototype.add=function(e){var t=pe();return this.addTo(e,t),t},de.prototype.subtract=function(e){var t=pe();return this.subTo(e,t),t},de.prototype.multiply=function(e){var t=pe();return this.multiplyTo(e,t),t},de.prototype.divide=function(e){var t=pe();return this.divRemTo(e,t,null),t},de.prototype.modPow=function(e,t,n){var r,i=e.bitLength(),s=ve(1),o=new Se(t);if(i<=0)return s;r=i<18?1:i<48?3:i<144?4:i<768?5:6;var a=new Array,u=3,c=r-1,l=(1<<r)-1;if(a[1]=o.convert(this),r>1){var h=pe();for(o.sqrTo(a[1],h);u<=l;)a[u]=pe(),o.mulTo(h,a[u-2],a[u]),u+=2}var f,d,p=e.t-1,g=!0,y=pe();for(i=Ee(e[p])-1;p>=0;){for(i>=c?f=e[p]>>i-c&l:(f=(e[p]&(1<<i+1)-1)<<c-i,p>0&&(f|=e[p-1]>>this.DB+i-c)),u=r;0==(1&f);)f>>=1,--u;if((i-=u)<0&&(i+=this.DB,--p),g)a[f].copyTo(s),g=!1;else{for(;u>1;)o.sqrTo(s,y),o.sqrTo(y,s),u-=2;u>0?o.sqrTo(s,y):(d=s,s=y,y=d),o.mulTo(y,a[f],s)}for(;p>=0&&0==(e[p]&1<<i);)o.sqrTo(s,y),d=s,s=y,y=d,--i<0&&(i=this.DB-1,--p)}var m=o.revert(s);return n(null,m),m},de.ZERO=ve(0),de.ONE=ve(1);var Re=/^[89a-f]/i,Te=function(){function e(e){this.N=new fe("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",16),this.g=new fe("2",16),this.k=new fe(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue((function(){})),this.infoBits=re.lW.from("Caldera Derived Key","utf8"),this.poolName=e}var t=e.prototype;return t.getSmallAValue=function(){return this.smallAValue},t.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,(function(n,r){n&&e(n,null),t.largeAValue=r,e(null,t.largeAValue)}))},t.generateRandomSmallA=function(){var e=Ie(128).toString("hex");return new fe(e,16)},t.generateRandomString=function(){return Ie(40).toString("base64")},t.getRandomPassword=function(){return this.randomPassword},t.getSaltDevices=function(){return this.SaltToHashDevices},t.getVerifierDevices=function(){return this.verifierDevices},t.generateHashDevice=function(e,t,n){var r=this;this.randomPassword=this.generateRandomString();var i=""+e+t+":"+this.randomPassword,s=this.hash(i),o=Ie(16).toString("hex");this.SaltToHashDevices=this.padHex(new fe(o,16)),this.g.modPow(new fe(this.hexHash(this.SaltToHashDevices+s),16),this.N,(function(e,t){e&&n(e,null),r.verifierDevices=r.padHex(t),n(null,null)}))},t.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,(function(e,r){e&&t(e,null),r.mod(n.N).equals(fe.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,r)}))},t.calculateU=function(e,t){return this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t)),new fe(this.UHexHash,16)},t.hash=function(e){var t=e instanceof re.lW?se().lib.WordArray.create(e):e,n=ae()(t).toString();return new Array(64-n.length).join("0")+n},t.hexHash=function(e){return this.hash(re.lW.from(e,"hex"))},t.computehkdf=function(e,t){var n=se().lib.WordArray.create(re.lW.concat([this.infoBits,re.lW.from(String.fromCharCode(1),"utf8")])),r=e instanceof re.lW?se().lib.WordArray.create(e):e,i=t instanceof re.lW?se().lib.WordArray.create(t):t,s=ce()(r,i),o=ce()(n,s);return re.lW.from(o.toString(),"hex").slice(0,16)},t.getPasswordAuthenticationKey=function(e,t,n,r,i){var s=this;if(n.mod(this.N).equals(fe.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(fe.ZERO))throw new Error("U cannot be zero.");var o=""+this.poolName+e+":"+t,a=this.hash(o),u=new fe(this.hexHash(this.padHex(r)+a),16);this.calculateS(u,n,(function(e,t){e&&i(e,null);var n=s.computehkdf(re.lW.from(s.padHex(t),"hex"),re.lW.from(s.padHex(s.UValue),"hex"));i(null,n)}))},t.calculateS=function(e,t,n){var r=this;this.g.modPow(e,this.N,(function(i,s){i&&n(i,null),t.subtract(r.k.multiply(s)).modPow(r.smallAValue.add(r.UValue.multiply(e)),r.N,(function(e,t){e&&n(e,null),n(null,t.mod(r.N))}))}))},t.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return"userAttributes."},t.padHex=function(e){if(!(e instanceof fe))throw new Error("Not a BigInteger");var t=e.compareTo(fe.ZERO)<0,n=e.abs().toString(16);if(n=n.length%2!=0?"0"+n:n,n=Re.test(n)?"00"+n:n,t){var r=n.split("").map((function(e){var t=15&~parseInt(e,16);return"0123456789ABCDEF".charAt(t)})).join("");(n=new fe(r,16).add(fe.ONE).toString(16)).toUpperCase().startsWith("FF8")&&(n=n.substring(2))}return n},e}(),De=function(){function e(e){this.jwtToken=e||"",this.payload=this.decodePayload()}var t=e.prototype;return t.getJwtToken=function(){return this.jwtToken},t.getExpiration=function(){return this.payload.exp},t.getIssuedAt=function(){return this.payload.iat},t.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(re.lW.from(e,"base64").toString("utf8"))}catch(e){return{}}},e}();function Ue(e,t){return Ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ue(e,t)}var Ce=function(e){var t,n;function r(t){var n=(void 0===t?{}:t).AccessToken;return e.call(this,n||"")||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Ue(t,n),r}(De);function Pe(e,t){return Pe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Pe(e,t)}var Ne=function(e){var t,n;function r(t){var n=(void 0===t?{}:t).IdToken;return e.call(this,n||"")||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Pe(t,n),r}(De),ke=n(269),Oe=n.n(ke),Me=function(){function e(e){var t=(void 0===e?{}:e).RefreshToken;this.token=t||""}return e.prototype.getToken=function(){return this.token},e}(),Ve=function(){function e(e){var t=void 0===e?{}:e,n=t.IdToken,r=t.RefreshToken,i=t.AccessToken,s=t.ClockDrift;if(null==i||null==n)throw new Error("Id token and Access Token must be present.");this.idToken=n,this.refreshToken=r,this.accessToken=i,this.clockDrift=void 0===s?this.calculateClockDrift():s}var t=e.prototype;return t.getIdToken=function(){return this.idToken},t.getRefreshToken=function(){return this.refreshToken},t.getAccessToken=function(){return this.accessToken},t.getClockDrift=function(){return this.clockDrift},t.calculateClockDrift=function(){return Math.floor(new Date/1e3)-Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt())},t.isValid=function(){var e=Math.floor(new Date/1e3)-this.clockDrift;return e<this.accessToken.getExpiration()&&e<this.idToken.getExpiration()},e}(),Le=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Fe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],xe=function(){function e(){}return e.prototype.getNowString=function(){var e=new Date,t=Fe[e.getUTCDay()],n=Le[e.getUTCMonth()],r=e.getUTCDate(),i=e.getUTCHours();i<10&&(i="0"+i);var s=e.getUTCMinutes();s<10&&(s="0"+s);var o=e.getUTCSeconds();return o<10&&(o="0"+o),t+" "+n+" "+r+" "+i+":"+s+":"+o+" UTC "+e.getUTCFullYear()},e}(),Be=function(){function e(e){var t=void 0===e?{}:e,n=t.Name,r=t.Value;this.Name=n||"",this.Value=r||""}var t=e.prototype;return t.getValue=function(){return this.Value},t.setValue=function(e){return this.Value=e,this},t.getName=function(){return this.Name},t.setName=function(e){return this.Name=e,this},t.toString=function(){return JSON.stringify(this)},t.toJSON=function(){return{Name:this.Name,Value:this.Value}},e}(),$e={},qe=function(){function e(){}return e.setItem=function(e,t){return $e[e]=t,$e[e]},e.getItem=function(e){return Object.prototype.hasOwnProperty.call($e,e)?$e[e]:void 0},e.removeItem=function(e){return delete $e[e]},e.clear=function(){return $e={}},e}(),Ke=function(){function e(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls")}catch(e){this.storageWindow=qe}}return e.prototype.getStorage=function(){return this.storageWindow},e}(),je="undefined"!=typeof navigator?navigator.userAgent:"nodejs",He=function(){function e(e){if(null==e||null==e.Username||null==e.Pool)throw new Error("Username and Pool information are required.");this.username=e.Username||"",this.pool=e.Pool,this.Session=null,this.client=e.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=e.Storage||(new Ke).getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData"}var t=e.prototype;return t.setSignInUserSession=function(e){this.clearCachedUserData(),this.signInUserSession=e,this.cacheTokens()},t.getSignInUserSession=function(){return this.signInUserSession},t.getUsername=function(){return this.username},t.getAuthenticationFlowType=function(){return this.authenticationFlowType},t.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},t.initiateAuth=function(e,t){var n=this,r=e.getAuthParameters();r.USERNAME=this.username;var i=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),s={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:r,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",s,(function(e,r){if(e)return t.onFailure(e);var i=r.ChallengeName,s=r.ChallengeParameters;return"CUSTOM_CHALLENGE"===i?(n.Session=r.Session,t.customChallenge(s)):(n.signInUserSession=n.getCognitoUserSession(r.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))}))},t.authenticateUser=function(e,t){return"USER_PASSWORD_AUTH"===this.authenticationFlowType?this.authenticateUserPlainUsernamePassword(e,t):"USER_SRP_AUTH"===this.authenticationFlowType||"CUSTOM_AUTH"===this.authenticationFlowType?this.authenticateUserDefaultAuth(e,t):t.onFailure(new Error("Authentication flow type is invalid."))},t.authenticateUserDefaultAuth=function(e,t){var n,r,i=this,s=new Te(this.pool.getUserPoolName()),o=new xe,a={};null!=this.deviceKey&&(a.DEVICE_KEY=this.deviceKey),a.USERNAME=this.username,s.getLargeAValue((function(u,c){u&&t.onFailure(u),a.SRP_A=c.toString(16),"CUSTOM_AUTH"===i.authenticationFlowType&&(a.CHALLENGE_NAME="SRP_A");var l=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),h={AuthFlow:i.authenticationFlowType,ClientId:i.pool.getClientId(),AuthParameters:a,ClientMetadata:l};i.getUserContextData(i.username)&&(h.UserContextData=i.getUserContextData(i.username)),i.client.request("InitiateAuth",h,(function(a,u){if(a)return t.onFailure(a);var c=u.ChallengeParameters;i.username=c.USER_ID_FOR_SRP,i.userDataKey=i.keyPrefix+"."+i.username+".userData",n=new fe(c.SRP_B,16),r=new fe(c.SALT,16),i.getCachedDeviceKeyAndPassword(),s.getPasswordAuthenticationKey(i.username,e.getPassword(),n,r,(function(e,n){e&&t.onFailure(e);var r=o.getNowString(),a=se().lib.WordArray.create(re.lW.concat([re.lW.from(i.pool.getUserPoolName(),"utf8"),re.lW.from(i.username,"utf8"),re.lW.from(c.SECRET_BLOCK,"base64"),re.lW.from(r,"utf8")])),h=se().lib.WordArray.create(n),f=Oe().stringify(ce()(a,h)),d={};d.USERNAME=i.username,d.PASSWORD_CLAIM_SECRET_BLOCK=c.SECRET_BLOCK,d.TIMESTAMP=r,d.PASSWORD_CLAIM_SIGNATURE=f,null!=i.deviceKey&&(d.DEVICE_KEY=i.deviceKey);var p={ChallengeName:"PASSWORD_VERIFIER",ClientId:i.pool.getClientId(),ChallengeResponses:d,Session:u.Session,ClientMetadata:l};i.getUserContextData()&&(p.UserContextData=i.getUserContextData()),function e(t,n){return i.client.request("RespondToAuthChallenge",t,(function(r,s){return r&&"ResourceNotFoundException"===r.code&&-1!==r.message.toLowerCase().indexOf("device")?(d.DEVICE_KEY=null,i.deviceKey=null,i.randomPassword=null,i.deviceGroupKey=null,i.clearCachedDeviceKeyAndPassword(),e(t,n)):n(r,s)}))}(p,(function(e,n){return e?t.onFailure(e):i.authenticateUserInternal(n,s,t)}))}))}))}))},t.authenticateUserPlainUsernamePassword=function(e,t){var n=this,r={};if(r.USERNAME=this.username,r.PASSWORD=e.getPassword(),r.PASSWORD){var i=new Te(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(r.DEVICE_KEY=this.deviceKey);var s=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),o={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:r,ClientMetadata:s};this.getUserContextData(this.username)&&(o.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",o,(function(e,r){return e?t.onFailure(e):n.authenticateUserInternal(r,i,t)}))}else t.onFailure(new Error("PASSWORD parameter is required"))},t.authenticateUserInternal=function(e,t,n){var r=this,i=e.ChallengeName,s=e.ChallengeParameters;if("SMS_MFA"===i)return this.Session=e.Session,n.mfaRequired(i,s);if("SELECT_MFA_TYPE"===i)return this.Session=e.Session,n.selectMFAType(i,s);if("MFA_SETUP"===i)return this.Session=e.Session,n.mfaSetup(i,s);if("SOFTWARE_TOKEN_MFA"===i)return this.Session=e.Session,n.totpRequired(i,s);if("CUSTOM_CHALLENGE"===i)return this.Session=e.Session,n.customChallenge(s);if("NEW_PASSWORD_REQUIRED"===i){this.Session=e.Session;var o=null,a=null,u=[],c=t.getNewPasswordRequiredChallengeUserAttributePrefix();if(s&&(o=JSON.parse(e.ChallengeParameters.userAttributes),a=JSON.parse(e.ChallengeParameters.requiredAttributes)),a)for(var l=0;l<a.length;l++)u[l]=a[l].substr(c.length);return n.newPasswordRequired(o,u)}if("DEVICE_SRP_AUTH"===i)return this.Session=e.Session,void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.challengeName=i,this.cacheTokens();var h=e.AuthenticationResult.NewDeviceMetadata;if(null==h)return n.onSuccess(this.signInUserSession);t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,(function(i){if(i)return n.onFailure(i);var s={Salt:re.lW.from(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:re.lW.from(t.getVerifierDevices(),"hex").toString("base64")};r.verifierDevices=s.PasswordVerifier,r.deviceGroupKey=h.DeviceGroupKey,r.randomPassword=t.getRandomPassword(),r.client.request("ConfirmDevice",{DeviceKey:h.DeviceKey,AccessToken:r.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:je},(function(t,i){return t?n.onFailure(t):(r.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,r.cacheDeviceKeyAndPassword(),!0===i.UserConfirmationNecessary?n.onSuccess(r.signInUserSession,i.UserConfirmationNecessary):n.onSuccess(r.signInUserSession))}))}))},t.completeNewPasswordChallenge=function(e,t,n,r){var i=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new Te(this.pool.getUserPoolName()),o=s.getNewPasswordRequiredChallengeUserAttributePrefix(),a={};t&&Object.keys(t).forEach((function(e){a[o+e]=t[e]})),a.NEW_PASSWORD=e,a.USERNAME=this.username;var u={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:a,Session:this.Session,ClientMetadata:r};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",u,(function(e,t){return e?n.onFailure(e):i.authenticateUserInternal(t,s,n)}))},t.getDeviceResponse=function(e,t){var n=this,r=new Te(this.deviceGroupKey),i=new xe,s={};s.USERNAME=this.username,s.DEVICE_KEY=this.deviceKey,r.getLargeAValue((function(o,a){o&&e.onFailure(o),s.SRP_A=a.toString(16);var u={ChallengeName:"DEVICE_SRP_AUTH",ClientId:n.pool.getClientId(),ChallengeResponses:s,ClientMetadata:t,Session:n.Session};n.getUserContextData()&&(u.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",u,(function(t,s){if(t)return e.onFailure(t);var o=s.ChallengeParameters,a=new fe(o.SRP_B,16),u=new fe(o.SALT,16);r.getPasswordAuthenticationKey(n.deviceKey,n.randomPassword,a,u,(function(t,r){if(t)return e.onFailure(t);var a=i.getNowString(),u=se().lib.WordArray.create(re.lW.concat([re.lW.from(n.deviceGroupKey,"utf8"),re.lW.from(n.deviceKey,"utf8"),re.lW.from(o.SECRET_BLOCK,"base64"),re.lW.from(a,"utf8")])),c=se().lib.WordArray.create(r),l=Oe().stringify(ce()(u,c)),h={};h.USERNAME=n.username,h.PASSWORD_CLAIM_SECRET_BLOCK=o.SECRET_BLOCK,h.TIMESTAMP=a,h.PASSWORD_CLAIM_SIGNATURE=l,h.DEVICE_KEY=n.deviceKey;var f={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:h,Session:s.Session};n.getUserContextData()&&(f.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",f,(function(t,r){return t?e.onFailure(t):(n.signInUserSession=n.getCognitoUserSession(r.AuthenticationResult),n.cacheTokens(),e.onSuccess(n.signInUserSession))}))}))}))}))},t.confirmRegistration=function(e,t,n,r){var i={ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t,ClientMetadata:r};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",i,(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.sendCustomChallengeAnswer=function(e,t,n){var r=this,i={};i.USERNAME=this.username,i.ANSWER=e;var s=new Te(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(i.DEVICE_KEY=this.deviceKey);var o={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:n};this.getUserContextData()&&(o.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",o,(function(e,n){return e?t.onFailure(e):r.authenticateUserInternal(n,s,t)}))},t.sendMFACode=function(e,t,n,r){var i=this,s={};s.USERNAME=this.username,s.SMS_MFA_CODE=e;var o=n||"SMS_MFA";"SOFTWARE_TOKEN_MFA"===o&&(s.SOFTWARE_TOKEN_MFA_CODE=e),null!=this.deviceKey&&(s.DEVICE_KEY=this.deviceKey);var a={ChallengeName:o,ChallengeResponses:s,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:r};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,(function(e,n){if(e)return t.onFailure(e);if("DEVICE_SRP_AUTH"!==n.ChallengeName){if(i.signInUserSession=i.getCognitoUserSession(n.AuthenticationResult),i.cacheTokens(),null==n.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(i.signInUserSession);var r=new Te(i.pool.getUserPoolName());r.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,(function(e){if(e)return t.onFailure(e);var s={Salt:re.lW.from(r.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:re.lW.from(r.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=s.PasswordVerifier,i.deviceGroupKey=n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,i.randomPassword=r.getRandomPassword(),i.client.request("ConfirmDevice",{DeviceKey:n.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:je},(function(e,r){return e?t.onFailure(e):(i.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),!0===r.UserConfirmationNecessary?t.onSuccess(i.signInUserSession,r.UserConfirmationNecessary):t.onSuccess(i.signInUserSession))}))}))}else i.getDeviceResponse(t)}))},t.changePassword=function(e,t,n,r){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:e,ProposedPassword:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:r},(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.enableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[];t.push({DeliveryMedium:"SMS",AttributeName:"phone_number"}),this.client.request("SetUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t){return t?e(t,null):e(null,"SUCCESS")}))},t.setUserMfaPreference=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:e,SoftwareTokenMfaSettings:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.disableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("SetUserSettings",{MFAOptions:[],AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t){return t?e(t,null):e(null,"SUCCESS")}))},t.deleteUser=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:t},(function(t){return t?e(t,null):(n.clearCachedUser(),e(null,"SUCCESS"))}))},t.updateAttributes=function(e,t,n){var r=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return t(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:e,ClientMetadata:n},(function(e){return e?t(e,null):r.getUserData((function(){return t(null,"SUCCESS")}),{bypassCache:!0})}))},t.getUserAttributes=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){if(t)return e(t,null);for(var r=[],i=0;i<n.UserAttributes.length;i++){var s={Name:n.UserAttributes[i].Name,Value:n.UserAttributes[i].Value},o=new Be(s);r.push(o)}return e(null,r)}))},t.getMFAOptions=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){return t?e(t,null):e(null,n.MFAOptions)}))},t.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},t.refreshSessionIfPossible=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(n){var r=t.signInUserSession.getRefreshToken();r&&r.getToken()?t.refreshSession(r,n,e.clientMetadata):n()}))},t.getUserData=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return this.clearCachedUserData(),e(new Error("User is not authenticated"),null);var r=this.getUserDataFromCache();if(r)if(this.isFetchUserDataAndTokenRequired(t))this.fetchUserData().then((function(e){return n.refreshSessionIfPossible(t).then((function(){return e}))})).then((function(t){return e(null,t)})).catch(e);else try{return void e(null,JSON.parse(r))}catch(t){return this.clearCachedUserData(),void e(t,null)}else this.fetchUserData().then((function(t){e(null,t)})).catch(e)},t.getUserDataFromCache=function(){return this.storage.getItem(this.userDataKey)},t.isFetchUserDataAndTokenRequired=function(e){var t=(e||{}).bypassCache;return void 0!==t&&t},t.fetchUserData=function(){var e=this;return this.createGetUserRequest().then((function(t){return e.cacheUserData(t),t}))},t.deleteAttributes=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return t(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?t(e,null):n.getUserData((function(){return t(null,"SUCCESS")}),{bypassCache:!0})}))},t.resendConfirmationCode=function(e,t){var n={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:t};this.client.request("ResendConfirmationCode",n,(function(t,n){return t?e(t,null):e(null,n)}))},t.getSession=function(e,t){if(void 0===t&&(t={}),null==this.username)return e(new Error("Username is null. Cannot retrieve a new session"),null);if(null!=this.signInUserSession&&this.signInUserSession.isValid())return e(null,this.signInUserSession);var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,r=n+".idToken",i=n+".accessToken",s=n+".refreshToken",o=n+".clockDrift";if(this.storage.getItem(r)){var a=new Ne({IdToken:this.storage.getItem(r)}),u=new Ce({AccessToken:this.storage.getItem(i)}),c=new Me({RefreshToken:this.storage.getItem(s)}),l=parseInt(this.storage.getItem(o),0)||0,h=new Ve({IdToken:a,AccessToken:u,RefreshToken:c,ClockDrift:l});if(h.isValid())return this.signInUserSession=h,e(null,this.signInUserSession);if(!c.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(c,e,t.clientMetadata)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},t.refreshSession=function(e,t,n){var r=this,i=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(t):t,s={};s.REFRESH_TOKEN=e.getToken();var o="CognitoIdentityServiceProvider."+this.pool.getClientId(),a=o+".LastAuthUser";if(this.storage.getItem(a)){this.username=this.storage.getItem(a);var u=o+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(u),s.DEVICE_KEY=this.deviceKey}var c={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:s,ClientMetadata:n};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",c,(function(t,n){if(t)return"NotAuthorizedException"===t.code&&r.clearCachedUser(),i(t,null);if(n){var s=n.AuthenticationResult;return Object.prototype.hasOwnProperty.call(s,"RefreshToken")||(s.RefreshToken=e.getToken()),r.signInUserSession=r.getCognitoUserSession(s),r.cacheTokens(),i(null,r.signInUserSession)}}))},t.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",r=e+"."+this.username+".refreshToken",i=e+"."+this.username+".clockDrift",s=e+".LastAuthUser";this.storage.setItem(t,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(n,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(r,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(i,""+this.signInUserSession.getClockDrift()),this.storage.setItem(s,this.username)},t.cacheUserData=function(e){this.storage.setItem(this.userDataKey,JSON.stringify(e))},t.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey)},t.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData()},t.cacheDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(r,this.deviceGroupKey)},t.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(r))},t.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(r)},t.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",r=e+"."+this.username+".refreshToken",i=e+".LastAuthUser",s=e+"."+this.username+".clockDrift";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(r),this.storage.removeItem(i),this.storage.removeItem(s)},t.getCognitoUserSession=function(e){var t=new Ne(e),n=new Ce(e),r=new Me(e);return new Ve({IdToken:t,AccessToken:n,RefreshToken:r})},t.forgotPassword=function(e,t){var n={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:t};this.getUserContextData()&&(n.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",n,(function(t,n){return t?e.onFailure(t):"function"==typeof e.inputVerificationCode?e.inputVerificationCode(n):e.onSuccess(n)}))},t.confirmPassword=function(e,t,n,r){var i={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t,ClientMetadata:r};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",i,(function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}))},t.getAttributeVerificationCode=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return t.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:n},(function(e,n){return e?t.onFailure(e):"function"==typeof t.inputVerificationCode?t.inputVerificationCode(n):t.onSuccess("SUCCESS")}))},t.verifyAttribute=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:e,Code:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}))},t.getDevice=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},(function(t,n){return t?e.onFailure(t):e.onSuccess(n)}))},t.forgetSpecificDevice=function(e,t){if(null==this.signInUserSession||!this.signInUserSession.isValid())return t.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:e},(function(e){return e?t.onFailure(e):t.onSuccess("SUCCESS")}))},t.forgetDevice=function(e){var t=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:e.onFailure,onSuccess:function(n){return t.deviceKey=null,t.deviceGroupKey=null,t.randomPassword=null,t.clearCachedDeviceKeyAndPassword(),e.onSuccess(n)}})},t.setDeviceStatusRemembered=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},(function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}))},t.setDeviceStatusNotRemembered=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},(function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}))},t.listDevices=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));var r={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e};t&&(r.PaginationToken=t),this.client.request("ListDevices",r,(function(e,t){return e?n.onFailure(e):n.onSuccess(t)}))},t.globalSignOut=function(e){var t=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(n){return n?e.onFailure(n):(t.clearCachedUser(),e.onSuccess("SUCCESS"))}))},t.signOut=function(e){var t=this;e&&"function"==typeof e?this.getSession((function(n,r){if(n)return e(n);t.revokeTokens((function(n){t.cleanClientData(),e(n)}))})):this.cleanClientData()},t.revokeTokens=function(e){if(void 0===e&&(e=function(){}),"function"!=typeof e)throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession)return e(new Error("User is not authenticated"));if(!this.signInUserSession.getAccessToken())return e(new Error("No Access token available"));var t=this.signInUserSession.getRefreshToken().getToken(),n=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(n)&&t)return this.revokeToken({token:t,callback:e});e()},t.isSessionRevocable=function(e){if(e&&"function"==typeof e.decodePayload)try{return!!e.decodePayload().origin_jti}catch(e){}return!1},t.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser()},t.revokeToken=function(e){var t=e.token,n=e.callback;this.client.requestWithRetry("RevokeToken",{Token:t,ClientId:this.pool.getClientId()},(function(e){if(e)return n(e);n()}))},t.sendMFASelectionAnswer=function(e,t){var n=this,r={};r.USERNAME=this.username,r.ANSWER=e;var i={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:r,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",i,(function(r,i){return r?t.onFailure(r):(n.Session=i.Session,"SMS_MFA"===e?t.mfaRequired(i.ChallengeName,i.ChallengeParameters):"SOFTWARE_TOKEN_MFA"===e?t.totpRequired(i.ChallengeName,i.ChallengeParameters):void 0)}))},t.getUserContextData=function(){return this.pool.getUserContextData(this.username)},t.associateSoftwareToken=function(e){var t=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){return t?e.onFailure(t):e.associateSecretCode(n.SecretCode)})):this.client.request("AssociateSoftwareToken",{Session:this.Session},(function(n,r){return n?e.onFailure(n):(t.Session=r.Session,e.associateSecretCode(r.SecretCode))}))},t.verifySoftwareToken=function(e,t,n){var r=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:e,FriendlyDeviceName:t},(function(e,t){return e?n.onFailure(e):n.onSuccess(t)})):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:e,FriendlyDeviceName:t},(function(e,t){if(e)return n.onFailure(e);r.Session=t.Session;var i={};i.USERNAME=r.username;var s={ChallengeName:"MFA_SETUP",ClientId:r.pool.getClientId(),ChallengeResponses:i,Session:r.Session};r.getUserContextData()&&(s.UserContextData=r.getUserContextData()),r.client.request("RespondToAuthChallenge",s,(function(e,t){return e?n.onFailure(e):(r.signInUserSession=r.getCognitoUserSession(t.AuthenticationResult),r.cacheTokens(),n.onSuccess(r.signInUserSession))}))}))},e}(),We=(n(204),"aws-amplify/5.0.4"),Je={userAgent:We+" js",product:"",navigator:null,isReactNative:!1};function ze(){}"undefined"!=typeof navigator&&navigator.product&&(Je.product=navigator.product||"",Je.navigator=navigator||null,"ReactNative"===navigator.product?(Je.userAgent=We+" react-native",Je.isReactNative=!0):(Je.userAgent=We+" js",Je.isReactNative=!1)),ze.prototype.userAgent=Je.userAgent;const Ye=ze;function Qe(e){var t="function"==typeof Map?new Map:void 0;return Qe=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return Ge(e,arguments,Xe(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Ze(r,e)},Qe(e)}function Ge(e,t,n){return Ge=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&Ze(i,n.prototype),i},Ge.apply(null,arguments)}function Ze(e,t){return Ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ze(e,t)}function Xe(e){return Xe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Xe(e)}var et=function(e){function t(t,n,r,i){var s;return(s=e.call(this,t)||this).code=n,s.name=r,s.statusCode=i,s}return r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,Ze(n,r),t;var n,r}(Qe(Error)),tt=function(){function e(e,t,n){this.endpoint=t||"https://cognito-idp."+e+".amazonaws.com/";var r=(n||{}).credentials;this.fetchOptions=r?{credentials:r}:{}}var t=e.prototype;return t.promisifyRequest=function(e,t){var n=this;return new Promise((function(r,i){n.request(e,t,(function(e,t){e?i(new et(e.message,e.code,e.name,e.statusCode)):r(t)}))}))},t.requestWithRetry=function(e,t,n){var r,i,s=this;(r=[t],i=5e3,void 0===i&&(i=st),it((function(t){return new Promise((function(n,r){s.request(e,t,(function(e,t){e?r(e):n(t)}))}))}),r,function(e){return function(t){var n=100*Math.pow(2,t)+100*Math.random();return!(n>e)&&n}}(i))).then((function(e){return n(null,e)})).catch((function(e){return n(e)}))},t.request=function(e,t,n){var r,i={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+e,"X-Amz-User-Agent":Ye.prototype.userAgent,"Cache-Control":"no-store"},s=Object.assign({},this.fetchOptions,{headers:i,method:"POST",mode:"cors",body:JSON.stringify(t)});fetch(this.endpoint,s).then((function(e){return r=e,e}),(function(e){if(e instanceof TypeError)throw new Error("Network error");throw e})).then((function(e){return e.json().catch((function(){return{}}))})).then((function(e){if(r.ok)return n(null,e);var t=(e.__type||e.code).split("#").pop(),i=new Error(e.message||e.Message||null);return i.name=t,i.code=t,n(i)})).catch((function(e){if(r&&r.headers&&r.headers.get("x-amzn-errortype"))try{var t=r.headers.get("x-amzn-errortype").split(":")[0],i=new Error(r.status?r.status.toString():null);return i.code=t,i.name=t,i.statusCode=r.status,n(i)}catch(t){return n(e)}else e instanceof Error&&"Network error"===e.message&&(e.code="NetworkError");return n(e)}))},e}(),nt={debug:function(){}},rt=function(e){return e&&e.nonRetryable};function it(e,t,n,r){if(void 0===r&&(r=1),"function"!=typeof e)throw Error("functionToRetry must be a function");return nt.debug(e.name+" attempt #"+r+" with args: "+JSON.stringify(t)),e.apply(void 0,t).catch((function(i){if(nt.debug("error on "+e.name,i),rt(i))throw nt.debug(e.name+" non retryable error",i),i;var s=n(r,t,i);if(nt.debug(e.name+" retrying in "+s+" ms"),!1!==s)return new Promise((function(e){return setTimeout(e,s)})).then((function(){return it(e,t,n,r+1)}));throw i}))}var st=3e5,ot=function(){function e(e,t){var n=e||{},r=n.UserPoolId,i=n.ClientId,s=n.endpoint,o=n.fetchOptions,a=n.AdvancedSecurityDataCollectionFlag;if(!r||!i)throw new Error("Both UserPoolId and ClientId are required.");if(r.length>55||!/^[\w-]+_[0-9a-zA-Z]+$/.test(r))throw new Error("Invalid UserPoolId format.");var u=r.split("_")[0];this.userPoolId=r,this.clientId=i,this.client=new tt(u,s,o),this.advancedSecurityDataCollectionFlag=!1!==a,this.storage=e.Storage||(new Ke).getStorage(),t&&(this.wrapRefreshSessionCallback=t)}var t=e.prototype;return t.getUserPoolId=function(){return this.userPoolId},t.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},t.getClientId=function(){return this.clientId},t.signUp=function(e,t,n,r,i,s){var o=this,a={ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:r,ClientMetadata:s};this.getUserContextData(e)&&(a.UserContextData=this.getUserContextData(e)),this.client.request("SignUp",a,(function(t,n){if(t)return i(t,null);var r={Username:e,Pool:o,Storage:o.storage},s={user:new He(r),userConfirmed:n.UserConfirmed,userSub:n.UserSub,codeDeliveryDetails:n.CodeDeliveryDetails};return i(null,s)}))},t.getCurrentUser=function(){var e="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",t=this.storage.getItem(e);if(t){var n={Username:t,Pool:this,Storage:this.storage};return new He(n)}return null},t.getUserContextData=function(e){if("undefined"!=typeof AmazonCognitoAdvancedSecurityData){var t=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var n=t.getData(e,this.userPoolId,this.clientId);if(n)return{EncodedData:n}}return{}}},e}();n(808);let at=null,ut=null;function ct(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"consume"},{auth:!0})}function lt(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"release"},{auth:!0})}function ht(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"request"},{auth:!0})}function ft(){if(!ut)throw new e("User pool is missing",{code:"INVALID_REQUEST"});const n=t=>{let n={};if(Array.isArray(t)){let n={};for(let r of t)if(n[r.Name]=r.Value,"custom:service"===r.Name&&n[r.Name]!==this.service)throw new e("The user is not registered to the service.",{code:"INVALID_REQUEST"});t=n}for(let r in t)if(r.includes("custom:")){if("custom:service"===r&&t[r]!==this.service)throw new e("The user is not registered to the service.",{code:"INVALID_REQUEST"});n[r.replace("custom:","")]=t[r]}else{if("address"===r){let e=t[r];if(e&&"object"==typeof e&&Object.keys(e).length&&e?.formatted)try{t[r]=JSON.parse(e.formatted)}catch(n){t[r]=e.formatted}}n[r]=t[r]}for(let e of["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])e.includes("_public")?n.hasOwnProperty(e.split("_")[0])?n[e]=!!n.hasOwnProperty(e)&&!!Number(n[e]):delete n[e]:n[e]=n.hasOwnProperty(e)?Number(n[e]):0;for(let e of["email","phone_number"])n.hasOwnProperty(e)?!0===n[e+"_verified"]||"true"===n[e+"_verified"]?n[e+"_verified"]=!0:n[e+"_verified"]=!1:delete n[e+"_verified"];for(let e of["aud",{from:"auth_time",to:"log"},"cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key",{from:"sub",to:"user_id"},"token_use"])"string"==typeof e?delete n[e]:(n[e.to]=n[e.from],delete n[e.from]);this.__user=n},r=async t=>{let{refreshToken:r=!1}=t||{};return new Promise(((t,i)=>{at=ut?.getCurrentUser()||null,null!==at?at.getSession(((s,o)=>{if(s)return void i(s);if(!o)return void i(new e("Current session does not exist.",{code:"INVALID_REQUEST"}));let a=r=>{let s=r.getIdToken().payload;if(s["custom:service"]!==this.service)return at.signOut(),this.session=null,void i(new e("Invalid session.",{code:"INVALID_REQUEST"}));this.session=r,n(s),t(r)};if(!r&&o.isValid())return a(o);at.refreshSession(o.getRefreshToken(),((t,n)=>{if(!t)return n.isValid()?a(n):void i(new e("Invalid session.",{code:"INVALID_REQUEST"}));i(t)}))})):i(null)}))},i=async n=>{if(!n)throw new e("E-Mail is required.",{code:"INVALID_PARAMETER"});let r=n.includes(this.service+"-")?n:this.service+"-"+t.hash(n);return{cognitoUser:new He({Username:r,Pool:ut}),cognitoUsername:r}};return{getSession:r,authenticateUser:(t,n)=>new Promise(((s,o)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null,i(t).then((t=>{let i=t.cognitoUsername,a=new ne({Username:i,Password:n});t.cognitoUser.authenticateUser(a,{newPasswordRequired:(a,u)=>{this.__request_signup_confirmation=i,"PASS"===a["custom:signup_ticket"]||"MEMBER"===a["custom:signup_ticket"]?t.cognitoUser.completeNewPasswordChallenge(n,{},{onSuccess:e=>{at=t.cognitoUser,r().then((e=>s(this.user)))},onFailure:t=>{o(new e(t.message||"Failed to authenticate user.",{code:t.code}))}}):o(new e("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}))},onSuccess:e=>r().then((e=>{s(this.user)})),onFailure:t=>{let n=[t.message||"Failed to authenticate user.",t?.code||"INVALID_REQUEST"];"NotAuthorizedException"===t.code?"User is disabled."===t.message?(this.__disabledAccount=i,n=["This account is disabled.","USER_IS_DISABLED"]):n=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotFoundException"===t.code?n=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"TooManyRequestsException"!==t.code&&"LimitExceededException"!==t.code||(n=["Too many attempts. Please try again later.","REQUEST_EXCEED"]);let r=n[1],s=n[0],a=n[0].split("#");a.length>1&&(a=a[a.length-1].split(":"),r=a[0],s=a[1]),o(new e(s,{code:r,cause:t}))}})}))})),createCognitoUser:i,getUser:()=>new Promise(((t,r)=>{this.session||t(null),null===at?r(new e("Invalid session",{code:"INVALID_REQUEST"})):at.getUserAttributes(((e,i)=>{e?r(e):(n(i),t(this.user))}))}))}}async function dt(e){await this.__authConnection;try{return await ft.bind(this)().getSession(e),this.user}catch(e){return null}}async function pt(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await gt.bind(this)(),!1)}async function gt(){await this.__connection,at&&at.signOut();let e={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};for(let t in e)this[t]=e[t];return"SUCCESS: The user has been logged out."}async function yt(t){if(!this.__request_signup_confirmation)throw new e("Least one login attempt is required.",{code:"INVALID_REQUEST"});return t=t?o.Url(t):void 0,await c.bind(this)("confirm-signup",{username:this.__request_signup_confirmation,redirect:t})}async function mt(t=!1){if("string"==typeof t)t=o.Url(t);else if("boolean"!=typeof t)throw new e("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new e("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await c.bind(this)("recover-account",{username:this.__disabledAccount,redirect:t}),this.__disabledAccount=null,"SUCCESS: Recovery e-mail has been sent."}function wt(t){o.Params(t,{url:"string",clientSecretName:"string",method:["get","post","GET","POST"],headers:e=>e,data:t=>{if(t&&"object"!=typeof t)throw new e('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return t},params:t=>{if(t&&"object"!=typeof t)throw new e('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return t}},["clientSecretName","method","url"]);let n=!1;if(!t.data&&!t.params)throw new e(("post"===t.method.toLowerCase()?'"data"':'"params"')+" is required.",{code:"INVALID_PARAMETER"});if(t.data)for(let e in t.data)if("string"==typeof t.data[e]&&t.data[e].includes("$CLIENT_SECRET")){n=!0;break}if(t.params)for(let e in t.params)if("string"==typeof t.params[e]&&t.params[e].includes("$CLIENT_SECRET")){n=!0;break}if(!n)throw new e(`At least one parameter value should include "$CLIENT_SECRET" in ${"post"===t.method.toLowerCase()?'"data"':'"params"'}.`,{code:"INVALID_PARAMETER"});return c.bind(this)("client-secret-request",t)}async function _t(t){o.Params(t,{idToken:"string",clientId:"string",keyUrl:e=>o.Url(e),provider:"string",nonce:"string"},["idToken","keyUrl","clientId"]);let{hashedPassword:n,username:r}=await c.bind(this)("jwt-login",t);try{return bt.bind(this)({username:r,password:n})}catch(t){if("INCORRECT_USERNAME_OR_PASSWORD"===t?.code)throw new e("User has migrated the account. Login with the service username and password.",{code:"INVALID_REQUEST"})}}async function bt(t){await this.logout();let n=o.Params(t,{username:"string",email:"string",password:"string"},["password"]);if(n.email)try{o.Email(n.email)}catch(e){n.username=n.email,delete n.email}if(!n.username&&!n.email)throw new e('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return ft.bind(this)().authenticateUser(n.username||n.email,n.password)}async function At(t,n){let r=await pt.bind(this)(),i=o.Params(t||{},{username:"string",email:e=>o.Email(e),password:e=>o.Password(e),name:"string",address:"string",gender:"string",birthdate:e=>o.Birthdate(e),phone_number:e=>o.PhoneNumber(e),email_public:["boolean",()=>!1],address_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],access_group:"number",misc:"string"},r?["email"]:["email","password"]),s=r&&i.service&&this.service!==i.service;if(s)i.owner=this.__user.user_id;else if(!r){if(i.access_group)throw new e('Only admins can set "access_group" parameter.',{code:"INVALID_PARAMETER"});await this.logout()}n=o.Params(n||{},{email_subscription:t=>{if("boolean"!=typeof t)throw new e('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!n?.signup_confirmation)throw new e('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return t},signup_confirmation:t=>{if("string"==typeof t)return o.Url(t);if("boolean"==typeof t)return t;throw new e('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"})},login:t=>{if("boolean"==typeof t){if(n.signup_confirmation&&t)throw new e('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return t}throw new e('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let a=n?.login||!1,u=n?.signup_confirmation||!1;if(s&&u&&i?.password)throw new e('Admins cannot create an account with "option.signup_confirmation" option.',{code:"INVALID_PARAMETER"});if(i.email_public&&!u)throw new e('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});i.signup_confirmation=u,i.email_subscription=n?.email_subscription||!1,s||(delete i.service,delete i.owner);let l=await c.bind(this)("signup",i,{auth:r});if(!r){if(u){let e=await ft.bind(this)().createCognitoUser(i.username||i.email);return at=e.cognitoUser,this.__request_signup_confirmation=e.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."}return a?bt.bind(this)({email:i.username||i.email,password:i.password}):"SUCCESS: The account has been created."}return l}async function vt(){await this.__connection;let e=await c.bind(this)("remove-account",{disable:this.__user.user_id},{auth:!0});return await gt.bind(this)(),e}async function Et(t){await this.__connection;let n=o.Params(t,{email:e=>o.Email(e),code:["number","string"],new_password:e=>o.Password(e)},["email","code","new_password"]),r=n.code,i=n.new_password;return"number"==typeof r&&(r=r.toString()),new Promise((async(t,s)=>{(await ft.bind(this)().createCognitoUser(n.email)).cognitoUser.confirmPassword(r,i,{onSuccess:e=>{t("SUCCESS: New password has been set.")},onFailure:t=>{s(new e(t?.message||"Failed to reset password.",{code:t?.code}))}})}))}async function St(t,n){let r;if(await this.__connection,!at)throw new e("The user has to be logged in.",{code:"INVALID_REQUEST"});if("email"===t||"phone_number"===t){if(!this.__user.hasOwnProperty(t))throw new e(`No ${"email"===t?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});return this.__user?.[`${t}_verified`]?`SUCCESS: "${t}" is verified.`:(r=(n?o.Params(n,{code:["string"]}):{}).code||"",new Promise(((n,i)=>{let s={onSuccess:e=>{r?ft.bind(this)().getSession({refreshToken:!0}).then((()=>{this.__user&&(this.__user[t+"_verified"]=!0),n(`SUCCESS: "${t}" is verified.`)})).catch((e=>{i(e)})):n("SUCCESS: Verification code has been sent.")},onFailure:t=>{i(new e(t.message||"Failed to request verification code.",{code:t?.code}))}};r?at?.verifyAttribute(t,r,s):(s.inputVerificationCode=null,at?.getAttributeVerificationCode(t,s))})))}}function It(e){return St.bind(this)("phone_number",e)}function Rt(e){return St.bind(this)("email",e)}async function Tt(t){await this.__connection;let n=o.Params(t,{email:e=>o.Email(e)},["email"]);return new Promise((async(t,r)=>{(await ft.bind(this)().createCognitoUser(n.email)).cognitoUser.forgotPassword({onSuccess:e=>{t("SUCCESS: Verification code has been sent.")},onFailure:t=>{r(new e(t?.message||"Failed to send verification code.",{code:t?.code||"ERROR"}))}})}))}async function Dt(t){if(await this.__connection,!this.session)throw new e("User login is required.",{code:"INVALID_REQUEST"});let n=o.Params(t,{current_password:"string",new_password:"string"});if(!n?.current_password)throw new e('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!n?.new_password)throw new e('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return o.Password(n.current_password),o.Password(n.new_password),new Promise(((t,r)=>{at.changePassword(n.current_password,n.new_password,((n,i)=>{n&&r("InvalidParameterException"===n?.code?new e("Invalid password parameter.",{code:"INVALID_PARAMETER"}):"NotAuthorizedException"===n?.code?new e("Incorrect password.",{code:"INVALID_REQUEST"}):"TooManyRequestsException"===n?.code||"LimitExceededException"===n?.code?new e("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}):new e(n?.message||"Failed to change user password.",{code:n?.code||n?.name})),t("SUCCESS: Password has been changed.")}))}))}async function Ut(n){if(await this.__connection,!this.session)throw new e("User login is required.",{code:"INVALID_REQUEST"});let r=o.Params(n||{},{email:e=>o.Email(e),address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):"":"",name:"string",gender:"string",birthdate:e=>o.Birthdate(e),phone_number:e=>o.PhoneNumber(e),email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string"});if(r&&"object"==typeof r&&!Object.keys(r).length)return this.user;r.email&&(r.preferred_username=this.service+"-"+t.hash(r.email));let i=[["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 t of i)if(r[t[0]]&&!this.__user[t[1]])throw new e(`${t[2]} "${t[0]}" to true.`,{code:"INVALID_REQUEST"});let s=[];for(let e in r)if(r[e]!==this.user[e]){if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(e)){let t=r[e];"boolean"==typeof t&&(t=t?"1":"0"),r["custom:"+e]=t,s.push(e)}}else s.push(e);for(let e of s)delete r[e];if(r&&"object"==typeof r&&Object.keys(r).length){let e=[];for(let t in r)e.push(new Be({Name:t,Value:r[t]}));return await new Promise(((t,n)=>{at?.updateAttributes(e,((e,r)=>{e&&n([e?.code||e?.name,e?.message||"Failed to update user settings."]),t(r)}))})),await ft.bind(this)().getSession({refreshToken:!0}),this.user}return this.user}async function Ct(t,n){if(t||(t={searchFor:"timestamp",condition:">",value:0},n||(n={}),n.ascending=!1),await pt.bind(this)()&&!t.hasOwnProperty("service"))throw new e("Service ID is required.",{code:"INVALID_PARAMETER"});const r={user_id:e=>o.UserId(e),email:e=>o.Email(e),phone_number:e=>o.PhoneNumber(e),locale:t=>{if("string"!=typeof t||"string"==typeof t&&t.length>5)throw new e('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return t},name:"string",address:"string",gender:"string",birthdate:e=>o.Birthdate(e),subscribers:"number",timestamp:"number",access_group:"number",approved:e=>e?"by_admin:approved":"by_admin:suspended"};if(t=o.Params(t,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:n=>{let i=r[t.searchFor];if("function"==typeof i){if(!t?.condition||"="===t?.condition||t?.range)return i(n)}else if(typeof n!==i)throw new e(`Value does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return n},range:n=>{let i=r[t.searchFor];if("function"==typeof i)return i(n);if(typeof n!==i)throw new e(`Range does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return n}},["searchFor","value"]),t?.condition&&"="!==t?.condition&&t.hasOwnProperty("range"))throw new e("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if("user_id"===t.searchFor&&"="!==t.condition)throw new e('Conditions are not allowed on "user_id"',{code:"INVALID_PARAMETER"});if("string"==typeof t?.value&&!t?.value)throw new e("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if("string"==typeof t?.searchFor&&!t?.searchFor)throw new e('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return c.bind(this)("get-users",t,{auth:!0,fetchOptions:n})}async function Pt(e){await this.__connection;let t=await c.bind(this)("last-verified-email",e,{auth:!0});return t.includes("SUCCESS")?(await ft.bind(this)().getSession({refreshToken:!0}),this.user):t}async function Nt(e){return await this.__connection,e=o.Params(e,{username:o.Email,redirect:o.Url},["username"]),await c.bind(this)("request-username-change",e,{auth:!0})}var kt=function(e,t,n,r){var i,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,n,o):i(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o};class Ot{get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}constructor(t,n,r,i){if(this.version="1.0.39",this.session=null,this.connection=null,this.host="skapi",this.hostDomain="skapi.com",this.target_cdn="d3e9syvbtso631",this.__disabledAccount=null,this.__cached_requests={},this.__startKeyHistory={},this.__request_signup_confirmation=null,this.__private_access_key={},this.__class_properties_has_been_cached=!1,this.__user=null,this.validate={userId(e){try{return o.UserId(e),!0}catch(e){return!1}},url(e){try{return o.Url(e),!0}catch(e){return!1}},phoneNumber(e){try{return o.PhoneNumber(e),!0}catch(e){return!1}},birthdate(e){try{return o.Birthdate(e),!0}catch(e){return!1}},email(e){try{return o.Email(e),!0}catch(e){return!1}}},this.checkAdmin=pt.bind(this),this.request=c.bind(this),this.normalizeRecord=v.bind(this),"string"!=typeof t||"string"!=typeof n)throw new e('"service" and "owner" should be type <string>.',{code:"INVALID_PARAMETER"});if(!t||!n)throw new e('"service" and "owner" is required',{code:"INVALID_PARAMETER"});n!==this.host&&o.UserId(n,'"owner"'),this.service=t,this.owner=n;let s="boolean"!=typeof r?.autoLogin||r.autoLogin;this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain;const a=`https://${this.target_cdn}.cloudfront.net`;let u=t.substring(0,4);if(this.admin_endpoint=fetch(`${a}/${u}/admin.json`).then((e=>e.blob())).then((e=>new Promise(((t,n)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})))).then((e=>"string"==typeof e?JSON.parse(window.atob(e.split(",")[1])):null)),this.record_endpoint=fetch(`${a}/${u}/record.json`).then((e=>e.blob())).then((e=>new Promise(((t,n)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})))).then((e=>"string"==typeof e?JSON.parse(window.atob(e.split(",")[1])):null)),!window.sessionStorage)throw new Error("This browser does not support skapi.");const l=JSON.parse(window.sessionStorage.getItem(`${t}#${n}`)||"null");if(l?.connection)for(let e in l)this[e]=l[e];this.__authConnection=(async()=>{const e=await this.admin_endpoint;var t;if(t={UserPoolId:e.userpool_id,ClientId:e.userpool_client},ut=new ot(t),!l?.connection&&!s){let e=ut.getCurrentUser();e&&e.signOut()}if(s)try{await ft.bind(this)().getSession({refreshToken:!l?.connection})}catch(e){this.__user=null}})(),this.__connection=(async()=>{let e=null;l?.connection||(e=this.updateConnection());const r=()=>{if(this.__class_properties_has_been_cached)return;let r=()=>{let e={};const r=["__startKeyHistory","__cached_requests","__request_signup_confirmation","connection"];if(this.connection){for(let t of r)e[t]=this[t];window.sessionStorage.setItem(`${t}#${n}`,JSON.stringify(e)),this.__class_properties_has_been_cached=!0}};return e instanceof Promise?e.then((()=>r())):r()};return window.addEventListener("beforeunload",r),window.addEventListener("visibilitychange",r),await e,await this.__authConnection,console.log(`Built with:\n%c\r\n $$\\ $$\\ \r\n $$ | \\__|\r\n $$$$$$$\\ $$ | $$\\ $$$$$$\\ $$$$$$\\ $$\\ \r\n$$ _____|$$ | $$ |\\____$$\\ $$ __$$\\ $$ |\r\n\\$$$$$$\\ $$$$$$ / $$$$$$$ |$$ / $$ |$$ |\r\n \\____$$\\ $$ _$$< $$ __$$ |$$ | $$ |$$ |\r\n$$$$$$$ |$$ | \\$$\\\\$$$$$$$ |$$$$$$$ |$$ |\r\n\\_______/ \\__| \\__|\\_______|$$ ____/ \\__|\r\n $$ | \r\n $$ | \r\n \\__| \r\nVersion: ${this.version}\n\nDocumentation: https://docs.skapi.com`,"font-family: monospace; color:blue;"),1===this.connection.group&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE. ALL THE USERS AND DATA WILL BE INITIALIZED EVERY 7 DAYS.","font-family: monospace; color:red;"),this.connection})()}async updateConnection(){return this.connection=await c.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"}),this.connection}connectRealtime(e){return B.bind(this)(e)}jwtLogin(e){return _t.bind(this)(e)}clientSecretRequest(e){return wt.bind(this)(e)}consumeTicket(e){return ct.bind(this)(e)}releaseTicket(e){return lt.bind(this)(e)}getTicketKey(e){return ht.bind(this)(e)}closeRealtime(){return x.bind(this)()}getRealtimeUsers(e,t){return K.bind(this)(e,t)}getRealtimeGroups(e,t){return j.bind(this)(e,t)}postRealtime(e,t){return $.bind(this)(e,t)}joinRealtime(e){return q.bind(this)(e)}getConnection(){return u.bind(this)()}getProfile(e){return dt.bind(this)(e)}getFile(e,t){return I.bind(this)(e,t)}secureRequest(e){return g.bind(this)(e)}getFormResponse(){return m.bind(this)()}getRecords(e,t){return R.bind(this)(e,t)}getTables(e,t){return D.bind(this)(e,t)}getIndexes(e,t){return U.bind(this)(e,t)}getTags(e,t){return C.bind(this)(e,t)}deleteRecords(e){return P.bind(this)(e)}resendSignupConfirmation(e){return yt.bind(this)(e)}recoverAccount(e=!1){return mt.bind(this)(e)}getUsers(e,t){return Ct.bind(this)(e,t)}disableAccount(){return vt.bind(this)()}lastVerifiedEmail(e){return Pt.bind(this)(e)}unsubscribeNewsletter(e){return X.bind(this)(e)}getNewsletters(e,t){return ee.bind(this)(e,t)}getNewsletterSubscription(e){return G.bind(this)(e)}requestUsernameChange(e){return Nt.bind(this)(e)}grantPrivateRecordAccess(e){return N.bind(this)(e)}removePrivateRecordAccess(e){return k.bind(this)(e)}listPrivateRecordAccess(e){return O.bind(this)(e)}requestPrivateRecordAccessKey(e){return M.bind(this)(e)}deleteFiles(e){return E.bind(this)(e)}uploadFiles(e,t){return S.bind(this)(e,t)}mock(e,t){return y.bind(this)(e,t)}login(e){return bt.bind(this)(e)}logout(){return gt.bind(this)()}signup(e,t){return At.bind(this)(e,t)}resetPassword(e){return Et.bind(this)(e)}verifyEmail(e){return Rt.bind(this)(e)}verifyPhoneNumber(e){return It.bind(this)(e)}forgotPassword(e){return Tt.bind(this)(e)}changePassword(e){return Dt.bind(this)(e)}updateProfile(e){return Ut.bind(this)(e)}postRecord(e,t){return T.bind(this)(e,t)}getSubscriptions(e,t){return W.bind(this)(e,t)}subscribe(e){return J.bind(this)(e)}unsubscribe(e){return z.bind(this)(e)}blockSubscriber(e){return Y.bind(this)(e)}unblockSubscriber(e){return Q.bind(this)(e)}subscribeNewsletter(e){return Z.bind(this)(e)}}kt([_()],Ot.prototype,"consumeTicket",null),kt([_()],Ot.prototype,"releaseTicket",null),kt([_()],Ot.prototype,"getTicketKey",null),kt([_()],Ot.prototype,"getRealtimeUsers",null),kt([_()],Ot.prototype,"getRealtimeGroups",null),kt([_()],Ot.prototype,"postRealtime",null),kt([_()],Ot.prototype,"joinRealtime",null),kt([_()],Ot.prototype,"getConnection",null),kt([_()],Ot.prototype,"getProfile",null),kt([_()],Ot.prototype,"getFile",null),kt([_()],Ot.prototype,"secureRequest",null),kt([_()],Ot.prototype,"getFormResponse",null),kt([_()],Ot.prototype,"getRecords",null),kt([_()],Ot.prototype,"getTables",null),kt([_()],Ot.prototype,"getIndexes",null),kt([_()],Ot.prototype,"getTags",null),kt([_()],Ot.prototype,"deleteRecords",null),kt([_()],Ot.prototype,"resendSignupConfirmation",null),kt([_()],Ot.prototype,"recoverAccount",null),kt([_()],Ot.prototype,"getUsers",null),kt([_()],Ot.prototype,"disableAccount",null),kt([_()],Ot.prototype,"lastVerifiedEmail",null),kt([_()],Ot.prototype,"unsubscribeNewsletter",null),kt([_()],Ot.prototype,"getNewsletters",null),kt([_()],Ot.prototype,"getNewsletterSubscription",null),kt([_()],Ot.prototype,"requestUsernameChange",null),kt([_()],Ot.prototype,"grantPrivateRecordAccess",null),kt([_()],Ot.prototype,"removePrivateRecordAccess",null),kt([_()],Ot.prototype,"listPrivateRecordAccess",null),kt([_()],Ot.prototype,"requestPrivateRecordAccessKey",null),kt([_()],Ot.prototype,"deleteFiles",null),kt([_()],Ot.prototype,"uploadFiles",null),kt([_()],Ot.prototype,"mock",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"login",null),kt([_()],Ot.prototype,"logout",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"signup",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"resetPassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"verifyEmail",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"verifyPhoneNumber",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"forgotPassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"changePassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"updateProfile",null),kt([_()],Ot.prototype,"postRecord",null),kt([_()],Ot.prototype,"getSubscriptions",null),kt([_()],Ot.prototype,"subscribe",null),kt([_()],Ot.prototype,"unsubscribe",null),kt([_()],Ot.prototype,"blockSubscriber",null),kt([_()],Ot.prototype,"unblockSubscriber",null),kt([_()],Ot.prototype,"subscribeNewsletter",null)})(),r})()));
2
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(()=>(()=>{var e={742:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,s=a(e),o=s[0],u=s[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,o,u)),l=0,h=u>0?o-4:o;for(n=0;n<h;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[l++]=255&t),1===u&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,s=[],o=16383,a=0,c=r-i;a<c;a+=o)s.push(u(e,a,a+o>c?c:a+o));return 1===i?(t=e[r-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),s.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=s[o],r[s.charCodeAt(o)]=o;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,s,o=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(s=i)>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},764:(e,t,n)=>{"use strict";var r=n(742),i=n(645),s=n(826);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return c(this,e,t,n)}function c(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=f(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(t,n),i=(e=a(e,r)).write(t,n);return i!==r&&(e=e.slice(0,i)),e}(e,t,n):function(e,t){if(u.isBuffer(t)){var n=0|d(t.length);return 0===(e=a(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?a(e,0):f(e,t);if("Buffer"===t.type&&s(t.data))return f(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(l(t),e=a(e,t<0?0:0|d(t)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function f(e,t){var n=t.length<0?0:0|d(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function d(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return $(e).length;default:if(r)return B(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return C(this,t,n);case"utf8":case"utf-8":return R(this,t,n);case"ascii":return D(this,t,n);case"latin1":case"binary":return U(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){var s,o=1,a=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(s=n;s<a;s++)if(c(e,s)===c(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===u)return l*o}else-1!==l&&(s-=s-l),l=-1}else for(n+u>a&&(n=a-u),s=n;s>=0;s--){for(var h=!0,f=0;f<u;f++)if(c(e,s+f)!==c(t,f)){h=!1;break}if(h)return s}return-1}function _(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function b(e,t,n,r){return q(B(t,e.length-n),e,n,r)}function A(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function v(e,t,n,r){return A(e,t,n,r)}function E(e,t,n,r){return q($(t),e,n,r)}function S(e,t,n,r){return q(function(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function I(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function R(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s,o,a,u,c=e[i],l=null,h=c>239?4:c>223?3:c>191?2:1;if(i+h<=n)switch(h){case 1:c<128&&(l=c);break;case 2:128==(192&(s=e[i+1]))&&(u=(31&c)<<6|63&s)>127&&(l=u);break;case 3:s=e[i+1],o=e[i+2],128==(192&s)&&128==(192&o)&&(u=(15&c)<<12|(63&s)<<6|63&o)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:s=e[i+1],o=e[i+2],a=e[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(u=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,h=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=h}return function(e){var t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=T));return n}(r)}t.lW=u,t.h2=50,u.TYPED_ARRAY_SUPPORT=void 0!==n.g.TYPED_ARRAY_SUPPORT?n.g.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),o(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,n){return c(null,e,t,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}(null,e,t,n)},u.allocUnsafe=function(e){return h(null,e)},u.allocUnsafeSlow=function(e){return h(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},u.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!0;default:return!1}},u.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=u.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!u.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},u.byteLength=p,u.prototype._isBuffer=!0,u.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)m(this,t,t+1);return this},u.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)m(this,t,t+3),m(this,t+1,t+2);return this},u.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)m(this,t,t+7),m(this,t+1,t+6),m(this,t+2,t+5),m(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?R(this,0,e):g.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.h2;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,n,r,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),c=this.slice(r,i),l=e.slice(t,n),h=0;h<a;++h)if(c[h]!==l[h]){s=c[h],o=l[h];break}return s<o?-1:o<s?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return y(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return y(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return A(this,e,t,n);case"latin1":case"binary":return v(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var T=4096;function D(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function U(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function C(e,t,n){var r,i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var s="",o=t;o<n;++o)s+=(r=e[o])<16?"0"+r.toString(16):r.toString(16);return s}function P(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function N(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function k(e,t,n,r,i,s){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function O(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function V(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,s){return s||V(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,s){return s||V(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=u.prototype;else{var i=t-e;n=new u(i,void 0);for(var s=0;s<i;++s)n[s]=this[s+e]}return n},u.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},u.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return s>=(i*=128)&&(s-=Math.pow(2,8*t)),s},u.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},u.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);k(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);k(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||k(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)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(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},u.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var o=u.isBuffer(e)?e:B(new u(e,r).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var x=/[^+\/0-9A-Za-z-_]/g;function B(e,t){var n;t=t||1/0;for(var r=e.length,i=null,s=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function $(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(x,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}},249:function(e,t,n){var r;e.exports=(r=r||function(e,t){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),"undefined"!=typeof self&&self.crypto&&(r=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(r=globalThis.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==n.g&&n.g.crypto&&(r=n.g.crypto),!r)try{r=n(480)}catch(e){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),o={},a=o.lib={},u=a.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=a.WordArray=u.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var s=0;s<i;s++){var o=n[s>>>2]>>>24-s%4*8&255;t[r+s>>>2]|=o<<24-(r+s)%4*8}else for(var a=0;a<i;a+=4)t[r+a>>>2]=n[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=u.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(i());return new c.init(t,e)}}),l=o.enc={},h=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},f=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(s))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},d=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(f.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return f.parse(unescape(encodeURIComponent(e)))}},p=a.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,s=r.sigBytes,o=this.blockSize,a=s/(4*o),u=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,l=e.min(4*u,s);if(u){for(var h=0;h<u;h+=o)this._doProcessBlock(i,h);n=i.splice(0,u),r.sigBytes-=l}return new c.init(n,l)},clone:function(){var e=u.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),g=(a.Hasher=p.extend({cfg:u.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new g.HMAC.init(e,n).finalize(t)}}}),o.algo={});return o}(Math),r)},269:function(e,t,n){var r,i,s;e.exports=(r=n(249),s=(i=r).lib.WordArray,i.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],s=0;s<n;s+=3)for(var o=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<n;a++)i.push(r.charAt(o>>>6*(3-a)&63));var u=r.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(e){var t=e.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<n.length;i++)r[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return function(e,t,n){for(var r=[],i=0,o=0;o<t;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;r[i>>>2]|=a<<24-i%4*8,i++}return s.create(r,i)}(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)},10:function(e,t,n){var r;e.exports=(r=n(249),n(153),n(824),r.HmacSHA256)},824:function(e,t,n){var r,i,s;e.exports=(i=(r=n(249)).lib.Base,s=r.enc.Utf8,void(r.algo.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=s.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),a=i.words,u=o.words,c=0;c<n;c++)a[c]^=1549556828,u[c]^=909522486;i.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})))},433:function(e,t,n){var r;e.exports=(r=n(249),function(){if("function"==typeof ArrayBuffer){var e=r.lib.WordArray,t=e.init,n=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};n.prototype=e}}(),r.lib.WordArray)},153:function(e,t,n){var r;e.exports=(r=n(249),function(e){var t=r,n=t.lib,i=n.WordArray,s=n.Hasher,o=t.algo,a=[],u=[];!function(){function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)t(r)&&(i<8&&(a[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++}();var c=[],l=o.SHA256=s.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],s=n[2],o=n[3],a=n[4],l=n[5],h=n[6],f=n[7],d=0;d<64;d++){if(d<16)c[d]=0|e[t+d];else{var p=c[d-15],g=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,m=c[d-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;c[d]=g+c[d-7]+y+c[d-16]}var w=r&i^r&s^i&s,_=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),b=f+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&l^~a&h)+u[d]+c[d];f=h,h=l,l=a,a=o+b|0,o=s,s=i,i=r,r=b+(_+w)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+s|0,n[3]=n[3]+o|0,n[4]=n[4]+a|0,n[5]=n[5]+l|0,n[6]=n[6]+h|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=s._createHelper(l),t.HmacSHA256=s._createHmacHelper(l)}(Math),r.SHA256)},645:(e,t)=>{t.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,h=n?i-1:0,f=n?-1:1,d=e[t+h];for(h+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+e[t+h],h+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+h],h+=f,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=c}return(d?-1:1)*o*Math.pow(2,s-r)},t.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<<c)-1,h=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+h>=1?f/u:f*Math.pow(2,1-h))*u>=2&&(o++,u/=2),o+h>=l?(a=0,o=l):o+h>=1?(a=(t*u-1)*Math.pow(2,i),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[n+d]=255&o,d+=p,o/=256,c-=8);e[n+d-p]|=128*g}},826:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},204:(e,t,n)=>{e.exports=self.fetch||(self.fetch=n(869).default||n(869))},808:(e,t,n)=>{var r,i,s;void 0===(i="function"==typeof(r=s=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function i(){}function s(t,n,s){if("undefined"!=typeof document){"number"==typeof(s=e({path:"/"},i.defaults,s)).expires&&(s.expires=new Date(1*new Date+864e5*s.expires)),s.expires=s.expires?s.expires.toUTCString():"";try{var o=JSON.stringify(n);/^[\{\[]/.test(o)&&(n=o)}catch(e){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var a="";for(var u in s)s[u]&&(a+="; "+u,!0!==s[u]&&(a+="="+s[u].split(";")[0]));return document.cookie=t+"="+n+a}}function o(e,n){if("undefined"!=typeof document){for(var i={},s=document.cookie?document.cookie.split("; "):[],o=0;o<s.length;o++){var a=s[o].split("="),u=a.slice(1).join("=");n||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var c=t(a[0]);if(u=(r.read||r)(u,c)||t(u),n)try{u=JSON.parse(u)}catch(e){}if(i[c]=u,e===c)break}catch(e){}}return e?i[e]:i}}return i.set=s,i.get=function(e){return o(e,!1)},i.getJSON=function(e){return o(e,!0)},i.remove=function(t,n){s(t,"",e(n,{expires:-1}))},i.defaults={},i.withConverter=n,i}((function(){}))})?r.call(t,n,t,e):r)||(e.exports=i),e.exports=s()},869:(e,t,n)=>{"use strict";function r(e,t){return t=t||{},new Promise((function(n,r){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return{ok:2==(i.status/100|0),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(e){return a[e.toLowerCase()]},has:function(e){return e.toLowerCase()in a}}}};for(var c in i.open(t.method||"get",e,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){s.push(t=t.toLowerCase()),o.push([t,n]),a[t]=a[t]?a[t]+","+n:n})),n(u())},i.onerror=r,i.withCredentials="include"==t.credentials,t.headers)i.setRequestHeader(c,t.headers[c]);i.send(t.body||null)}))}n.r(t),n.d(t,{default:()=>r})},296:()=>{},480:()=>{}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{Skapi:()=>Ot,SkapiError:()=>e});class e extends Error{constructor(e,t){Array.isArray(e)&&e.length<=2?(super((e[1]||"Something went wrong.").trim()),this.name=t&&t.name||"SKAPI",this.code=e[0]||"ERROR",t&&(t.code&&(this.code=t.code),t.cause&&(this.cause=t.cause))):"string"==typeof e?(super(e||"Something went wrong."),this.name="SKAPI",this.code="ERROR",t&&(t.code&&(this.code=t.code),t.cause&&(this.cause=t.cause))):e instanceof Error&&(super((e.message||"Something went wrong.").trim()),this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code))}}class t{static hash(e){"string"!=typeof e&&(console.warn("coercing non-string value to empty string"),e="");const n=t.sb(e);let r,i,s,o,a=1732584193,u=-271733879,c=-1732584194,l=271733878;for(let e=0;e<n.length;e+=16)r=a,i=u,s=c,o=l,a=t.ff(a,u,c,l,n[e],7,-680876936),l=t.ff(l,a,u,c,n[e+1],12,-389564586),c=t.ff(c,l,a,u,n[e+2],17,606105819),u=t.ff(u,c,l,a,n[e+3],22,-1044525330),a=t.ff(a,u,c,l,n[e+4],7,-176418897),l=t.ff(l,a,u,c,n[e+5],12,1200080426),c=t.ff(c,l,a,u,n[e+6],17,-1473231341),u=t.ff(u,c,l,a,n[e+7],22,-45705983),a=t.ff(a,u,c,l,n[e+8],7,1770035416),l=t.ff(l,a,u,c,n[e+9],12,-1958414417),c=t.ff(c,l,a,u,n[e+10],17,-42063),u=t.ff(u,c,l,a,n[e+11],22,-1990404162),a=t.ff(a,u,c,l,n[e+12],7,1804603682),l=t.ff(l,a,u,c,n[e+13],12,-40341101),c=t.ff(c,l,a,u,n[e+14],17,-1502002290),u=t.ff(u,c,l,a,n[e+15],22,1236535329),a=t.gg(a,u,c,l,n[e+1],5,-165796510),l=t.gg(l,a,u,c,n[e+6],9,-1069501632),c=t.gg(c,l,a,u,n[e+11],14,643717713),u=t.gg(u,c,l,a,n[e],20,-373897302),a=t.gg(a,u,c,l,n[e+5],5,-701558691),l=t.gg(l,a,u,c,n[e+10],9,38016083),c=t.gg(c,l,a,u,n[e+15],14,-660478335),u=t.gg(u,c,l,a,n[e+4],20,-405537848),a=t.gg(a,u,c,l,n[e+9],5,568446438),l=t.gg(l,a,u,c,n[e+14],9,-1019803690),c=t.gg(c,l,a,u,n[e+3],14,-187363961),u=t.gg(u,c,l,a,n[e+8],20,1163531501),a=t.gg(a,u,c,l,n[e+13],5,-1444681467),l=t.gg(l,a,u,c,n[e+2],9,-51403784),c=t.gg(c,l,a,u,n[e+7],14,1735328473),u=t.gg(u,c,l,a,n[e+12],20,-1926607734),a=t.hh(a,u,c,l,n[e+5],4,-378558),l=t.hh(l,a,u,c,n[e+8],11,-2022574463),c=t.hh(c,l,a,u,n[e+11],16,1839030562),u=t.hh(u,c,l,a,n[e+14],23,-35309556),a=t.hh(a,u,c,l,n[e+1],4,-1530992060),l=t.hh(l,a,u,c,n[e+4],11,1272893353),c=t.hh(c,l,a,u,n[e+7],16,-155497632),u=t.hh(u,c,l,a,n[e+10],23,-1094730640),a=t.hh(a,u,c,l,n[e+13],4,681279174),l=t.hh(l,a,u,c,n[e],11,-358537222),c=t.hh(c,l,a,u,n[e+3],16,-722521979),u=t.hh(u,c,l,a,n[e+6],23,76029189),a=t.hh(a,u,c,l,n[e+9],4,-640364487),l=t.hh(l,a,u,c,n[e+12],11,-421815835),c=t.hh(c,l,a,u,n[e+15],16,530742520),u=t.hh(u,c,l,a,n[e+2],23,-995338651),a=t.ii(a,u,c,l,n[e],6,-198630844),l=t.ii(l,a,u,c,n[e+7],10,1126891415),c=t.ii(c,l,a,u,n[e+14],15,-1416354905),u=t.ii(u,c,l,a,n[e+5],21,-57434055),a=t.ii(a,u,c,l,n[e+12],6,1700485571),l=t.ii(l,a,u,c,n[e+3],10,-1894986606),c=t.ii(c,l,a,u,n[e+10],15,-1051523),u=t.ii(u,c,l,a,n[e+1],21,-2054922799),a=t.ii(a,u,c,l,n[e+8],6,1873313359),l=t.ii(l,a,u,c,n[e+15],10,-30611744),c=t.ii(c,l,a,u,n[e+6],15,-1560198380),u=t.ii(u,c,l,a,n[e+13],21,1309151649),a=t.ii(a,u,c,l,n[e+4],6,-145523070),l=t.ii(l,a,u,c,n[e+11],10,-1120210379),c=t.ii(c,l,a,u,n[e+2],15,718787259),u=t.ii(u,c,l,a,n[e+9],21,-343485551),a=t.ad(a,r),u=t.ad(u,i),c=t.ad(c,s),l=t.ad(l,o);return t.rh(a)+t.rh(u)+t.rh(c)+t.rh(l)}static rh(e){let n="";for(let r=0;r<=3;r++)n+=t.alphabet.charAt(e>>8*r+4&15)+t.alphabet.charAt(e>>8*r&15);return n}static ad(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}static rl(e,t){return e<<t|e>>>32-t}static cm(e,n,r,i,s,o){return t.ad(t.rl(t.ad(t.ad(n,e),t.ad(i,o)),s),r)}static ff(e,n,r,i,s,o,a){return t.cm(n&r|~n&i,e,n,s,o,a)}static gg(e,n,r,i,s,o,a){return t.cm(n&i|r&~i,e,n,s,o,a)}static hh(e,n,r,i,s,o,a){return t.cm(n^r^i,e,n,s,o,a)}static ii(e,n,r,i,s,o,a){return t.cm(r^(n|~i),e,n,s,o,a)}static sb(e){let t;const n=1+(e.length+8>>6),r=new Array(16*n);for(t=0;t<16*n;t++)r[t]=0;for(t=0;t<e.length;t++)r[t>>2]|=e.charCodeAt(t)<<t%4*8;return r[t>>2]|=128<<t%4*8,r[16*n-2]=8*e.length,r}}function i(e=6){let t="";let n=0;for(;n<e;)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random())),n+=1;return t}function s(t){function n(e,t,n){let r=t.slice(0,1),i=t.slice(-1);if("."===r&&(t=t.slice(1)),"."===i&&(t=t.slice(0,-1)),t.includes(".")){let n=t.split(".");t=n.pop();for(let t of n)t&&(e.hasOwnProperty(t)||(e[t]={}),e=e[t])}e.hasOwnProperty(t)?Array.isArray(e[t])?e[t].push(n):e[t]=[e[t],n]:e[t]=n}let r=[];if(t instanceof FormData){let e={},i=0,s=[];for(let o of t.entries()){let t=o[0],a=o[1];if(a instanceof File){if(i+a.size>4e6){r.push({name:t,file:a});continue}i+=a.size,s.push({name:t,file:a})}else if(a instanceof FileList){if(a&&a.length>0)for(let e=0;e<=a.length-1;e++)i+a.item(e).size>4e6?r.push({name:t,file:a.item(e)}):(i+=a.item(e).size,s.push({name:t,file:a.item(e)}))}else n(e,t,a)}return{meta:e,files:s,to_bin:r}}if(t instanceof SubmitEvent&&(t=t.target),t instanceof HTMLFormElement){let s={},o=[],a=0,u=t.querySelectorAll("input"),c=t.querySelectorAll("textarea");for(let e=0;e<c.length;e++){let t=c[e];t.name&&n(s,t.name,t.value)}for(let e=0;e<u.length;e++){let t=u[e];if(t.name)if("number"===t.type)t.value&&n(s,t.name,Number(t.value));else if("checkbox"===t.type||"radio"===t.type)t.checked?""===t.value&&"checkbox"===t.type||"on"===t.value||"true"===t.value?n(s,t.name,!0):"false"===t.value?n(s,t.name,!1):t.value&&n(s,t.name,t.value):"checkbox"===t.type&&(""===t.value||"on"===t.value||"true"===t.value?n(s,t.name,!1):"false"===t.value?n(s,t.name,!0):n(s,t.name,void 0));else if("file"===t.type){if(t.files&&t.files.length>0)for(let e=0;e<=t.files.length-1;e++)a+t.files.item(e).size>4e6?r.push({name:t.name,file:t.files.item(e)}):(a+=t.files.item(e).size,o.push({name:t.name,file:t.files.item(e)}))}else n(s,t.name,t.value)}if(i=s,new Blob([JSON.stringify(i)]).size>2097152)throw new e("JSON Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{meta:s,files:o,to_bin:r}}var i;return null}t.alphabet="0123456789abcdef";const o={UserId:function(t,n="User ID"){if(!t)throw new e(`${n} is empty.`,{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e(`${n} should be type: string.`,{code:"INVALID_PARAMETER"});if(!t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i))throw new e(`${n} is invalid.`,{code:"INVALID_PARAMETER"});return t},PhoneNumber:function(t){if(t&&("string"!=typeof t||"+"!==t.charAt(0)||isNaN(Number(t.substring(1)))))throw new e('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return t||""},Birthdate:function(t){if(t){if("string"!=typeof t)throw new e('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let n=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(10!==t.length||3!==t.split("-").length||!n.test(t))throw new e('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return t||""},Password:function(t){if(!t)throw new e('"password" is required.',{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(t.length<6)throw new e('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(t.length>60)throw new e('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"});return t},Email:function(t,n="email"){if(!t)throw new e(`"${n}" is required.`,{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new e(`"${n}"should be type: string.`,{code:"INVALID_PARAMETER"});if(t.length<5)throw new e(`"${n}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(t)&&(t=t.trim()).split("@")[1].split(".").length>=2)return t.toLowerCase();throw new e(`"${t}" is an invalid email.`,{code:"INVALID_PARAMETER"})},Url:function(t){const n=(()=>{let e=window.location.origin||null;return e&&"/"===e.slice(-1)&&(e=e.slice(0,-1)),e})();let r=t=>{if("string"==typeof t){if("*"===t)return"*";{let r,i=t.trim();if("/"===i[0]&&n){if("file:"===n.slice(0,5))throw new e(`"${t}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});i=n+i}else if("."===i[0]&&n){if("file:"===n.slice(0,5))throw new e(`"${t}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let r=window.location.href.split("?")[0];"/"!==r.slice(-1)&&(r+="/"),i=r+i.slice(1)}try{r=new URL(i)}catch(n){throw new e(`"${t}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(r.protocol)return r.href}}throw new e(`"${t}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(t)?t.map((e=>r(e))):r(t)},specialChars:function(t,n="parameter",r=!1,i=!1){let s=t=>{if("string"!=typeof t)throw new e(`${n} should be type: <string | string[]>.`,{code:"INVALID_PARAMETER"});if(!i&&t.includes(" "))throw new e(`${n} should not have whitespace.`,{code:"INVALID_PARAMETER"});if(!r&&t.includes("."))throw new e(`${n} should not have periods.`,{code:"INVALID_PARAMETER"});if(/[!@#$%&*()+\-={};':"\|,<>\/?~]/.test(t))throw new e(`${n} should not have special characters.`,{code:"INVALID_PARAMETER"})};if(Array.isArray(t))for(let e of t)s(e);else s(t);return t},Params:function t(n,r,i=null,o=[],a=null){function u(t){if(t instanceof Promise)throw new e("Parameter should not be a promise",{code:"INVALID_PARAMETER"});return t&&"object"==typeof t&&!Array.isArray(t)&&Object.keys(t).length}Array.isArray(o)&&(o=o.concat(["service","owner"]));let c,l=n,h=null,f=a?` in "${a}" is invalid.`:". Parameter should be type <object>.";if(null===a){if(u(l)){l=l instanceof HTMLFormElement||l instanceof FormData||l instanceof SubmitEvent?s(n)?.meta:JSON.parse(JSON.stringify(n));for(let t in l)if(!r.hasOwnProperty(t)&&Array.isArray(o)&&!o.includes(t))throw new e(`Key name "${t}" is invalid in parameter.`,{code:"INVALID_PARAMETER"});if(Array.isArray(i)&&i.length)for(let t of i)if(!Object.keys(l).includes(t))throw new e(`Key "${t}" is required in parameter.`,{code:"INVALID_PARAMETER"})}else if((d=l)&&"object"==typeof d&&!Array.isArray(d)&&!Object.keys(d).length||void 0===l){let e={};for(let t in r){let n=r[t];Array.isArray(n)&&"function"==typeof n[n.length-1]&&(e[t]=n[n.length-1]())}return Object.keys(e).length?e:l}if(null===l)return null}var d;if(u(r)&&u(l)){for(let e in r){let n=r[e];if(l.hasOwnProperty(e)&&null===l[e])l[e]=null;else if(l.hasOwnProperty(e)&&void 0!==l[e])l[e]=t(l[e],n,null,null,e);else{let t=Array.isArray(n)&&"function"==typeof n[n.length-1]?n[n.length-1]:null;if(t){let n=t();void 0!==n&&(l[e]=n)}}}c=l}else if(Array.isArray(r))for(let n of r)try{void 0!==typeof l&&"function"!=typeof n&&(c=t(l,n,null,null,a));break}catch(t){if("string"==typeof t&&"BREAK:"===t.substring(0,6)){let n=(t=t.substring(6)).split(":");h=new e(n[1],{code:n[0]});break}h=t}else{if("function"==typeof r)return r(l);if("string"==typeof r)if(Array.isArray(l)){if("array"!==r)throw new e(`Invalid type "${typeof l}"${f}`,{code:"INVALID_PARAMETER"});for(let t of l)if(!["number","string","boolean"].includes(typeof t)&&null!==t)throw new e(`Invalid type "${typeof t}" in "${a}" array value.`,{code:"INVALID_PARAMETER"});c=l}else if(["number","string","boolean","array","function"].includes(r)){if(typeof l!==r)throw new e(`Value: ${l}${f}`,{code:"INVALID_PARAMETER"});if("number"===r&&Math.abs(l)>4503599627370496)throw`BREAK:INVALID_PARAMETER:"${a}" integer value should be within -4503599627370496 ~ +4503599627370546.`;c=l}else{if(l!==r)throw new e(`Value: ${l}${f}`,{code:"INVALID_PARAMETER"});c=l}else null===r&&(c=l)}if(void 0===c&&h)throw h;return c}},a={};function u(){return this.__connection}async function c(t,n=null,r){r=r||{};let{auth:s=!1,method:u="post",meta:c=null,bypassAwaitConnection:f=!1}=r;u=u.toLowerCase();let g=f?null:await this.__connection;if(!g&&!f)throw new e("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});let m=s?this.session?.idToken?.jwtToken:null;if(s){if(!m)throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"});{let t=Date.now()/1e3;if(this.session.idToken.payload.exp<t)try{await this.authentication().getSession({refreshToken:!0}),m=this.session?.idToken?.jwtToken}catch(t){throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"})}}}let y="";try{y=o.Url(t)}catch(e){}let w=y||await(async(e,t)=>{const n=await Promise.all([this.admin_endpoint,this.record_endpoint]),r=n[0],i=n[1];return((()=>{switch(e){case"get-newsletters":case"get-public-newsletters":case"get-users":case"post-userdata":case"remove-account":case"post-secure":case"subscribe-newsletter":case"subscribe-public-newsletter":case"signup":case"confirm-signup":case"recover-account":case"mock":case"service":case"grant-access":case"last-verified-email":case"ticket":case"get-newsletter-subscription":case"request-username-change":case"jwt-login":case"client-secret-request":return{public:r.admin_public,private:r.admin_private};case"post-record":case"get-records":case"subscription":case"get-subscription":case"del-records":case"get-table":case"get-tag":case"get-index":case"get-signed-url":case"grant-private-access":case"request-private-access-key":case"get-ws-group":case"del-files":return{private:i.record_private,public:i.record_public};default:return null}})()?.[t?"private":"public"]||"")+e})(t,!!s),_=this.session?.attributes?.["custom:service"]||g?.service||this.service,b=this.session?.attributes?.["custom:owner"]||g?.owner||this.owner;if(c){if("object"!=typeof c||Array.isArray(c))throw new e("Invalid meta data.",{code:"INVALID_REQUEST"});c=JSON.parse(JSON.stringify(c))}if(Array.isArray(n)||n&&"object"!=typeof n)throw new e("Request data should be a JSON Object | FormData | HTMLFormElement.",{code:"INVALID_REQUEST"});let A="blob"!==r?.responseType?{service:_,owner:b}:{},v={},{fetchMore:E=!1,progress:S}=r?.fetchOptions||{};if(r?.fetchOptions&&Object.keys(r.fetchOptions).length){let t={};for(let e of["limit","startKey","ascending"])r.fetchOptions.hasOwnProperty(e)&&(t[e]=r.fetchOptions[e]);if(t=o.Params(t,{limit:"number",startKey:null,ascending:"boolean"}),t.hasOwnProperty("limit")&&"number"==typeof t.limit){if(t.limit>1e3)throw new e("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});Object.assign(v,{limit:t.limit})}t.hasOwnProperty("startKey")&&"object"==typeof t.startKey&&t.startKey&&Object.keys(t.startKey)&&Object.assign(v,{startKey:t.startKey}),t.hasOwnProperty("ascending")&&"boolean"==typeof t.ascending&&Object.assign(v,{ascending:t.ascending})}Object.assign(A,v);let I=!1;if(n instanceof SubmitEvent&&(n=n?.target),n instanceof HTMLFormElement&&(n=new FormData(n)),n instanceof FormData&&(I=!0),c)c=Object.assign(A,c);else if(n)if(I)for(let e in A)void 0!==A[e]&&n.set(e,new Blob([JSON.stringify(A[e])],{type:"application/json"}));else n=Object.assign(A,n);else n=A;if(I&&"function"==typeof r?.fetchOptions?.formData){let t=r.fetchOptions.formData(n);if(t instanceof Promise&&(t=await t),t instanceof FormData&&(n=t),!(n instanceof FormData))throw new e("Callback for extractFormData() should return FormData",{code:"INVALID_PARAMETER"});{let t=0;for(let e of n.entries()){let n=e[1];if(n instanceof File)t+=n.size;else if(n instanceof FileList&&n&&n.length>0)for(let e=0;e<=n.length-1;e++)t+=n.item(e).size}if(t>42e5)throw new e("Files cannot exceed 4MB. Use skapi.uploadFiles(...) instead.",{code:"INVALID_REQUEST"})}}let R=l.bind(this)({params:n,url:y||t,fetchMore:!I&&E});if(R&&"object"==typeof R)return R;if(!R||"string"!=typeof R)return null;if(!(a[R]instanceof Promise)){let e={Accept:"*/*"};if(m&&(e.Authorization=m),c){let t="__meta__"+i(16);n instanceof FormData&&(e["Content-Meta"]=window.btoa(encodeURIComponent(JSON.stringify({meta_key:t,merge:"data"}))),n.set(t,new Blob([JSON.stringify(c)],{type:"application/json"})))}r.hasOwnProperty("contentType")?r?.contentType&&(e["Content-Type"]=r.contentType):n instanceof FormData||(e["Content-Type"]="application/json");let s={headers:e};r?.responseType&&(s.responseType=r.responseType),"post"===u?a[R]=d.bind(this)(w,n,s,S):"get"===u&&(a[R]=p.bind(this)(w,n,s,S,r?.noParams));try{let e=await a[R];return I?e:h.bind(this)({hashedParam:R,url:t,response:e})}catch(e){throw e}finally{R&&a.hasOwnProperty(R)&&delete a[R]}}}function l(n){let{params:r={},url:i,fetchMore:s=!1}=n||{};if(r.hasOwnProperty("startKey")&&r.startKey){if("object"!=typeof r.startKey&&!Object.keys(r.startKey).length&&"start"!==r.startKey&&"end"!==r.startKey)throw new e(`"${r.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});"start"===r.startKey&&(s=!1,delete r.startKey)}let o=(()=>{if(r&&"object"==typeof r&&Object.keys(r).length){function e(e){function t(e){return"object"==typeof e&&e?Object.keys(e).sort().reduce(((t,n)=>(t[n]=e[n],t)),{}):e}let n=t(e);n.hasOwnProperty("limit")&&delete n.limit;for(let r in n)n[r]&&"object"==typeof n[r]&&(n[r]=t(e[r]));return n}return t.hash(i+"/"+JSON.stringify(e(r)))}return t.hash(i+"/"+this.service)})();if(!s&&this.__startKeyHistory?.[i]?.[o]){if(this.__cached_requests?.[i]&&this.__cached_requests?.[i]?.[o]&&delete this.__cached_requests[i][o],Array.isArray(this.__startKeyHistory[i][o])&&this.__startKeyHistory[i][o].length)for(let e of this.__startKeyHistory[i][o]){let n=o+"/"+t.hash(JSON.stringify(e));this.__cached_requests?.[i]&&this.__cached_requests?.[i]?.[n]&&delete this.__cached_requests[i][n]}return delete this.__startKeyHistory[i][o],o}if(!Array.isArray(this.__startKeyHistory?.[i]?.[o]))return o;let a=this.__startKeyHistory[i][o],u=a[a.length-1],c=o;if(u){if("end"===u)return{list:[],startKey:"end",endOfList:!0,startKeyHistory:this.__startKeyHistory[i][o]};c+=t.hash(u),r.startKey=JSON.parse(u)}return this.__cached_requests?.[i]?.[c]?this.__cached_requests[i][c]:o}async function h(e){let{hashedParam:t,url:n,response:r}=e,i=null;if(i=r instanceof Promise?await r:r,!(i&&"object"==typeof i&&i.hasOwnProperty("startKey")&&t&&n))return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,this.__startKeyHistory[n].hasOwnProperty(t)||(this.__startKeyHistory[n][t]=[]);let s="end"===i.startKey?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][t].includes(s)||this.__startKeyHistory[n][t].push(s),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][t]},i)}async function f(t,n,r){let i=await((t,r,i)=>new Promise(((s,o)=>{let a=new XMLHttpRequest;for(var u in a.open((n.method||"GET").toUpperCase(),t),r.headers||{})a.setRequestHeader(u,r.headers[u]);n.responseType&&(a.responseType=n.responseType),a.onload=()=>{if(a.status>=200&&a.status<300)if("json"==r.responseType||"blob"==r.responseType)s(a.response);else{let e=a.responseText;try{e=JSON.parse(e)}catch(e){}s(e)}else{let t=a.status,n=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],r=a.responseText;try{r=JSON.parse(r)}catch(e){}if("string"==typeof r){let t=a.response.split(":"),r=t.splice(0,1)[0].trim();o(new e(t.join("").trim(),{code:n.includes(r)?r:"ERROR"}))}else if("object"==typeof r&&r?.message){let n=r?.code||(t?t.toString():null)||"ERROR";o(new e(r?.message,{code:n}))}}},a.onerror=()=>o("Network error"),a.onabort=()=>o("Aborted"),a.ontimeout=()=>o("Timeout"),"function"==typeof i&&(a.onprogress=e=>{i({status:"download",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>a.abort()})},a.upload&&(a.upload.onprogress=e=>{i({status:"upload",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>a.abort()})})),a.send(r.body)})))(t,{headers:n?.headers,body:n.body,responseType:n?.responseType},r);if("object"==typeof i&&"GET"===n.method&&i.hasOwnProperty("body"))try{i=JSON.parse(i.body)}catch(e){}return i}async function d(e,t,n,r){let i=Object.assign({method:"POST"},n,{body:t instanceof FormData?t:JSON.stringify(t)});return f.bind(this)(e,i,r)}async function p(e,t,n,r,i){t&&"object"==typeof t&&!i&&Object.keys(t).length&&("?"!==e.substring(e.length-1)&&(e+="?"),e+=Object.keys(t).map((e=>{let n=t[e];return"string"!=typeof n&&(n=JSON.stringify(n)),encodeURIComponent(e)+"="+encodeURIComponent(n)})).join("&"));let s=Object.assign({method:"GET"},n);return f.bind(this)(e,s,r)}async function g(e){let t={url:e=>o.Url(e),data:null,sync:["boolean",()=>!0]};if(Array.isArray(e))for(let n of e)n=o.Params(n,t);else e=o.Params(e,t);return await c.bind(this)("post-secure",e,{auth:!0})}async function m(e,t){let{auth:n=!0,method:r="POST",meta:i,bypassAwaitConnection:s=!1,responseType:o,contentType:a}=t||{},{response:u,onerror:l,formData:h,progress:f}=t||{};return t&&Object.assign({auth:n,method:r,meta:i,bypassAwaitConnection:s,responseType:o,contentType:a},{fetchOptions:{response:u,onerror:l,formData:h,progress:f}}),c.bind(this)("mock",e,t)}async function y(){await this.__connection;let n=`${this.service}:${t.hash(window.location.href.split("?")[0])}`,r=window.sessionStorage.getItem(n);if(null!==r){try{r=JSON.parse(r)}catch(e){}return r}throw new e("Form response doesn't exist.",{code:"NOT_EXISTS"})}const w={};function _(n){let{preventMultipleCalls:r=!1}=n||{};return function(n,i,s){const o=s.value;s.value=function(...n){let s=n[0],a=n?.[1]||{},u=!0,c=null,l="";if(s instanceof SubmitEvent){s.preventDefault();let e=window.location.href;c=s.target;let t=new URL(c.action);l=t.href,c.action&&t.href!==e||(u=!1)}const h=n=>{if(a?.response){if("function"==typeof a.response)return a.response(n);throw new e('Callback "response" should be type: function.',{code:"INVALID_PARAMETER"})}return c&&u&&(window.sessionStorage.setItem(`${this.service}:${t.hash(l)}`,JSON.stringify(n)),window.location.href=l),n};let f,d=t=>(s instanceof SubmitEvent&&s.preventDefault(),t instanceof e?t.name=i+"()":t=t instanceof Error?t:new e(t,{name:i+"()"}),a?.onerror?"function"==typeof a.onerror?a.onerror(t):new e('Callback "onerror" should be type: function.',{code:"INVALID_PARAMETER",name:i+"()"}):t);const p=()=>{try{f=o.bind(this)(...n)}catch(e){let t=d(e);if(t instanceof Error)throw t;return t}if(f instanceof Promise)return(async()=>{try{let e=await f;return h(e)}catch(e){let t=d(e);if(t instanceof Error)throw t;return t}})()};return r?(async()=>(w?.[i]instanceof Promise||(w[i]=p().finally((()=>{w[i]=null}))),w[i]))():p()}}}const b=4503599627370496;function A(e){let t=0;for(let n=0;n<e.length;n++)t=62*t+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(e[n]);return t}function v(t){const n={user_id:"",record_id:"",updated:0,uploaded:0,table:{name:"",access_group:0},reference:{reference_limit:null,allow_multiple_reference:!0,referenced_count:0},ip:"",bin:{}},r={ip:e=>{"R"===e.slice(-1)?(n.readonly=!0,e=e.slice(0,-1)):n.readonly=!1,n.ip=e},rec:e=>{if(!e)return;n.record_id=e;let t=e.substring(0,e.length-9).split("").reverse().reduce(((e,t,n)=>e+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(t)*62**n),0);n.uploaded=t},usr:e=>{n.user_id=e},tbl:e=>{if(!e)return;let t=e.split("/");n.table.name=t[0],n.table.access_group="**"==t[2]?"private":parseInt(t[2]),n.table.subscription=!!t?.[3]},usr_tbl:e=>{let t=e.split("/");n.user_id=t[0],n.table.name=t[1],n.table.access_group="**"==t[3]?"private":parseInt(t[3]),n.table.subscription=!!t?.[4]},idx:t=>{if(!t)return;let r=t.split("!"),i=r.splice(0,1)[0],s=function(t){let n=t.substring(3);switch(t.substring(0,3)){case"!S%":return n;case"!N%":let r=n.split("."),i=Number(r[0])-4503599627370496;return 1===r.length?i:parseFloat(i.toString()+"."+r[1]);case"!B%":return"1"===n;case"!L%":case"!D%":try{return JSON.parse(n)}catch(t){throw new e("Value parse error.",{code:"PARSE_ERROR"})}default:return t}}("!"+r.join("!"));n.index={name:i,value:s}},ref:e=>{e&&(n.reference.record_id=e.split("/")[0])},tags:e=>{n.tags=e},upd:e=>{n.updated=e},acpt_mrf:e=>{n.reference.allow_multiple_reference=e},ref_limt:e=>{n.reference.reference_limit=e},rfd:e=>{n.reference.referenced_count=e},bin:e=>{let t={};if(Array.isArray(e))for(let n of e){let e=n.split("/").slice(3).join("/"),r=e.split("/"),i=decodeURIComponent(r.slice(-1)[0]),s=decodeURIComponent(r[10]),o=r[9],a=r[8],u="**"==r[6]?"private":parseInt(r[6]);u=0==u?"public":1==u?"authorized":u;let c={access_group:u,filename:i,url:n,path:e,size:A(o),uploaded:A(a),getFile:(e,t)=>{let r={dataType:e||"download",progress:t};return I.bind(this)(n,r)}};t[s]?t[s].push(c):t[s]=[c]}n.bin=t},data:e=>{let t=e;"!D%{}"===e?t={}:"!L%[]"===e&&(t=[]),n.data=t}};if(t.record_id)return t;for(let e in r)t.hasOwnProperty(e)&&r[e](t[e]);return t.private_key&&(this.__private_access_key[n.record_id]=t.private_key),n}async function E(t){let{endpoints:n}=t;if("string"==typeof n&&(n=[n]),!Array.isArray(n))throw new e('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});return c.bind(this)("del-files",{endpoints:n,storage:"records"},{auth:!0,method:"post"}).map((e=>v.bind(this)(e)))}async function S(t,n){await this.__connection;let r=n?.request||"post",s=n?.nestKey||"",o=n?.service||this.service;if("post"===r){if(!n?.record_id)throw new e('"record_id" is required.',{code:"INVALID_PARAMETER"})}else{if(o===this.service)throw new e("invalid service.",{code:"INVALID_PARAMETER"});if("host"!==r)throw new e("invalid request.",{code:"INVALID_PARAMETER"})}t instanceof SubmitEvent&&(t=t.target),t instanceof HTMLFormElement&&(t=new FormData(t));let a=[];if(t instanceof FormData){let e=[];for(let n of t.entries()){let t=n[1];if(t instanceof File){let r=n[0];a.push(r),e.push(t)}}t=e}if(!(t[0]instanceof File))throw new e('"fileList" should be a FileList or array of File object.',{code:"INVALID_PARAMETER"});let u,l={reserved_key:i(),service:o,request:r};n?.record_id&&(l.id=n.record_id);let h=(e,t,r)=>new Promise(((i,s)=>{u=new XMLHttpRequest,u.open("POST",e),u.onload=e=>{let t=u.responseText;try{t=JSON.parse(t)}catch(e){}if(u.status>=200&&u.status<300){let e=u.responseText;try{e=JSON.parse(e)}catch(e){}i(e)}else s(t)},u.onerror=()=>s("Network error"),u.onabort=()=>s("Aborted"),u.ontimeout=()=>s("Timeout"),u.upload&&"function"==typeof n.progress&&(u.upload.onprogress=r),u.send(t)})),f=[],d=[];function p(e){const t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(0===e)return t[0];let n="";for(;e>0;)n=t[e%62]+n,e=Math.floor(e/62);return n}let g=[];for(let e=0;e<t.length;e++){let i=t[e],o=a?.[e]||"",m=Object.assign({key:"host"===r?(s?s+"/":"")+i.name:o?o+"/"+i.name:i.name,sizeKey:p(i.size),contentType:i.type||null},l),{fields:y=null,url:w,cdn:_}=await c.bind(this)("get-signed-url",m,{auth:!0});g.push(_);let b=new FormData;for(let e in y)b.append(e,y[e]);b.append("file",i);try{await h(w,b,(e=>{"function"==typeof n.progress&&n.progress({status:"upload",progress:e.loaded/e.total*100,currentFile:i,completed:f,failed:d,loaded:e.loaded,total:e.total,abort:()=>u.abort()})})),f.push(i)}catch(e){d.push(i)}}return{completed:f,failed:d,bin_endpoints:g}}async function I(t,n){if("string"!=typeof t)throw new e('"url" should be type: string.',{code:"INVALID_PARAMETER"});o.Url(t);let r=!1,i=t.split("/"),s=i[2].split("."),a=null;3===s.length&&"skapi"===s[1]&&(a=s[0],r=!0);let u=i.slice(3);if(!r){if("auth"!==u[0]&&"publ"!==u[0])throw new e("Invalid file url.",{code:"INVALID_PARAMETER"});try{o.UserId(u[2]),o.UserId(u[3])}catch{throw new e("Invalid file url.",{code:"INVALID_PARAMETER"})}}let l=a?null:u[1];n=o.Params(n,{expires:"number",dataType:["base64","blob","endpoint","download",()=>"download"],progress:e=>e});let h="auth"==u[0],f=t.split("/").slice(-1)[0],d=n?.expires||0;if(d){if(d<0)throw new e('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let n={request:a?"get-host":"get",id:a||u[5],key:t,expires:d};l&&(n.service=l),t=(await c.bind(this)("get-signed-url",n,{auth:!0})).url}else if(h){let n=this.session?.idToken?.jwtToken,r="**"===u[6]?"**":parseInt(u[6]);if(!n)throw new e("User login is required.",{code:"INVALID_REQUEST"});{let t=Date.now()/1e3;if(this.session.idToken.payload.exp<t)try{await this.authentication().getSession({refreshToken:!0}),n=this.session?.idToken?.jwtToken}catch(t){throw this.logout(),new e("User login is required.",{code:"INVALID_REQUEST"})}}if("**"===r){if(this.__user.user_id!==u[3])throw new e("User has no access.",{code:"INVALID_REQUEST"})}else if(this.__user.access_group<r)throw new e("User has no access.",{code:"INVALID_REQUEST"});t+=`?t=${n}`}if("endpoint"===n?.dataType)return t;if("download"===n?.dataType){let e=document.createElement("a");return e.href=t,document.body.appendChild(e),e.setAttribute("download",f),e.target="_blank",e.click(),document.body.removeChild(e),null}return new Promise((async(e,r)=>{try{let r=await c.bind(this)(t,{service:l||this.service},{method:"get",noParams:!0,contentType:null,responseType:"blob",fetchOptions:{progress:n?.progress}});if("base64"===n?.dataType){const t=new FileReader;t.onloadend=()=>e(t.result),t.readAsDataURL(r)}}catch(e){r(e)}}))}async function R(t,n){await this.__connection;const r={$updated:"number",$uploaded:"number",$referenced_count:"number"};"string"==typeof t?.table&&(t.table={name:t.table,access_group:0});const i={table:{name:"string",access_group:["number","private","public","authorized"],subscription:e=>o.UserId(e,'User ID in "subscription"')},reference:"string",index:{name:t=>{if("string"!=typeof t)throw new e('"index.name" should be type: string.',{code:"INVALID_PARAMETER"});return r.hasOwnProperty(t)||["$uploaded","$updated","$referenced_count","$user_id"].includes(t)?t:o.specialChars(t,"index.name",!0,!1)},value:n=>{if(t.index?.name&&r.hasOwnProperty(t.index.name)){let i=r[t.index.name];if(typeof n===i)return n;throw new e(`"index.value" should be type: ${i}.`,{code:"INVALID_PARAMETER"})}if("number"==typeof n){if(n>b||n<-4503599627370496)throw new e("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"});return n}return"boolean"==typeof n?n:"$user_id"==t.index?.name?o.UserId(n):o.specialChars(n,"index.value",!1,!0)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"],range:n=>{if(!t.index||!("value"in t.index))throw new e('"index.value" is required.',{code:"INVALID_PARAMETER"});if("$record_id"===t.index.name)throw new e(`Cannot do "index.range" on ${t.index.name}`,{code:"INVALID_PARAMETER"});if(typeof t.index.value!=typeof n)throw new e('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return"string"==typeof n?o.specialChars(n,"index.range",!1,!0):n}},tag:"string",private_key:"string"};if(t?.tag&&o.specialChars(t.tag,"tag",!1,!0),t?.table){if("public"===t.table.access_group?t.table.access_group=0:"authorized"===t.table.access_group&&(t.table.access_group=1),t.table?.name&&o.specialChars(t.table.name,"table name",!0,!0),"number"==typeof t.table.access_group)if(this.__user){if(this.user.access_group<t.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"})}else if(0<t.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"});t.table.hasOwnProperty("access_group")||(t.table.access_group=t.table?.subscription?1:0)}if(t?.index&&!t.index?.name)throw new e('"index.name" is required when using "index" parameter.',{code:"INVALID_REQUEST"});let s="";if(t?.record_id){o.specialChars(t.record_id,"record_id",!1,!1);let e={record_id:t.record_id};t?.service&&(e.service=t.service),t=e,this.__private_access_key[t.record_id]&&(t.private_key=this.__private_access_key[t.record_id])}else{let n;if(!this.session&&"private"===t.table?.access_group)throw new e("Unsigned users have no access to private records.",{code:"INVALID_REQUEST"});if(t.reference)try{n=o.UserId(t.reference)}catch(e){o.specialChars(t.reference,"reference",!1,!1),s=t.reference,this.__private_access_key[s]&&(t.private_key=this.__private_access_key[s])}let r=await this.checkAdmin(),a=o.Params(t||{},i,n||r?[]:["table"]);if("string"!=typeof a.table&&a.table?.subscription){if(!this.session)throw new e("Unsigned users have no access to subscription records.",{code:"INVALID_REQUEST"});a.table.subscription={user_id:a.table.subscription,group:1}}t=a}let a=!(!t.hasOwnProperty("access_group")||"string"==typeof t.table||!t.table.access_group)||!!this.__user,u=await c.bind(this)("get-records",t,{fetchOptions:n,auth:a,method:a?"post":"get"});for(let e in u.list)u.list[e]=v.bind(this)(u.list[e]);return s&&u?.reference_private_key&&(this.__private_access_key[s]=u.reference_private_key),u}async function T(t,n){let r=await this.checkAdmin();if(!n)throw new e('"config" argument is required.',{code:"INVALID_PARAMETER"});if(!this.user)throw new e("Login is required.",{code:"INVALID_REQUEST"});let i={};"function"==typeof n?.formData&&(i.formData=n.formData,delete n.formData),"string"==typeof n.table&&(n.table={name:n.table},n.record_id||(n.table.access_group=0)),"string"==typeof n.reference&&(n.reference={record_id:n.reference});let a=n.progress||null,u=null,l=o.Params(n||{},{record_id:"string",readonly:"boolean",table:{name:"string",subscription:"boolean",access_group:["number","private","public","authorized"]},reference:{record_id:e=>(o.specialChars(e,'"reference.record_id"',!1,!1),this.__private_access_key[e]&&(u=this.__private_access_key[e]),e),reference_limit:t=>{if(null===t)return null;if("number"==typeof t){if(0>t)throw new e('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(t>4503599627370546)throw new e('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return t}throw new e('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},allow_multiple_reference:"boolean"},index:{name:"string",value:["string","number","boolean"]},tags:t=>{if(null===t)return t;if("string"==typeof t)return[t];if(Array.isArray(t)){for(let n of t){if("string"!=typeof n)throw new e('"tags" should be type: <string | string[]>',{code:"INVALID_PARAMETER"});o.specialChars(t,"tag",!1,!0)}return t}throw new e('"tags" should be type: <string | string[]>',{code:"INVALID_PARAMETER"})},remove_bin:t=>{if(!t)return null;let n=[];if(Array.isArray(t))for(let r of t)if("string"==typeof r)n.push(r);else{if(!(r.url&&r.size&&r.filename))throw new e('"remove_bin" should be type: <string | BinaryFile[]>',{code:"INVALID_PARAMETER"});n.push(r.url)}return n}},[],["response","onerror","progress"],null);if(!l?.table&&!l?.record_id)throw new e('Either "record_id" or "table" should have a value.',{code:"INVALID_PARAMETER"});if(l.table){if("public"===l.table.access_group?l.table.access_group=0:"authorized"===l.table.access_group&&(l.table.access_group=1),"number"==typeof l.table.access_group&&!r&&this.user.access_group<l.table.access_group)throw new e("User has no access",{code:"INVALID_REQUEST"});if(!l.table.name)throw new e('"table.name" cannot be empty string.',{code:"INVALID_PARAMETER"});if(o.specialChars(l.table.name,"table name",!0,!0),r&&"private"===l.table.access_group)throw new e("Service owner cannot write private records.",{code:"INVALID_REQUEST"});if(l.table?.subscription){if(l?.record_id||l.table.hasOwnProperty("access_group")||(l.table.access_group=1),0===l.table.access_group)throw new e("Public records cannot require subscription.",{code:"INVALID_REQUEST"});l.table.subscription_group=1,delete l.table.subscription}}if(delete(n=l).response,delete n.onerror,delete n.progress,u&&(n.reference_private_key=u),n.index){if(!n.index.name||"string"!=typeof n.index.name)throw new e('"index.name" is required. type: string.',{code:"INVALID_PARAMETER"});if(["$uploaded","$updated","$referenced_count","$user_id"].includes(n.index.name)||o.specialChars(n.index.name,"index name",!0),!n.index.hasOwnProperty("value"))throw new e('"index.value" is required.',{code:"INVALID_PARAMETER"});if("string"==typeof n.index.value)o.specialChars(n.index.value,"index value",!1,!0);else if("number"==typeof n.index.value&&(n.index.value>b||n.index.value<-4503599627370496))throw new e("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"})}let h={auth:!0},f=null,d=null;if(t instanceof HTMLFormElement||t instanceof FormData||t instanceof SubmitEvent){let e=s(t=t instanceof SubmitEvent?t.target:t);if(e.to_bin.length&&(d=e.to_bin),e.files.length){d||(d=[]);for(let t of e.files)d.push(t)}f=Object.assign({data:e.meta},n)}else f=Object.assign({data:t},n);"function"==typeof a&&(i.progress=a),Object.keys(i).length&&Object.assign(h,{fetchOptions:i});let p=await c.bind(this)("post-record",f,h);if(d){let e=new FormData;for(let t of d)e.append(t.name,t.file,t.file.name);let t={record_id:p.rec,progress:a};n.hasOwnProperty("service")&&(t.service=n.service);let{bin_endpoints:r}=await S.bind(this)(e,t);p.bin?p.bin.push(...r):p.bin=r}return v.bind(this)(p)}async function D(e,t){let n=await c.bind(this)("get-table",o.Params(e||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!0},{fetchOptions:t})),r={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(n?.list))for(let e of n.list)for(let t in r)e.hasOwnProperty(t)&&(e[r[t]]=e[t],delete e[t]);return n}async function U(t,n){if(!t?.table)throw new e('"table" is required.',{code:"INVALID_PARAMETER"});let r=o.Params(t||{},{table:"string",index:e=>o.specialChars(e,"index name",!0,!1),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(r.hasOwnProperty("order")){if(!r.order?.by)throw new e('"order.by" is required.',{code:"INVALID_PARAMETER"});if(r.order.hasOwnProperty("condition")&&!r.order.hasOwnProperty("value"))throw new e('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("index")&&"."!==r.index.substring(r.index.length-1))throw new e('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let i=await c.bind(this)("get-index",r,Object.assign({auth:!0},{fetchOptions:n})),s={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(i?.list)&&(i.list=i.list.map((e=>{let t=e.idx.split("/"),n={table:t[1],index:t[2],number_of_records:e.cnt_rec};for(let t in s)e?.[t]&&(n[s[t]]=e[t]);return n}))),i}async function C(e,t){let n=await c.bind(this)("get-tag",o.Params(e||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!0},{fetchOptions:t}));if(Array.isArray(n?.list))for(let e in n.list){let t=n.list[e],r=t.tag.split("/");n.list[e]={table:r[1],tag:r[0],number_of_records:t.cnt_rec}}return n}async function P(t){let n=await this.checkAdmin();if(n&&!t?.service)throw new e("Service ID is required.",{code:"INVALID_PARAMETER"});if(t?.record_id)return await c.bind(this)("del-records",{service:t.service||this.service,record_id:(t=>{if("string"==typeof t)return[t];if(!Array.isArray(t))throw new e('"record_id" should be type: <string | string[]>',{code:"INVALID_PARAMETER"});if(t.length>100)throw new e('"record_id" should not exceed 100 items.',{code:"INVALID_PARAMETER"});return o.specialChars(t,"record_id",!1,!1)})(t.record_id)},{auth:!0});{if(!t?.table){if(n)return null;throw new e('Either "table" or "record_id" is required.',{code:"INVALID_PARAMETER"})}let r={access_group:t=>{if("string"==typeof t&&["private","public","authorized"].includes(t))switch(t){case"private":return t;case"public":return 0;case"authorized":return 1}else if("number"==typeof t&&t>=0&&t<100)return t;throw new e('Invalid "table.access_group". Access group should be type <number (0~99) | "private" | "public" | "authorized">.',{code:"INVALID_PARAMETER"})},name:"string",subscription:r=>{if(n&&"string"==typeof t?.table?.subscription)return o.UserId(r,'User ID in "table.subscription"');if("boolean"==typeof r)return r?this.__user.user_id:null;throw new e('"table.subscription" is an invalid parameter key.',{code:"INVALID_PARAMETER"})}},i=o.Params(t.table||{},r,n?[]:["name"]);if(i.hasOwnProperty("subscription"))if(null===i.subscription)delete i.subscription;else{if(!i.hasOwnProperty("access_group"))throw new e('"table.access_group" is required for subscription records.',{code:"INVALID_PARAMETER"});if(0===i.access_group)throw new e("Public tables does not hold subscription records.",{code:"INVALID_REQUEST"});i.subscription_group=1}t.table=i}return await c.bind(this)("del-records",t,{auth:!0})}function N(t){if(!t.record_id)throw new e("Record ID is required.",{code:"INVALID_PARAMETER"});if(!t.user_id||Array.isArray(t.user_id)&&!t.user_id.length)throw new e("User ID is required.",{code:"INVALID_PARAMETER"});return V.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"add"})}function k(t){if(!t.record_id)throw new e("Record ID is required.",{code:"INVALID_PARAMETER"});if(!t.user_id||Array.isArray(t.user_id)&&!t.user_id.length)throw new e("User ID is required.",{code:"INVALID_PARAMETER"});return V.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"remove"})}function O(e){let t=V.bind(this)({record_id:e.record_id,user_id:e.user_id||null,execute:"list"});t.list=t.list.map((e=>(e.record_id=e.rec_usr.split("/")[0],e.user_id=e.rec_usr.split("/")[1],e)))}function M(e){return c.bind(this)("request-private-access-key",{record_id:e},{auth:!0})}function V(t){let n=t.execute,r=o.Params(t,{record_id:"string",user_id:t=>{if(!t){if("list"==n)return null;throw new e("User ID is required.",{code:"INVALID_PARAMETER"})}let r=t;if("string"==typeof r&&(r=[r]),r.length>100)throw new e("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let e of r)o.UserId(e,'User ID in "user_id"');return r},execute:["add","remove","list"]},["execute","record_id","user_id"]);return r.user_id||(r.user_id=null),c.bind(this)("grant-private-access",r,{auth:!0})}async function L(){if(await this.getProfile(),!this.session)throw new e("No access.",{code:"INVALID_REQUEST"});let t=await this.record_endpoint;return new WebSocket(t.websocket_private+"?token="+this.session.accessToken.jwtToken)}let F=0;async function x(){let e=this.__socket?await this.__socket:this.__socket;return e&&e.close(),this.__socket=null,this.__socket_group=null,null}function B(t,n=0){if("function"!=typeof t)throw new e("Callback must be a function.",{code:"INVALID_REQUEST"});return!F&&this.__socket instanceof Promise||(this.__socket=new Promise((async r=>{setTimeout((async()=>{if(await this.__connection,!await this.getProfile())throw new e("No access.",{code:"INVALID_REQUEST"});let n=await L.bind(this)();n.onopen=()=>{F=0,t({status:"success",message:"Connected to WebSocket server."}),this.__socket_group&&n.send(JSON.stringify({action:"joinGroup",rid:this.__socket_group,token:this.session.accessToken.jwtToken})),r(n)},n.onmessage=e=>{let n=JSON.parse(decodeURI(e.data)),r={status:"message",message:n?.["#message"]||null};n?.["#user_id"]&&(r.sender=n["#user_id"]),n?.["#notice"]&&Object.assign(r,{status:"notice",message:n["#notice"]}),t(r)},n.onclose=e=>{if(e.wasClean)t({status:"close",message:"WebSocket connection closed."}),this.__socket=null,this.__socket_group=null;else if(F++,F<10){let e=Math.min(1e3*2**F,3e4);t({status:"error",message:`Skapi: WebSocket connection error. Reconnecting in ${e/1e3} seconds...`}),B.bind(this)(t,e)}else t({status:"error",message:"Skapi: WebSocket connection error. Max reconnection attempts reached."}),this.__socket=null},n.onerror=()=>{throw t({status:"error",message:"Skapi: WebSocket connection error."}),new e("Skapi: WebSocket connection error.",{code:"ERROR"})}}),n)}))),this.__socket}async function $(t,n){let r=this.__socket?await this.__socket:this.__socket;if(!r)throw new e("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!n)throw new e("No recipient.",{code:"INVALID_REQUEST"});if((t instanceof FormData||t instanceof SubmitEvent||t instanceof HTMLFormElement)&&(t=s(t).meta),1===r.readyState){try{o.UserId(n),r.send(JSON.stringify({action:"sendMessage",uid:n,content:t,token:this.session.accessToken.jwtToken}))}catch(i){if(this.__socket_group!==n)throw new e(`User has not joined to the recipient group. Run joinRealtime("${n}")`,{code:"INVALID_REQUEST"});r.send(JSON.stringify({action:"broadcast",rid:n,content:t,token:this.session.accessToken.jwtToken}))}return{status:"success",message:"Message sent."}}throw new e("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function q(t){let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new e("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});(t instanceof FormData||t instanceof SubmitEvent||t instanceof HTMLFormElement)&&(t=s(t).meta);let{group:r=null}=t;if(!r&&!this.__socket_group)return{status:"success",message:"Left realtime message group."};if(null!==r&&"string"!=typeof r)throw new e('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return n.send(JSON.stringify({action:"joinGroup",rid:r,token:this.session.accessToken.jwtToken})),this.__socket_group=r,{status:"success",message:r?`Joined realtime message group: "${r}".`:"Left realtime message group."}}async function K(t,n){if(await this.__connection,!(t=o.Params(t,{user_id:e=>o.UserId(e,'User ID in "user_id"'),group:"string"},["group"])).group)throw new e('"group" is required.',{code:"INVALID_PARAMETER"});let r=await c.bind(this)("get-ws-group",t,{fetchOptions:n,auth:!0,method:"post"});for(let e=0;e<r.list.length;e++)r.list[e]=r.list[e].uid.split("#")[1];return r}async function j(t,n){if(await this.__connection,t||(t={searchFor:"group"}),(t=o.Params(t,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>t?.searchFor&&"number_of_users"===t?.searchFor?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]})).condition||(" "!==t.value&&t.value?t.condition="=":t.condition=">"),t.range&&t.condition&&delete t.condition,"number_of_users"===t.searchFor&&"number"!=typeof t.value)throw new e('"value" must be a number.',{code:"INVALID_PARAMETER"});if("group"===t.searchFor&&"string"!=typeof t.value)throw new e('"value" must be a string.',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("range")&&typeof t.range!=typeof t.value)throw new e(`"range" must be a ${typeof t.value}.`,{code:"INVALID_PARAMETER"});let r=await c.bind(this)("get-ws-group",t,{fetchOptions:n,auth:!0,method:"post"});return r.list=r.list.map((e=>({group:e.rid.split("#")[1],number_of_users:e.cnt}))),r}function H(t){if(t=o.Params(t,{user_id:e=>o.UserId(e,'"user_id"')},["user_id"]),this.__user&&t.user_id===this.__user.user_id)throw new e('"user_id" cannot be the user\'s own ID.',{code:"INVALID_PARAMETER"});return t}async function W(t,n,r){if(!(t=o.Params(t,{subscriber:e=>o.UserId(e,'User ID in "subscriber"'),subscription:e=>o.UserId(e,'User ID in "subscription"'),blocked:"boolean"})).subscriber&&!t.subscription)throw new e('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});Object.assign(t,{group:1});let i=await c.bind(this)("get-subscription",t,Object.assign({auth:!0},{fetchOptions:n}));return i.list=i.list.map(r||(e=>{let t={},n=e.sub.split("#");return t.subscriber=n[2],t.subscription=n[0],t.group=parseInt(n[1]),t.timestamp=e.stmp,t.blocked="N"===e.grp.substring(0,1),t})),i}async function J(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{subscribe:t,group:1},{auth:!0})}async function z(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{unsubscribe:t,group:1},{auth:!0})}async function Y(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{block:t,group:1},{auth:!0})}async function Q(e){await this.__connection;let{user_id:t}=H.bind(this)(e);return await c.bind(this)("subscription",{unblock:t,group:1},{auth:!0})}async function G(t){await this.__connection;let n=await this.checkAdmin();t=o.Params(t,{user_id:t=>{if(t!==this.__user.user_id&&!n)throw new e("No access.",{code:"INVALID_REQUEST"});return t},group:t=>{if("public"===t&&(t=0),"authorized"===t&&(t=1),"number"!=typeof t)throw new e('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return t}});let r=await c.bind(this)("get-newsletter-subscription",t,{auth:!0}),i=[];for(let e of r){let t=e.subt.split("#"),n=!0;"@"===t[0].charAt(0)&&(n=!1,t[0]=t[0].substring(1));let r=parseInt(t[0]);i.push({timestamp:e.stmp,group:r,subscribed_email:t[1],active:n})}return i}async function Z(e){await this.__connection;let t=o.Params(e||{},{email:e=>o.Email(e),group:["number","public","authorized"],redirect:e=>o.Url(e)},this.__user?["group"]:["email","group"]);return c.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,t,{auth:!!this.__user})}async function X(e){await this.__connection,e=o.Params(e,{group:["number","public","authorized"]},["group"]);let t=Object.assign({action:"unsubscribe"},e);return c.bind(this)("subscribe-newsletter",t,{auth:!0})}async function ee(t,n){let r=await this.checkAdmin(),i={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string"};t||(n||(n={}),n.ascending=!1);let s=t||{searchFor:"timestamp",value:0,condition:">"};t=o.Params(s,{searchFor:["message_id","timestamp","read","complaint","group","subject"],value:t=>{if(typeof t!==i[s.searchFor])throw new e(`"value" type does not match the type of "${s.searchFor}" index.`,{code:"INVALID_PARAMETER"});if("string"==typeof t&&!t)throw new e('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return t},range:t=>{if(!s.hasOwnProperty("value")||typeof t!=typeof s.value)throw new e('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return t},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:t=>{if(!this.session)throw new e("User should be logged in.",{code:"INVALID_REQUEST"});if("public"===t)return 0;if("authorized"===t)return 1;if("number"==typeof t&&!r&&t>parseInt(this.session.idToken.payload.access_group))throw new e("User has no access.",{code:"INVALID_REQUEST"});return t}},["searchFor","value","group"]);let a=await c.bind(this)(0===t.group?"get-public-newsletters":"get-newsletters",t,Object.assign({method:"get",auth:0!==t.group},{fetchOptions:n})),u={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url"},l={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:0,url:""};return a.list=a.list.map((e=>{let t={};for(let n in u)t[n]=e[u[n]]||l[u[n]];return t})),a}var te,ne=function(){function e(e){var t=e||{},n=t.ValidationData,r=t.Username,i=t.Password,s=t.AuthParameters,o=t.ClientMetadata;this.validationData=n||{},this.authParameters=s||{},this.clientMetadata=o||{},this.username=r,this.password=i}var t=e.prototype;return t.getUsername=function(){return this.username},t.getPassword=function(){return this.password},t.getValidationData=function(){return this.validationData},t.getAuthParameters=function(){return this.authParameters},t.getClientMetadata=function(){return this.clientMetadata},e}(),re=n(764),ie=n(249),se=n.n(ie),oe=(n(433),n(153)),ae=n.n(oe),ue=n(10),ce=n.n(ue);if("undefined"!=typeof window&&window.crypto&&(te=window.crypto),!te&&"undefined"!=typeof window&&window.msCrypto&&(te=window.msCrypto),!te&&void 0!==n.g&&n.g.crypto&&(te=n.g.crypto),!te)try{te=n(296)}catch(e){}function le(){if(te){if("function"==typeof te.getRandomValues)try{return te.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof te.randomBytes)try{return te.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}var he=function(){function e(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length}var t=e.prototype;return t.random=function(t){for(var n=[],r=0;r<t;r+=4)n.push(le());return new e(n,t)},t.toString=function(){return function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;r.push((s>>>4).toString(16)),r.push((15&s).toString(16))}return r.join("")}(this)},e}();const fe=de;function de(e,t){null!=e&&this.fromString(e,t)}function pe(){return new de(null)}var ge,me="undefined"!=typeof navigator;me&&"Microsoft Internet Explorer"==navigator.appName?(de.prototype.am=function(e,t,n,r,i,s){for(var o=32767&t,a=t>>15;--s>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*o;i=((u=o*u+((32767&l)<<15)+n[r]+(1073741823&i))>>>30)+(l>>>15)+a*c+(i>>>30),n[r++]=1073741823&u}return i},ge=30):me&&"Netscape"!=navigator.appName?(de.prototype.am=function(e,t,n,r,i,s){for(;--s>=0;){var o=t*this[e++]+n[r]+i;i=Math.floor(o/67108864),n[r++]=67108863&o}return i},ge=26):(de.prototype.am=function(e,t,n,r,i,s){for(var o=16383&t,a=t>>14;--s>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*o;i=((u=o*u+((16383&l)<<14)+n[r]+i)>>28)+(l>>14)+a*c,n[r++]=268435455&u}return i},ge=28),de.prototype.DB=ge,de.prototype.DM=(1<<ge)-1,de.prototype.DV=1<<ge,de.prototype.FV=Math.pow(2,52),de.prototype.F1=52-ge,de.prototype.F2=2*ge-52;var ye,we,_e=new Array;for(ye="0".charCodeAt(0),we=0;we<=9;++we)_e[ye++]=we;for(ye="a".charCodeAt(0),we=10;we<36;++we)_e[ye++]=we;for(ye="A".charCodeAt(0),we=10;we<36;++we)_e[ye++]=we;function be(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function Ae(e,t){var n=_e[e.charCodeAt(t)];return null==n?-1:n}function ve(e){var t=pe();return t.fromInt(e),t}function Ee(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function Se(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Ie(e){return re.lW.from((new he).random(e).toString(),"hex")}Se.prototype.convert=function(e){var t=pe();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(de.ZERO)>0&&this.m.subTo(t,t),t},Se.prototype.revert=function(e){var t=pe();return e.copyTo(t),this.reduce(t),t},Se.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],r=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[n=t+this.m.t]+=this.m.am(0,r,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},Se.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},Se.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},de.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},de.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},de.prototype.fromString=function(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");n=2}this.t=0,this.s=0;for(var r=e.length,i=!1,s=0;--r>=0;){var o=Ae(e,r);o<0?"-"==e.charAt(r)&&(i=!0):(i=!1,0==s?this[this.t++]=o:s+n>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+=n)>=this.DB&&(s-=this.DB))}this.clamp(),i&&de.ZERO.subTo(this,this)},de.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},de.prototype.dlShiftTo=function(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s},de.prototype.drShiftTo=function(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s},de.prototype.lShiftTo=function(e,t){var n,r=e%this.DB,i=this.DB-r,s=(1<<i)-1,o=Math.floor(e/this.DB),a=this.s<<r&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>i|a,a=(this[n]&s)<<r;for(n=o-1;n>=0;--n)t[n]=0;t[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()},de.prototype.rShiftTo=function(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var r=e%this.DB,i=this.DB-r,s=(1<<r)-1;t[0]=this[n]>>r;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&s)<<i,t[o-n]=this[o]>>r;r>0&&(t[this.t-n-1]|=(this.s&s)<<i),t.t=this.t-n,t.clamp()}},de.prototype.subTo=function(e,t){for(var n=0,r=0,i=Math.min(e.t,this.t);n<i;)r+=this[n]-e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r-=e.s;n<this.t;)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<e.t;)r-=e[n],t[n++]=r&this.DM,r>>=this.DB;r-=e.s}t.s=r<0?-1:0,r<-1?t[n++]=this.DV+r:r>0&&(t[n++]=r),t.t=n,t.clamp()},de.prototype.multiplyTo=function(e,t){var n=this.abs(),r=e.abs(),i=n.t;for(t.t=i+r.t;--i>=0;)t[i]=0;for(i=0;i<r.t;++i)t[i+n.t]=n.am(0,r[i],t,i,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&de.ZERO.subTo(t,t)},de.prototype.squareTo=function(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var r=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,r,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()},de.prototype.divRemTo=function(e,t,n){var r=e.abs();if(!(r.t<=0)){var i=this.abs();if(i.t<r.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=pe());var s=pe(),o=this.s,a=e.s,u=this.DB-Ee(r[r.t-1]);u>0?(r.lShiftTo(u,s),i.lShiftTo(u,n)):(r.copyTo(s),i.copyTo(n));var c=s.t,l=s[c-1];if(0!=l){var h=l*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),f=this.FV/h,d=(1<<this.F1)/h,p=1<<this.F2,g=n.t,m=g-c,y=null==t?pe():t;for(s.dlShiftTo(m,y),n.compareTo(y)>=0&&(n[n.t++]=1,n.subTo(y,n)),de.ONE.dlShiftTo(c,y),y.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--m>=0;){var w=n[--g]==l?this.DM:Math.floor(n[g]*f+(n[g-1]+p)*d);if((n[g]+=s.am(0,w,n,m,0,c))<w)for(s.dlShiftTo(m,y),n.subTo(y,n);n[g]<--w;)n.subTo(y,n)}null!=t&&(n.drShiftTo(c,t),o!=a&&de.ZERO.subTo(t,t)),n.t=c,n.clamp(),u>0&&n.rShiftTo(u,n),o<0&&de.ZERO.subTo(n,n)}}},de.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},de.prototype.addTo=function(e,t){for(var n=0,r=0,i=Math.min(e.t,this.t);n<i;)r+=this[n]+e[n],t[n++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r+=e.s;n<this.t;)r+=this[n],t[n++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;n<e.t;)r+=e[n],t[n++]=r&this.DM,r>>=this.DB;r+=e.s}t.s=r<0?-1:0,r>0?t[n++]=r:r<-1&&(t[n++]=this.DV+r),t.t=n,t.clamp()},de.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,r=(1<<t)-1,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=!0,s=be(n));o>=0;)a<t?(n=(this[o]&(1<<a)-1)<<t-a,n|=this[--o]>>(a+=this.DB-t)):(n=this[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=be(n));return i?s:"0"},de.prototype.negate=function(){var e=pe();return de.ZERO.subTo(this,e),e},de.prototype.abs=function(){return this.s<0?this.negate():this},de.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(0!=(t=n-e.t))return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0},de.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+Ee(this[this.t-1]^this.s&this.DM)},de.prototype.mod=function(e){var t=pe();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(de.ZERO)>0&&e.subTo(t,t),t},de.prototype.equals=function(e){return 0==this.compareTo(e)},de.prototype.add=function(e){var t=pe();return this.addTo(e,t),t},de.prototype.subtract=function(e){var t=pe();return this.subTo(e,t),t},de.prototype.multiply=function(e){var t=pe();return this.multiplyTo(e,t),t},de.prototype.divide=function(e){var t=pe();return this.divRemTo(e,t,null),t},de.prototype.modPow=function(e,t,n){var r,i=e.bitLength(),s=ve(1),o=new Se(t);if(i<=0)return s;r=i<18?1:i<48?3:i<144?4:i<768?5:6;var a=new Array,u=3,c=r-1,l=(1<<r)-1;if(a[1]=o.convert(this),r>1){var h=pe();for(o.sqrTo(a[1],h);u<=l;)a[u]=pe(),o.mulTo(h,a[u-2],a[u]),u+=2}var f,d,p=e.t-1,g=!0,m=pe();for(i=Ee(e[p])-1;p>=0;){for(i>=c?f=e[p]>>i-c&l:(f=(e[p]&(1<<i+1)-1)<<c-i,p>0&&(f|=e[p-1]>>this.DB+i-c)),u=r;0==(1&f);)f>>=1,--u;if((i-=u)<0&&(i+=this.DB,--p),g)a[f].copyTo(s),g=!1;else{for(;u>1;)o.sqrTo(s,m),o.sqrTo(m,s),u-=2;u>0?o.sqrTo(s,m):(d=s,s=m,m=d),o.mulTo(m,a[f],s)}for(;p>=0&&0==(e[p]&1<<i);)o.sqrTo(s,m),d=s,s=m,m=d,--i<0&&(i=this.DB-1,--p)}var y=o.revert(s);return n(null,y),y},de.ZERO=ve(0),de.ONE=ve(1);var Re=/^[89a-f]/i,Te=function(){function e(e){this.N=new fe("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",16),this.g=new fe("2",16),this.k=new fe(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue((function(){})),this.infoBits=re.lW.from("Caldera Derived Key","utf8"),this.poolName=e}var t=e.prototype;return t.getSmallAValue=function(){return this.smallAValue},t.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,(function(n,r){n&&e(n,null),t.largeAValue=r,e(null,t.largeAValue)}))},t.generateRandomSmallA=function(){var e=Ie(128).toString("hex");return new fe(e,16)},t.generateRandomString=function(){return Ie(40).toString("base64")},t.getRandomPassword=function(){return this.randomPassword},t.getSaltDevices=function(){return this.SaltToHashDevices},t.getVerifierDevices=function(){return this.verifierDevices},t.generateHashDevice=function(e,t,n){var r=this;this.randomPassword=this.generateRandomString();var i=""+e+t+":"+this.randomPassword,s=this.hash(i),o=Ie(16).toString("hex");this.SaltToHashDevices=this.padHex(new fe(o,16)),this.g.modPow(new fe(this.hexHash(this.SaltToHashDevices+s),16),this.N,(function(e,t){e&&n(e,null),r.verifierDevices=r.padHex(t),n(null,null)}))},t.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,(function(e,r){e&&t(e,null),r.mod(n.N).equals(fe.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,r)}))},t.calculateU=function(e,t){return this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t)),new fe(this.UHexHash,16)},t.hash=function(e){var t=e instanceof re.lW?se().lib.WordArray.create(e):e,n=ae()(t).toString();return new Array(64-n.length).join("0")+n},t.hexHash=function(e){return this.hash(re.lW.from(e,"hex"))},t.computehkdf=function(e,t){var n=se().lib.WordArray.create(re.lW.concat([this.infoBits,re.lW.from(String.fromCharCode(1),"utf8")])),r=e instanceof re.lW?se().lib.WordArray.create(e):e,i=t instanceof re.lW?se().lib.WordArray.create(t):t,s=ce()(r,i),o=ce()(n,s);return re.lW.from(o.toString(),"hex").slice(0,16)},t.getPasswordAuthenticationKey=function(e,t,n,r,i){var s=this;if(n.mod(this.N).equals(fe.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(fe.ZERO))throw new Error("U cannot be zero.");var o=""+this.poolName+e+":"+t,a=this.hash(o),u=new fe(this.hexHash(this.padHex(r)+a),16);this.calculateS(u,n,(function(e,t){e&&i(e,null);var n=s.computehkdf(re.lW.from(s.padHex(t),"hex"),re.lW.from(s.padHex(s.UValue),"hex"));i(null,n)}))},t.calculateS=function(e,t,n){var r=this;this.g.modPow(e,this.N,(function(i,s){i&&n(i,null),t.subtract(r.k.multiply(s)).modPow(r.smallAValue.add(r.UValue.multiply(e)),r.N,(function(e,t){e&&n(e,null),n(null,t.mod(r.N))}))}))},t.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return"userAttributes."},t.padHex=function(e){if(!(e instanceof fe))throw new Error("Not a BigInteger");var t=e.compareTo(fe.ZERO)<0,n=e.abs().toString(16);if(n=n.length%2!=0?"0"+n:n,n=Re.test(n)?"00"+n:n,t){var r=n.split("").map((function(e){var t=15&~parseInt(e,16);return"0123456789ABCDEF".charAt(t)})).join("");(n=new fe(r,16).add(fe.ONE).toString(16)).toUpperCase().startsWith("FF8")&&(n=n.substring(2))}return n},e}(),De=function(){function e(e){this.jwtToken=e||"",this.payload=this.decodePayload()}var t=e.prototype;return t.getJwtToken=function(){return this.jwtToken},t.getExpiration=function(){return this.payload.exp},t.getIssuedAt=function(){return this.payload.iat},t.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(re.lW.from(e,"base64").toString("utf8"))}catch(e){return{}}},e}();function Ue(e,t){return Ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ue(e,t)}var Ce=function(e){var t,n;function r(t){var n=(void 0===t?{}:t).AccessToken;return e.call(this,n||"")||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Ue(t,n),r}(De);function Pe(e,t){return Pe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Pe(e,t)}var Ne=function(e){var t,n;function r(t){var n=(void 0===t?{}:t).IdToken;return e.call(this,n||"")||this}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Pe(t,n),r}(De),ke=n(269),Oe=n.n(ke),Me=function(){function e(e){var t=(void 0===e?{}:e).RefreshToken;this.token=t||""}return e.prototype.getToken=function(){return this.token},e}(),Ve=function(){function e(e){var t=void 0===e?{}:e,n=t.IdToken,r=t.RefreshToken,i=t.AccessToken,s=t.ClockDrift;if(null==i||null==n)throw new Error("Id token and Access Token must be present.");this.idToken=n,this.refreshToken=r,this.accessToken=i,this.clockDrift=void 0===s?this.calculateClockDrift():s}var t=e.prototype;return t.getIdToken=function(){return this.idToken},t.getRefreshToken=function(){return this.refreshToken},t.getAccessToken=function(){return this.accessToken},t.getClockDrift=function(){return this.clockDrift},t.calculateClockDrift=function(){return Math.floor(new Date/1e3)-Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt())},t.isValid=function(){var e=Math.floor(new Date/1e3)-this.clockDrift;return e<this.accessToken.getExpiration()&&e<this.idToken.getExpiration()},e}(),Le=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Fe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],xe=function(){function e(){}return e.prototype.getNowString=function(){var e=new Date,t=Fe[e.getUTCDay()],n=Le[e.getUTCMonth()],r=e.getUTCDate(),i=e.getUTCHours();i<10&&(i="0"+i);var s=e.getUTCMinutes();s<10&&(s="0"+s);var o=e.getUTCSeconds();return o<10&&(o="0"+o),t+" "+n+" "+r+" "+i+":"+s+":"+o+" UTC "+e.getUTCFullYear()},e}(),Be=function(){function e(e){var t=void 0===e?{}:e,n=t.Name,r=t.Value;this.Name=n||"",this.Value=r||""}var t=e.prototype;return t.getValue=function(){return this.Value},t.setValue=function(e){return this.Value=e,this},t.getName=function(){return this.Name},t.setName=function(e){return this.Name=e,this},t.toString=function(){return JSON.stringify(this)},t.toJSON=function(){return{Name:this.Name,Value:this.Value}},e}(),$e={},qe=function(){function e(){}return e.setItem=function(e,t){return $e[e]=t,$e[e]},e.getItem=function(e){return Object.prototype.hasOwnProperty.call($e,e)?$e[e]:void 0},e.removeItem=function(e){return delete $e[e]},e.clear=function(){return $e={}},e}(),Ke=function(){function e(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls")}catch(e){this.storageWindow=qe}}return e.prototype.getStorage=function(){return this.storageWindow},e}(),je="undefined"!=typeof navigator?navigator.userAgent:"nodejs",He=function(){function e(e){if(null==e||null==e.Username||null==e.Pool)throw new Error("Username and Pool information are required.");this.username=e.Username||"",this.pool=e.Pool,this.Session=null,this.client=e.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=e.Storage||(new Ke).getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData"}var t=e.prototype;return t.setSignInUserSession=function(e){this.clearCachedUserData(),this.signInUserSession=e,this.cacheTokens()},t.getSignInUserSession=function(){return this.signInUserSession},t.getUsername=function(){return this.username},t.getAuthenticationFlowType=function(){return this.authenticationFlowType},t.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},t.initiateAuth=function(e,t){var n=this,r=e.getAuthParameters();r.USERNAME=this.username;var i=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),s={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:r,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",s,(function(e,r){if(e)return t.onFailure(e);var i=r.ChallengeName,s=r.ChallengeParameters;return"CUSTOM_CHALLENGE"===i?(n.Session=r.Session,t.customChallenge(s)):(n.signInUserSession=n.getCognitoUserSession(r.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))}))},t.authenticateUser=function(e,t){return"USER_PASSWORD_AUTH"===this.authenticationFlowType?this.authenticateUserPlainUsernamePassword(e,t):"USER_SRP_AUTH"===this.authenticationFlowType||"CUSTOM_AUTH"===this.authenticationFlowType?this.authenticateUserDefaultAuth(e,t):t.onFailure(new Error("Authentication flow type is invalid."))},t.authenticateUserDefaultAuth=function(e,t){var n,r,i=this,s=new Te(this.pool.getUserPoolName()),o=new xe,a={};null!=this.deviceKey&&(a.DEVICE_KEY=this.deviceKey),a.USERNAME=this.username,s.getLargeAValue((function(u,c){u&&t.onFailure(u),a.SRP_A=c.toString(16),"CUSTOM_AUTH"===i.authenticationFlowType&&(a.CHALLENGE_NAME="SRP_A");var l=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),h={AuthFlow:i.authenticationFlowType,ClientId:i.pool.getClientId(),AuthParameters:a,ClientMetadata:l};i.getUserContextData(i.username)&&(h.UserContextData=i.getUserContextData(i.username)),i.client.request("InitiateAuth",h,(function(a,u){if(a)return t.onFailure(a);var c=u.ChallengeParameters;i.username=c.USER_ID_FOR_SRP,i.userDataKey=i.keyPrefix+"."+i.username+".userData",n=new fe(c.SRP_B,16),r=new fe(c.SALT,16),i.getCachedDeviceKeyAndPassword(),s.getPasswordAuthenticationKey(i.username,e.getPassword(),n,r,(function(e,n){e&&t.onFailure(e);var r=o.getNowString(),a=se().lib.WordArray.create(re.lW.concat([re.lW.from(i.pool.getUserPoolName(),"utf8"),re.lW.from(i.username,"utf8"),re.lW.from(c.SECRET_BLOCK,"base64"),re.lW.from(r,"utf8")])),h=se().lib.WordArray.create(n),f=Oe().stringify(ce()(a,h)),d={};d.USERNAME=i.username,d.PASSWORD_CLAIM_SECRET_BLOCK=c.SECRET_BLOCK,d.TIMESTAMP=r,d.PASSWORD_CLAIM_SIGNATURE=f,null!=i.deviceKey&&(d.DEVICE_KEY=i.deviceKey);var p={ChallengeName:"PASSWORD_VERIFIER",ClientId:i.pool.getClientId(),ChallengeResponses:d,Session:u.Session,ClientMetadata:l};i.getUserContextData()&&(p.UserContextData=i.getUserContextData()),function e(t,n){return i.client.request("RespondToAuthChallenge",t,(function(r,s){return r&&"ResourceNotFoundException"===r.code&&-1!==r.message.toLowerCase().indexOf("device")?(d.DEVICE_KEY=null,i.deviceKey=null,i.randomPassword=null,i.deviceGroupKey=null,i.clearCachedDeviceKeyAndPassword(),e(t,n)):n(r,s)}))}(p,(function(e,n){return e?t.onFailure(e):i.authenticateUserInternal(n,s,t)}))}))}))}))},t.authenticateUserPlainUsernamePassword=function(e,t){var n=this,r={};if(r.USERNAME=this.username,r.PASSWORD=e.getPassword(),r.PASSWORD){var i=new Te(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(r.DEVICE_KEY=this.deviceKey);var s=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),o={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:r,ClientMetadata:s};this.getUserContextData(this.username)&&(o.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",o,(function(e,r){return e?t.onFailure(e):n.authenticateUserInternal(r,i,t)}))}else t.onFailure(new Error("PASSWORD parameter is required"))},t.authenticateUserInternal=function(e,t,n){var r=this,i=e.ChallengeName,s=e.ChallengeParameters;if("SMS_MFA"===i)return this.Session=e.Session,n.mfaRequired(i,s);if("SELECT_MFA_TYPE"===i)return this.Session=e.Session,n.selectMFAType(i,s);if("MFA_SETUP"===i)return this.Session=e.Session,n.mfaSetup(i,s);if("SOFTWARE_TOKEN_MFA"===i)return this.Session=e.Session,n.totpRequired(i,s);if("CUSTOM_CHALLENGE"===i)return this.Session=e.Session,n.customChallenge(s);if("NEW_PASSWORD_REQUIRED"===i){this.Session=e.Session;var o=null,a=null,u=[],c=t.getNewPasswordRequiredChallengeUserAttributePrefix();if(s&&(o=JSON.parse(e.ChallengeParameters.userAttributes),a=JSON.parse(e.ChallengeParameters.requiredAttributes)),a)for(var l=0;l<a.length;l++)u[l]=a[l].substr(c.length);return n.newPasswordRequired(o,u)}if("DEVICE_SRP_AUTH"===i)return this.Session=e.Session,void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.challengeName=i,this.cacheTokens();var h=e.AuthenticationResult.NewDeviceMetadata;if(null==h)return n.onSuccess(this.signInUserSession);t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,(function(i){if(i)return n.onFailure(i);var s={Salt:re.lW.from(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:re.lW.from(t.getVerifierDevices(),"hex").toString("base64")};r.verifierDevices=s.PasswordVerifier,r.deviceGroupKey=h.DeviceGroupKey,r.randomPassword=t.getRandomPassword(),r.client.request("ConfirmDevice",{DeviceKey:h.DeviceKey,AccessToken:r.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:je},(function(t,i){return t?n.onFailure(t):(r.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,r.cacheDeviceKeyAndPassword(),!0===i.UserConfirmationNecessary?n.onSuccess(r.signInUserSession,i.UserConfirmationNecessary):n.onSuccess(r.signInUserSession))}))}))},t.completeNewPasswordChallenge=function(e,t,n,r){var i=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new Te(this.pool.getUserPoolName()),o=s.getNewPasswordRequiredChallengeUserAttributePrefix(),a={};t&&Object.keys(t).forEach((function(e){a[o+e]=t[e]})),a.NEW_PASSWORD=e,a.USERNAME=this.username;var u={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:a,Session:this.Session,ClientMetadata:r};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",u,(function(e,t){return e?n.onFailure(e):i.authenticateUserInternal(t,s,n)}))},t.getDeviceResponse=function(e,t){var n=this,r=new Te(this.deviceGroupKey),i=new xe,s={};s.USERNAME=this.username,s.DEVICE_KEY=this.deviceKey,r.getLargeAValue((function(o,a){o&&e.onFailure(o),s.SRP_A=a.toString(16);var u={ChallengeName:"DEVICE_SRP_AUTH",ClientId:n.pool.getClientId(),ChallengeResponses:s,ClientMetadata:t,Session:n.Session};n.getUserContextData()&&(u.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",u,(function(t,s){if(t)return e.onFailure(t);var o=s.ChallengeParameters,a=new fe(o.SRP_B,16),u=new fe(o.SALT,16);r.getPasswordAuthenticationKey(n.deviceKey,n.randomPassword,a,u,(function(t,r){if(t)return e.onFailure(t);var a=i.getNowString(),u=se().lib.WordArray.create(re.lW.concat([re.lW.from(n.deviceGroupKey,"utf8"),re.lW.from(n.deviceKey,"utf8"),re.lW.from(o.SECRET_BLOCK,"base64"),re.lW.from(a,"utf8")])),c=se().lib.WordArray.create(r),l=Oe().stringify(ce()(u,c)),h={};h.USERNAME=n.username,h.PASSWORD_CLAIM_SECRET_BLOCK=o.SECRET_BLOCK,h.TIMESTAMP=a,h.PASSWORD_CLAIM_SIGNATURE=l,h.DEVICE_KEY=n.deviceKey;var f={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:h,Session:s.Session};n.getUserContextData()&&(f.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",f,(function(t,r){return t?e.onFailure(t):(n.signInUserSession=n.getCognitoUserSession(r.AuthenticationResult),n.cacheTokens(),e.onSuccess(n.signInUserSession))}))}))}))}))},t.confirmRegistration=function(e,t,n,r){var i={ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t,ClientMetadata:r};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",i,(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.sendCustomChallengeAnswer=function(e,t,n){var r=this,i={};i.USERNAME=this.username,i.ANSWER=e;var s=new Te(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(i.DEVICE_KEY=this.deviceKey);var o={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:n};this.getUserContextData()&&(o.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",o,(function(e,n){return e?t.onFailure(e):r.authenticateUserInternal(n,s,t)}))},t.sendMFACode=function(e,t,n,r){var i=this,s={};s.USERNAME=this.username,s.SMS_MFA_CODE=e;var o=n||"SMS_MFA";"SOFTWARE_TOKEN_MFA"===o&&(s.SOFTWARE_TOKEN_MFA_CODE=e),null!=this.deviceKey&&(s.DEVICE_KEY=this.deviceKey);var a={ChallengeName:o,ChallengeResponses:s,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:r};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,(function(e,n){if(e)return t.onFailure(e);if("DEVICE_SRP_AUTH"!==n.ChallengeName){if(i.signInUserSession=i.getCognitoUserSession(n.AuthenticationResult),i.cacheTokens(),null==n.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(i.signInUserSession);var r=new Te(i.pool.getUserPoolName());r.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,(function(e){if(e)return t.onFailure(e);var s={Salt:re.lW.from(r.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:re.lW.from(r.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=s.PasswordVerifier,i.deviceGroupKey=n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,i.randomPassword=r.getRandomPassword(),i.client.request("ConfirmDevice",{DeviceKey:n.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:s,DeviceName:je},(function(e,r){return e?t.onFailure(e):(i.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),!0===r.UserConfirmationNecessary?t.onSuccess(i.signInUserSession,r.UserConfirmationNecessary):t.onSuccess(i.signInUserSession))}))}))}else i.getDeviceResponse(t)}))},t.changePassword=function(e,t,n,r){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:e,ProposedPassword:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:r},(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.enableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);var t=[];t.push({DeliveryMedium:"SMS",AttributeName:"phone_number"}),this.client.request("SetUserSettings",{MFAOptions:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t){return t?e(t,null):e(null,"SUCCESS")}))},t.setUserMfaPreference=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:e,SoftwareTokenMfaSettings:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?n(e,null):n(null,"SUCCESS")}))},t.disableMFA=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("SetUserSettings",{MFAOptions:[],AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t){return t?e(t,null):e(null,"SUCCESS")}))},t.deleteUser=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:t},(function(t){return t?e(t,null):(n.clearCachedUser(),e(null,"SUCCESS"))}))},t.updateAttributes=function(e,t,n){var r=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return t(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:e,ClientMetadata:n},(function(e){return e?t(e,null):r.getUserData((function(){return t(null,"SUCCESS")}),{bypassCache:!0})}))},t.getUserAttributes=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){if(t)return e(t,null);for(var r=[],i=0;i<n.UserAttributes.length;i++){var s={Name:n.UserAttributes[i].Name,Value:n.UserAttributes[i].Value},o=new Be(s);r.push(o)}return e(null,r)}))},t.getMFAOptions=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){return t?e(t,null):e(null,n.MFAOptions)}))},t.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},t.refreshSessionIfPossible=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(n){var r=t.signInUserSession.getRefreshToken();r&&r.getToken()?t.refreshSession(r,n,e.clientMetadata):n()}))},t.getUserData=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return this.clearCachedUserData(),e(new Error("User is not authenticated"),null);var r=this.getUserDataFromCache();if(r)if(this.isFetchUserDataAndTokenRequired(t))this.fetchUserData().then((function(e){return n.refreshSessionIfPossible(t).then((function(){return e}))})).then((function(t){return e(null,t)})).catch(e);else try{return void e(null,JSON.parse(r))}catch(t){return this.clearCachedUserData(),void e(t,null)}else this.fetchUserData().then((function(t){e(null,t)})).catch(e)},t.getUserDataFromCache=function(){return this.storage.getItem(this.userDataKey)},t.isFetchUserDataAndTokenRequired=function(e){var t=(e||{}).bypassCache;return void 0!==t&&t},t.fetchUserData=function(){var e=this;return this.createGetUserRequest().then((function(t){return e.cacheUserData(t),t}))},t.deleteAttributes=function(e,t){var n=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return t(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?t(e,null):n.getUserData((function(){return t(null,"SUCCESS")}),{bypassCache:!0})}))},t.resendConfirmationCode=function(e,t){var n={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:t};this.client.request("ResendConfirmationCode",n,(function(t,n){return t?e(t,null):e(null,n)}))},t.getSession=function(e,t){if(void 0===t&&(t={}),null==this.username)return e(new Error("Username is null. Cannot retrieve a new session"),null);if(null!=this.signInUserSession&&this.signInUserSession.isValid())return e(null,this.signInUserSession);var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,r=n+".idToken",i=n+".accessToken",s=n+".refreshToken",o=n+".clockDrift";if(this.storage.getItem(r)){var a=new Ne({IdToken:this.storage.getItem(r)}),u=new Ce({AccessToken:this.storage.getItem(i)}),c=new Me({RefreshToken:this.storage.getItem(s)}),l=parseInt(this.storage.getItem(o),0)||0,h=new Ve({IdToken:a,AccessToken:u,RefreshToken:c,ClockDrift:l});if(h.isValid())return this.signInUserSession=h,e(null,this.signInUserSession);if(!c.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(c,e,t.clientMetadata)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},t.refreshSession=function(e,t,n){var r=this,i=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(t):t,s={};s.REFRESH_TOKEN=e.getToken();var o="CognitoIdentityServiceProvider."+this.pool.getClientId(),a=o+".LastAuthUser";if(this.storage.getItem(a)){this.username=this.storage.getItem(a);var u=o+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(u),s.DEVICE_KEY=this.deviceKey}var c={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:s,ClientMetadata:n};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",c,(function(t,n){if(t)return"NotAuthorizedException"===t.code&&r.clearCachedUser(),i(t,null);if(n){var s=n.AuthenticationResult;return Object.prototype.hasOwnProperty.call(s,"RefreshToken")||(s.RefreshToken=e.getToken()),r.signInUserSession=r.getCognitoUserSession(s),r.cacheTokens(),i(null,r.signInUserSession)}}))},t.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",r=e+"."+this.username+".refreshToken",i=e+"."+this.username+".clockDrift",s=e+".LastAuthUser";this.storage.setItem(t,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(n,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(r,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(i,""+this.signInUserSession.getClockDrift()),this.storage.setItem(s,this.username)},t.cacheUserData=function(e){this.storage.setItem(this.userDataKey,JSON.stringify(e))},t.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey)},t.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData()},t.cacheDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(r,this.deviceGroupKey)},t.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(r))},t.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",r=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(r)},t.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",r=e+"."+this.username+".refreshToken",i=e+".LastAuthUser",s=e+"."+this.username+".clockDrift";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(r),this.storage.removeItem(i),this.storage.removeItem(s)},t.getCognitoUserSession=function(e){var t=new Ne(e),n=new Ce(e),r=new Me(e);return new Ve({IdToken:t,AccessToken:n,RefreshToken:r})},t.forgotPassword=function(e,t){var n={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:t};this.getUserContextData()&&(n.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",n,(function(t,n){return t?e.onFailure(t):"function"==typeof e.inputVerificationCode?e.inputVerificationCode(n):e.onSuccess(n)}))},t.confirmPassword=function(e,t,n,r){var i={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t,ClientMetadata:r};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",i,(function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}))},t.getAttributeVerificationCode=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return t.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:e,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:n},(function(e,n){return e?t.onFailure(e):"function"==typeof t.inputVerificationCode?t.inputVerificationCode(n):t.onSuccess("SUCCESS")}))},t.verifyAttribute=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:e,Code:t,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(e){return e?n.onFailure(e):n.onSuccess("SUCCESS")}))},t.getDevice=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},(function(t,n){return t?e.onFailure(t):e.onSuccess(n)}))},t.forgetSpecificDevice=function(e,t){if(null==this.signInUserSession||!this.signInUserSession.isValid())return t.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:e},(function(e){return e?t.onFailure(e):t.onSuccess("SUCCESS")}))},t.forgetDevice=function(e){var t=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:e.onFailure,onSuccess:function(n){return t.deviceKey=null,t.deviceGroupKey=null,t.randomPassword=null,t.clearCachedDeviceKeyAndPassword(),e.onSuccess(n)}})},t.setDeviceStatusRemembered=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},(function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}))},t.setDeviceStatusNotRemembered=function(e){if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},(function(t){return t?e.onFailure(t):e.onSuccess("SUCCESS")}))},t.listDevices=function(e,t,n){if(null==this.signInUserSession||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));var r={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e};t&&(r.PaginationToken=t),this.client.request("ListDevices",r,(function(e,t){return e?n.onFailure(e):n.onSuccess(t)}))},t.globalSignOut=function(e){var t=this;if(null==this.signInUserSession||!this.signInUserSession.isValid())return e.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(n){return n?e.onFailure(n):(t.clearCachedUser(),e.onSuccess("SUCCESS"))}))},t.signOut=function(e){var t=this;e&&"function"==typeof e?this.getSession((function(n,r){if(n)return e(n);t.revokeTokens((function(n){t.cleanClientData(),e(n)}))})):this.cleanClientData()},t.revokeTokens=function(e){if(void 0===e&&(e=function(){}),"function"!=typeof e)throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession)return e(new Error("User is not authenticated"));if(!this.signInUserSession.getAccessToken())return e(new Error("No Access token available"));var t=this.signInUserSession.getRefreshToken().getToken(),n=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(n)&&t)return this.revokeToken({token:t,callback:e});e()},t.isSessionRevocable=function(e){if(e&&"function"==typeof e.decodePayload)try{return!!e.decodePayload().origin_jti}catch(e){}return!1},t.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser()},t.revokeToken=function(e){var t=e.token,n=e.callback;this.client.requestWithRetry("RevokeToken",{Token:t,ClientId:this.pool.getClientId()},(function(e){if(e)return n(e);n()}))},t.sendMFASelectionAnswer=function(e,t){var n=this,r={};r.USERNAME=this.username,r.ANSWER=e;var i={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:r,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(i.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",i,(function(r,i){return r?t.onFailure(r):(n.Session=i.Session,"SMS_MFA"===e?t.mfaRequired(i.ChallengeName,i.ChallengeParameters):"SOFTWARE_TOKEN_MFA"===e?t.totpRequired(i.ChallengeName,i.ChallengeParameters):void 0)}))},t.getUserContextData=function(){return this.pool.getUserContextData(this.username)},t.associateSoftwareToken=function(e){var t=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},(function(t,n){return t?e.onFailure(t):e.associateSecretCode(n.SecretCode)})):this.client.request("AssociateSoftwareToken",{Session:this.Session},(function(n,r){return n?e.onFailure(n):(t.Session=r.Session,e.associateSecretCode(r.SecretCode))}))},t.verifySoftwareToken=function(e,t,n){var r=this;null!=this.signInUserSession&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:e,FriendlyDeviceName:t},(function(e,t){return e?n.onFailure(e):n.onSuccess(t)})):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:e,FriendlyDeviceName:t},(function(e,t){if(e)return n.onFailure(e);r.Session=t.Session;var i={};i.USERNAME=r.username;var s={ChallengeName:"MFA_SETUP",ClientId:r.pool.getClientId(),ChallengeResponses:i,Session:r.Session};r.getUserContextData()&&(s.UserContextData=r.getUserContextData()),r.client.request("RespondToAuthChallenge",s,(function(e,t){return e?n.onFailure(e):(r.signInUserSession=r.getCognitoUserSession(t.AuthenticationResult),r.cacheTokens(),n.onSuccess(r.signInUserSession))}))}))},e}(),We=(n(204),"aws-amplify/5.0.4"),Je={userAgent:We+" js",product:"",navigator:null,isReactNative:!1};function ze(){}"undefined"!=typeof navigator&&navigator.product&&(Je.product=navigator.product||"",Je.navigator=navigator||null,"ReactNative"===navigator.product?(Je.userAgent=We+" react-native",Je.isReactNative=!0):(Je.userAgent=We+" js",Je.isReactNative=!1)),ze.prototype.userAgent=Je.userAgent;const Ye=ze;function Qe(e){var t="function"==typeof Map?new Map:void 0;return Qe=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return Ge(e,arguments,Xe(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Ze(r,e)},Qe(e)}function Ge(e,t,n){return Ge=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&Ze(i,n.prototype),i},Ge.apply(null,arguments)}function Ze(e,t){return Ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ze(e,t)}function Xe(e){return Xe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Xe(e)}var et=function(e){function t(t,n,r,i){var s;return(s=e.call(this,t)||this).code=n,s.name=r,s.statusCode=i,s}return r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,Ze(n,r),t;var n,r}(Qe(Error)),tt=function(){function e(e,t,n){this.endpoint=t||"https://cognito-idp."+e+".amazonaws.com/";var r=(n||{}).credentials;this.fetchOptions=r?{credentials:r}:{}}var t=e.prototype;return t.promisifyRequest=function(e,t){var n=this;return new Promise((function(r,i){n.request(e,t,(function(e,t){e?i(new et(e.message,e.code,e.name,e.statusCode)):r(t)}))}))},t.requestWithRetry=function(e,t,n){var r,i,s=this;(r=[t],i=5e3,void 0===i&&(i=st),it((function(t){return new Promise((function(n,r){s.request(e,t,(function(e,t){e?r(e):n(t)}))}))}),r,function(e){return function(t){var n=100*Math.pow(2,t)+100*Math.random();return!(n>e)&&n}}(i))).then((function(e){return n(null,e)})).catch((function(e){return n(e)}))},t.request=function(e,t,n){var r,i={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+e,"X-Amz-User-Agent":Ye.prototype.userAgent,"Cache-Control":"no-store"},s=Object.assign({},this.fetchOptions,{headers:i,method:"POST",mode:"cors",body:JSON.stringify(t)});fetch(this.endpoint,s).then((function(e){return r=e,e}),(function(e){if(e instanceof TypeError)throw new Error("Network error");throw e})).then((function(e){return e.json().catch((function(){return{}}))})).then((function(e){if(r.ok)return n(null,e);var t=(e.__type||e.code).split("#").pop(),i=new Error(e.message||e.Message||null);return i.name=t,i.code=t,n(i)})).catch((function(e){if(r&&r.headers&&r.headers.get("x-amzn-errortype"))try{var t=r.headers.get("x-amzn-errortype").split(":")[0],i=new Error(r.status?r.status.toString():null);return i.code=t,i.name=t,i.statusCode=r.status,n(i)}catch(t){return n(e)}else e instanceof Error&&"Network error"===e.message&&(e.code="NetworkError");return n(e)}))},e}(),nt={debug:function(){}},rt=function(e){return e&&e.nonRetryable};function it(e,t,n,r){if(void 0===r&&(r=1),"function"!=typeof e)throw Error("functionToRetry must be a function");return nt.debug(e.name+" attempt #"+r+" with args: "+JSON.stringify(t)),e.apply(void 0,t).catch((function(i){if(nt.debug("error on "+e.name,i),rt(i))throw nt.debug(e.name+" non retryable error",i),i;var s=n(r,t,i);if(nt.debug(e.name+" retrying in "+s+" ms"),!1!==s)return new Promise((function(e){return setTimeout(e,s)})).then((function(){return it(e,t,n,r+1)}));throw i}))}var st=3e5,ot=function(){function e(e,t){var n=e||{},r=n.UserPoolId,i=n.ClientId,s=n.endpoint,o=n.fetchOptions,a=n.AdvancedSecurityDataCollectionFlag;if(!r||!i)throw new Error("Both UserPoolId and ClientId are required.");if(r.length>55||!/^[\w-]+_[0-9a-zA-Z]+$/.test(r))throw new Error("Invalid UserPoolId format.");var u=r.split("_")[0];this.userPoolId=r,this.clientId=i,this.client=new tt(u,s,o),this.advancedSecurityDataCollectionFlag=!1!==a,this.storage=e.Storage||(new Ke).getStorage(),t&&(this.wrapRefreshSessionCallback=t)}var t=e.prototype;return t.getUserPoolId=function(){return this.userPoolId},t.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},t.getClientId=function(){return this.clientId},t.signUp=function(e,t,n,r,i,s){var o=this,a={ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:r,ClientMetadata:s};this.getUserContextData(e)&&(a.UserContextData=this.getUserContextData(e)),this.client.request("SignUp",a,(function(t,n){if(t)return i(t,null);var r={Username:e,Pool:o,Storage:o.storage},s={user:new He(r),userConfirmed:n.UserConfirmed,userSub:n.UserSub,codeDeliveryDetails:n.CodeDeliveryDetails};return i(null,s)}))},t.getCurrentUser=function(){var e="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",t=this.storage.getItem(e);if(t){var n={Username:t,Pool:this,Storage:this.storage};return new He(n)}return null},t.getUserContextData=function(e){if("undefined"!=typeof AmazonCognitoAdvancedSecurityData){var t=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var n=t.getData(e,this.userPoolId,this.clientId);if(n)return{EncodedData:n}}return{}}},e}();n(808);let at=null,ut=null;function ct(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"consume"},{auth:!0})}function lt(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"release"},{auth:!0})}function ht(t){if(!t.ticket_id)throw new e("Ticket ID is required.",{code:"INVALID_PARAMETER"});return c.bind(this)("ticket",{ticket_id:t.ticket_id,exec:"request"},{auth:!0})}function ft(){if(!ut)throw new e("User pool is missing",{code:"INVALID_REQUEST"});const n=t=>{let n={};if(Array.isArray(t)){let n={};for(let r of t)if(n[r.Name]=r.Value,"custom:service"===r.Name&&n[r.Name]!==this.service)throw new e("The user is not registered to the service.",{code:"INVALID_REQUEST"});t=n}for(let r in t)if(r.includes("custom:")){if("custom:service"===r&&t[r]!==this.service)throw new e("The user is not registered to the service.",{code:"INVALID_REQUEST"});n[r.replace("custom:","")]=t[r]}else{if("address"===r){let e=t[r];if(e&&"object"==typeof e&&Object.keys(e).length&&e?.formatted)try{t[r]=JSON.parse(e.formatted)}catch(n){t[r]=e.formatted}}n[r]=t[r]}for(let e of["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])e.includes("_public")?n.hasOwnProperty(e.split("_")[0])?n[e]=!!n.hasOwnProperty(e)&&!!Number(n[e]):delete n[e]:n[e]=n.hasOwnProperty(e)?Number(n[e]):0;for(let e of["email","phone_number"])n.hasOwnProperty(e)?!0===n[e+"_verified"]||"true"===n[e+"_verified"]?n[e+"_verified"]=!0:n[e+"_verified"]=!1:delete n[e+"_verified"];for(let e of["aud",{from:"auth_time",to:"log"},"cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key",{from:"sub",to:"user_id"},"token_use"])"string"==typeof e?delete n[e]:(n[e.to]=n[e.from],delete n[e.from]);this.__user=n},r=async t=>{let{refreshToken:r=!1}=t||{};return new Promise(((t,i)=>{at=ut?.getCurrentUser()||null,null!==at?at.getSession(((s,o)=>{if(s)return void i(s);if(!o)return void i(new e("Current session does not exist.",{code:"INVALID_REQUEST"}));let a=r=>{let s=r.getIdToken().payload;if(s["custom:service"]!==this.service)return at.signOut(),this.session=null,void i(new e("Invalid session.",{code:"INVALID_REQUEST"}));this.session=r,n(s),t(r)};if(!r&&o.isValid())return a(o);at.refreshSession(o.getRefreshToken(),((t,n)=>{if(!t)return n.isValid()?a(n):void i(new e("Invalid session.",{code:"INVALID_REQUEST"}));i(t)}))})):i(null)}))},i=async n=>{if(!n)throw new e("E-Mail is required.",{code:"INVALID_PARAMETER"});let r=n.includes(this.service+"-")?n:this.service+"-"+t.hash(n);return{cognitoUser:new He({Username:r,Pool:ut}),cognitoUsername:r}};return{getSession:r,authenticateUser:(t,n)=>new Promise(((s,o)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null,i(t).then((t=>{let i=t.cognitoUsername,a=new ne({Username:i,Password:n});t.cognitoUser.authenticateUser(a,{newPasswordRequired:(a,u)=>{this.__request_signup_confirmation=i,"PASS"===a["custom:signup_ticket"]||"MEMBER"===a["custom:signup_ticket"]?t.cognitoUser.completeNewPasswordChallenge(n,{},{onSuccess:e=>{at=t.cognitoUser,r().then((e=>s(this.user)))},onFailure:t=>{o(new e(t.message||"Failed to authenticate user.",{code:t.code}))}}):o(new e("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}))},onSuccess:e=>r().then((e=>{s(this.user)})),onFailure:t=>{let n=[t.message||"Failed to authenticate user.",t?.code||"INVALID_REQUEST"];"NotAuthorizedException"===t.code?"User is disabled."===t.message?(this.__disabledAccount=i,n=["This account is disabled.","USER_IS_DISABLED"]):n=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotFoundException"===t.code?n=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"TooManyRequestsException"!==t.code&&"LimitExceededException"!==t.code||(n=["Too many attempts. Please try again later.","REQUEST_EXCEED"]);let r=n[1],s=n[0],a=n[0].split("#");a.length>1&&(a=a[a.length-1].split(":"),r=a[0],s=a[1]),o(new e(s,{code:r,cause:t}))}})}))})),createCognitoUser:i,getUser:()=>new Promise(((t,r)=>{this.session||t(null),null===at?r(new e("Invalid session",{code:"INVALID_REQUEST"})):at.getUserAttributes(((e,i)=>{e?r(e):(n(i),t(this.user))}))}))}}async function dt(e){await this.__authConnection;try{return await ft.bind(this)().getSession(e),this.user}catch(e){return null}}async function pt(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await gt.bind(this)(),!1)}async function gt(){await this.__connection,at&&at.signOut();let e={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};for(let t in e)this[t]=e[t];return"SUCCESS: The user has been logged out."}async function mt(t){if(!this.__request_signup_confirmation)throw new e("Least one login attempt is required.",{code:"INVALID_REQUEST"});return t=t?o.Url(t):void 0,await c.bind(this)("confirm-signup",{username:this.__request_signup_confirmation,redirect:t})}async function yt(t=!1){if("string"==typeof t)t=o.Url(t);else if("boolean"!=typeof t)throw new e("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new e("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await c.bind(this)("recover-account",{username:this.__disabledAccount,redirect:t}),this.__disabledAccount=null,"SUCCESS: Recovery e-mail has been sent."}function wt(t){o.Params(t,{url:"string",clientSecretName:"string",method:["get","post","GET","POST"],headers:e=>e,data:t=>{if(t&&"object"!=typeof t)throw new e('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return t},params:t=>{if(t&&"object"!=typeof t)throw new e('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return t}},["clientSecretName","method","url"]);let n=!1;if(!t.data&&!t.params)throw new e(("post"===t.method.toLowerCase()?'"data"':'"params"')+" is required.",{code:"INVALID_PARAMETER"});if(t.data)for(let e in t.data)if("string"==typeof t.data[e]&&t.data[e].includes("$CLIENT_SECRET")){n=!0;break}if(t.params)for(let e in t.params)if("string"==typeof t.params[e]&&t.params[e].includes("$CLIENT_SECRET")){n=!0;break}if(!n)throw new e(`At least one parameter value should include "$CLIENT_SECRET" in ${"post"===t.method.toLowerCase()?'"data"':'"params"'}.`,{code:"INVALID_PARAMETER"});return c.bind(this)("client-secret-request",t)}async function _t(t){o.Params(t,{idToken:"string",clientId:"string",keyUrl:e=>o.Url(e),provider:"string",nonce:"string"},["idToken","keyUrl","clientId"]);let{hashedPassword:n,username:r}=await c.bind(this)("jwt-login",t);try{return bt.bind(this)({username:r,password:n})}catch(t){if("INCORRECT_USERNAME_OR_PASSWORD"===t?.code)throw new e("User has migrated the account. Login with the service username and password.",{code:"INVALID_REQUEST"})}}async function bt(t){await this.logout();let n=o.Params(t,{username:"string",email:"string",password:"string"},["password"]);if(n.email)try{o.Email(n.email)}catch(e){n.username=n.email,delete n.email}if(!n.username&&!n.email)throw new e('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return ft.bind(this)().authenticateUser(n.username||n.email,n.password)}async function At(t,n){let r=await pt.bind(this)(),i=o.Params(t||{},{username:"string",email:e=>o.Email(e),password:e=>o.Password(e),name:"string",address:"string",gender:"string",birthdate:e=>o.Birthdate(e),phone_number:e=>o.PhoneNumber(e),email_public:["boolean",()=>!1],address_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],access_group:"number",misc:"string"},r?["email"]:["email","password"]),s=r&&i.service&&this.service!==i.service;if(s)i.owner=this.__user.user_id;else if(!r){if(i.access_group)throw new e('Only admins can set "access_group" parameter.',{code:"INVALID_PARAMETER"});await this.logout()}n=o.Params(n||{},{email_subscription:t=>{if("boolean"!=typeof t)throw new e('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!n?.signup_confirmation)throw new e('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return t},signup_confirmation:t=>{if("string"==typeof t)return o.Url(t);if("boolean"==typeof t)return t;throw new e('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"})},login:t=>{if("boolean"==typeof t){if(n.signup_confirmation&&t)throw new e('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return t}throw new e('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let a=n?.login||!1,u=n?.signup_confirmation||!1;if(s&&u&&i?.password)throw new e('Admins cannot create an account with "option.signup_confirmation" option.',{code:"INVALID_PARAMETER"});if(i.email_public&&!u)throw new e('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});i.signup_confirmation=u,i.email_subscription=n?.email_subscription||!1,s||(delete i.service,delete i.owner);let l=await c.bind(this)("signup",i,{auth:r});if(!r){if(u){let e=await ft.bind(this)().createCognitoUser(i.username||i.email);return at=e.cognitoUser,this.__request_signup_confirmation=e.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."}return a?bt.bind(this)({email:i.username||i.email,password:i.password}):"SUCCESS: The account has been created."}return l}async function vt(){await this.__connection;let e=await c.bind(this)("remove-account",{disable:this.__user.user_id},{auth:!0});return await gt.bind(this)(),e}async function Et(t){await this.__connection;let n=o.Params(t,{email:e=>o.Email(e),code:["number","string"],new_password:e=>o.Password(e)},["email","code","new_password"]),r=n.code,i=n.new_password;return"number"==typeof r&&(r=r.toString()),new Promise((async(t,s)=>{(await ft.bind(this)().createCognitoUser(n.email)).cognitoUser.confirmPassword(r,i,{onSuccess:e=>{t("SUCCESS: New password has been set.")},onFailure:t=>{s(new e(t?.message||"Failed to reset password.",{code:t?.code}))}})}))}async function St(t,n){let r;if(await this.__connection,!at)throw new e("The user has to be logged in.",{code:"INVALID_REQUEST"});if("email"===t||"phone_number"===t){if(!this.__user.hasOwnProperty(t))throw new e(`No ${"email"===t?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});return this.__user?.[`${t}_verified`]?`SUCCESS: "${t}" is verified.`:(r=(n?o.Params(n,{code:["string"]}):{}).code||"",new Promise(((n,i)=>{let s={onSuccess:e=>{r?ft.bind(this)().getSession({refreshToken:!0}).then((()=>{this.__user&&(this.__user[t+"_verified"]=!0),n(`SUCCESS: "${t}" is verified.`)})).catch((e=>{i(e)})):n("SUCCESS: Verification code has been sent.")},onFailure:t=>{i(new e(t.message||"Failed to request verification code.",{code:t?.code}))}};r?at?.verifyAttribute(t,r,s):(s.inputVerificationCode=null,at?.getAttributeVerificationCode(t,s))})))}}function It(e){return St.bind(this)("phone_number",e)}function Rt(e){return St.bind(this)("email",e)}async function Tt(t){await this.__connection;let n=o.Params(t,{email:e=>o.Email(e)},["email"]);return new Promise((async(t,r)=>{(await ft.bind(this)().createCognitoUser(n.email)).cognitoUser.forgotPassword({onSuccess:e=>{t("SUCCESS: Verification code has been sent.")},onFailure:t=>{r(new e(t?.message||"Failed to send verification code.",{code:t?.code||"ERROR"}))}})}))}async function Dt(t){if(await this.__connection,!this.session)throw new e("User login is required.",{code:"INVALID_REQUEST"});let n=o.Params(t,{current_password:"string",new_password:"string"});if(!n?.current_password)throw new e('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!n?.new_password)throw new e('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return o.Password(n.current_password),o.Password(n.new_password),new Promise(((t,r)=>{at.changePassword(n.current_password,n.new_password,((n,i)=>{n&&r("InvalidParameterException"===n?.code?new e("Invalid password parameter.",{code:"INVALID_PARAMETER"}):"NotAuthorizedException"===n?.code?new e("Incorrect password.",{code:"INVALID_REQUEST"}):"TooManyRequestsException"===n?.code||"LimitExceededException"===n?.code?new e("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}):new e(n?.message||"Failed to change user password.",{code:n?.code||n?.name})),t("SUCCESS: Password has been changed.")}))}))}async function Ut(n){if(await this.__connection,!this.session)throw new e("User login is required.",{code:"INVALID_REQUEST"});let r=o.Params(n||{},{email:e=>o.Email(e),address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):"":"",name:"string",gender:"string",birthdate:e=>o.Birthdate(e),phone_number:e=>o.PhoneNumber(e),email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string"});if(r&&"object"==typeof r&&!Object.keys(r).length)return this.user;r.email&&(r.preferred_username=this.service+"-"+t.hash(r.email));let i=[["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 t of i)if(r[t[0]]&&!this.__user[t[1]])throw new e(`${t[2]} "${t[0]}" to true.`,{code:"INVALID_REQUEST"});let s=[];for(let e in r)if(r[e]!==this.user[e]){if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(e)){let t=r[e];"boolean"==typeof t&&(t=t?"1":"0"),r["custom:"+e]=t,s.push(e)}}else s.push(e);for(let e of s)delete r[e];if(r&&"object"==typeof r&&Object.keys(r).length){let e=[];for(let t in r)e.push(new Be({Name:t,Value:r[t]}));return await new Promise(((t,n)=>{at?.updateAttributes(e,((e,r)=>{e&&n([e?.code||e?.name,e?.message||"Failed to update user settings."]),t(r)}))})),await ft.bind(this)().getSession({refreshToken:!0}),this.user}return this.user}async function Ct(t,n){if(t||(t={searchFor:"timestamp",condition:">",value:0},n||(n={}),n.ascending=!1),await pt.bind(this)()&&!t.hasOwnProperty("service"))throw new e("Service ID is required.",{code:"INVALID_PARAMETER"});const r={user_id:e=>o.UserId(e),email:e=>o.Email(e),phone_number:e=>o.PhoneNumber(e),locale:t=>{if("string"!=typeof t||"string"==typeof t&&t.length>5)throw new e('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return t},name:"string",address:"string",gender:"string",birthdate:e=>o.Birthdate(e),subscribers:"number",timestamp:"number",access_group:"number",approved:e=>e?"by_admin:approved":"by_admin:suspended"};if(t=o.Params(t,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:n=>{let i=r[t.searchFor];if("function"==typeof i){if(!t?.condition||"="===t?.condition||t?.range)return i(n)}else if(typeof n!==i)throw new e(`Value does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return n},range:n=>{let i=r[t.searchFor];if("function"==typeof i)return i(n);if(typeof n!==i)throw new e(`Range does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return n}},["searchFor","value"]),t?.condition&&"="!==t?.condition&&t.hasOwnProperty("range"))throw new e("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if("user_id"===t.searchFor&&"="!==t.condition)throw new e('Conditions are not allowed on "user_id"',{code:"INVALID_PARAMETER"});if("string"==typeof t?.value&&!t?.value)throw new e("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if("string"==typeof t?.searchFor&&!t?.searchFor)throw new e('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return c.bind(this)("get-users",t,{auth:!0,fetchOptions:n})}async function Pt(e){await this.__connection;let t=await c.bind(this)("last-verified-email",e,{auth:!0});return t.includes("SUCCESS")?(await ft.bind(this)().getSession({refreshToken:!0}),this.user):t}async function Nt(e){return await this.__connection,e=o.Params(e,{username:o.Email,redirect:o.Url},["username"]),await c.bind(this)("request-username-change",e,{auth:!0})}var kt=function(e,t,n,r){var i,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,n,o):i(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o};class Ot{get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}constructor(t,n,r,i){if(this.version="1.0.40",this.session=null,this.connection=null,this.host="skapi",this.hostDomain="skapi.com",this.target_cdn="d3e9syvbtso631",this.__disabledAccount=null,this.__cached_requests={},this.__startKeyHistory={},this.__request_signup_confirmation=null,this.__private_access_key={},this.__class_properties_has_been_cached=!1,this.__user=null,this.validate={userId(e){try{return o.UserId(e),!0}catch(e){return!1}},url(e){try{return o.Url(e),!0}catch(e){return!1}},phoneNumber(e){try{return o.PhoneNumber(e),!0}catch(e){return!1}},birthdate(e){try{return o.Birthdate(e),!0}catch(e){return!1}},email(e){try{return o.Email(e),!0}catch(e){return!1}}},this.checkAdmin=pt.bind(this),this.request=c.bind(this),this.normalizeRecord=v.bind(this),"string"!=typeof t||"string"!=typeof n)throw new e('"service" and "owner" should be type <string>.',{code:"INVALID_PARAMETER"});if(!t||!n)throw new e('"service" and "owner" is required',{code:"INVALID_PARAMETER"});n!==this.host&&o.UserId(n,'"owner"'),this.service=t,this.owner=n;let s="boolean"!=typeof r?.autoLogin||r.autoLogin;this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain;const a=`https://${this.target_cdn}.cloudfront.net`;let u=t.substring(0,4);if(this.admin_endpoint=fetch(`${a}/${u}/admin.json`).then((e=>e.blob())).then((e=>new Promise(((t,n)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})))).then((e=>"string"==typeof e?JSON.parse(window.atob(e.split(",")[1])):null)),this.record_endpoint=fetch(`${a}/${u}/record.json`).then((e=>e.blob())).then((e=>new Promise(((t,n)=>{const r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})))).then((e=>"string"==typeof e?JSON.parse(window.atob(e.split(",")[1])):null)),!window.sessionStorage)throw new Error("This browser does not support skapi.");const l=JSON.parse(window.sessionStorage.getItem(`${t}#${n}`)||"null");if(l?.connection)for(let e in l)this[e]=l[e];this.__authConnection=(async()=>{const e=await this.admin_endpoint;var t;if(t={UserPoolId:e.userpool_id,ClientId:e.userpool_client},ut=new ot(t),!l?.connection&&!s){let e=ut.getCurrentUser();e&&e.signOut()}if(s)try{await ft.bind(this)().getSession({refreshToken:!l?.connection})}catch(e){this.__user=null}})(),this.__connection=(async()=>{let e=null;l?.connection||(e=this.updateConnection());const r=()=>{if(this.__class_properties_has_been_cached)return;let r=()=>{let e={};const r=["__startKeyHistory","__cached_requests","__request_signup_confirmation","connection"];if(this.connection){for(let t of r)e[t]=this[t];window.sessionStorage.setItem(`${t}#${n}`,JSON.stringify(e)),this.__class_properties_has_been_cached=!0}};return e instanceof Promise?e.then((()=>r())):r()};return window.addEventListener("beforeunload",r),window.addEventListener("visibilitychange",r),await e,await this.__authConnection,console.log(`Built with:\n%c\r\n $$\\ $$\\ \r\n $$ | \\__|\r\n $$$$$$$\\ $$ | $$\\ $$$$$$\\ $$$$$$\\ $$\\ \r\n$$ _____|$$ | $$ |\\____$$\\ $$ __$$\\ $$ |\r\n\\$$$$$$\\ $$$$$$ / $$$$$$$ |$$ / $$ |$$ |\r\n \\____$$\\ $$ _$$< $$ __$$ |$$ | $$ |$$ |\r\n$$$$$$$ |$$ | \\$$\\\\$$$$$$$ |$$$$$$$ |$$ |\r\n\\_______/ \\__| \\__|\\_______|$$ ____/ \\__|\r\n $$ | \r\n $$ | \r\n \\__| \r\nVersion: ${this.version}\n\nDocumentation: https://docs.skapi.com`,"font-family: monospace; color:blue;"),1===this.connection.group&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE. ALL THE USERS AND DATA WILL BE INITIALIZED EVERY 7 DAYS.","font-family: monospace; color:red;"),this.connection})()}async updateConnection(){return this.connection=await c.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"}),this.connection}connectRealtime(e){return B.bind(this)(e)}jwtLogin(e){return _t.bind(this)(e)}clientSecretRequest(e){return wt.bind(this)(e)}consumeTicket(e){return ct.bind(this)(e)}releaseTicket(e){return lt.bind(this)(e)}getTicketKey(e){return ht.bind(this)(e)}closeRealtime(){return x.bind(this)()}getRealtimeUsers(e,t){return K.bind(this)(e,t)}getRealtimeGroups(e,t){return j.bind(this)(e,t)}postRealtime(e,t){return $.bind(this)(e,t)}joinRealtime(e){return q.bind(this)(e)}getConnection(){return u.bind(this)()}getProfile(e){return dt.bind(this)(e)}getFile(e,t){return I.bind(this)(e,t)}secureRequest(e){return g.bind(this)(e)}getFormResponse(){return y.bind(this)()}getRecords(e,t){return R.bind(this)(e,t)}getTables(e,t){return D.bind(this)(e,t)}getIndexes(e,t){return U.bind(this)(e,t)}getTags(e,t){return C.bind(this)(e,t)}deleteRecords(e){return P.bind(this)(e)}resendSignupConfirmation(e){return mt.bind(this)(e)}recoverAccount(e=!1){return yt.bind(this)(e)}getUsers(e,t){return Ct.bind(this)(e,t)}disableAccount(){return vt.bind(this)()}lastVerifiedEmail(e){return Pt.bind(this)(e)}unsubscribeNewsletter(e){return X.bind(this)(e)}getNewsletters(e,t){return ee.bind(this)(e,t)}getNewsletterSubscription(e){return G.bind(this)(e)}requestUsernameChange(e){return Nt.bind(this)(e)}grantPrivateRecordAccess(e){return N.bind(this)(e)}removePrivateRecordAccess(e){return k.bind(this)(e)}listPrivateRecordAccess(e){return O.bind(this)(e)}requestPrivateRecordAccessKey(e){return M.bind(this)(e)}deleteFiles(e){return E.bind(this)(e)}uploadFiles(e,t){return S.bind(this)(e,t)}mock(e,t){return m.bind(this)(e,t)}login(e){return bt.bind(this)(e)}logout(){return gt.bind(this)()}signup(e,t){return At.bind(this)(e,t)}resetPassword(e){return Et.bind(this)(e)}verifyEmail(e){return Rt.bind(this)(e)}verifyPhoneNumber(e){return It.bind(this)(e)}forgotPassword(e){return Tt.bind(this)(e)}changePassword(e){return Dt.bind(this)(e)}updateProfile(e){return Ut.bind(this)(e)}postRecord(e,t){return T.bind(this)(e,t)}getSubscriptions(e,t){return W.bind(this)(e,t)}subscribe(e){return J.bind(this)(e)}unsubscribe(e){return z.bind(this)(e)}blockSubscriber(e){return Y.bind(this)(e)}unblockSubscriber(e){return Q.bind(this)(e)}subscribeNewsletter(e){return Z.bind(this)(e)}}kt([_()],Ot.prototype,"consumeTicket",null),kt([_()],Ot.prototype,"releaseTicket",null),kt([_()],Ot.prototype,"getTicketKey",null),kt([_()],Ot.prototype,"getRealtimeUsers",null),kt([_()],Ot.prototype,"getRealtimeGroups",null),kt([_()],Ot.prototype,"postRealtime",null),kt([_()],Ot.prototype,"joinRealtime",null),kt([_()],Ot.prototype,"getConnection",null),kt([_()],Ot.prototype,"getProfile",null),kt([_()],Ot.prototype,"getFile",null),kt([_()],Ot.prototype,"secureRequest",null),kt([_()],Ot.prototype,"getFormResponse",null),kt([_()],Ot.prototype,"getRecords",null),kt([_()],Ot.prototype,"getTables",null),kt([_()],Ot.prototype,"getIndexes",null),kt([_()],Ot.prototype,"getTags",null),kt([_()],Ot.prototype,"deleteRecords",null),kt([_()],Ot.prototype,"resendSignupConfirmation",null),kt([_()],Ot.prototype,"recoverAccount",null),kt([_()],Ot.prototype,"getUsers",null),kt([_()],Ot.prototype,"disableAccount",null),kt([_()],Ot.prototype,"lastVerifiedEmail",null),kt([_()],Ot.prototype,"unsubscribeNewsletter",null),kt([_()],Ot.prototype,"getNewsletters",null),kt([_()],Ot.prototype,"getNewsletterSubscription",null),kt([_()],Ot.prototype,"requestUsernameChange",null),kt([_()],Ot.prototype,"grantPrivateRecordAccess",null),kt([_()],Ot.prototype,"removePrivateRecordAccess",null),kt([_()],Ot.prototype,"listPrivateRecordAccess",null),kt([_()],Ot.prototype,"requestPrivateRecordAccessKey",null),kt([_()],Ot.prototype,"deleteFiles",null),kt([_()],Ot.prototype,"uploadFiles",null),kt([_()],Ot.prototype,"mock",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"login",null),kt([_()],Ot.prototype,"logout",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"signup",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"resetPassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"verifyEmail",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"verifyPhoneNumber",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"forgotPassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"changePassword",null),kt([_({preventMultipleCalls:!0})],Ot.prototype,"updateProfile",null),kt([_()],Ot.prototype,"postRecord",null),kt([_()],Ot.prototype,"getSubscriptions",null),kt([_()],Ot.prototype,"subscribe",null),kt([_()],Ot.prototype,"unsubscribe",null),kt([_()],Ot.prototype,"blockSubscriber",null),kt([_()],Ot.prototype,"unblockSubscriber",null),kt([_()],Ot.prototype,"subscribeNewsletter",null)})(),r})()));
3
3
  //# sourceMappingURL=skapi.js.map