skapi-js 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(self,()=>(()=>{var e={6:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fromUtf8:()=>i,toUtf8:()=>r});const i=e=>"function"==typeof TextEncoder?function(e){return(new TextEncoder).encode(e)}(e):(e=>{const t=[];for(let n=0,i=e.length;n<i;n++){const i=e.charCodeAt(n);if(i<128)t.push(i);else if(i<2048)t.push(i>>6|192,63&i|128);else if(n+1<e.length&&55296==(64512&i)&&56320==(64512&e.charCodeAt(n+1))){const r=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n));t.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else t.push(i>>12|224,i>>6&63|128,63&i|128)}return Uint8Array.from(t)})(e),r=e=>"function"==typeof TextDecoder?function(e){return new TextDecoder("utf-8").decode(e)}(e):(e=>{let t="";for(let n=0,i=e.length;n<i;n++){const i=e[n];if(i<128)t+=String.fromCharCode(i);else if(192<=i&&i<224){const r=e[++n];t+=String.fromCharCode((31&i)<<6|63&r)}else if(240<=i&&i<365){const r="%"+[i,e[++n],e[++n],e[++n]].map(e=>e.toString(16)).join("%");t+=decodeURIComponent(r)}else t+=String.fromCharCode((15&i)<<12|(63&e[++n])<<6|63&e[++n])}return t})(e)},24:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertToBuffer=void 0;var i=n(6),r="undefined"!=typeof Buffer&&Buffer.from?function(e){return Buffer.from(e,"utf8")}:i.fromUtf8;t.convertToBuffer=function(e){return e instanceof Uint8Array?e:"string"==typeof e?r(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}},110:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uint32ArrayFrom=void 0,t.uint32ArrayFrom=function(e){if(!Array.from){for(var t=new Uint32Array(e.length);0<e.length;)t[0]=e[0];return t}return Uint32Array.from(e)}},165:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEmptyData=void 0,t.isEmptyData=function(e){return"string"==typeof e?0===e.length:0===e.byteLength}},215:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>s,__asyncDelegator:()=>b,__asyncGenerator:()=>w,__asyncValues:()=>A,__await:()=>y,__awaiter:()=>l,__classPrivateFieldGet:()=>I,__classPrivateFieldSet:()=>T,__createBinding:()=>d,__decorate:()=>a,__exportStar:()=>f,__extends:()=>r,__generator:()=>h,__importDefault:()=>E,__importStar:()=>S,__makeTemplateObject:()=>v,__metadata:()=>u,__param:()=>c,__read:()=>g,__rest:()=>o,__spread:()=>_,__spreadArrays:()=>m,__values:()=>p});var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i(e,t)};function r(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s=function(){return s=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function o(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}function a(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function c(e,t){return function(n,i){t(n,i,e)}}function u(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function l(e,t,n,i){return new(n||(n=Promise))(function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}c((i=i.apply(e,t||[])).next())})}function h(e,t){var n,i,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,i&&(r=2&s[0]?i.return:s[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;switch(i=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,i=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((r=(r=o.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){o.label=s[1];break}if(6===s[0]&&o.label<r[1]){o.label=r[1],r=s;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(s);break}r[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],i=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}}function d(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}function f(e,t){for(var n in e)"default"===n||t.hasOwnProperty(n)||(t[n]=e[n])}function p(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}function _(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),r=0;for(t=0;t<n;t++)for(var s=arguments[t],o=0,a=s.length;o<a;o++,r++)i[r]=s[o];return i}function y(e){return this instanceof y?(this.v=e,this):new y(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(e,t||[]),s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(e){r[e]&&(i[e]=function(t){return new Promise(function(n,i){s.push([e,t,n,i])>1||a(e,t)})})}function a(e,t){try{(n=r[e](t)).value instanceof y?Promise.resolve(n.value.v).then(c,u):l(s[0][2],n)}catch(e){l(s[0][3],e)}var n}function c(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}function b(e){var t,n;return t={},i("next"),i("throw",function(e){throw e}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(i,r){t[i]=e[i]?function(t){return(n=!n)?{value:y(e[i](t)),done:"return"===i}:r?r(t):t}:r}}function A(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise(function(i,r){!function(e,t,n,i){Promise.resolve(i).then(function(t){e({value:t,done:n})},t)}(i,r,(t=e[n](t)).done,t.value)})}}}function v(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function S(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function E(e){return e&&e.__esModule?e:{default:e}}function I(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function T(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},251:(e,t)=>{t.read=function(e,t,n,i,r){var s,o,a=8*r-i-1,c=(1<<a)-1,u=c>>1,l=-7,h=n?r-1:0,d=n?-1:1,f=e[t+h];for(h+=d,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+h],h+=d,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=i;l>0;o=256*o+e[t+h],h+=d,l-=8);if(0===s)s=1-u;else{if(s===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,i),s-=u}return(f?-1:1)*o*Math.pow(2,s-i)},t.write=function(e,t,n,i,r,s){var o,a,c,u=8*s-r-1,l=(1<<u)-1,h=l>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:s-1,p=i?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*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(o++,c/=2),o+h>=l?(a=0,o=l):o+h>=1?(a=(t*c-1)*Math.pow(2,r),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,r),o=0));r>=8;e[n+f]=255&a,f+=p,a/=256,r-=8);for(o=o<<r|a,u+=r;u>0;e[n+f]=255&o,f+=p,o/=256,u-=8);e[n+f-p]|=128*g}},284:()=>{"use strict";window.global=window},287:(e,t,n)=>{"use strict";var i=n(526),r=n(251),s=n(634);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(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 u(this,e,t,n)}function u(e,t,n,i){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,i){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(i||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,n):new Uint8Array(t,n,i),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t),e}(e,t,n,i):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var i=0|p(t,n),r=(e=a(e,i)).write(t,n);return r!==i&&(e=e.slice(0,r)),e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|f(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||(i=t.length)!=i?a(e,0):d(e,t);if("Buffer"===t.type&&s(t.data))return d(e,t.data)}var i;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|f(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|f(t.length);e=a(e,n);for(var i=0;i<n;i+=1)e[i]=255&t[i];return e}function f(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(c.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 i=!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(i)return B(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,n){var i=!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 P(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return U(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function _(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function m(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,i,r);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,i,r){var s,o=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var l=-1;for(s=n;s<a;s++)if(u(e,s)===u(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===c)return l*o}else-1!==l&&(s-=s-l),l=-1}else for(n+c>a&&(n=a-c),s=n;s>=0;s--){for(var h=!0,d=0;d<c;d++)if(u(e,s+d)!==u(t,d)){h=!1;break}if(h)return s}return-1}function w(e,t,n,i){n=Number(n)||0;var r=e.length-n;i?(i=Number(i))>r&&(i=r):i=r;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");i>s/2&&(i=s/2);for(var o=0;o<i;++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,i){return j(B(t,e.length-n),e,n,i)}function A(e,t,n,i){return j(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,i)}function v(e,t,n,i){return A(e,t,n,i)}function S(e,t,n,i){return j($(t),e,n,i)}function E(e,t,n,i){return j(function(e,t){for(var n,i,r,s=[],o=0;o<e.length&&!((t-=2)<0);++o)i=(n=e.charCodeAt(o))>>8,r=n%256,s.push(r),s.push(i);return s}(t,e.length-n),e,n,i)}function I(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var i=[],r=t;r<n;){var s,o,a,c,u=e[r],l=null,h=u>239?4:u>223?3:u>191?2:1;if(r+h<=n)switch(h){case 1:u<128&&(l=u);break;case 2:128==(192&(s=e[r+1]))&&(c=(31&u)<<6|63&s)>127&&(l=c);break;case 3:s=e[r+1],o=e[r+2],128==(192&s)&&128==(192&o)&&(c=(15&u)<<12|(63&s)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:s=e[r+1],o=e[r+2],a=e[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,h=1):l>65535&&(l-=65536,i.push(l>>>10&1023|55296),l=56320|1023&l),i.push(l),r+=h}return function(e){var t=e.length;if(t<=R)return String.fromCharCode.apply(String,e);for(var n="",i=0;i<t;)n+=String.fromCharCode.apply(String,e.slice(i,i+=R));return n}(i)}t.hp=c,t.IS=50,c.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(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,i){return l(t),t<=0?a(e,t):void 0!==n?"string"==typeof i?a(e,t).fill(n,i):a(e,t).fill(n):a(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return h(null,e)},c.allocUnsafeSlow=function(e){return h(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,r=0,s=Math.min(n,i);r<s;++r)if(e[r]!==t[r]){n=e[r],i=t[r];break}return n<i?-1:i<n?1:0},c.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}},c.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=c.allocUnsafe(t),r=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,r),r+=o.length}return i},c.byteLength=p,c.prototype._isBuffer=!0,c.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)_(this,t,t+1);return this},c.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)_(this,t,t+3),_(this,t+1,t+2);return this},c.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)_(this,t,t+7),_(this,t+1,t+6),_(this,t+2,t+5),_(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.IS;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,i,r){if(!c.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===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(r>>>=0)-(i>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),u=this.slice(i,r),l=e.slice(t,n),h=0;h<a;++h)if(u[h]!==l[h]){s=u[h],o=l[h];break}return s<o?-1:o<s?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},c.prototype.write=function(e,t,n,i){if(void 0===t)i="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)i=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===i&&(i="utf8")):(i=n,n=void 0)}var r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var s=!1;;)switch(i){case"hex":return w(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 S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var R=4096;function U(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;r<n;++r)i+=String.fromCharCode(127&e[r]);return i}function D(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;r<n;++r)i+=String.fromCharCode(e[r]);return i}function P(e,t,n){var i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var r="",s=t;s<n;++s)r+=q(e[s]);return r}function C(e,t,n){for(var i=e.slice(t,n),r="",s=0;s<i.length;s+=2)r+=String.fromCharCode(i[s]+256*i[s+1]);return r}function k(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 N(e,t,n,i,r,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||t<s)throw new RangeError('"value" argument is out of bounds');if(n+i>e.length)throw new RangeError("Index out of range")}function L(e,t,n,i){t<0&&(t=65535+t+1);for(var r=0,s=Math.min(e.length-n,2);r<s;++r)e[n+r]=(t&255<<8*(i?r:1-r))>>>8*(i?r:1-r)}function O(e,t,n,i){t<0&&(t=4294967295+t+1);for(var r=0,s=Math.min(e.length-n,4);r<s;++r)e[n+r]=t>>>8*(i?r:3-r)&255}function M(e,t,n,i,r,s){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function V(e,t,n,i,s){return s||M(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function x(e,t,n,i,s){return s||M(e,0,n,8),r.write(e,t,n,i,52,8),n+8}c.prototype.slice=function(e,t){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var r=t-e;n=new c(r,void 0);for(var s=0;s<r;++s)n[s]=this[s+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e],r=1,s=0;++s<t&&(r*=256);)i+=this[e+s]*r;return i},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e+--t],r=1;t>0&&(r*=256);)i+=this[e+--t]*r;return i},c.prototype.readUInt8=function(e,t){return t||k(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||k(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||k(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||k(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||k(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e],r=1,s=0;++s<t&&(r*=256);)i+=this[e+s]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=t,r=1,s=this[e+--i];i>0&&(r*=256);)s+=this[e+--i]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return t||k(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||k(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||k(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||k(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||k(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||k(e,4,this.length),r.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||k(e,4,this.length),r.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||k(e,8,this.length),r.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||k(e,8,this.length),r.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,i){e=+e,t|=0,n|=0,i||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,s=0;for(this[t]=255&e;++s<n&&(r*=256);)this[t+s]=e/r&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,i){e=+e,t|=0,n|=0,i||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=n-1,s=1;for(this[t+r]=255&e;--r>=0&&(s*=256);)this[t+r]=e/s&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):O(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}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},c.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}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},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):O(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return V(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return V(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return x(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return x(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===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(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var r,s=i-n;if(this===e&&n<t&&t<i)for(r=s-1;r>=0;--r)e[r+t]=this[r+n];else if(s<1e3||!c.TYPED_ARRAY_SUPPORT)for(r=0;r<s;++r)e[r+t]=this[r+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},c.prototype.fill=function(e,t,n,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),1===e.length){var r=e.charCodeAt(0);r<256&&(e=r)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!c.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}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=c.isBuffer(e)?e:B(new c(e,i).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function q(e){return e<16?"0"+e.toString(16):e.toString(16)}function B(e,t){var n;t=t||1/0;for(var i=e.length,r=null,s=[],o=0;o<i;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&s.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&s.push(239,191,189);if(r=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 i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function j(e,t,n,i){for(var r=0;r<i&&!(r+n>=t.length||r>=e.length);++r)t[r+n]=e[r];return r}},388:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uint32ArrayFrom=t.numToUint8=t.isEmptyData=t.convertToBuffer=void 0;var i=n(24);Object.defineProperty(t,"convertToBuffer",{enumerable:!0,get:function(){return i.convertToBuffer}});var r=n(165);Object.defineProperty(t,"isEmptyData",{enumerable:!0,get:function(){return r.isEmptyData}});var s=n(413);Object.defineProperty(t,"numToUint8",{enumerable:!0,get:function(){return s.numToUint8}});var o=n(110);Object.defineProperty(t,"uint32ArrayFrom",{enumerable:!0,get:function(){return o.uint32ArrayFrom}})},413:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numToUint8=void 0,t.numToUint8=function(e){return new Uint8Array([(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e])}},494:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_HASHABLE_LENGTH=t.INIT=t.KEY=t.DIGEST_LENGTH=t.BLOCK_SIZE=void 0,t.BLOCK_SIZE=64,t.DIGEST_LENGTH=32,t.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),t.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],t.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1},523:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(215).__exportStar)(n(871),t)},526:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],i=t[1];return 3*(n+i)/4-i},t.toByteArray=function(e){var t,n,s=a(e),o=s[0],c=s[1],u=new r(function(e,t,n){return 3*(t+n)/4-n}(0,o,c)),l=0,h=c>0?o-4:o;for(n=0;n<h;n+=4)t=i[e.charCodeAt(n)]<<18|i[e.charCodeAt(n+1)]<<12|i[e.charCodeAt(n+2)]<<6|i[e.charCodeAt(n+3)],u[l++]=t>>16&255,u[l++]=t>>8&255,u[l++]=255&t;return 2===c&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,u[l++]=255&t),1===c&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t),u},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,s=[],o=16383,a=0,c=i-r;a<c;a+=o)s.push(u(e,a,a+o>c?c:a+o));return 1===r?(t=e[i-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[i-2]<<8)+e[i-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),s.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=s[o],i[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 c(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function u(e,t,n){for(var i,r=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),r.push(c(i));return r.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},596:(e,t,n)=>{var i,r,s;void 0===(r="function"==typeof(i=s=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var i in n)t[i]=n[i]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(i){function r(){}function s(t,n,s){if("undefined"!=typeof document){"number"==typeof(s=e({path:"/"},r.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=i.write?i.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 c in s)s[c]&&(a+="; "+c,!0!==s[c]&&(a+="="+s[c].split(";")[0]));return document.cookie=t+"="+n+a}}function o(e,n){if("undefined"!=typeof document){for(var r={},s=document.cookie?document.cookie.split("; "):[],o=0;o<s.length;o++){var a=s[o].split("="),c=a.slice(1).join("=");n||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var u=t(a[0]);if(c=(i.read||i)(c,u)||t(c),n)try{c=JSON.parse(c)}catch(e){}if(r[u]=c,e===u)break}catch(e){}}return e?r[e]:r}}return r.set=s,r.get=function(e){return o(e,!1)},r.getJSON=function(e){return o(e,!0)},r.remove=function(t,n){s(t,"",e(n,{expires:-1}))},r.defaults={},r.withConverter=n,r}(function(){})})?i.call(t,n,t,e):i)||(e.exports=r),e.exports=s()},602:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RawSha256=void 0;var i=n(494),r=function(){function e(){this.state=Int32Array.from(i.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}return e.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,8*this.bytesHashed>i.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===i.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0)},e.prototype.digest=function(){if(!this.finished){var e=8*this.bytesHashed,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%i.BLOCK_SIZE>=i.BLOCK_SIZE-8){for(var r=this.bufferLength;r<i.BLOCK_SIZE;r++)t.setUint8(r,0);this.hashBuffer(),this.bufferLength=0}for(r=this.bufferLength;r<i.BLOCK_SIZE-8;r++)t.setUint8(r,0);t.setUint32(i.BLOCK_SIZE-8,Math.floor(e/4294967296),!0),t.setUint32(i.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=!0}var s=new Uint8Array(i.DIGEST_LENGTH);for(r=0;r<8;r++)s[4*r]=this.state[r]>>>24&255,s[4*r+1]=this.state[r]>>>16&255,s[4*r+2]=this.state[r]>>>8&255,s[4*r+3]=this.state[r]>>>0&255;return s},e.prototype.hashBuffer=function(){for(var e=this.buffer,t=this.state,n=t[0],r=t[1],s=t[2],o=t[3],a=t[4],c=t[5],u=t[6],l=t[7],h=0;h<i.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(255&e[4*h])<<24|(255&e[4*h+1])<<16|(255&e[4*h+2])<<8|255&e[4*h+3];else{var d=this.temp[h-2],f=(d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,p=((d=this.temp[h-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3;this.temp[h]=(f+this.temp[h-7]|0)+(p+this.temp[h-16]|0)}var g=(((a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7))+(a&c^~a&u)|0)+(l+(i.KEY[h]+this.temp[h]|0)|0)|0,_=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&r^n&s^r&s)|0;l=u,u=c,c=a,a=o+g|0,o=s,s=r,r=n,n=g+_|0}t[0]+=n,t[1]+=r,t[2]+=s,t[3]+=o,t[4]+=a,t[5]+=c,t[6]+=u,t[7]+=l},e}();t.RawSha256=r},634:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},682:()=>{},782:(e,t,n)=>{"use strict";function i(e,t){return t=t||{},new Promise(function(n,i){var r=new XMLHttpRequest,s=[],o=[],a={},c=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:c,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 u in r.open(t.method||"get",e,!0),r.onload=function(){r.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(c())},r.onerror=i,r.withCredentials="include"==t.credentials,t.headers)r.setRequestHeader(u,t.headers[u]);r.send(t.body||null)})}n.r(t),n.d(t,{default:()=>i})},871:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Sha256=void 0;var i=n(215),r=n(494),s=n(602),o=n(388),a=function(){function e(e){if(this.hash=new s.RawSha256,e){this.outer=new s.RawSha256;var t=function(e){var t=(0,o.convertToBuffer)(e);if(t.byteLength>r.BLOCK_SIZE){var n=new s.RawSha256;n.update(t),t=n.digest()}var i=new Uint8Array(r.BLOCK_SIZE);return i.set(t),i}(e),n=new Uint8Array(r.BLOCK_SIZE);n.set(t);for(var i=0;i<r.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;for(this.hash.update(t),this.outer.update(n),i=0;i<t.byteLength;i++)t[i]=0}}return e.prototype.update=function(e){if(!(0,o.isEmptyData)(e)&&!this.error)try{this.hash.update((0,o.convertToBuffer)(e))}catch(e){this.error=e}},e.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},e.prototype.digest=function(){return(0,i.__awaiter)(this,void 0,void 0,function(){return(0,i.__generator)(this,function(e){return[2,this.digestSync()]})})},e}();t.Sha256=a},916:(e,t,n)=>{e.exports=self.fetch||(self.fetch=n(782).default||n(782))}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},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 i={};return(()=>{"use strict";n.r(i),n.d(i,{Skapi:()=>Mn,SkapiError:()=>te,Types:()=>e});var e={};n.r(e),n(284);var t,r=function(){function e(e){var t=e||{},n=t.ValidationData,i=t.Username,r=t.Password,s=t.AuthParameters,o=t.ClientMetadata;this.validationData=n||{},this.authParameters=s||{},this.clientMetadata=o||{},this.username=i,this.password=r}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}(),s=n(287);if("undefined"!=typeof window&&window.crypto&&(t=window.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&void 0!==n.g&&n.g.crypto&&(t=n.g.crypto),!t)try{t=n(682)}catch(e){}function o(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}var a=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=[],i=0;i<t;i+=4)n.push(o());return new e(n,t)},t.toString=function(){return function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var s=t[r>>>2]>>>24-r%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")}(this)},e}(),c=n(523);const u=l;function l(e,t){null!=e&&this.fromString(e,t)}function h(){return new l(null)}var d,f="undefined"!=typeof navigator;f&&"Microsoft Internet Explorer"==navigator.appName?(l.prototype.am=function(e,t,n,i,r,s){for(var o=32767&t,a=t>>15;--s>=0;){var c=32767&this[e],u=this[e++]>>15,l=a*c+u*o;r=((c=o*c+((32767&l)<<15)+n[i]+(1073741823&r))>>>30)+(l>>>15)+a*u+(r>>>30),n[i++]=1073741823&c}return r},d=30):f&&"Netscape"!=navigator.appName?(l.prototype.am=function(e,t,n,i,r,s){for(;--s>=0;){var o=t*this[e++]+n[i]+r;r=Math.floor(o/67108864),n[i++]=67108863&o}return r},d=26):(l.prototype.am=function(e,t,n,i,r,s){for(var o=16383&t,a=t>>14;--s>=0;){var c=16383&this[e],u=this[e++]>>14,l=a*c+u*o;r=((c=o*c+((16383&l)<<14)+n[i]+r)>>28)+(l>>14)+a*u,n[i++]=268435455&c}return r},d=28),l.prototype.DB=d,l.prototype.DM=(1<<d)-1,l.prototype.DV=1<<d,l.prototype.FV=Math.pow(2,52),l.prototype.F1=52-d,l.prototype.F2=2*d-52;var p,g,_=new Array;for(p="0".charCodeAt(0),g=0;g<=9;++g)_[p++]=g;for(p="a".charCodeAt(0),g=10;g<36;++g)_[p++]=g;for(p="A".charCodeAt(0),g=10;g<36;++g)_[p++]=g;function m(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function y(e,t){var n=_[e.charCodeAt(t)];return null==n?-1:n}function w(e){var t=h();return t.fromInt(e),t}function b(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 A(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 v(e){return s.hp.from((new a).random(e).toString(),"hex")}A.prototype.convert=function(e){var t=h();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(l.ZERO)>0&&this.m.subTo(t,t),t},A.prototype.revert=function(e){var t=h();return e.copyTo(t),this.reduce(t),t},A.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],i=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,i,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)},A.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},A.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},l.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},l.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},l.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 i=e.length,r=!1,s=0;--i>=0;){var o=y(e,i);o<0?"-"==e.charAt(i)&&(r=!0):(r=!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(),r&&l.ZERO.subTo(this,this)},l.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},l.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},l.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},l.prototype.lShiftTo=function(e,t){var n,i=e%this.DB,r=this.DB-i,s=(1<<r)-1,o=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>r|a,a=(this[n]&s)<<i;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()},l.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 i=e%this.DB,r=this.DB-i,s=(1<<i)-1;t[0]=this[n]>>i;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&s)<<r,t[o-n]=this[o]>>i;i>0&&(t[this.t-n-1]|=(this.s&s)<<r),t.t=this.t-n,t.clamp()}},l.prototype.subTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()},l.prototype.multiplyTo=function(e,t){var n=this.abs(),i=e.abs(),r=n.t;for(t.t=r+i.t;--r>=0;)t[r]=0;for(r=0;r<i.t;++r)t[r+n.t]=n.am(0,i[r],t,r,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&l.ZERO.subTo(t,t)},l.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 i=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,i,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()},l.prototype.divRemTo=function(e,t,n){var i=e.abs();if(!(i.t<=0)){var r=this.abs();if(r.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=h());var s=h(),o=this.s,a=e.s,c=this.DB-b(i[i.t-1]);c>0?(i.lShiftTo(c,s),r.lShiftTo(c,n)):(i.copyTo(s),r.copyTo(n));var u=s.t,d=s[u-1];if(0!=d){var f=d*(1<<this.F1)+(u>1?s[u-2]>>this.F2:0),p=this.FV/f,g=(1<<this.F1)/f,_=1<<this.F2,m=n.t,y=m-u,w=null==t?h():t;for(s.dlShiftTo(y,w),n.compareTo(w)>=0&&(n[n.t++]=1,n.subTo(w,n)),l.ONE.dlShiftTo(u,w),w.subTo(s,s);s.t<u;)s[s.t++]=0;for(;--y>=0;){var A=n[--m]==d?this.DM:Math.floor(n[m]*p+(n[m-1]+_)*g);if((n[m]+=s.am(0,A,n,y,0,u))<A)for(s.dlShiftTo(y,w),n.subTo(w,n);n[m]<--A;)n.subTo(w,n)}null!=t&&(n.drShiftTo(u,t),o!=a&&l.ZERO.subTo(t,t)),n.t=u,n.clamp(),c>0&&n.rShiftTo(c,n),o<0&&l.ZERO.subTo(n,n)}}},l.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(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},l.prototype.addTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()},l.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,i=(1<<t)-1,r=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(r=!0,s=m(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)&i,a<=0&&(a+=this.DB,--o)),n>0&&(r=!0),r&&(s+=m(n));return r?s:"0"},l.prototype.negate=function(){var e=h();return l.ZERO.subTo(this,e),e},l.prototype.abs=function(){return this.s<0?this.negate():this},l.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},l.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+b(this[this.t-1]^this.s&this.DM)},l.prototype.mod=function(e){var t=h();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(l.ZERO)>0&&e.subTo(t,t),t},l.prototype.equals=function(e){return 0==this.compareTo(e)},l.prototype.add=function(e){var t=h();return this.addTo(e,t),t},l.prototype.subtract=function(e){var t=h();return this.subTo(e,t),t},l.prototype.multiply=function(e){var t=h();return this.multiplyTo(e,t),t},l.prototype.divide=function(e){var t=h();return this.divRemTo(e,t,null),t},l.prototype.modPow=function(e,t,n){var i,r=e.bitLength(),s=w(1),o=new A(t);if(r<=0)return s;i=r<18?1:r<48?3:r<144?4:r<768?5:6;var a=new Array,c=3,u=i-1,l=(1<<i)-1;if(a[1]=o.convert(this),i>1){var d=h();for(o.sqrTo(a[1],d);c<=l;)a[c]=h(),o.mulTo(d,a[c-2],a[c]),c+=2}var f,p,g=e.t-1,_=!0,m=h();for(r=b(e[g])-1;g>=0;){for(r>=u?f=e[g]>>r-u&l:(f=(e[g]&(1<<r+1)-1)<<u-r,g>0&&(f|=e[g-1]>>this.DB+r-u)),c=i;!(1&f);)f>>=1,--c;if((r-=c)<0&&(r+=this.DB,--g),_)a[f].copyTo(s),_=!1;else{for(;c>1;)o.sqrTo(s,m),o.sqrTo(m,s),c-=2;c>0?o.sqrTo(s,m):(p=s,s=m,m=p),o.mulTo(m,a[f],s)}for(;g>=0&&!(e[g]&1<<r);)o.sqrTo(s,m),p=s,s=m,m=p,--r<0&&(r=this.DB-1,--g)}var y=o.revert(s);return n(null,y),y},l.ZERO=w(0),l.ONE=w(1);var S=/^[89a-f]/i,E=function(){function e(e){this.N=new u("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",16),this.g=new u("2",16),this.k=new u(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=s.hp.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,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},t.generateRandomSmallA=function(){var e=v(128).toString("hex");return new u(e,16)},t.generateRandomString=function(){return v(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 i=this;this.randomPassword=this.generateRandomString();var r=""+e+t+":"+this.randomPassword,s=this.hash(r),o=v(16).toString("hex");this.SaltToHashDevices=this.padHex(new u(o,16)),this.g.modPow(new u(this.hexHash(this.SaltToHashDevices+s),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},t.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(u.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},t.calculateU=function(e,t){return this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t)),new u(this.UHexHash,16)},t.hash=function(e){var t=new c.Sha256;t.update(e);var n=t.digestSync(),i=s.hp.from(n).toString("hex");return new Array(64-i.length).join("0")+i},t.hexHash=function(e){return this.hash(s.hp.from(e,"hex"))},t.computehkdf=function(e,t){var n=s.hp.concat([this.infoBits,s.hp.from(String.fromCharCode(1),"utf8")]),i=new c.Sha256(t);i.update(e);var r=i.digestSync(),o=new c.Sha256(r);return o.update(n),o.digestSync().slice(0,16)},t.getPasswordAuthenticationKey=function(e,t,n,i,r){var o=this;if(n.mod(this.N).equals(u.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(u.ZERO))throw new Error("U cannot be zero.");var a=""+this.poolName+e+":"+t,c=this.hash(a),l=new u(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&r(e,null);var n=o.computehkdf(s.hp.from(o.padHex(t),"hex"),s.hp.from(o.padHex(o.UValue),"hex"));r(null,n)})},t.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(r,s){r&&n(r,null),t.subtract(i.k.multiply(s)).modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},t.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return"userAttributes."},t.padHex=function(e){if(!(e instanceof u))throw new Error("Not a BigInteger");var t=e.compareTo(u.ZERO)<0,n=e.abs().toString(16);if(n=n.length%2!=0?"0"+n:n,n=S.test(n)?"00"+n:n,t){var i=n.split("").map(function(e){var t=15&~parseInt(e,16);return"0123456789ABCDEF".charAt(t)}).join("");(n=new u(i,16).add(u.ONE).toString(16)).toUpperCase().startsWith("FF8")&&(n=n.substring(2))}return n},e}(),I=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(s.hp.from(e,"base64").toString("utf8"))}catch(e){return{}}},e}();function T(e,t){return T=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},T(e,t)}var R=function(e){function t(t){var n=(void 0===t?{}:t).AccessToken;return e.call(this,n||"")||this}var n,i;return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,T(n,i),t}(I);function U(e,t){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},U(e,t)}var D=function(e){function t(t){var n=(void 0===t?{}:t).IdToken;return e.call(this,n||"")||this}var n,i;return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,U(n,i),t}(I),P="aws-amplify/5.0.4",C="undefined"!=typeof navigator&&"ReactNative"===navigator.product,k=function(){function e(e){var t=(void 0===e?{}:e).RefreshToken;this.token=t||""}return e.prototype.getToken=function(){return this.token},e}(),N=function(){function e(e){var t=void 0===e?{}:e,n=t.IdToken,i=t.RefreshToken,r=t.AccessToken,s=t.ClockDrift;if(null==r||null==n)throw new Error("Id token and Access Token must be present.");this.idToken=n,this.refreshToken=i,this.accessToken=r,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}(),L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],O=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],M=function(){function e(){}return e.prototype.getNowString=function(){var e=new Date,t=O[e.getUTCDay()],n=L[e.getUTCMonth()],i=e.getUTCDate(),r=e.getUTCHours();r<10&&(r="0"+r);var s=e.getUTCMinutes();s<10&&(s="0"+s);var o=e.getUTCSeconds();return o<10&&(o="0"+o),t+" "+n+" "+i+" "+r+":"+s+":"+o+" UTC "+e.getUTCFullYear()},e}(),V=function(){function e(e){var t=void 0===e?{}:e,n=t.Name,i=t.Value;this.Name=n||"",this.Value=i||""}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}(),x={},F=function(){function e(){}return e.setItem=function(e,t){return x[e]=t,x[e]},e.getItem=function(e){return Object.prototype.hasOwnProperty.call(x,e)?x[e]:void 0},e.removeItem=function(e){return delete x[e]},e.clear=function(){return x={}},e}(),q=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=F}}return e.prototype.getStorage=function(){return this.storageWindow},e}(),B="undefined"!=typeof navigator?C?"react-native":navigator.userAgent:"nodejs",$=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 q).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,i=e.getAuthParameters();i.USERNAME=this.username;var r=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),s={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:r};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",s,function(e,i){if(e)return t.onFailure(e);var r=i.ChallengeName,s=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===r?(n.Session=i.Session,t.customChallenge(s)):(n.signInUserSession=n.getCognitoUserSession(i.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,i,r=this,o=new E(this.pool.getUserPoolName()),a=new M,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,o.getLargeAValue(function(h,d){h&&t.onFailure(h),l.SRP_A=d.toString(16),"CUSTOM_AUTH"===r.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A");var f=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),p={AuthFlow:r.authenticationFlowType,ClientId:r.pool.getClientId(),AuthParameters:l,ClientMetadata:f};r.getUserContextData(r.username)&&(p.UserContextData=r.getUserContextData(r.username)),r.client.request("InitiateAuth",p,function(l,h){if(l)return t.onFailure(l);var d=h.ChallengeParameters;r.username=d.USER_ID_FOR_SRP,r.userDataKey=r.keyPrefix+"."+r.username+".userData",n=new u(d.SRP_B,16),i=new u(d.SALT,16),r.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(r.username,e.getPassword(),n,i,function(e,n){e&&t.onFailure(e);var i=a.getNowString(),u=s.hp.concat([s.hp.from(r.pool.getUserPoolName(),"utf8"),s.hp.from(r.username,"utf8"),s.hp.from(d.SECRET_BLOCK,"base64"),s.hp.from(i,"utf8")]),l=new c.Sha256(n);l.update(u);var p=l.digestSync(),g=s.hp.from(p).toString("base64"),_={};_.USERNAME=r.username,_.PASSWORD_CLAIM_SECRET_BLOCK=d.SECRET_BLOCK,_.TIMESTAMP=i,_.PASSWORD_CLAIM_SIGNATURE=g,null!=r.deviceKey&&(_.DEVICE_KEY=r.deviceKey);var m=function(e,t){return r.client.request("RespondToAuthChallenge",e,function(n,i){return n&&"ResourceNotFoundException"===n.code&&-1!==n.message.toLowerCase().indexOf("device")?(_.DEVICE_KEY=null,r.deviceKey=null,r.randomPassword=null,r.deviceGroupKey=null,r.clearCachedDeviceKeyAndPassword(),m(e,t)):t(n,i)})},y={ChallengeName:"PASSWORD_VERIFIER",ClientId:r.pool.getClientId(),ChallengeResponses:_,Session:h.Session,ClientMetadata:f};r.getUserContextData()&&(y.UserContextData=r.getUserContextData()),m(y,function(e,n){return e?t.onFailure(e):r.authenticateUserInternal(n,o,t)})})})})},t.authenticateUserPlainUsernamePassword=function(e,t){var n=this,i={};if(i.USERNAME=this.username,i.PASSWORD=e.getPassword(),i.PASSWORD){var r=new E(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(i.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:i,ClientMetadata:s};this.getUserContextData(this.username)&&(o.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",o,function(e,i){return e?t.onFailure(e):n.authenticateUserInternal(i,r,t)})}else t.onFailure(new Error("PASSWORD parameter is required"))},t.authenticateUserInternal=function(e,t,n){var i=this,r=e.ChallengeName,o=e.ChallengeParameters;if("SMS_MFA"===r)return this.Session=e.Session,n.mfaRequired(r,o);if("SELECT_MFA_TYPE"===r)return this.Session=e.Session,n.selectMFAType(r,o);if("MFA_SETUP"===r)return this.Session=e.Session,n.mfaSetup(r,o);if("SOFTWARE_TOKEN_MFA"===r)return this.Session=e.Session,n.totpRequired(r,o);if("CUSTOM_CHALLENGE"===r)return this.Session=e.Session,n.customChallenge(o);if("NEW_PASSWORD_REQUIRED"===r){this.Session=e.Session;var a=null,c=null,u=[],l=t.getNewPasswordRequiredChallengeUserAttributePrefix();if(o&&(a=JSON.parse(e.ChallengeParameters.userAttributes),c=JSON.parse(e.ChallengeParameters.requiredAttributes)),c)for(var h=0;h<c.length;h++)u[h]=c[h].substr(l.length);return n.newPasswordRequired(a,u)}if("DEVICE_SRP_AUTH"===r)return this.Session=e.Session,void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.challengeName=r,this.cacheTokens();var d=e.AuthenticationResult.NewDeviceMetadata;if(null==d)return n.onSuccess(this.signInUserSession);t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(r){if(r)return n.onFailure(r);var o={Salt:s.hp.from(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:s.hp.from(t.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=o.PasswordVerifier,i.deviceGroupKey=d.DeviceGroupKey,i.randomPassword=t.getRandomPassword(),i.client.request("ConfirmDevice",{DeviceKey:d.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:o,DeviceName:B},function(t,r){return t?n.onFailure(t):(i.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),!0===r.UserConfirmationNecessary?n.onSuccess(i.signInUserSession,r.UserConfirmationNecessary):n.onSuccess(i.signInUserSession))})})},t.completeNewPasswordChallenge=function(e,t,n,i){var r=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new E(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 c={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:a,Session:this.Session,ClientMetadata:i};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(e,t){return e?n.onFailure(e):r.authenticateUserInternal(t,s,n)})},t.getDeviceResponse=function(e,t){var n=this,i=new E(this.deviceGroupKey),r=new M,o={};o.USERNAME=this.username,o.DEVICE_KEY=this.deviceKey,i.getLargeAValue(function(a,l){a&&e.onFailure(a),o.SRP_A=l.toString(16);var h={ChallengeName:"DEVICE_SRP_AUTH",ClientId:n.pool.getClientId(),ChallengeResponses:o,ClientMetadata:t,Session:n.Session};n.getUserContextData()&&(h.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",h,function(t,o){if(t)return e.onFailure(t);var a=o.ChallengeParameters,l=new u(a.SRP_B,16),h=new u(a.SALT,16);i.getPasswordAuthenticationKey(n.deviceKey,n.randomPassword,l,h,function(t,i){if(t)return e.onFailure(t);var u=r.getNowString(),l=s.hp.concat([s.hp.from(n.deviceGroupKey,"utf8"),s.hp.from(n.deviceKey,"utf8"),s.hp.from(a.SECRET_BLOCK,"base64"),s.hp.from(u,"utf8")]),h=new c.Sha256(i);h.update(l);var d=h.digestSync(),f=s.hp.from(d).toString("base64"),p={};p.USERNAME=n.username,p.PASSWORD_CLAIM_SECRET_BLOCK=a.SECRET_BLOCK,p.TIMESTAMP=u,p.PASSWORD_CLAIM_SIGNATURE=f,p.DEVICE_KEY=n.deviceKey;var g={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:p,Session:o.Session};n.getUserContextData()&&(g.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",g,function(t,i){return t?e.onFailure(t):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),e.onSuccess(n.signInUserSession))})})})})},t.confirmRegistration=function(e,t,n,i){var r={ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t,ClientMetadata:i};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",r,function(e){return e?n(e,null):n(null,"SUCCESS")})},t.sendCustomChallengeAnswer=function(e,t,n){var i=this,r={};r.USERNAME=this.username,r.ANSWER=e;var s=new E(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(r.DEVICE_KEY=this.deviceKey);var o={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:r,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):i.authenticateUserInternal(n,s,t)})},t.sendMFACode=function(e,t,n,i){var r=this,o={};o.USERNAME=this.username,o.SMS_MFA_CODE=e;var a=n||"SMS_MFA";"SOFTWARE_TOKEN_MFA"===a&&(o.SOFTWARE_TOKEN_MFA_CODE=e),null!=this.deviceKey&&(o.DEVICE_KEY=this.deviceKey);var c={ChallengeName:a,ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:i};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(e,n){if(e)return t.onFailure(e);if("DEVICE_SRP_AUTH"!==n.ChallengeName){if(r.signInUserSession=r.getCognitoUserSession(n.AuthenticationResult),r.cacheTokens(),null==n.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(r.signInUserSession);var i=new E(r.pool.getUserPoolName());i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(e){if(e)return t.onFailure(e);var o={Salt:s.hp.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:s.hp.from(i.getVerifierDevices(),"hex").toString("base64")};r.verifierDevices=o.PasswordVerifier,r.deviceGroupKey=n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,r.randomPassword=i.getRandomPassword(),r.client.request("ConfirmDevice",{DeviceKey:n.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:r.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:o,DeviceName:B},function(e,i){return e?t.onFailure(e):(r.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,r.cacheDeviceKeyAndPassword(),!0===i.UserConfirmationNecessary?t.onSuccess(r.signInUserSession,i.UserConfirmationNecessary):t.onSuccess(r.signInUserSession))})})}else r.getDeviceResponse(t)})},t.changePassword=function(e,t,n,i){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:i},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 i=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,n){return e?t(e,null):i.getUserData(function(){return t(null,"SUCCESS",n)},{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 i=[],r=0;r<n.UserAttributes.length;r++){var s={Name:n.UserAttributes[r].Name,Value:n.UserAttributes[r].Value},o=new V(s);i.push(o)}return e(null,i)})},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 i=t.signInUserSession.getRefreshToken();i&&i.getToken()?t.refreshSession(i,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 i=this.getUserDataFromCache();if(i)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(i))}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,i=n+".idToken",r=n+".accessToken",s=n+".refreshToken",o=n+".clockDrift";if(this.storage.getItem(i)){var a=new D({IdToken:this.storage.getItem(i)}),c=new R({AccessToken:this.storage.getItem(r)}),u=new k({RefreshToken:this.storage.getItem(s)}),l=parseInt(this.storage.getItem(o),0)||0,h=new N({IdToken:a,AccessToken:c,RefreshToken:u,ClockDrift:l});if(h.isValid())return this.signInUserSession=h,e(null,this.signInUserSession);if(!u.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(u,e,t.clientMetadata)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},t.refreshSession=function(e,t,n){var i=this,r=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 c=o+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(c),s.DEVICE_KEY=this.deviceKey}var u={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:s,ClientMetadata:n};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",u,function(t,n){if(t)return"NotAuthorizedException"===t.code&&i.clearCachedUser(),r(t,null);if(n){var s=n.AuthenticationResult;return Object.prototype.hasOwnProperty.call(s,"RefreshToken")||(s.RefreshToken=e.getToken()),i.signInUserSession=i.getCognitoUserSession(s),i.cacheTokens(),r(null,i.signInUserSession)}})},t.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",r=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(i,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(r,""+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",i=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(i,this.deviceGroupKey)},t.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(i))},t.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i)},t.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",r=e+".LastAuthUser",s=e+"."+this.username+".clockDrift";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i),this.storage.removeItem(r),this.storage.removeItem(s)},t.getCognitoUserSession=function(e){var t=new D(e),n=new R(e),i=new k(e);return new N({IdToken:t,AccessToken:n,RefreshToken:i})},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,i){var r={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t,ClientMetadata:i};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",r,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 i={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e};t&&(i.PaginationToken=t),this.client.request("ListDevices",i,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,i){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,i={};i.USERNAME=this.username,i.ANSWER=e;var r={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",r,function(i,r){return i?t.onFailure(i):(n.Session=r.Session,"SMS_MFA"===e?t.mfaRequired(r.ChallengeName,r.ChallengeParameters):"SOFTWARE_TOKEN_MFA"===e?t.totpRequired(r.ChallengeName,r.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,i){return n?e.onFailure(n):(t.Session=i.Session,e.associateSecretCode(i.SecretCode))})},t.verifySoftwareToken=function(e,t,n){var i=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);i.Session=t.Session;var r={};r.USERNAME=i.username;var s={ChallengeName:"MFA_SETUP",ClientId:i.pool.getClientId(),ChallengeResponses:r,Session:i.Session};i.getUserContextData()&&(s.UserContextData=i.getUserContextData()),i.client.request("RespondToAuthChallenge",s,function(e,t){return e?n.onFailure(e):(i.signInUserSession=i.getCognitoUserSession(t.AuthenticationResult),i.cacheTokens(),n.onSuccess(i.signInUserSession))})})},e}();function j(){}function K(e){var t="function"==typeof Map?new Map:void 0;return K=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;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,n)}function n(){return function(e,t,n){if(H())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(e.bind.apply(e,i));return n&&J(r,n.prototype),r}(e,arguments,Q(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),J(n,e)},K(e)}function H(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(H=function(){return!!e})()}function J(e,t){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},J(e,t)}function Q(e){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Q(e)}n(916),j.prototype.userAgent=P;var z=function(e){function t(t,n,i,r){var s;return(s=e.call(this,t)||this).code=n,s.name=i,s.statusCode=r,s}return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,J(n,i),t;var n,i}(K(Error)),G=function(){function e(e,t,n){this.endpoint=t||"https://cognito-idp."+e+".amazonaws.com/";var i=(n||{}).credentials;this.fetchOptions=i?{credentials:i}:{}}var t=e.prototype;return t.promisifyRequest=function(e,t){var n=this;return new Promise(function(i,r){n.request(e,t,function(e,t){e?r(new z(e.message,e.code,e.name,e.statusCode)):i(t)})})},t.requestWithRetry=function(e,t,n){var i,r,s=this;(i=[t],r=5e3,void 0===r&&(r=X),Z(function(t){return new Promise(function(n,i){s.request(e,t,function(e,t){e?i(e):n(t)})})},i,function(e){return function(t){var n=100*Math.pow(2,t)+100*Math.random();return!(n>e)&&n}}(r))).then(function(e){return n(null,e)}).catch(function(e){return n(e)})},t.request=function(e,t,n){var i,r,s,o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+e,"X-Amz-User-Agent":(i=j.category?" "+j.category:"",r=j.framework?" framework/"+j.framework:"",""+j.prototype.userAgent+i+r),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(t)});fetch(this.endpoint,a).then(function(e){return s=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(s.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(s&&s.headers&&s.headers.get("x-amzn-errortype"))try{var t=s.headers.get("x-amzn-errortype").split(":")[0],i=new Error(s.status?s.status.toString():null);return i.code=t,i.name=t,i.statusCode=s.status,n(i)}catch(t){return n(e)}else e instanceof Error&&"Network error"===e.message&&(e.code="NetworkError");return n(e)})},e}(),Y={debug:function(){}},W=function(e){return e&&e.nonRetryable};function Z(e,t,n,i){if(void 0===i&&(i=1),"function"!=typeof e)throw Error("functionToRetry must be a function");return Y.debug(e.name+" attempt #"+i+" with args: "+JSON.stringify(t)),e.apply(void 0,t).catch(function(r){if(Y.debug("error on "+e.name,r),W(r))throw Y.debug(e.name+" non retryable error",r),r;var s=n(i,t,r);if(Y.debug(e.name+" retrying in "+s+" ms"),!1!==s)return new Promise(function(e){return setTimeout(e,s)}).then(function(){return Z(e,t,n,i+1)});throw r})}var X=3e5,ee=function(){function e(e,t){var n=e||{},i=n.UserPoolId,r=n.ClientId,s=n.endpoint,o=n.fetchOptions,a=n.AdvancedSecurityDataCollectionFlag;if(!i||!r)throw new Error("Both UserPoolId and ClientId are required.");if(i.length>55||!/^[\w-]+_[0-9a-zA-Z]+$/.test(i))throw new Error("Invalid UserPoolId format.");var c=i.split("_")[0];this.userPoolId=i,this.clientId=r,this.client=new G(c,s,o),this.advancedSecurityDataCollectionFlag=!1!==a,this.storage=e.Storage||(new q).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,i,r,s){var o=this,a={ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:i,ClientMetadata:s};this.getUserContextData(e)&&(a.UserContextData=this.getUserContextData(e)),this.client.request("SignUp",a,function(t,n){if(t)return r(t,null);var i={Username:e,Pool:o,Storage:o.storage},s={user:new $(i),userConfirmed:n.UserConfirmed,userSub:n.UserSub,codeDeliveryDetails:n.CodeDeliveryDetails};return r(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 $(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(596);class te extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let t=2;t<e.length&&"string"==typeof e[t];t++)n+=e[t];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause)}else super((e?.message||("string"==typeof e?e:"Something went wrong.")).trim()),"string"==typeof e?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):"object"==typeof e&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause)}}class ne{static hash(e){"string"!=typeof e&&(console.warn("coercing non-string value to empty string"),e="");const t=ne.sb(e);let n,i,r,s,o=1732584193,a=-271733879,c=-1732584194,u=271733878;for(let e=0;e<t.length;e+=16)n=o,i=a,r=c,s=u,o=ne.ff(o,a,c,u,t[e],7,-680876936),u=ne.ff(u,o,a,c,t[e+1],12,-389564586),c=ne.ff(c,u,o,a,t[e+2],17,606105819),a=ne.ff(a,c,u,o,t[e+3],22,-1044525330),o=ne.ff(o,a,c,u,t[e+4],7,-176418897),u=ne.ff(u,o,a,c,t[e+5],12,1200080426),c=ne.ff(c,u,o,a,t[e+6],17,-1473231341),a=ne.ff(a,c,u,o,t[e+7],22,-45705983),o=ne.ff(o,a,c,u,t[e+8],7,1770035416),u=ne.ff(u,o,a,c,t[e+9],12,-1958414417),c=ne.ff(c,u,o,a,t[e+10],17,-42063),a=ne.ff(a,c,u,o,t[e+11],22,-1990404162),o=ne.ff(o,a,c,u,t[e+12],7,1804603682),u=ne.ff(u,o,a,c,t[e+13],12,-40341101),c=ne.ff(c,u,o,a,t[e+14],17,-1502002290),a=ne.ff(a,c,u,o,t[e+15],22,1236535329),o=ne.gg(o,a,c,u,t[e+1],5,-165796510),u=ne.gg(u,o,a,c,t[e+6],9,-1069501632),c=ne.gg(c,u,o,a,t[e+11],14,643717713),a=ne.gg(a,c,u,o,t[e],20,-373897302),o=ne.gg(o,a,c,u,t[e+5],5,-701558691),u=ne.gg(u,o,a,c,t[e+10],9,38016083),c=ne.gg(c,u,o,a,t[e+15],14,-660478335),a=ne.gg(a,c,u,o,t[e+4],20,-405537848),o=ne.gg(o,a,c,u,t[e+9],5,568446438),u=ne.gg(u,o,a,c,t[e+14],9,-1019803690),c=ne.gg(c,u,o,a,t[e+3],14,-187363961),a=ne.gg(a,c,u,o,t[e+8],20,1163531501),o=ne.gg(o,a,c,u,t[e+13],5,-1444681467),u=ne.gg(u,o,a,c,t[e+2],9,-51403784),c=ne.gg(c,u,o,a,t[e+7],14,1735328473),a=ne.gg(a,c,u,o,t[e+12],20,-1926607734),o=ne.hh(o,a,c,u,t[e+5],4,-378558),u=ne.hh(u,o,a,c,t[e+8],11,-2022574463),c=ne.hh(c,u,o,a,t[e+11],16,1839030562),a=ne.hh(a,c,u,o,t[e+14],23,-35309556),o=ne.hh(o,a,c,u,t[e+1],4,-1530992060),u=ne.hh(u,o,a,c,t[e+4],11,1272893353),c=ne.hh(c,u,o,a,t[e+7],16,-155497632),a=ne.hh(a,c,u,o,t[e+10],23,-1094730640),o=ne.hh(o,a,c,u,t[e+13],4,681279174),u=ne.hh(u,o,a,c,t[e],11,-358537222),c=ne.hh(c,u,o,a,t[e+3],16,-722521979),a=ne.hh(a,c,u,o,t[e+6],23,76029189),o=ne.hh(o,a,c,u,t[e+9],4,-640364487),u=ne.hh(u,o,a,c,t[e+12],11,-421815835),c=ne.hh(c,u,o,a,t[e+15],16,530742520),a=ne.hh(a,c,u,o,t[e+2],23,-995338651),o=ne.ii(o,a,c,u,t[e],6,-198630844),u=ne.ii(u,o,a,c,t[e+7],10,1126891415),c=ne.ii(c,u,o,a,t[e+14],15,-1416354905),a=ne.ii(a,c,u,o,t[e+5],21,-57434055),o=ne.ii(o,a,c,u,t[e+12],6,1700485571),u=ne.ii(u,o,a,c,t[e+3],10,-1894986606),c=ne.ii(c,u,o,a,t[e+10],15,-1051523),a=ne.ii(a,c,u,o,t[e+1],21,-2054922799),o=ne.ii(o,a,c,u,t[e+8],6,1873313359),u=ne.ii(u,o,a,c,t[e+15],10,-30611744),c=ne.ii(c,u,o,a,t[e+6],15,-1560198380),a=ne.ii(a,c,u,o,t[e+13],21,1309151649),o=ne.ii(o,a,c,u,t[e+4],6,-145523070),u=ne.ii(u,o,a,c,t[e+11],10,-1120210379),c=ne.ii(c,u,o,a,t[e+2],15,718787259),a=ne.ii(a,c,u,o,t[e+9],21,-343485551),o=ne.ad(o,n),a=ne.ad(a,i),c=ne.ad(c,r),u=ne.ad(u,s);return ne.rh(o)+ne.rh(a)+ne.rh(c)+ne.rh(u)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=ne.alphabet.charAt(e>>8*n+4&15)+ne.alphabet.charAt(e>>8*n&15);return t}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,t,n,i,r,s){return ne.ad(ne.rl(ne.ad(ne.ad(t,e),ne.ad(i,s)),r),n)}static ff(e,t,n,i,r,s,o){return ne.cm(t&n|~t&i,e,t,r,s,o)}static gg(e,t,n,i,r,s,o){return ne.cm(t&i|n&~i,e,t,r,s,o)}static hh(e,t,n,i,r,s,o){return ne.cm(t^n^i,e,t,r,s,o)}static ii(e,t,n,i,r,s,o){return ne.cm(n^(t|~i),e,t,r,s,o)}static sb(e){let t;const n=1+(e.length+8>>6),i=new Array(16*n);for(t=0;t<16*n;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[16*n-2]=8*e.length,i}}function ie(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}function re(e){return e.split("").reverse().reduce((e,t,n)=>e+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(t)*62**n,0)}function se(e=6){let t="";let n=0;for(;n<e;)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random())),n+=1;return t}function oe(e,t,n){let i={},r=[];function s(e){let t;try{t=JSON.stringify(e)}catch(e){throw new te("Invalid data type.",{code:"INVALID_REQUEST"})}return new Blob([t]).size}function o(e,i,r){if(t?.ignoreEmpty&&""===r)return;if(t?.nullIfEmpty&&""===r&&(r=null),"function"==typeof n){let e=n(i,r);void 0!==e&&(r=e)}let s=i.split("[").map(e=>{let t=e.replace("]",""),n=Number(t);return isNaN(n)||t.includes(".")?('"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1])&&(t=t.replace(/"/g,"").replace(/'/g,"")):t=n,t}),o=e;if("number"==typeof s[0])throw new te("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let e=0;e<s.length;e++){let t=s[e];if(e<s.length-1){if(void 0===o[t]){let n=s[e+1];o[t]="number"==typeof n?[]:{}}o=o[t]}else void 0===o[t]?o[t]=r:Array.isArray(o[t])?o[t].push(r):o[t]=[o[t],r]}}function a(e,t,n){if(n instanceof File)e.push({name:t,file:n});else if(n instanceof FileList&&n&&n.length>0)for(let i=0;i<=n.length-1;i++){let r=n.item(i);r&&e.push({name:t,file:r})}}let c=e=>{e.name&&("number"===e.type?e.value&&o(i,e.name,Number(e.value)):"checkbox"===e.type||"radio"===e.type?e.checked?""===e.value&&"checkbox"===e.type||"on"===e.value||"true"===e.value?o(i,e.name,!0):"false"===e.value?o(i,e.name,!1):e.value&&o(i,e.name,e.value):"checkbox"===e.type&&(""===e.value||"on"===e.value||"true"===e.value?o(i,e.name,!1):"false"===e.value&&o(i,e.name,!0)):"file"===e.type?e.files&&e.files.length>0&&a(r,e.name,e.files):o(i,e.name,e.value))};if(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement){if(c(e),s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(e instanceof FormData){for(let t of e.entries()){let e=t[0],n=t[1];if(n instanceof File||n instanceof FileList)a(r,e,n);else if(n instanceof Blob){let t=n;if("application/json"===t.type)try{let n=JSON.parse(t.text());o(i,e,n)}catch(n){o(i,e,t)}}else o(i,e,n)}if(s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(e instanceof SubmitEvent&&(e=e.target),e instanceof HTMLFormElement){let t=e.querySelectorAll("input"),n=e.querySelectorAll("select"),a=e.querySelectorAll("textarea");for(let e=0;e<n.length;e++){let t=n[e];t.name&&o(i,t.name,t.value)}for(let e=0;e<a.length;e++){let t=a[e];t.name&&o(i,t.name,t.value)}for(let e=0;e<t.length;e++)c(t[e]);if(s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(s(e)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:e,files:r}}function ae(e){let t={};for(let n in e){let i=e[n],r={auth_time:"log",sub:"user_id"};if(!["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"].includes(n))if(r[n])t[r[n]]=i;else if(n.includes("custom:"))t[n.replace("custom:","")]=i;else if("address"===n){let e=i;if(e&&"object"==typeof e&&Object.keys(e).length){if(e?.formatted)try{t[n]=JSON.parse(e.formatted)}catch(i){t[n]=e.formatted}}else t[n]=e}else t[n]=i}for(let e of["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])e.includes("_public")?t.hasOwnProperty(e.split("_")[0])?t[e]=!!t.hasOwnProperty(e)&&!!Number(t[e]):delete t[e]:t[e]=t.hasOwnProperty(e)?Number(t[e]):0;for(let e of["email","phone_number"])t.hasOwnProperty(e)?t[e+"_verified"]=!0===t[e+"_verified"]:delete t[e+"_verified"];return t}function ce(e,t,n=[],i=null){function r(e){return e&&"object"==typeof e&&!Array.isArray(e)&&Object.keys(e).length}function s(e){return Array.isArray(e)&&e.length}if(null===i&&!r(t))throw'Argument "struct" is required.';let o=null!==i?` in key "${i}" is invalid.`:". Parameter should be type <object>.";if(s(t)){let r="";t.forEach(e=>{["string","number","boolean","object","array"].includes(e)?r+=`Type<${e}>, `:"function"!=typeof e&&(r+=JSON.stringify(e,null,2)+", ")}),r=r?" Should be: "+r.slice(0,-2):"";let s,a=!1,c="";for(let r of t)try{s=ce(e,r,n,i),a=!0;break}catch(e){c="function"==typeof r?e?.message||e:"",a=!1}if(!a)throw c||`Invalid type "${typeof e}"${o}${r}.`;return s}if(r(e)){if(r(t))for(let r in t){let o=(null===i?"":i)+(null!==i?"["+r+"]":r);if(!e.hasOwnProperty(r)){if(n.includes(o))throw`Key "${o}" is required.`;s(t[r])&&"function"==typeof t[r][t[r].length-1]&&(e[r]=t[r][t[r].length-1]())}}if("object"===t)return e;if("function"==typeof t)return t(e);for(let r in e){let o=(null===i?"":i)+(null!==i?"["+r+"]":r);if(s(t)||t.hasOwnProperty(r))if(s(e[r])){if("array"===t[r])continue;if("function"==typeof t[r]){e[r]=t[r](e[r]);continue}for(let i=0;i<e[r].length;i++)e[r][i]=ce(e[r][i],t[r],n,o+`[${i}]`)}else e[r]=ce(e[r],t[r],n,o)}return e}if("function"==typeof t)return t(e);if("array"===t&&Array.isArray(e)||t===typeof e||e===t)return e;if(null==e||(a=e)&&"object"==typeof a&&!Array.isArray(a)&&!Object.keys(a).length)return e;var a;throw`Invalid type "${typeof e}"${o} Should be: ${["string","number","boolean","object","array"].includes(t)?`Type<${t}>`:JSON.stringify(t,null,2)}`}ne.alphabet="0123456789abcdef";const ue={UserId:function(e,t="User ID"){if(!e)throw new te(`${t} is empty.`,{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te(`${t} should be type: string.`,{code:"INVALID_PARAMETER"});if(!e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i))throw new te(`${t} is invalid.`,{code:"INVALID_PARAMETER"});return e},PhoneNumber:function(e){if(e&&("string"!=typeof e||"+"!==e.charAt(0)||isNaN(Number(e.substring(1)))))throw new te('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return e||""},Birthdate:function(e){if(e){if("string"!=typeof e)throw new te('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let t=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(10!==e.length||3!==e.split("-").length||!t.test(e))throw new te('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return e||""},Password:function(e){if(!e)throw new te('"password" is required.',{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(e.length<6)throw new te('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(e.length>60)throw new te('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"});return e},Email:function(e,t="email"){if(!e)throw new te(`"${t}" is required.`,{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te(`"${t}"should be type: string.`,{code:"INVALID_PARAMETER"});if(e.length<5)throw new te(`"${t}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(e)&&(e=e.trim()).split("@")[1].split(".").length>=2)return e.toLowerCase();throw new te(`"${e}" is an invalid email.`,{code:"INVALID_PARAMETER"})},Url:function(e){const t=(()=>{let e=location.origin||null;return e&&"/"===e.slice(-1)&&(e=e.slice(0,-1)),e})();let n=e=>{if("string"==typeof e){if("*"===e)return"*";{let n,i=e.trim();if("/"===i[0]&&t){if("file:"===t.slice(0,5))throw new te(`"${e}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});i=t+i}else if("."===i[0]&&t){if("file:"===t.slice(0,5))throw new te(`"${e}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let n=location.href.split("?")[0];"/"!==n.slice(-1)&&(n+="/"),i=n+i.slice(1)}try{n=new URL(i)}catch(t){throw new te(`"${e}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(n.protocol)return n.href}}throw new te(`"${e}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(e)?e.map(e=>n(e)):n(e)},specialChars:function(e,t="parameter",n=!1,i=!1){let r=e=>{if("string"!=typeof e)throw new te(`${t} should be type: <string | string[]>.`,{code:"INVALID_PARAMETER"});if(!i&&e.includes(" "))throw new te(`${t} should not have whitespace.`,{code:"INVALID_PARAMETER"});if(!n&&e.includes("."))throw new te(`${t} should not have periods.`,{code:"INVALID_PARAMETER"});if(/[!#$%&*()+\-{};'"|,<>\/~]/.test(e))throw new te(`${t} should not have special characters. Allowed special characters are: [ ] ^ _ \` : ; < = > ? @`,{code:"INVALID_PARAMETER"})};if(Array.isArray(e))for(let t of e)r(t);else r(e);return e},Params:function(e,t,n=[],i){let r=oe(e,i).data;t.service="string",t.owner="string";let s={};for(let e in t)if(r&&"object"==typeof r&&!Array.isArray(r)&&r.hasOwnProperty(e))if("function"==typeof r[e])s[e]=r[e];else try{s[e]=JSON.parse(JSON.stringify(r[e]))}catch(t){s[e]=r[e]}try{return ce(s,t,n)}catch(e){throw new te(e,{code:"INVALID_PARAMETER"})}},checkParams:ce};let le=null;function he(e){let t={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},n={};for(let i in e)if("tkid"===i){let t=e[i].split("#");if(1===t.length){n.ticket_id=t[0];continue}n.ticket_id=t[1],n.consume_id=t[2],n.user_id=t[3];let r=t[2].slice(-4);if(n.is_test=":CHK"===r,!e.stmp){let e=t[2].slice(0,-4);/^[0-9]+$/.test(e)?n.timestamp=parseInt(e,10):n.timestamp=re(t[2].slice(0,-4))}}else t[i]?n[t[i]]=e[i]:n[i]=e[i];return n}async function de(e){if(!e.ticket_id)throw new te("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!e.method)throw new te('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let t=e.ticket_id;return await this.__connection,he(await Ge.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${t}`,e?.data||{},{method:e.method,auth:!!e?.auth}))}async function fe(e,t){await this.__connection;let n=await Ge.bind(this)("ticket",Object.assign({exec:"list"},e||{}),{auth:!0,fetchOptions:t});return n.list=n.list.map(he),n}async function pe(e,t){await this.__connection;let n=await Ge.bind(this)("ticket",Object.assign({exec:"consumed"},e||{}),{auth:!0,fetchOptions:t});return n.list=n.list.map(he),n}async function ge(e){return Ge.bind(this)("register-ticket",Object.assign({exec:"reg"},e),{auth:!0})}async function _e(e){return Ge.bind(this)("register-ticket",Object.assign({exec:"unreg"},e),{auth:!0})}async function me(){if(await this.__connection,this.session){const e=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:e,expiresIn:t-e,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token}),t<e){this.log("request:requesting new token",null);try{await we.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session.idToken.payload.exp,currentTime:e,expiresIn:t-e,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token})}catch(e){throw this.log("request:new token error",e),new te("User login is required.",{code:"INVALID_REQUEST"})}}return this.session?.idToken?.jwtToken}throw this.log("request:no session",null),Se.bind(this)(),new te("User login is required.",{code:"INVALID_REQUEST"})}function ye(e,t){return new Promise((n,i)=>{t.refreshSession(e.getRefreshToken(),(e,t)=>{this.log("getSession:refreshSessionCallback",{refreshErr:e,refreshedSession:t}),e?(Se.bind(this)(),i(e)):t.isValid()?n(t):(Se.bind(this)(),i(new te("Invalid session.",{code:"INVALID_REQUEST"})))})})}function we(){if(!this.userPool)throw new te("User pool is missing",{code:"INVALID_REQUEST"});const e=()=>{let e=ae(le.getSignInUserSession().getIdToken().payload||null);return this.log("normalized user attribute",e),this.__user=e,e},t=async t=>new Promise((n,i)=>{this.log("getSession:option",t);let{refreshToken:r=!1,skipUserUpdateEventTrigger:s=!1}=t||{};if(r&&s&&(s=!1),le=this.userPool.getCurrentUser(),!le)return this.log("getSession:cognitoUser",le),Se.bind(this)(),void i(null);let o=t=>{let n=t.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",n),n["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),Se.bind(this)(),new te("Invalid session.",{code:"INVALID_REQUEST"});return this.session=t,e(),s||this._runOnUserUpdateListeners(this.user),this.session};le.getSession((e,t)=>{if(this.log("getSession:getSessionCallback",{err:e,session:t}),!t)return Se.bind(this)(),void i(new te("Current session does not exist.",{code:"INVALID_REQUEST"}));if(e)return void ye.bind(this)(t,le).then(e=>n(o(e))).catch(i);const s=Math.floor(Date.now()/1e3),a=t.getIdToken().getExpiration(),c=a<s;if(this.log("getSession:currentTime",s),this.log("getSession:idTokenExp",a),this.log("getSession:isExpired",c),c||r||!t.isValid())ye.bind(this)(t,le).then(e=>n(o(e))).catch(i);else try{n(o(t))}catch(e){i(e)}})}),n=(e,t)=>{let n=t||e.includes(this.service+"-")?e:this.service+"-"+ne.hash(e);return{cognitoUser:new $({Username:n,Pool:this.userPool}),cognitoUsername:n}};return{getSession:t,authenticateUser:(e,i,s=!1,o=!1)=>new Promise((a,c)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let u=n(e,s),l=u.cognitoUsername,h=new r({Username:l,Password:i});u.cognitoUser.authenticateUser(h,{newPasswordRequired:(e,n)=>{this.__disabledAccount=null,this.__request_signup_confirmation=l,"PASS"===e["custom:signup_ticket"]||"MEMBER"===e["custom:signup_ticket"]||"OIDPASS"===e["custom:signup_ticket"]?u.cognitoUser.completeNewPasswordChallenge(i,{},{onSuccess:e=>{le=u.cognitoUser,t().then(e=>a(this.user))},onFailure:e=>{c(new te(e.message||"Failed to authenticate user.",{code:e.code}))}}):c(new te("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}))},onSuccess:e=>t({skipUserUpdateEventTrigger:!0}).then(e=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),a(this.user)}),onFailure:e=>{let t=[e.message||"Failed to authenticate user.",e?.code||"INVALID_REQUEST"];"NotAuthorizedException"===e.code?"User is disabled."===e.message?(this.__disabledAccount=l,t=["This account is disabled.","USER_IS_DISABLED"]):t=o?["The account already exists.","ACCOUNT_EXISTS"]:["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotFoundException"===e.code?t=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotConfirmedException"===e.code?(this.__request_signup_confirmation=l,t=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):"TooManyRequestsException"!==e.code&&"LimitExceededException"!==e.code||(t=["Too many attempts. Please try again later.","REQUEST_EXCEED"]);let n=t[1],i=t[0],r=t[0].split("#");if(r.length>1&&(r=r[r.length-1].split(":"),n=r[0],i=r[1],"CONFIRM_REQUIRED"===n))return this.__request_signup_confirmation=l,void c(new te("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));c(new te(i,{code:n,cause:e}))}})}),createCognitoUser:n,signup:(e,t,n)=>new Promise((i,r)=>{this.userPool.signUp(e,t,n,null,(e,t)=>{e?r(e):i(t)})})}}async function be(e){await this.__authConnection;try{return await we.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!0},e)),this.user}catch(e){return null}}async function Ae(e){await this.__connection,e=ue.Params(e,{token:"string",id:"string",merge:e=>{if(void 0===e)return!1;if("string"==typeof e)return[e];if(Array.isArray(e))for(let t of e)if("string"!=typeof t)throw new te('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"});if("boolean"!=typeof e&&!Array.isArray(e))throw new te('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return e}});let t=await Ge.bind(this)("openid-logger",e),n=t.logger.split("#"),i=this.service+"-"+n[0],r=n[1];return{userProfile:await we.bind(this)().authenticateUser(i,r,!0,!0),openid:t.openid}}async function ve(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Ee.bind(this)(),!1)}async function Se(e=!1){let t=null;le&&(e?t=new Promise((e,t)=>{le.globalSignOut({onSuccess:t=>{this.log("globalSignOut:success",t),e(t)},onFailure:e=>{this.log("globalSignOut:error",e),t(e)}})}):le.signOut());let n={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};t&&(t=await t);for(let e in n)this[e]=n[e];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),t}async function Ee(e){await this.__connection;let{data:t}=oe(e);return await Se.bind(this)(t?.global),"SUCCESS: The user has been logged out."}async function Ie(){if(!this.__request_signup_confirmation)throw new te("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await Ge.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function Te(e=!1){if("string"==typeof e)e=ue.Url(e);else if("boolean"!=typeof e)throw new te("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new te("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await Ge.bind(this)("recover-account",{username:this.__disabledAccount,redirect:e}),"SUCCESS: Recovery e-mail has been sent."}async function Re(e){let t=ue.Params(e,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,t.email)try{ue.Email(t.email)}catch(e){t.username=t.email,delete t.email}if(!t.username&&!t.email)throw new te('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await we.bind(this)().authenticateUser(t.username||t.email,t.password)}async function Ue(e,t){await this.__authConnection;let n={username:"string",password:e=>ue.Password(e),email:e=>ue.Email(e),name:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",gender:"string",birthdate:e=>e?ue.Birthdate(e):"",phone_number:e=>e?ue.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",picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:e=>e?ue.Url(e):""},i=ue.Params(e||{},n,["email","password"]);await Ee.bind(this)(),t=ue.Params(t||{},{email_subscription:e=>{if("boolean"!=typeof e)throw new te('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!t?.signup_confirmation)throw new te('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return e},signup_confirmation:e=>{let t=e;if("string"==typeof e)t=ue.Url(e);else{if("boolean"!=typeof e)throw new te('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});t=e}if(t&&!i.email)throw new te('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return t},login:e=>{if("boolean"==typeof e){if(t.signup_confirmation&&e)throw new te('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return e}throw new te('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let r=t?.login||!1;if(i.signup_confirmation=t?.signup_confirmation||!1,i.email_subscription=t?.email_subscription||!1,i.email_public&&!i.signup_confirmation)throw new te('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});i.service=this.service,i.owner=this.owner;let s=we.bind(this)().createCognitoUser(i.username||i.email);for(let e of["email_public","address_public","gender_public","birthdate_public","phone_number_public"])i[e]=i[e]?"1":"0";i.access_group&&(i.access_group=i.access_group.toString());let o=(await Ge.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:"boolean"==typeof i.signup_confirmation?JSON.stringify(i.signup_confirmation):i.signup_confirmation,email_subscription:i.email_subscription})).split(":"),a=o.slice(1).join(":"),c=[new V({Name:"custom:signup",Value:o[0]}),new V({Name:"locale",Value:a.split("#")[1]}),new V({Name:"custom:signup_ticket",Value:a})];for(let e in n){let t=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];""!==i[e]&&"username"!==e&&"password"!==e&&"access_group"!==e&&(t.includes(e)?c.push(new V({Name:"custom:"+e,Value:i[e]})):c.push(new V({Name:e,Value:i[e]})))}return await we.bind(this)().signup(s.cognitoUsername,i.password,c),i.signup_confirmation?(le=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):r?Re.bind(this)({email:i.username||i.email,password:i.password}):"SUCCESS: The account has been created."}async function De(){await this.__connection;let e=await Ge.bind(this)("remove-account",{disable:this.__user.user_id},{auth:!0});return await Ee.bind(this)(),e}async function Pe(e){await this.__connection;let t=ue.Params(e,{email:e=>ue.Email(e),code:["number","string"],new_password:e=>ue.Password(e)},["email","code","new_password"]),n=t.code,i=t.new_password;return"number"==typeof n&&(n=n.toString()),new Promise(async(e,r)=>{we.bind(this)().createCognitoUser(t.email).cognitoUser.confirmPassword(n,i,{onSuccess:t=>{e("SUCCESS: New password has been set.")},onFailure:e=>{r(new te(e?.message||"Failed to reset password.",{code:e?.code}))}})})}async function Ce(e,t){let n;if(await this.__connection,!le)throw new te("The user has to be logged in.",{code:"INVALID_REQUEST"});if("email"===e||"phone_number"===e){if(!this.__user.hasOwnProperty(e))throw new te(`No ${"email"===e?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});return this.__user?.[`${e}_verified`]?`SUCCESS: "${e}" is verified.`:(n=(t?ue.Params(t,{code:["string"]}):{}).code||"",new Promise((t,i)=>{let r={onSuccess:r=>{n?we.bind(this)().getSession({refreshToken:!0}).then(()=>{this.__user&&(this.__user[e+"_verified"]=!0),t(`SUCCESS: "${e}" is verified.`)}).catch(e=>{i(e)}):t("SUCCESS: Verification code has been sent.")},onFailure:e=>{i(new te(e.message||"Failed to request verification code.",{code:e?.code}))}};n?le?.verifyAttribute(e,n,r):(r.inputVerificationCode=null,le?.getAttributeVerificationCode(e,r))}))}}function ke(e){return Ce.bind(this)("phone_number",e)}function Ne(e){return Ce.bind(this)("email",e)}async function Le(e){await this.__connection;let t=ue.Params(e,{email:e=>ue.Email(e)},["email"]);return new Promise(async(e,n)=>{we.bind(this)().createCognitoUser(t.email).cognitoUser.forgotPassword({onSuccess:t=>{e("SUCCESS: Verification code has been sent.")},onFailure:e=>{n(new te(e?.message||"Failed to send verification code.",{code:e?.code||"ERROR"}))}})})}async function Oe(e){if(await this.__connection,!this.session)throw new te("User login is required.",{code:"INVALID_REQUEST"});let t=ue.Params(e,{current_password:"string",new_password:"string"});if(!t?.current_password)throw new te('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!t?.new_password)throw new te('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return ue.Password(t.current_password),ue.Password(t.new_password),new Promise((e,n)=>{le.changePassword(t.current_password,t.new_password,(t,i)=>{t&&n("InvalidParameterException"===t?.code?new te("Invalid password parameter.",{code:"INVALID_PARAMETER"}):"NotAuthorizedException"===t?.code?new te("Incorrect password.",{code:"INVALID_REQUEST"}):"TooManyRequestsException"===t?.code||"LimitExceededException"===t?.code?new te("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}):new te(t?.message||"Failed to change user password.",{code:t?.code||t?.name})),e("SUCCESS: Password has been changed.")})})}async function Me(e){if(await this.__connection,!this.session)throw new te("User login is required.",{code:"INVALID_REQUEST"});let t=ue.Params(e||{},{user_id:e=>ue.UserId(e),email:e=>ue.Email(e),address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",name:"string",gender:"string",birthdate:e=>e?ue.Birthdate(e):"",phone_number:e=>e?ue.PhoneNumber(e):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:e=>e?ue.Url(e):""});if(t&&"object"==typeof t&&!Object.keys(t).length)return this.user;t.email&&(t.preferred_username=this.service+"-"+ne.hash(t.email));let n=[["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 e of n)if(t[e[0]]&&!this.__user[e[1]])throw new te(`${e[2]} "${e[0]}" to true.`,{code:"INVALID_REQUEST"});let i=[];for(let e in t)if(t[e]!==this.user[e]){if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(e)){let n=t[e];"boolean"==typeof n&&(n=n?"1":"0"),t["custom:"+e]=n,i.push(e)}}else i.push(e);for(let e of i)delete t[e];if(t.user_id){if(t.user_id!==this.user.user_id)return Ge.bind(this)("admin-edit-profile",{attributes:t},{auth:!0});delete t.user_id}if(t&&"object"==typeof t&&Object.keys(t).length){let e=[];for(let n in t)e.push(new V({Name:n,Value:t[n]}));return await new Promise((t,n)=>{le?.updateAttributes(e,(e,i)=>{e&&n([e?.code||e?.name,e?.message||"Failed to update user settings."]),t(i)})}),await we.bind(this)().getSession({refreshToken:!0}),this.user}return this.user}async function Ve(e,t){(e=oe(e).data)||(e={searchFor:"timestamp",condition:">",value:0},t||(t={}),t.ascending=!1),await this.__connection;const n={user_id:e=>Array.isArray(e)?e.map(e=>ue.UserId(e)):ue.UserId(e),email:"string",phone_number:"string",locale:e=>{if("string"!=typeof e||"string"==typeof e&&e.length>5)throw new te('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return e},name:"string",address:"string",gender:"string",birthdate:e=>ue.Birthdate(e),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"};if(e=ue.Params(e,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:t=>{let i=n[e.searchFor];if("function"==typeof i)return i(t);if(typeof t!==i)throw new te(`Value does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});return t},range:t=>{let i=n[e.searchFor];if("function"==typeof i)return i(t);if(typeof t!==i)throw new te(`Range does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});return t}},["searchFor","value"]),e?.condition&&"="!==e?.condition&&e.hasOwnProperty("range"))throw new te("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if("user_id"===e.searchFor&&("="!==e.condition||e.range))throw new te(`Conditions are not allowed on "${e.searchFor}"`,{code:"INVALID_PARAMETER"});if("string"==typeof e?.value&&!e?.value)throw new te("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if("string"==typeof e?.searchFor&&!e?.searchFor)throw new te('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return Ge.bind(this)("get-users",e,{auth:!0,fetchOptions:t})}async function xe(e){await this.__connection;let t=await Ge.bind(this)("last-verified-email",e,{auth:!0});return t.includes("SUCCESS")?(await we.bind(this)().getSession({refreshToken:!0}),this.user):t}async function Fe(e){return await this.__connection,e=ue.Params(e,{username:ue.Email,redirect:ue.Url},["username"]),await Ge.bind(this)("request-username-change",e,{auth:!0})}const qe=class{version="1.0.12";items=[];breakWhenError=!1;batchSize=1;onProgress;completed=[];runningBatches=[];runningSlots=[];get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}get batchProcessFinished(){let e=Object.keys(this.completed).length===this.runningBatches.length;if(e){const e=this.completed;this.completed=[],this.runningBatches=[],this.runningSlots=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:e})}return e}constructor(e){if(this.breakWhenError=!!e?.breakWhenError,this.batchSize=e?.batchSize??1,"number"!=typeof this.batchSize||this.batchSize<1)throw new Error("batchSize must be at least 1");if(e?.onProgress){if("function"!=typeof e.onProgress)throw new Error("onProgress must be a function");this.onProgress=e.onProgress}}add(e){const t=Array.isArray(e)?e:[e];for(const e of t){if("function"!=typeof e)throw new Error("Each job must be a function that returns a Promise");this.items.push(e)}this.processNext()}processNext(){if(0===this.items.length)return;const e=this.batchSize-this.runningBatches.length;if(!(e<=0)){this.runningBatches.push(...this.items.splice(0,e));for(let e=0;e<this.runningBatches.length;e++)this.runningSlots?.[e]||(this.runningSlots[e]=!0,this.runningBatches[e]().then(t=>this.completed[e]?t:(this.completed[e]=t,this.batchProcessFinished?this.processNext():t)).catch(t=>{if(this.breakWhenError)throw t;return this.completed[e]=t,this.batchProcessFinished?this.processNext():t}))}}terminate(){this.items=[]}};let Be=null,$e=0,je=0,Ke=0,He=0;async function Je(e,t){const n=await Promise.all([this.admin_endpoint,this.record_endpoint]),i=n[0],r=n[1];let s=e.split("?"),o=s.length>1?"?"+s[1]:"";switch(e=s[0]){case"get-users":return i.get_users_private+e+o;case"service":return i.service_public+e+o;case"get-newsletters":case"get-public-newsletters":case"subscribe-newsletter":case"subscribe-public-newsletter":case"signupkey":case"admin-newsletter-request":return(t?i.extra_private:i.extra_public)+e+o;case"admin-signup":case"confirm-signup":case"client-secret-request":case"client-secret-request-public":case"openid-logger":return(t?i.extra_private_2:i.extra_public_2)+e+o;case"block-account":case"admin-edit-profile":return i.admin_private+e+o;case"remove-account":case"post-secure":case"recover-account":case"mock":case"grant-access":case"last-verified-email":case"ticket":case"register-ticket":case"get-newsletter-subscription":case"request-username-change":case"send-inquiry":case"register-newsletter-group":case"newsletter-group-endpoint":case"invitation-list":const n=t?[i.admin_private,i.admin_private_2]:[i.admin_public,i.admin_public_2],s=n[(t?$e:je)%n.length];return t?$e++:je++,s+e+o;case"post-record":return(t?r.post_private:r.post_public)+e+o;case"get-records":return(t?r.get_private:r.get_public)+e+o;case"del-files":case"del-records":return r.del_private+e+o;case"store-subscription":case"get-vapid-public-key":case"push-notification":case"delete-subscription":case"subscription":case"get-subscription":case"get-table":case"get-tag":case"get-uniqueid":case"get-index":case"get-signed-url":case"grant-private-access":case"request-private-access-key":case"get-ws-group":case"check-schema":case"get-feed":case"castspell":case"dopamine":case"getspell":const a=t?[r.record_private,r.record_private_2]:[r.record_public,r.record_public_2],c=a[(t?Ke:He)%a.length];return t?Ke++:He++,c+e+o;default:return ue.Url(e)+o}}const Qe={};function ze(){Be&&Be.terminate()}async function Ge(e,t=null,n,i){this.log("request",{url:e,data:t,options:n,_etc:i||{}}),n=n||{};let{auth:r=!1,method:s="post",bypassAwaitConnection:o=!1}=n;s=s.toUpperCase();let a=null,c=t?.service||this.service,u=t?.owner||this.owner,l=null,h=await Je.bind(this)(e,!!r);if(!o&&(a=await this.__connection,!a))throw new te("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});r&&(l=await me.bind(this)());let d={},{fetchMore:f=!1,progress:p}=n?.fetchOptions||{};if(n?.fetchOptions&&Object.keys(n.fetchOptions).length){for(let e of["limit","startKey","ascending"])n.fetchOptions.hasOwnProperty(e)&&(d[e]=n.fetchOptions[e]);d=ue.Params(d,{limit:e=>{if("number"!=typeof e)throw new te("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(e>1e3)throw new te("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return e},startKey:e=>e,ascending:"boolean"})}let g=i?.ignoreService?{}:{service:c,owner:u};Object.assign(g,d),(t=oe(t).data)?t&&"object"==typeof t&&(t=Object.assign(g,t)):t=g;let _=(()=>{if(t&&"object"==typeof t&&Object.keys(t).length&&!(t instanceof FormData)){function n(e){return"object"==typeof e&&null!==e?Object.keys(e).sort().reduce((t,i)=>("object"==typeof e[i]&&null!==e[i]?t[i]=n(e[i]):t[i]=e[i],t),{}):e}return ne.hash(e+"/"+JSON.stringify(n(t)))}return ne.hash(e+"/"+this.service)})(),m=Ye.bind(this)({params:t,url:e,fetchMore:f,hashedParams:_});if(this.log("requestKey",m),!m||m&&"object"==typeof m)return m;if("string"==typeof m&&Qe[m]instanceof Promise)return this.log("request:returning pending",m),Qe[m];let y={Accept:"*/*","Content-Type":n.hasOwnProperty("contentType")?null===n.contentType?"application/x-www-form-urlencoded":n.contentType||"application/json":"application/json"};l&&(y.Authorization=l);let w={public_identifier:this.__public_identifier,service:c,owner:u};y["Content-Meta"]=JSON.stringify(w);let b={headers:y};if(n?.responseType&&(b.responseType=n.responseType),"GET"===s){if(t){let e=[];if(t instanceof FormData)for(let[n,i]of t.entries())"string"==typeof i&&(i=encodeURIComponent(i),e.push(`&${n}=${i}`));else e=Object.keys(t).map(e=>{let n=t[e];return"string"!=typeof n&&(n=JSON.stringify(n)),encodeURIComponent(e)+"="+encodeURIComponent(n)});e.length&&("?"!==h.substring(h.length-1)&&(h+="?"),h+=e.join("&"))}b.body=null}else b.body=t?JSON.stringify(t):null;if(b.method=s,null===Be){let e={batchSize:this.requestBatchSize,breakWhenError:!1,onProgress:e=>{for(let e in Qe)delete Qe[e];this.onBatchProcess.forEach(t=>t(e))}};Be=new qe(e)}return new Promise((t,n)=>{Be.add([async()=>{let i=We.bind(this)(h,b,p);Qe[m]=i;try{let n=Ze.bind(this)({hashedParam:m,url:e,fetched:await i});return this.log("request:end",n),t(n),n}catch(e){throw this.log("request:err",e),n(e),e}}])})}function Ye(e){let{params:t={},url:n,fetchMore:i=!1,hashedParams:r}=e||{};if(t.startKey){if(("object"!=typeof t.startKey||!Object.keys(t.startKey).length)&&"start"!==t.startKey&&"end"!==t.startKey)throw new te(`"${t.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});"start"===t.startKey&&(i=!1,delete t.startKey)}if(!i){if(this.__cached_requests?.[n]?.[r]&&delete this.__cached_requests[n][r],this.__startKeyHistory?.[n]?.[r]){if(Array.isArray(this.__startKeyHistory[n][r])&&this.__startKeyHistory[n][r].length)for(let e of this.__startKeyHistory[n][r]){let t=r+ne.hash(e);this.__cached_requests?.[n]&&this.__cached_requests?.[n]?.[t]&&delete this.__cached_requests[n][t]}delete this.__startKeyHistory[n][r]}return r}if(!Array.isArray(this.__startKeyHistory?.[n]?.[r]))return r;let s=this.__startKeyHistory[n][r],o=s[s.length-1],a=r;if(o){if("end"===o)return{list:[],startKey:"end",endOfList:!0,startKeyHistory:s};a+=ne.hash(o),t.startKey=JSON.parse(o)}return this.__cached_requests?.[n]?.[a]?this.__cached_requests[n][a]:r}function We(e,t,n){return new Promise((i,r)=>{let s=new XMLHttpRequest;for(var o in s.open(t.method||"GET",e),t.headers||{})s.setRequestHeader(o,t.headers[o]);t.responseType&&(s.responseType=t.responseType),s.onload=()=>{if(s.status<400)if("json"==t.responseType||"blob"==t.responseType)i(s.response);else{let e=s.responseText;try{e=JSON.parse(e)}catch(e){}i(e)}else if(429===s.status){let o=s.getResponseHeader("Retry-After");o?setTimeout(()=>{We(e,t,n).then(i,r)},1e3*parseInt(o)):r("Too many requests")}else{let e=s.status,n=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],i="blob"==t.responseType?s.response:s.responseText;try{i=JSON.parse(i)}catch(e){}if("string"==typeof i){let e=s.response.split(":"),t=e.splice(0,1)[0].trim();r(new te(e.join(":").trim(),{code:n.includes(t)?t:"ERROR"}))}else if("object"==typeof i&&i?.message){let t=i?.code||(e?e.toString():null)||"ERROR",n=i.message,s=i?.cause;"string"==typeof n&&(n=n.trim()),r(new te(n,{cause:s,code:t}))}else r(i)}},s.onerror=()=>r("Network error"),s.onabort=()=>r("Aborted"),s.ontimeout=()=>r("Timeout"),"function"==typeof n&&(s.onprogress=e=>{n({status:"download",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>s.abort()})},s.upload&&(s.upload.onprogress=e=>{n({status:"upload",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>s.abort()})})),s.send(t.body)})}function Ze(e){let{hashedParam:t,url:n,fetched:i}=e;if(!i?.startKey)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 r="end"===i.startKey?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][t].includes(r)||this.__startKeyHistory[n][t].push(r),Object.assign({startKeyHistory:this.__startKeyHistory[n][t]},i)}async function Xe(e,t){await this.__connection;let{record_id:n,service:i=this.service,progress:r}=t;if(!n)throw new te('"record_id" is required.',{code:"INVALID_PARAMETER"});if(e instanceof SubmitEvent&&(e=e.target),e instanceof HTMLFormElement&&(e=new FormData(e)),!(e instanceof FormData))throw new te('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let s,o={reserved_key:se(),service:i,request:"post"};t?.record_id&&(o.id=t.record_id);let a=(e,t,n)=>new Promise((i,r)=>{s=new XMLHttpRequest,s.open("POST",e),s.onload=()=>{let o=s.responseText;try{o=JSON.parse(o)}catch(e){}if(s.status>=200&&s.status<300)i(o);else if(429===s.status){let o=s.getResponseHeader("Retry-After");o?setTimeout(()=>{a(e,t,n).then(i,r)},1e3*parseInt(o)):r("Too many requests")}else r(o)},s.onerror=()=>r("Network error"),s.onabort=()=>r("Aborted"),s.ontimeout=()=>r("Timeout"),s.upload&&"function"==typeof n&&(s.upload.onprogress=n),s.send(t)});function c(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}return null===Be&&(Be=new qe({batchSize:this.requestBatchSize,breakWhenError:!1})),new Promise((t,n)=>{Be.add([async()=>{let n=[],i=[],u=[];for(let[t,l]of e.entries()){if(!(l instanceof File))continue;let e=Object.assign({key:t+"/"+l.name,sizeKey:c(l.size),contentType:l.type||null},o),{fields:h=null,url:d,cdn:f}=await Ge.bind(this)("get-signed-url",e,{auth:!!this.__user});u.push(f);let p=new FormData;for(let e in h)p.append(e,h[e]);p.append("file",l);try{await a(d,p,"function"==typeof r?e=>r({status:"upload",progress:e.loaded/e.total*100,currentFile:l,completed:n,failed:i,loaded:e.loaded,total:e.total,abort:()=>s.abort()}):null),n.push(l)}catch(e){i.push(l)}}return t({completed:n,failed:i,bin_endpoints:u}),{completed:n,failed:i,bin_endpoints:u}}])})}const et={};function tt(e){let{preventMultipleCalls:t=!1}=e||{};return function(e,n,i){const r=i.value;i.value=function(...e){let i=e[0],s=!0,o=null,a="",c={},u=!1;if(i instanceof SubmitEvent){i.preventDefault();let e=location.href;o=i.target;let t=new URL(o.action);a=t.href;let n=a?a.match(/(?<=\{).*?(?=\})/g):"";if(n)for(let e of n){if(!e)continue;let t=o.querySelector(`[name="${e}"]`);if(t)if("file"===t.type)for(let n=0;n<=t.files.length-1;n++)t.files[n]&&(c[e]||(c[e]=[]),c[e].push(new Promise((e,i)=>{let r=new FileReader;r.onload=function(){e(r.result)},r.readAsDataURL(t.files[n]),r.onerror=i})));else a=a.replace(`{${e}}`,t.value)}null===o.getAttribute("action")?s=!1:u=t.href===e}const l=async e=>{if(a)for(let e in c)c[e].length&&(a=a.replace(`{${e}}`,(await Promise.all(c[e])).join(",")));return o&&s&&(sessionStorage.setItem(`${this.service}:${ne.hash(a)}`,JSON.stringify(e)),u?location.replace(a):location.href=a),e};let h;const d=async()=>{try{if(h=r.bind(this)(...e),h instanceof Promise){let e=await h;return await l(e),h}}catch(e){throw(e=>{throw e instanceof te?e.name=n+"()":e=e instanceof Error?e:new te(e,{name:n+"()"}),e})(e)}};return t?(et?.[n]||(et[n]=d().finally(()=>{delete et[n]})),et[n]):d()}}}async function nt(){await this.__connection;let e=`${this.service}:${ne.hash(location.href.split("?")[0])}`,t=sessionStorage.getItem(e);if(sessionStorage.removeItem(e),null!==t){try{t=JSON.parse(t)}catch(e){}return t}return null}function it(e,t="parameter",n=!1,i=!1){if(!e)throw new te(`"${t}" is required.`,{code:"INVALID_PARAMETER"});return ue.specialChars(e,t,n,i)}function rt(e){if(void 0===e)return 0;if("number"==typeof e){if(e>99||e<0)throw new te('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else{if("string"!=typeof e)throw new te('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(void 0===(e={private:"private",public:0,authorized:1,admin:99}[e]))throw new te('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}if(!this.__user&&e)throw new te("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return e}function st(e){if("number"==typeof e){if(e>4503599627370496||e<-4503599627370496)throw new te("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"});return e}if("boolean"==typeof e)return e;if("string"==typeof e)return it(e,"index.value",!1,!0);throw new te('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function ot(e){return{table:{name:[e=>it(e,"table.name",!0,!0)],access_group:[rt.bind(this)],subscription:e=>{if("string"==typeof e)return ue.UserId(e,'User ID in "subscription"'),e}},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",e=>it(e,"index.name",!0,!1)],value:t=>{const n={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:ue.UserId};if(n.hasOwnProperty(e.index.name)){let i=n[e.index.name];if("function"==typeof i)return i(t);if(i!==typeof t)throw new te(`"index.value" should be type: ${i}.`,{code:"INVALID_PARAMETER"});return t}return"string"!=typeof t||t?st(t):" "},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:t=>function(e,t){if(!t.index||!("value"in t.index))throw new te('"index.value" is required.',{code:"INVALID_PARAMETER"});if("$record_id"===t.index.name)throw new te(`Cannot do "index.range" on ${t.index.name}`,{code:"INVALID_PARAMETER"});if(typeof t.index.value!=typeof e)throw new te('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return"string"==typeof e?ue.specialChars(e,"index.range",!1,!0):e}(t,e)},tag:e=>{if(null==e)return e;if("string"==typeof e)return ue.specialChars(e,"tag",!1,!0);throw new te('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"}}async function at(e,t){if(e?.rec&&"called from postRecord"!==t){let t=sessionStorage.getItem(`${this.service}:post:${e.rec}`);if(t){try{e=JSON.parse(t)}catch(e){}sessionStorage.removeItem(`${this.service}:post:${e.rec}`)}}const n={user_id:"",record_id:"",updated:0,uploaded:0,readonly:!1,table:{name:"",access_group:0,subscription:{is_subscription_record:!1,upload_to_feed:!1,notify_subscribers:!1,feed_referencing_records:!1,notify_referencing_records:!1}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:!1,can_remove_referencing_records:!1,only_granted_can_reference:!1},ip:"",bin:{}};let i=!1;function r(e){let t="**"==e?"private":parseInt(e);return t=0==t?"public":1==t?"authorized":99==t?"admin":t,t}const s={ip:e=>{let t=e.split("#"),r=t[0];t.length>1&&(n.unique_id=t[1]),"R"===r.slice(-1)?(n.readonly=!0,r=r.slice(0,-1)):n.readonly=!1,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(r)&&(r=r.split("-").join("."),i=!0),n.ip=r},rec:e=>{if(!e)return;n.record_id=e;let t=re(e.substring(0,e.length-9));n.uploaded=t},usr:e=>{n.user_id=e},tbl:e=>{if(e&&!n.table.name){let t=e.split("/");n.table.name=t[0],n.table.access_group=r(t[2]),t?.[3]&&(n.table.subscription.is_subscription_record=!0)}},usr_tbl:e=>{let t=e.split("/");n.user_id||(n.user_id=t[0]),n.table.name||(n.table.name=t[1],n.table.access_group=r(t[3]),t?.[4]&&(n.table.subscription.is_subscription_record=!0))},idx:e=>{if(!e)return;let t=e.split("!"),i=t.splice(0,1)[0],r=function(e){let t=e.substring(3);switch(e.substring(0,3)){case"!S%":return t;case"!N%":let n=t.split("."),i=Number(n[0])-4503599627370496;return 1===n.length?i:parseFloat(i.toString()+"."+n[1]);case"!B%":return"1"===t;case"!L%":case"!D%":try{return JSON.parse(t)}catch(e){throw new te("Value parse error.",{code:"PARSE_ERROR"})}default:return e}}("!"+t.join("!"));n.index={name:i,value:r}},ref:e=>{e&&(n.reference=e.split("/")[0])},tags:e=>{n.tags=e},upd:e=>{n.updated=e},acpt_mrf:e=>{n.source.prevent_multiple_referencing=!e},ref_limt:e=>{n.source.referencing_limit=e},rfd:e=>{n.referenced_count=e},bin:async e=>{let t={},i=n?.reference||null;if(Array.isArray(e))for(let n of e){let e=n.split("/").slice(3).join("/"),s=e.split("/"),o=decodeURIComponent(s.slice(-1)[0]),a=decodeURIComponent(s[10]),c=s[9],u=s[8],l=r(s[6]),h=n;"public"!==l&&(h=await ut.bind(this)(n,{dataType:"endpoint",_ref:i}));let d={access_group:l,filename:o,url:h,path:e,size:re(c),uploaded:re(u),getFile:(e,t)=>{let n={dataType:e||"download",progress:t,_ref:i,_update:d};return ut.bind(this)(h,n)}};t[a]?t[a].push(d):t[a]=[d]}n.bin=t},prv_acs:e=>{for(let t in e)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(t)?n.table.subscription[t]=e[t]:n.source[t]=e[t]},data:e=>{let t=e;"!D%{}"===e?t={}:"!L%[]"===e&&(t=[]),n.data=t}};if(e.record_id)return e;for(let t in s)if(e.hasOwnProperty(t)){let n=s[t](e[t]);n instanceof Promise&&await n}return i&&(n.user_id="anonymous:"+n.user_id),n}async function ct(e){let{endpoints:t}=e;if("string"==typeof t&&(t=[t]),!Array.isArray(t))throw new te('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("del-files",{endpoints:t,storage:"records"},{auth:!0,method:"post"}),i=[];for(let e in n)i.push(at.bind(this)(n[e]));return Promise.all(i)}async function ut(e,t){if("string"!=typeof e)throw new te('"url" should be type: string.',{code:"INVALID_PARAMETER"});let n=!1,i=(e=ue.Url(e.split("?")[0])).split("/"),r=i[2].split("."),s=null;3===r.length&&"skapi"===r[1]&&(s=r[0],n=!0);let o=i.slice(3),a=!1;if(!n&&("auth"===o[0]||"publ"===o[0]))try{ue.UserId(o[2]),ue.UserId(o[3]),a="auth"==o[0],n=!0}catch{throw new te("Invalid file url.",{code:"INVALID_PARAMETER"})}let c=s?null:o[1];if(t=ue.Params(t,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:"function",_ref:"string",_update:e=>e}),"info"===t?.dataType)return{url:e,filename:o[o.length-1],fileKey:o[o.length-2],access_group:"**"===o[6]?"private":"01"===o[6]?"authorized":"00"===o[6]?"public":parseInt(o[6]),uploader:o[3],record_id:"records"===o[4]?o[5]:"N/A",filesize:re(o[9]),uploaded:re(o[8])};let u=e.split("/").slice(-1)[0],l=t.expires;if(l){if(!n)throw new te("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(l<0)throw new te('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let t={request:s?"get-host":"get",id:s||o[5],key:e,expires:l};c&&(t.service=c),e=(await Ge.bind(this)("get-signed-url",t,{auth:!0})).url}else if(a){let n=Math.floor(Date.now()/1e3);if(this.log("getFile:tokens",{exp:this.session.idToken.payload.exp,currTime:n,expiresIn:this.session.idToken.payload.exp-n,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token}),this.session.idToken.payload.exp<n){this.log("getFile:requesting new token",null);try{await we.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session.idToken.payload.exp,currTime:n,expiresIn:this.session.idToken.payload.exp-n,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token})}catch(e){throw this.log("getFile:new token error",e),new te("User login is required.",{code:"INVALID_REQUEST"})}}let i=this.session?.idToken?.jwtToken;e+=`?t=${i}`;let r="**"===o[6]?"**":parseInt(o[6]);if(this.user.user_id!==o[3]&&("**"===r||this.user?.access_group<r)){let n=o[5];if(this.__private_access_key[n]&&"string"==typeof this.__private_access_key[n])e+="&p="+this.__private_access_key[n];else if(this.owner!==this.host)try{let i=await this.requestPrivateRecordAccessKey({record_id:n,reference_id:t?._ref});e+="&p="+i}catch(e){}}}if("endpoint"===t?.dataType)return t._update&&(t._update.url=e),e;if("download"===t?.dataType){let t=document.createElement("a");return t.href=e,document.body.appendChild(t),t.setAttribute("download",u),t.target="_blank",t.click(),document.body.removeChild(t),null}return new Promise(async(n,i)=>{try{let i=await Ge.bind(this)(e,null,{method:"get",contentType:null,responseType:"text"===t?.dataType?"text":"blob",fetchOptions:{progress:t?.progress}},{ignoreService:!0});if("base64"===t?.dataType){const e=new FileReader;e.onloadend=()=>n(e.result),e.readAsDataURL(i)}else n(i)}catch(e){i(e)}})}async function lt(e,t=!1){e=oe(e,{ignoreEmpty:!0}).data,"string"==typeof e?.table&&(e.table={name:e.table,access_group:0});let n="",i=function(e){if(!e.record_id&&!e.unique_id)return null;let t={};return e?.service&&(t.service=e.service),e?.owner&&(t.owner=e.owner),e?.record_id?t.record_id=ue.specialChars(e.record_id,"record_id",!1,!1):e?.unique_id&&(t.unique_id=e.unique_id),t}(e);if(i)n=(e=i).record_id||e.unique_id,"string"==typeof n&&("string"==typeof this.__private_access_key?.[n]&&(e.private_key=this.__private_access_key?.[n]||void 0),this.__my_unique_ids[n]&&(t?delete this.__my_unique_ids[n]:e.record_id=this.__my_unique_ids[n]));else{let t=await ve.bind(this)(),i=e.reference,r="";i?.record_id||i?.unique_id?(n=i.record_id||i.unique_id,n&&"string"==typeof this.__private_access_key?.[n]&&(e.private_key=this.__private_access_key?.[n]||void 0),e.reference=n):i?.user_id&&(r=i.user_id,e.reference=r),e=ue.Params(e||{},ot.bind(this)(e),r||t?[]:["table"],{ignoreEmpty:!0})}return{query:e,is_reference_fetch:n}}async function ht(e,t){await this.__connection;let n=await lt.bind(this)(e),i=n.is_reference_fetch,r=await Ge.bind(this)("get-records",n.query,{fetchOptions:t,auth:!!this.__user,method:this.__user?"post":"get"});i&&r?.reference_private_key&&"string"==typeof r.reference_private_key&&(this.__private_access_key[i]=r.reference_private_key);let s=[];for(let e in r.list)s.push(at.bind(this)(r.list[e]));return r.list=await Promise.all(s),r}async function dt(e,t,n){await this.__connection;let i="";if(!t)throw new te('"config" argument is required.',{code:"INVALID_PARAMETER"});let r=!this.__user;"string"==typeof t.table&&(t.table={name:t.table}),t.record_id||t.table.hasOwnProperty("access_group")||(t.table.access_group=0),t.table?.subscription&&(t.table?.subscription?.is_subscription_record?Object.assign(t.table.subscription,{group:1}):!1!==t.table?.subscription?.is_subscription_record&&(t.record_id||t.table.subscription?.is_subscription_record)||Object.assign(t.table.subscription,{group:null}),delete t.table.subscription?.is_subscription_record);let s=ue.Params(t||{},{record_id:["string",()=>{if(!t.table||!t.table.name)throw new te('"table.name" is required.',{code:"INVALID_PARAMETER"})}],unique_id:"string",readonly:"boolean",table:{name:e=>it(e,"table name",!0,!0),subscription:{group:e=>1===e?1:null,upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"},access_group:rt.bind(this)},source:{referencing_limit:e=>{if(null===e)return null;if("number"==typeof e){if(0>e)throw new te('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(e>4503599627370546)throw new te('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return e}throw new te('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:e=>{if(void 0===e)return;if(!e)return null;if(Array.isArray(e)&&!e.length)return null;let t={name:[e=>it(e,'"name" in "index_restrictions"',!0,!1)],value:e=>st(e),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:t=>{if(null!==t&&typeof e.value!=typeof t)throw new te('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!e.hasOwnProperty("value"))throw new te('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});if(e.condition&&("eq"!==e.condition||"="!==e.condition))throw new te('Index restriction "condition" cannot be used with "range".',{code:"INVALID_PARAMETER"});return t}};return Array.isArray(e)||(e=[e]),e.map(e=>ue.Params(e,t))}},reference:e=>{if(null===e)return{record_id:null};if(e){if("string"==typeof e)return i=e,this.__my_unique_ids[e]?this.__my_unique_ids[e]:e;if("object"!=typeof e)throw new te('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return ue.Params(e,{unique_id:"string",record_id:e=>null==e?e:(i=e,"string"==typeof this.__private_access_key?.[e]&&(t.reference_private_key=this.__private_access_key[e]||void 0),ue.specialChars(e,'"reference.record_id"',!1,!1))})}},index:{name:e=>it(e,"index.name",!0,!1),value:e=>st(e)},tags:e=>null==e?e:("string"==typeof e&&(e=e.split(",").map(e=>e.trim())),ue.specialChars(e,"tag",!1,!0)),remove_bin:e=>{if(!e)return null;let t=[];if(!Array.isArray(e))throw new te('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});for(let n of e)if("string"==typeof n)t.push(decodeURIComponent(n.split("?")[0]));else{if(!(n.url&&n.size&&n.filename))throw new te('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});{let e=n.url.split("/").slice(0,3).join("/")+"/"+n.path;t.push(e)}}return t},progress:"function"}),o=t.progress||null;delete s.progress;let a={auth:!!this.__user,method:"post"},c=null,u=null,l=oe(e);if(n?u=n:l.files.length&&(u=l.files),r){if(s.record_id)throw new te("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if("public"!==s.table.access_group&&0!==s.table.access_group)throw new te("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s.table.subscription)throw new te("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(s.remove_bin)throw new te("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(s.unique_id)throw new te("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}c=Object.assign({data:l.data},s);let h={};"function"==typeof o&&(h.progress=o),Object.keys(h).length&&Object.assign(a,{fetchOptions:h});let d=await Ge.bind(this)("post-record",c,a);if(u){let e=new FormData;for(let t of u)e.append(t.name,t.file,t.file.name);let t={record_id:d.rec,progress:o};s.hasOwnProperty("service")&&(t.service=s.service);let{bin_endpoints:n}=await Xe.bind(this)(e,t);d.bin?d.bin.push(...n):d.bin=n}i&&"string"==typeof d?.reference_private_key&&(this.__private_access_key[i]=d.reference_private_key),sessionStorage.setItem(`${this.service}:post:${d.rec}`,JSON.stringify(d));let f=await at.bind(this)(d,"called from postRecord");return f.unique_id&&(this.__my_unique_ids[f.unique_id]=f.record_id,sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids))),f}async function ft(e,t){let n=await Ge.bind(this)("get-table",ue.Params(e||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t})),i={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(n?.list))for(let e of n.list)for(let t in i)e.hasOwnProperty(t)&&(e[i[t]]=e[t],delete e[t]);return n}async function pt(e,t){if(!e?.table)throw new te('"table" is required.',{code:"INVALID_PARAMETER"});let n=ue.Params(e||{},{table:"string",index:e=>ue.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(n.hasOwnProperty("order")){if(!n.order?.by)throw new te('"order.by" is required.',{code:"INVALID_PARAMETER"});if(n.order.hasOwnProperty("condition")&&!n.order.hasOwnProperty("value"))throw new te('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(n.hasOwnProperty("index")&&"."!==n.index.substring(n.index.length-1))throw new te('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let i=await Ge.bind(this)("get-index",n,Object.assign({auth:!!this.__user},{fetchOptions:t})),r={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 r)e?.[t]&&(n[r[t]]=e[t]);return n})),i}async function gt(e,t){let n=await Ge.bind(this)("get-tag",ue.Params(e||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t}));return Array.isArray(n?.list)&&(n.list=n.list.map(e=>{let t=e.tag.split("/");return{table:t[1],tag:t[0],number_of_records:e.cnt_rec}})),n}async function _t(e,t){let n=await Ge.bind(this)("get-uniqueid",ue.Params(e||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t}));if(Array.isArray(n?.list))for(let e in n.list){let t=n.list[e];n.list[e]={unique_id:t.unq,record_id:t.rec}}return n}async function mt(e,t){await this.__connection;let n=await lt.bind(this)(e,!0),i=n.is_reference_fetch,r=await Ge.bind(this)("del-records",n.query,{auth:!0,fetchOptions:t});return i&&"string"==typeof r?.reference_private_key&&(this.__private_access_key[i]=r.reference_private_key),r?.message||r}function yt(e){return vt.bind(this)({record_id:e.record_id,user_id:e.user_id,execute:"add"})}function wt(e){return vt.bind(this)({record_id:e.record_id,user_id:e.user_id||null,execute:"remove"})}async function bt(e,t){let n={record_id:e.record_id||void 0,user_id:e.user_id||void 0,execute:"list"};if(!n.record_id&&!n.user_id)throw new te("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(n.user_id)if("string"==typeof n.user_id)ue.UserId(n.user_id),n.user_id=[n.user_id];else{if(!Array.isArray(n.user_id))throw new te("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});for(let e of n.user_id)ue.UserId(e)}let i=await Ge.bind(this)("grant-private-access",n,{auth:!0,fetchOptions:t});return i.list=i.list.map(e=>(e.rec_usr?(e.record_id=e.rec_usr.split("/")[0],e.user_id=e.rec_usr.split("/")[1]):e.usr_rec&&(e.user_id=e.usr_rec.split("/")[0],e.record_id=e.usr_rec.split("/")[1]),e)),i}function At(e){let t=e.record_id,n=e.reference_id||void 0;if(!t)throw new te("Record ID is required.",{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new te("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(n&&"string"!=typeof n)throw new te("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(this.__private_access_key[t])return this.__private_access_key[t];let i=Ge.bind(this)("request-private-access-key",{record_id:t,reference_id:n},{auth:!0});return this.__private_access_key[t]=i,i}function vt(e){e.execute;let t=ue.Params(e,{record_id:"string",user_id:e=>{if(!e)throw new te("User ID is required.",{code:"INVALID_PARAMETER"});let t=e;if("string"==typeof t&&(t=[t]),t.length>100)throw new te("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let e of t)ue.UserId(e,'User ID in "user_id"');return t},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),Ge.bind(this)("grant-private-access",t,{auth:!0})}const St={},Et={},It={},Tt={},Rt={};let Ut,Dt={},Pt={};function Ct(e,t,n){e[t]||(e[t]=[]),e[t].push(n)}async function kt(e,t,n){let i=[];if(e[t]){for(let r of e[t])if(r){let e=n(r);e instanceof Promise&&(e=await e),i.push(e)}delete e[t]}return i}async function Nt(e,t){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});let n=await this.__socket;async function i(e,t,n){this.log("answerSdpOffer from",t),await St[t].setRemoteDescription(new RTCSessionDescription(e));const i=await St[t].createAnswer();await St[t].setLocalDescription(i),n.send(JSON.stringify({action:"rtc",uid:t,content:{sdpanswer:i},token:this.session.accessToken.jwtToken}))}St?.[t]?e?(await kt(Pt,t,e=>i.bind(this)(e,t,n)),await i.bind(this)(e,t,n)):await kt(Pt,t,e=>i.bind(this)(e,t,n)):e&&Ct(Pt,t,e)}async function Lt(e,t){if(this.log("receiveIceCandidate",e),St?.[t]&&St[t]?.remoteDescription&&St[t]?.remoteDescription?.type){if(!e)return kt(Dt,t,e=>St[t].addIceCandidate(e));await kt(Dt,t,e=>St[t].addIceCandidate(e)),await St[t].addIceCandidate(e)}else Ct(Dt,t,e)}async function Ot(e){ue.Params(e,{cid:e=>{if("string"!=typeof e)throw new te('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(e&&"cid:"!==e.slice(0,4))throw new te('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return e},close:"boolean"});let t=await this.__socket,{cid:n,close_all:i=!1}=e||{};if(!i&&!n)throw new te('"cid" is required.',{code:"INVALID_PARAMETER"});let r=e=>{if(!e)throw new te('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete Pt[e],delete Dt[e],Et[e]&&Object.values(Et[e]).forEach(e=>{"closed"!==e.readyState&&e.close()}),delete Et[e],St?.[e]){"closed"!==St[e].connectionState&&(St[e].close(),t.send(JSON.stringify({action:"rtc",uid:e,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let n={type:"connectionstatechange",target:St[e],timestamp:(new Date).toISOString(),state:St[e].connectionState,iceState:St[e].iceConnectionState,signalingState:St[e].signalingState};Rt[e]&&Rt[e](n),this.log("closeRTC",n)}delete Rt[e],delete Tt[e],delete It[e],delete St[e]};if(i)for(let e in St)r(e);else r(n);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(e=>{e.stop()}),this.__mediaStream=null)}async function Mt(e){if(e instanceof MediaStream)return e;if(!e.video&&!e.audio){const e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;const n=t.captureStream().getVideoTracks()[0];return e.addTrack(n),e}return navigator.mediaDevices.getUserMedia(e)}async function Vt(e,t){if("function"!=typeof t)throw new te("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});e=ue.Params(e,{cid:e=>{if("string"!=typeof e)throw new te('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(e&&"cid:"!==e.slice(0,4))throw new te('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return e},ice:["string",()=>"stun:stun.skapi.com:3468"],media:e=>e,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:!0,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:n,ice:i}=e;if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&"localhost"!==location.hostname&&"https:"!==location.protocol)throw new te("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let r=this.__socket?await this.__socket:this.__socket;if(!r)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(1!==r.readyState)throw new te("Realtime connection is not ready.",{code:"INVALID_REQUEST"});const s={iceServers:[{urls:i}]};St?.[n]||(St[n]=new RTCPeerConnection(s)),e?.media&&(this.__mediaStream=await Mt(e.media),this.__mediaStream.getTracks().forEach(e=>{St[n].addTrack(e,this.__mediaStream)})),Rt[n]=t,Et[n]||(Et[n]={});for(let t=0;t<e.channels.length;t++){let i=e.channels[t];if("string"==typeof i)switch(i){case"text-chat":i={ordered:!0,maxRetransmits:10,protocol:"text-chat"};break;case"file-transfer":i={ordered:!1,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case"video-chat":i={ordered:!0,maxRetransmits:10,protocol:"video-chat"};break;case"voice-chat":i={ordered:!0,maxRetransmits:10,protocol:"voice-chat"};break;case"gaming":i={ordered:!1,maxPacketLifeTime:100,protocol:"gaming"};break;default:i={ordered:!0,maxRetransmits:10,protocol:"default"}}let r=i.protocol||"default";if(Object.keys(Et[n]).includes(r))throw new te(`Data channel with the protocol "${r}" already exists.`,{code:"INVALID_REQUEST"});let s=St[n].createDataChannel(r,i);Et[n][r]=s}for(let e in Et[n]){let t=Et[n][e];$t.bind(this)(n,t)}return Bt.bind(this)(n,["onnegotiationneeded"]),await Ft.bind(this)(n),{hangup:()=>It[n]&&It[n](!1),connection:new Promise(e=>{It[n]=(t=>{if(this.log("receiver picked up the call",n),!t)return Ot.bind(this)({cid:n}),null;St[n].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${n}".`),Ft.bind(this)(n),Rt[n]&&Rt[n]({type:"negotiationneeded",target:St[n],timestamp:(new Date).toISOString(),signalingState:St[n].signalingState,connectionState:St[n].iceConnectionState,gatheringState:St[n].iceGatheringState})},e({target:St[n],channels:Et[n],hangup:()=>Ot.bind(this)({cid:n}),media:this.__mediaStream})}).bind(this)})}}function xt(e){return async(t,n)=>{t=oe(t=t||{}).data;let i=e.sender_cid,r=await this.__socket;if(!Tt[i])return null;if("function"!=typeof n)throw new te("Callback is required.",{code:"INVALID_PARAMETER"});if(!(t?.media instanceof MediaStream)&&(t?.media?.video||t?.media?.audio)&&"localhost"!==location.hostname&&"https:"!==location.protocol)throw new te("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=t;return St?.[i]||(St[i]=new RTCPeerConnection({iceServers:[{urls:s}]})),t?.media&&(this.__mediaStream=await Mt(t.media),this.__mediaStream.getTracks().forEach(e=>{St[i].addTrack(e,this.__mediaStream)})),delete Tt[i],Rt[i]=n,Et[i]||(Et[i]={}),St[i].ondatachannel=e=>{this.log("ondatachannel",`received data channel "${e.channel.label}".`);const t=e.channel;Et[i][t.label]=t,$t.bind(this)(i,t)},Bt.bind(this)(i,["onnegotiationneeded"]),await Nt.bind(this)(null,i),await Lt.bind(this)(null,i),r.send(JSON.stringify({action:"rtc",uid:i,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:St[i],channels:Et[i],hangup:()=>Ot.bind(this)({cid:i}),media:this.__mediaStream}}}async function Ft(e){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",e);let t=await this.__socket;const n=await St[e].createOffer();await St[e].setLocalDescription(n);let i=St[e].localDescription;this.log("rtcSdpOffer to",i),t.send(JSON.stringify({action:"rtc",uid:e,content:{sdpoffer:i},token:this.session.accessToken.jwtToken}))}async function qt(e,t){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",t);let n=await this.__socket;if(!e.candidate)return void this.log("candidate-end","all ice candidates have been sent");let i=Rt[t]||(()=>{}),r=e.candidate;this.log("ice gathering state set to",St[t].iceGatheringState),i({type:"icecandidate",target:St[t],timestamp:(new Date).toISOString(),candidate:e.candidate.candidate,sdpMid:e.candidate.sdpMid,sdpMLineIndex:e.candidate.sdpMLineIndex,usernameFragment:e.candidate.usernameFragment,protocol:e.candidate.protocol,gatheringState:St[t].iceGatheringState,connectionState:St[t].iceConnectionState}),n.send(JSON.stringify({action:"rtc",uid:t,content:{candidate:r},token:this.session.accessToken.jwtToken}))}function Bt(e,t){let n=new Set(t),i=Rt[e]||(e=>{}),r=St[e];const s={ontrack:e=>{i({type:"track",target:r,timeStamp:e.timeStamp,streams:e.streams,track:e.track})},onicecandidate:t=>{qt.bind(this)(t,e),t.candidate?i({type:"icecandidate",target:r,timestamp:(new Date).toISOString(),candidate:t.candidate.candidate,sdpMid:t.candidate.sdpMid,sdpMLineIndex:t.candidate.sdpMLineIndex,usernameFragment:t.candidate.usernameFragment,protocol:t.candidate.protocol,gatheringState:r.iceGatheringState,connectionState:r.iceConnectionState}):i({type:"icecandidateend",target:r,timestamp:(new Date).toISOString()})},onicecandidateerror:e=>{i({type:"icecandidateerror",target:r,timestamp:(new Date).toISOString(),errorCode:e.errorCode,errorText:e.errorText,url:e.url,hostCandidate:e.hostCandidate,gatheringState:r.iceGatheringState,connectionState:r.iceConnectionState})},oniceconnectionstatechange:()=>{i({type:"iceconnectionstatechange",target:r,timestamp:(new Date).toISOString(),state:r.iceConnectionState,gatheringState:r.iceGatheringState,signalingState:r.signalingState})},onicegatheringstatechange:()=>{i({type:"icegatheringstatechange",target:r,timestamp:(new Date).toISOString(),state:r.iceGatheringState,connectionState:r.iceConnectionState,signalingState:r.signalingState})},onsignalingstatechange:()=>{i({type:"signalingstatechange",target:r,timestamp:(new Date).toISOString(),state:r.signalingState,connectionState:r.iceConnectionState,gatheringState:r.iceGatheringState})},onnegotiationneeded:()=>{Ft.bind(this)(e),i({type:"negotiationneeded",target:r,timestamp:(new Date).toISOString(),signalingState:r.signalingState,connectionState:r.iceConnectionState,gatheringState:r.iceGatheringState})},onconnectionstatechange:()=>{i({type:"connectionstatechange",target:r,timestamp:(new Date).toISOString(),state:r.connectionState,iceState:r.iceConnectionState,signalingState:r.signalingState});let t=r.connectionState;"disconnected"!==t&&"failed"!==t&&"closed"!==t||Ot.bind(this)({cid:e})}};for(const[e,t]of Object.entries(s))n.has(e)||(r[e]=t)}function $t(e,t,n){let i=new Set(n),r=Rt[e]||(e=>{});const s={onmessage:e=>{let n={type:e.type,target:t,timeStamp:e.timeStamp,data:e.data,lastEventId:e.lastEventId,origin:e.origin,readyState:t.readyState,bufferedAmount:t.bufferedAmount};this.log(`${t.label}: message`,e.data),r(n)},onerror:e=>{let n={type:e.type,target:t,timeStamp:e.timeStamp,error:e.error.message,errorCode:e.error.errorDetail,readyState:t.readyState,label:t.label};this.log(`${t.label}: error`,e.error.message),r(n)},onclose:n=>{let i={type:n.type,target:t,timeStamp:n.timeStamp,readyState:t.readyState,label:t.label,id:t.id};this.log(`${t.label}: closed`,null),r(i),Et[e]&&(delete Et[e][t.label],0===Object.keys(Et[e]).length&&Ot.bind(this)({cid:e}))},onbufferedamountlow:e=>{let n={target:t,bufferedAmount:t.bufferedAmount,bufferedAmountLowThreshold:t.bufferedAmountLowThreshold,type:e.type,timeStamp:e.timeStamp};this.log(`${t.label}: bufferedamountlow`,t.bufferedAmount),r(n)},onopen:e=>{this.log("dataChannel",`data channel: "${t.label}" is open and ready to send messages.`);let n={type:e.type,target:t,timeStamp:e.timeStamp,readyState:t.readyState,label:t.label,id:t.id,ordered:t.ordered,maxRetransmits:t.maxRetransmits,protocol:t.protocol};r(n)}};for(const[e,n]of Object.entries(s))i.has(e)||(t[e]=n)}let jt=null,Kt=!0,Ht=0;async function Jt(){if(await this.getProfile(),!this.session)throw new te("No access.",{code:"INVALID_REQUEST"});let e=await this.record_endpoint;return new WebSocket(e.websocket_private+"?token="+this.session.accessToken.jwtToken)}let Qt=null;async function zt(){Kt=!0;let e=this.__socket?await this.__socket:this.__socket;Ot.bind(this)({close_all:!0}),Ut&&Wt.bind(this)({group:null}),Ht=0,jt&&(jt.terminate(),jt=null);try{e&&e.close()}catch(e){}return window.removeEventListener("visibilitychange",Qt),this.__socket=null,null}async function Gt(e,t=50,n){if("function"!=typeof e)throw new te("Callback must be a function.",{code:"INVALID_REQUEST"});if("reconnect"===n){if(this.__socket instanceof Promise){let e=await this.__socket;if(e.readyState!==WebSocket.CLOSED&&e.readyState!==WebSocket.CLOSING)return this.__socket}}else if(Kt&&(Qt=()=>{document.hidden||Kt||Gt.bind(this)(e,0,"reconnect")},this.__socket instanceof Promise))return this.__socket;jt&&(jt.terminate(),jt=null),this.__socket=new Promise(async i=>{await me.bind(this)(),setTimeout(async()=>{let t=await Jt.bind(this)();t.onopen=()=>{Kt=!1,Ht=0,"reconnect"!==n&&window.addEventListener("visibilitychange",Qt),this.log("realtime onopen","Connected to WebSocket server."),e({type:"success",message:"Connected to WebSocket server."}),Ut&&t.send(JSON.stringify({action:"joinRoom",rid:Ut,token:this.session.accessToken.jwtToken}));const r=new Blob(['\n let interval = 15000; // Set interval time 15 seconds\n\n function runInterval() {\n postMessage({ type: "ping" });\n setTimeout(runInterval, interval); // Use setTimeout instead of setInterval\n }\n\n runInterval(); // Start interval\n '],{type:"application/javascript"});jt=new Worker(URL.createObjectURL(r)),jt.onmessage=e=>{1===t.readyState&&t.send(JSON.stringify({action:"keepAlive"}))},i(t)},t.onmessage=async n=>{let i,r="";try{r=JSON.parse(decodeURI(n.data)),this.log("socket onmessage",r)}catch(e){return}switch(!0){case!!r?.["#message"]:i="message";break;case!!r?.["#private"]:i="private";break;case!!r?.["#notice"]:i="notice";break;case!!r?.["#rtc"]:i="rtc";break;case!!r?.["#error"]:i="error"}if(!i)return;let s={type:i,message:r?.["#rtc"]||r?.["#message"]||r?.["#private"]||r?.["#notice"]||r?.["#error"]||null,sender:r?.["#user_id"]||null,sender_cid:r?.["#scid"]?"cid:"+r["#scid"]:null,sender_rid:r?.["#srid"]||null,code:r?.["#code"]||null};if("notice"===i)e(s);else if("rtc"===i){if(s.sender!==this.user.user_id){let n=s.message;if(n.hungup)return It[s.sender_cid]&&(It[s.sender_cid](!1),delete It[s.sender_cid]),Tt[s.sender_cid]&&delete Tt[s.sender_cid],St?.[s.sender_cid]&&Ot.bind(this)({cid:s.sender_cid}),s.type="rtc:closed",void e(s);if(n.candidate&&Lt.bind(this)(n.candidate,s.sender_cid),n.sdpoffer&&(Nt.bind(this)(n.sdpoffer,s.sender_cid),Tt[s.sender_cid]||(Tt[s.sender_cid]=s.sender_cid,delete s.message,s.connectRTC=xt.bind(this)(s),s.type="rtc:incoming",s.hangup=(()=>{St[s.sender_cid]?Ot.bind(this)({cid:s.sender_cid}):Tt[s.sender_cid]&&(delete Tt[s.sender_cid],t.send(JSON.stringify({action:"rtc",uid:s.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})))}).bind(this),e(s))),n.pickup&&It[s.sender_cid]&&(It[s.sender_cid](!0),delete It[s.sender_cid]),n.sdpanswer&&St[s.sender_cid]){if("have-local-offer"!==St[s.sender_cid].signalingState)throw new te("Invalid signaling state.",{code:"INVALID_REQUEST"});await St[s.sender_cid].setRemoteDescription(new RTCSessionDescription(n.sdpanswer))}}}else e(s)},t.onclose=()=>{Kt?(this.log("realtime onclose","WebSocket connection closed."),e({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),e({type:"error",message:"Skapi: WebSocket unexpected close."}),Ht++,Ht<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+Ht),e({type:"reconnect",message:"Reconnecting to WebSocket server..."+Ht}),Gt.bind(this)(e,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),e({type:"error",message:"Skapi: Max reconnection attempts reached."})))},t.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),e({type:"error",message:"Skapi: WebSocket connection error."})}},t)})}async function Yt(e,t,n){let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!t)throw new te("No recipient.",{code:"INVALID_REQUEST"});await me.bind(this)(),e=oe(e).data;let r="";if(n&&(n=ue.Params(n,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),r=JSON.stringify({title:n.title,body:n.body}),new Blob([r]).size>3072))throw new te("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(1===i.readyState){try{ue.UserId(t),i.send(JSON.stringify({action:"sendMessage",uid:t,content:e,notification:r,notificationConfig:n?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.session?.idToken?.jwtToken||"null")}))}catch(s){if(this.log("postRealtime:err",{err:s}),Ut!==t)throw new te(`User has not joined to the recipient group. Run joinRealtime({ group: "${t}" })`,{code:"INVALID_REQUEST"});i.send(JSON.stringify({action:"broadcast",rid:t,content:e,notification:r,notificationConfig:n?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.session?.idToken?.jwtToken||"null")}))}return{type:"success",message:"Message sent."}}throw new te("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function Wt(e){let t=this.__socket?await this.__socket:this.__socket;if(!t)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await me.bind(this)(),e=oe(e,{nullIfEmpty:!0}).data;let{group:n=null}=e;if(!n&&!Ut)return{type:"success",message:"Left realtime message group."};if(null!==n&&"string"!=typeof n)throw new te('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return t.send(JSON.stringify({action:"joinRoom",rid:n,token:this.session.accessToken.jwtToken})),Ut=n,{type:"success",message:n?`Joined realtime message group: "${n}".`:"Left realtime message group."}}async function Zt(e,t){e=ue.Params(e,{user_id:e=>ue.UserId(e,'User ID in "user_id"'),group:["string",()=>{if(!Ut)throw new te('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Ut}]});let n=await Ge.bind(this)("get-ws-group",e,{fetchOptions:t,auth:!0,method:"post"});return n.list=n.list.map(e=>({user_id:e.uid.split("#")[1],cid:"cid:"+e.cid})),n}async function Xt(e,t){if(await this.__connection,e||(e={searchFor:"group",value:" ",condition:">"}),(e=ue.Params(e,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>e?.searchFor&&"number_of_users"===e?.searchFor?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]})).condition||(" "!==e.value&&e.value?e.condition="=":e.condition=">"),e.range&&e.condition&&delete e.condition,"number_of_users"===e.searchFor&&"number"!=typeof e.value)throw new te('"value" must be a number.',{code:"INVALID_PARAMETER"});if("group"===e.searchFor&&"string"!=typeof e.value)throw new te('"value" must be a string.',{code:"INVALID_PARAMETER"});if(e.hasOwnProperty("range")&&typeof e.range!=typeof e.value)throw new te(`"range" must be a ${typeof e.value}.`,{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("get-ws-group",e,{fetchOptions:t,auth:!0,method:"post"});return n.list=n.list.map(e=>({group:e.rid.split("#")[1],number_of_users:e.cnt})),n}async function en(e){let t=!1,n=e=>{for(let n in e)if("string"==typeof e[n]&&e[n].includes("$CLIENT_SECRET")){t=!0;break}};if(e=ue.Params(e,{url:e=>{if(!e||"string"!=typeof e)throw new te('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return ue.Url(e),e.includes("$CLIENT_SECRET")&&(t=!0),e},clientSecretName:"string",method:e=>{if(e&&"string"!=typeof e)throw new te('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let t=e.toLowerCase();if("get"!==t&&"post"!==t&&"delete"!==t&&"put"!==t)throw new te('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return t},headers:e=>{if(e&&"object"!=typeof e)throw new te('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e},data:e=>{if(e&&"object"!=typeof e)throw new te('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e},params:e=>{if(e&&"object"!=typeof e)throw new te('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e}},["clientSecretName","method","url"]),!t)throw new te(`At least one parameter value should include "$CLIENT_SECRET" in ${"post"===e.method.toLowerCase()?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let i=!!this.__user;return Ge.bind(this)("client-secret-request"+(i?"-public":""),e,{auth:i})}async function tn(e){await this.__connection;let t={name:"string",email:e=>(ue.Email(e),e),subject:"string",message:"string"};return e=ue.Params(e,t,["name","email","subject","message"]),await Ge.bind(this)("send-inquiry",e),"SUCCESS: Inquiry has been sent."}async function nn(e,t){if(await this.__connection,e instanceof FormData||e instanceof HTMLFormElement||e instanceof SubmitEvent){if(!t)throw new te("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});e={url:t,data:oe(e).data,sync:!0}}let n={url:e=>ue.Url(e),data:e=>e,sync:["boolean",()=>!0]};if(Array.isArray(e))for(let t of e)t=ue.Params(t,n);else e=ue.Params(e,n);return Ge.bind(this)("post-secure",e,{auth:!0})}async function rn(e,t){await this.__connection;let{auth:n=!1,method:i="POST",bypassAwaitConnection:r=!1,responseType:s,contentType:o,progress:a}=t||{};if(t=Object.assign({auth:n,method:i,bypassAwaitConnection:r,responseType:s,contentType:o},{fetchOptions:{progress:a}}),"object"!=typeof e&&("application/json"===o||void 0===o))throw new te('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return Ge.bind(this)("mock",e,t)}async function sn(e,t){await this.__connection,e=ue.Params(e||{},{access_group:e=>{if("authorized"===e&&(e=1),"public"===e&&(e=0),"number"!=typeof e)throw new te('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(e<0)throw new te('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(e>this.__user.access_group)throw new te("User has no access.",{code:"INVALID_REQUEST"});return e}});let n=await Ge.bind(this)("get-feed",e,{auth:!0,fetchOptions:t});for(let e in n.list)n.list[e]=await at.bind(this)(n.list[e]);return n}function on(e){if(e===this.__user.user_id)throw new te('"user_id" cannot be the user\'s own ID.',{code:"INVALID_PARAMETER"});return ue.UserId(e,'"user_id"')}async function an(e,t){if(e=oe(e,{ignoreEmpty:!0}).data,!(e=ue.Params(e,{subscriber:e=>ue.UserId(e,'User ID in "subscriber"'),subscription:on.bind(this),blocked:"boolean"})).subscriber&&!e.subscription)throw new te('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("get-subscription",e,Object.assign({auth:!0},{fetchOptions:t}));return n.list=n.list.map(e=>{let t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0]}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||"N"===e.grp.substring(0,1),Object.assign(t,e.opt),t}),n}async function cn(e){await this.__connection,e=ue.Params(e,{user_id:on.bind(this),get_feed:["boolean",()=>!1],get_notified:["boolean",()=>!1],get_email:e=>{if(e&&!this.__user.email||!this.__user.email_verified)throw new te("User has no verified email address.",{code:"INVALID_REQUEST"});return!!e}},["user_id"]);let t=await Ge.bind(this)("subscription",{subscribe:e.user_id,option:{get_feed:e.get_feed,get_notified:e.get_notified,get_email:e.get_email||!1}},{auth:!0}),n={};if(t.sub){let e=t.sub.split("#");n.subscriber=e[2],n.subscription=e[0]}else n.subscriber=t.subscriber,n.subscription=t.subscription;return n.timestamp=t?.timestamp||t.stmp,n.blocked=t?.blocked||"N"===t.grp.substring(0,1),Object.assign(n,t.opt),n}async function un(e){return await this.__connection,await Ge.bind(this)("admin-newsletter-request",e,{auth:!0})}async function ln(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{unsubscribe:t},{auth:!0})}async function hn(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{block:t},{auth:!0})}async function dn(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{unblock:t},{auth:!0})}async function fn(e){await this.__connection;let t=await ve.bind(this)();e=ue.Params(e,{user_id:e=>{if(e!==this.__user.user_id&&!t)throw new te("No access.",{code:"INVALID_REQUEST"});return e},group:e=>{if("public"===e&&(e=0),"authorized"===e&&(e=1),"number"!=typeof e)throw new te('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return e}});let n=await Ge.bind(this)("get-newsletter-subscription",e,{auth:!0}),i=[];for(let e of n){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 pn(e){await this.__connection;let t=ue.Params(e||{},{email:e=>ue.Email(e),group:["number","public","authorized","admin",e=>{if("string"!=typeof e||e.length>20||!/^[a-zA-Z0-9]+$/.test(e))throw new te('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return e}],redirect:e=>ue.Url(e)},this.__user?["group"]:["email","group"]);return Ge.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,t,{auth:!!this.__user})}async function gn(e){await this.__connection;let t=ue.Params(e||{},{group:e=>{if("string"!=typeof e||e.length>20||!/^[a-zA-Z0-9]+$/.test(e))throw new te('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return e},restriction:e=>{if("number"!=typeof e||e<0||e>99)throw new te('"restriction" should be a number between 0 and 99.',{code:"INVALID_PARAMETER"});return e}},["group","restriction"]);return Ge.bind(this)("register-newsletter-group",t,{auth:!0})}async function _n(e){return await this.__connection,await Ge.bind(this)("newsletter-group-endpoint",e,{auth:!0})}async function mn(e){await this.__connection,e=ue.Params(e,{group:["number","public","authorized","admin"]},["group"]);let t=Object.assign({action:"unsubscribe"},e);return Ge.bind(this)("subscribe-newsletter",t,{auth:!0})}async function yn(e,t){let n=await ve.bind(this)(),i={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};e||(t=Object.assign({ascending:!1},t||{})),e=(e=oe(e).data)||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"};let r=0===(e=ue.Params(e,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:t=>{if(typeof t!==i[e.searchFor])throw new te(`"value" type does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});if("string"==typeof t&&!t)throw new te('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return t},range:t=>{if(!e.hasOwnProperty("value")||typeof t!=typeof e.value)throw new te('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return t},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:e=>{if("public"===e)return 0;if(!this.session)throw new te("User should be logged in.",{code:"INVALID_REQUEST"});if("authorized"===e)return 1;if("number"==typeof e){if(!n&&e>parseInt(this.session.idToken.payload.access_group))throw new te("User has no access.",{code:"INVALID_REQUEST"});return e}throw new te('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"])).group?"get-public-newsletters":"get-newsletters",s=await Ge.bind(this)(r,e,Object.assign({method:"get",auth:"get-public-newsletters"!==r||!!this.__user},{fetchOptions:t})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:0,url:"",delivered:0};return s.list=s.list.map(e=>{let t={};for(let n in o)t[n]=e[o[n]]||a[n];return t}),s}async function wn(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,block:t.user_id}:{block:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("block-account",t,{auth:!0})}async function bn(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,unblock:t.user_id}:{unblock:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("block-account",t,{auth:!0})}async function An(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,delete:t.user_id}:{delete:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("remove-account",t,{auth:!0})}async function vn(e,t){let n={email:e=>ue.Email(e),password:e=>ue.Password(e),name:"string",username:"string",gender:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",birthdate:e=>ue.Birthdate(e),phone_number:e=>ue.PhoneNumber(e),picture:e=>e?ue.Url(e):void 0,profile:e=>e?ue.Url(e):void 0,website:e=>e?ue.Url(e):void 0,nickname:"string",misc:"string",email_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],address_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],openid_id:"string",access_group:e=>{try{"string"==typeof e&&(e="admin"===e?99:parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"!=typeof e||e<1||e>100)throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return e}},i=ue.Params(e,n,["email"]);if(t=ue.Params(t,{confirmation_url:e=>{let t=e;if("string"!=typeof e)throw new te('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(t=ue.Url(e),t&&!i.email)throw new te('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return t},email_subscription:e=>{if("boolean"!=typeof e)throw new te('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!t?.confirmation_url)throw new te('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return e},template:e=>{if("object"!=typeof e||!e.url||!e.subject)throw new te('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return{url:ue.Url(e.url),subject:e.subject}}}),i.signup_confirmation=t?.confirmation_url||!0,i.email_subscription=t?.email_subscription||!1,i.template=t?.template||{},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("admin-signup",i,{auth:!0})}async function Sn(e){let t={email:e=>ue.Email(e),password:e=>ue.Password(e),openid_id:"string",name:"string",username:"string",gender:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",birthdate:e=>ue.Birthdate(e),phone_number:e=>ue.PhoneNumber(e),picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",website:e=>e?ue.Url(e):"",nickname:"string",misc:"string",email_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],address_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],access_group:e=>{try{"string"==typeof e&&(e=parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"!=typeof e||e<1||e>100)throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return e}},n=ue.Params(e,t,["email","password"]);if(!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("admin-signup",n,{auth:!0})}async function En(e){if(e=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"'),access_group:e=>{try{"string"==typeof e&&(e=parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"==typeof e&&e>0&&e<100)return e;throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("grant-access",e,{auth:!0})}async function In(e,t){if(e=ue.Params(e,{email:"string"}),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}let n=await Ge.bind(this)("invitation-list",Object.assign({mode:"search"},e),{fetchOptions:t,auth:!0});return n.list=n.list.map(e=>ae(e.user)),n}async function Tn(e){if(e=ue.Params(e,{email:e=>ue.Email(e)},["email"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("invitation-list",Object.assign({mode:"cancel"},e),{auth:!0})}async function Rn(e){if(e=ue.Params(e,{email:e=>ue.Email(e)},["email"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("invitation-list",Object.assign({mode:"resend"},e),{auth:!0})}async function Un(e){if(await this.__connection,!e.endpoint)throw new te("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!e.keys||!e.keys.p256dh||!e.keys.auth)throw new te("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await Ge.bind(this)("store-subscription",{endpoint:e.endpoint,keys:e.keys},{auth:!0}),"SUCCESS: Subscribed to receive notifications."}async function Dn(e){if(await this.__connection,!e.endpoint)throw new te("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!e.keys||!e.keys.p256dh||!e.keys.auth)throw new te("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await Ge.bind(this)("delete-subscription",{endpoint:e.endpoint,keys:e.keys},{auth:!0}),"SUCCESS: Unsubscribed from notifications."}async function Pn(){return await this.__connection,{VAPIDPublicKey:await Ge.bind(this)("get-vapid-public-key",null,{auth:!0})}}async function Cn(e,t){await this.__connection;let{title:n,body:i}=oe(e||{},{nullIfEmpty:!0}).data;if(!n)throw new te("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!i)throw new te("Missing parameter: message body",{code:"INVALID_PARAMETER"});const r={title:n,body:i};return t?("string"==typeof t&&(t=[t]),r.user_ids=t):r.user_ids="all_users",await Ge.bind(this)("push-notification",r,{auth:!0}),"SUCCESS: Notification sent."}async function kn(e){return await this.__connection,e=ue.Params(e,{spell:"string",name:"string",magic:"object"},["spell","name"]),await Ge.bind(this)("castspell",e)}async function Nn(e){return await this.__connection,e=ue.Params(e,{search_option:["spell","name"],value:"string",condition:["starts_with","exact"]},["search_option","value","condition"]),await Ge.bind(this)("getspell",e)}async function Ln(e){await this.__connection,e=ue.Params(e,{message:"string",name:"string"},["message","name"]);let t=await Ge.bind(this)("dopamine",e,{auth:!0}),n=t.previous_message.message,i=t.previous_message.name;alert(`${i} said ${n}`),window.location.href=t.video}var On=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o};class Mn{get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){"function"==typeof e&&this._onLoginListeners.push(e)}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){"function"==typeof e&&this._userProfileListeners.push(e)}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)"function"==typeof t&&t(e)}_runOnLoginListeners(e){for(let t of this._onLoginListeners)"function"==typeof t&&t(e)}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){"function"==typeof e&&this._onBatchProcessListeners.push(e)}constructor(e,t,n,i){if(this.__version="1.2.0",this.session=null,this.connection=null,this.__my_unique_ids={},this.userPool=null,this.__socket=null,this.__mediaStream=null,this.host="skapi",this.hostDomain="skapi.com",this.target_cdn="d3e9syvbtso631",this.customApiDomain="skapi.dev",this.requestBatchSize=30,this.__disabledAccount=null,this.__cached_requests={},this.__startKeyHistory={},this.__request_signup_confirmation=null,this.__private_access_key={},this.__class_properties_has_been_cached=!1,this.__user=null,this._userProfileListeners=[],this._onLoginListeners=[],this._onBatchProcessListeners=[],this.validate={userId(e){try{return ue.UserId(e),!0}catch(e){return!1}},url(e){try{return ue.Url(e),!0}catch(e){return!1}},phoneNumber(e){try{return ue.PhoneNumber(e),!0}catch(e){return!1}},birthdate(e){try{return ue.Birthdate(e),!0}catch(e){return!1}},email(e){try{return ue.Email(e),!0}catch(e){return!1}},params:(e,t,n)=>ue.Params(e,t,n)},this.util={MD5:ne,generateRandom:se,toBase62:ie,fromBase62:re,extractFormData:oe,terminatePendingRequests:ze,request:(e,t,n)=>Ge.bind(this)(e,t,n,{ignoreService:!0})},this.__network_logs=!1,this.__endpoint_version="v1",this.__public_identifier="",this.registerTicket=ge.bind(this),this.unregisterTicket=_e.bind(this),7===e.split("-").length){n&&"object"==typeof n&&(i=n),t&&"object"==typeof t&&(n=t);const r=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],s=e.split("-"),o=r[re(s[1][0])],a=s.slice(2).join("-");if(t&&"string"==typeof t&&t!==a)throw alert("Service ID or Owner ID is invalid."),new te("Service ID or Owner ID is invalid.",{code:"INVALID_PARAMETER"});t=a,e=o+s[0]+s[1].slice(1)}if(!sessionStorage)throw new te("Web browser API is not available.",{code:"NOT_SUPPORTED"});if(sessionStorage.setItem("__skapi_kiss","kiss"),"kiss"!==sessionStorage.getItem("__skapi_kiss"))throw alert("Session storage is disabled. Please enable session storage."),new te("Session storage is disabled. Please enable session storage.",{code:"SESSION_STORAGE_DISABLED"});if(sessionStorage.removeItem("__skapi_kiss"),"string"!=typeof e||"string"!=typeof t)throw alert("Service ID or Owner ID is invalid."),new te('"service" and "owner" should be type <string>.',{code:"INVALID_PARAMETER"});if(!e||!t)throw alert("Service ID and Owner ID are required."),new te('"service" and "owner" are required.',{code:"INVALID_PARAMETER"});if("service_id"===e.toLowerCase()||"owner_id"===t.toLowerCase())throw alert('Replace "service_id" and "owner_id" with your actual Service ID and Owner ID.'),new te('"service" and "owner" are required.',{code:"INVALID_PARAMETER"});if(t!==this.host)try{ue.UserId(t,'"owner"')}catch(e){throw alert("Service ID or Owner ID is invalid."),e}this.service=e,this.owner=t;let r=!0;if(n&&("boolean"==typeof n.autoLogin&&(r=n.autoLogin),"number"==typeof n.requestBatchSize)){if(n.requestBatchSize<1)throw new te('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize}n?.eventListener&&"object"==typeof n.eventListener&&(n.eventListener?.onLogin&&"function"==typeof n.eventListener.onLogin&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&"function"==typeof n.eventListener.onUserUpdate&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&"function"==typeof n.eventListener.onBatchProcess&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;const s=`https://${this.target_cdn}.cloudfront.net`;let o=e.substring(0,4);if(this.admin_endpoint=fetch(`${s}/${o}/admin-${this.__endpoint_version}.json`).then(e=>e.blob()).then(e=>new Promise((t,n)=>{const i=new FileReader;i.onloadend=()=>t(i.result),i.onerror=n,i.readAsDataURL(e)})).then(e=>{try{return"string"==typeof e?JSON.parse(atob(e.split(",")[1])):null}catch(e){throw new te("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${s}/${o}/record-${this.__endpoint_version}.json`).then(e=>e.blob()).then(e=>new Promise((t,n)=>{const i=new FileReader;i.onloadend=()=>t(i.result),i.onerror=n,i.readAsDataURL(e)})).then(e=>{try{return"string"==typeof e?JSON.parse(atob(e.split(",")[1])):null}catch(e){throw new te("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),!sessionStorage)throw alert("This browser is not supported."),new Error("This browser is not supported.");const a=JSON.parse(sessionStorage.getItem(`${e}#${t}`)||"null");if(this.log("constructor:restore",a),a?.connection){for(let e in a)this[e]=a[e];a.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${se(16)}`)}this.__authConnection=(async()=>{const e=await this.admin_endpoint;this.userPool=new ee({UserPoolId:e.userpool_id,ClientId:e.userpool_client});try{await we.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(a?.connection||r?(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)):Se.bind(this)())}catch(e){}})();let c=sessionStorage.getItem(`${this.service}:uniqueids`);if(c)try{this.__my_unique_ids=JSON.parse(c)}catch(e){this.__my_unique_ids={}}this.__connection=(async()=>{let n=null;await this.record_endpoint,a?.connection||(n=this._updateConnection());const i=()=>{if(this.__class_properties_has_been_cached)return;let i=()=>{let n={};const i=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let e of i)n[e]=this[e];sessionStorage.setItem(`${e}#${t}`,JSON.stringify(n)),this.__class_properties_has_been_cached=!0}};return n instanceof Promise?n.then(()=>i()):i()};return addEventListener("beforeunload",()=>{this.closeRealtime(),i()}),addEventListener("visibilitychange",()=>{i()}),await n,await this.__authConnection,this.connection})(),this.__connection.then(e=>{((e?.group||0)<3||this.__network_logs)&&this.version()})}async getConnectionInfo(){let e=await this.__connection,t=e?.user_agent||navigator.userAgent;return{user_ip:e.ip,user_agent:t,user_location:e.locale,service_name:e.service_name,version:this.__version}}async _updateConnection(){try{this.connection=await Ge.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"})}catch(e){throw this.log("connection fail",e),alert("Service is not available: "+(e.message||e.toString())),this.connection=null,e}return this.connection}async version(){return await this.__connection,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\nFull Documentation: https://docs.skapi.com/skapi.md`,"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 30 DAYS.","font-family: monospace; color:red;"),this.__version}log(e,t){if(this.__network_logs)try{console.log(`%c${e}:`,"color: blue;",JSON.parse(JSON.stringify(t)))}catch(n){console.log(`%c${e}:`,"color: blue;",t)}}getFeed(e,t){return sn.bind(this)(e,t)}closeRTC(e){return Ot.bind(this)(e)}connectRTC(e,t){return Vt.bind(this)(e,t)}connectRealtime(e){return Gt.bind(this)(e)}spellcast(e){return kn.bind(this)(e)}getspell(e){return Nn.bind(this)(e)}dopamine(e){return Ln.bind(this)(e)}getUniqueId(e,t){return _t.bind(this)(e,t)}resendInvitation(e){return Rn.bind(this)(e)}cancelInvitation(e){return Tn.bind(this)(e)}getInvitations(e,t){return In.bind(this)(e,t)}openIdLogin(e){return Ae.bind(this)(e)}registerNewsletterGroup(e){return gn.bind(this)(e)}clientSecretRequest(e){return en.bind(this)(e)}consumeTicket(e){return de.bind(this)(e)}getConsumedTickets(e,t){return pe.bind(this)(e,t)}getTickets(e,t){return fe.bind(this)(e,t)}closeRealtime(){return zt.bind(this)()}getRealtimeUsers(e,t){return Zt.bind(this)(e,t)}sendInquiry(e){return tn.bind(this)(e)}blockAccount(e){return wn.bind(this)(e)}unblockAccount(e){return bn.bind(this)(e)}deleteAccount(e){return An.bind(this)(e)}inviteUser(e,t){return vn.bind(this)(e,t)}createAccount(e){return Sn.bind(this)(e)}grantAccess(e){return En.bind(this)(e)}getRealtimeGroups(e,t){return Xt.bind(this)(e,t)}newsletterGroupEndpoint(e){return _n.bind(this)(e)}postRealtime(e,t,n){return Yt.bind(this)(e,t,n)}joinRealtime(e){return Wt.bind(this)(e)}getConnection(){return this.__connection}getProfile(e){return be.bind(this)(e)}getFile(e,t){return ut.bind(this)(e,t)}secureRequest(e,t){return nn.bind(this)(e,t)}getFormResponse(){return nt.bind(this)()}getRecords(e,t){return ht.bind(this)(e,t)}getTables(e,t){return ft.bind(this)(e,t)}getIndexes(e,t){return pt.bind(this)(e,t)}getTags(e,t){return gt.bind(this)(e,t)}deleteRecords(e,t){return mt.bind(this)(e,t)}resendSignupConfirmation(){return Ie.bind(this)()}recoverAccount(e=!1){return Te.bind(this)(e)}getUsers(e,t){return Ve.bind(this)(e,t)}disableAccount(){return De.bind(this)()}lastVerifiedEmail(e){return xe.bind(this)(e)}unsubscribeNewsletter(e){return mn.bind(this)(e)}adminNewsletterRequest(e){return un.bind(this)(e)}subscribeNotification(e,t){return Un.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Dn.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return Pn.bind(this)()}pushNotification(e,t){return Cn.bind(this)(e,t)}getNewsletters(e,t){return yn.bind(this)(e,t)}getNewsletterSubscription(e){return fn.bind(this)(e)}requestUsernameChange(e){return Fe.bind(this)(e)}grantPrivateRecordAccess(e){return yt.bind(this)(e)}removePrivateRecordAccess(e){return wt.bind(this)(e)}listPrivateRecordAccess(e){return bt.bind(this)(e)}requestPrivateRecordAccessKey(e){return At.bind(this)(e)}deleteFiles(e){return ct.bind(this)(e)}uploadFiles(e,t){return Xe.bind(this)(e,t)}mock(e,t){return rn.bind(this)(e,t)}login(e){return Re.bind(this)(e)}logout(e){return Ee.bind(this)(e)}signup(e,t){return Ue.bind(this)(e,t)}resetPassword(e){return Pe.bind(this)(e)}verifyEmail(e){return Ne.bind(this)(e)}verifyPhoneNumber(e){return ke.bind(this)(e)}forgotPassword(e){return Le.bind(this)(e)}changePassword(e){return Oe.bind(this)(e)}updateProfile(e){return Me.bind(this)(e)}postRecord(e,t,n){return dt.bind(this)(e,t,n)}getSubscriptions(e,t){return an.bind(this)(e,t)}subscribe(e){return cn.bind(this)(e)}unsubscribe(e){return ln.bind(this)(e)}blockSubscriber(e){return hn.bind(this)(e)}unblockSubscriber(e){return dn.bind(this)(e)}subscribeNewsletter(e){return pn.bind(this)(e)}}On([tt()],Mn.prototype,"getFeed",null),On([tt()],Mn.prototype,"closeRTC",null),On([tt()],Mn.prototype,"connectRTC",null),On([tt()],Mn.prototype,"spellcast",null),On([tt()],Mn.prototype,"getspell",null),On([tt()],Mn.prototype,"dopamine",null),On([tt()],Mn.prototype,"getUniqueId",null),On([tt()],Mn.prototype,"resendInvitation",null),On([tt()],Mn.prototype,"cancelInvitation",null),On([tt()],Mn.prototype,"getInvitations",null),On([tt()],Mn.prototype,"openIdLogin",null),On([tt()],Mn.prototype,"registerNewsletterGroup",null),On([tt()],Mn.prototype,"clientSecretRequest",null),On([tt()],Mn.prototype,"consumeTicket",null),On([tt()],Mn.prototype,"getConsumedTickets",null),On([tt()],Mn.prototype,"getTickets",null),On([tt()],Mn.prototype,"getRealtimeUsers",null),On([tt()],Mn.prototype,"sendInquiry",null),On([tt()],Mn.prototype,"blockAccount",null),On([tt()],Mn.prototype,"unblockAccount",null),On([tt()],Mn.prototype,"deleteAccount",null),On([tt()],Mn.prototype,"inviteUser",null),On([tt()],Mn.prototype,"createAccount",null),On([tt()],Mn.prototype,"grantAccess",null),On([tt()],Mn.prototype,"getRealtimeGroups",null),On([tt()],Mn.prototype,"newsletterGroupEndpoint",null),On([tt()],Mn.prototype,"postRealtime",null),On([tt()],Mn.prototype,"joinRealtime",null),On([tt()],Mn.prototype,"getProfile",null),On([tt()],Mn.prototype,"getFile",null),On([tt()],Mn.prototype,"secureRequest",null),On([tt()],Mn.prototype,"getFormResponse",null),On([tt()],Mn.prototype,"getRecords",null),On([tt()],Mn.prototype,"getTables",null),On([tt()],Mn.prototype,"getIndexes",null),On([tt()],Mn.prototype,"getTags",null),On([tt()],Mn.prototype,"deleteRecords",null),On([tt()],Mn.prototype,"resendSignupConfirmation",null),On([tt()],Mn.prototype,"recoverAccount",null),On([tt()],Mn.prototype,"getUsers",null),On([tt()],Mn.prototype,"disableAccount",null),On([tt()],Mn.prototype,"lastVerifiedEmail",null),On([tt()],Mn.prototype,"unsubscribeNewsletter",null),On([tt()],Mn.prototype,"adminNewsletterRequest",null),On([tt()],Mn.prototype,"subscribeNotification",null),On([tt()],Mn.prototype,"unsubscribeNotification",null),On([tt()],Mn.prototype,"vapidPublicKey",null),On([tt()],Mn.prototype,"pushNotification",null),On([tt()],Mn.prototype,"getNewsletters",null),On([tt()],Mn.prototype,"getNewsletterSubscription",null),On([tt()],Mn.prototype,"requestUsernameChange",null),On([tt()],Mn.prototype,"grantPrivateRecordAccess",null),On([tt()],Mn.prototype,"removePrivateRecordAccess",null),On([tt()],Mn.prototype,"listPrivateRecordAccess",null),On([tt()],Mn.prototype,"requestPrivateRecordAccessKey",null),On([tt()],Mn.prototype,"deleteFiles",null),On([tt()],Mn.prototype,"uploadFiles",null),On([tt()],Mn.prototype,"mock",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"login",null),On([tt()],Mn.prototype,"logout",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"signup",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"resetPassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"verifyEmail",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"verifyPhoneNumber",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"forgotPassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"changePassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"updateProfile",null),On([tt()],Mn.prototype,"postRecord",null),On([tt()],Mn.prototype,"getSubscriptions",null),On([tt()],Mn.prototype,"subscribe",null),On([tt()],Mn.prototype,"unsubscribe",null),On([tt()],Mn.prototype,"blockSubscriber",null),On([tt()],Mn.prototype,"unblockSubscriber",null),On([tt()],Mn.prototype,"subscribeNewsletter",null)})(),i})());
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 i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(self,()=>(()=>{var e={6:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fromUtf8:()=>i,toUtf8:()=>r});const i=e=>"function"==typeof TextEncoder?function(e){return(new TextEncoder).encode(e)}(e):(e=>{const t=[];for(let n=0,i=e.length;n<i;n++){const i=e.charCodeAt(n);if(i<128)t.push(i);else if(i<2048)t.push(i>>6|192,63&i|128);else if(n+1<e.length&&55296==(64512&i)&&56320==(64512&e.charCodeAt(n+1))){const r=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n));t.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else t.push(i>>12|224,i>>6&63|128,63&i|128)}return Uint8Array.from(t)})(e),r=e=>"function"==typeof TextDecoder?function(e){return new TextDecoder("utf-8").decode(e)}(e):(e=>{let t="";for(let n=0,i=e.length;n<i;n++){const i=e[n];if(i<128)t+=String.fromCharCode(i);else if(192<=i&&i<224){const r=e[++n];t+=String.fromCharCode((31&i)<<6|63&r)}else if(240<=i&&i<365){const r="%"+[i,e[++n],e[++n],e[++n]].map(e=>e.toString(16)).join("%");t+=decodeURIComponent(r)}else t+=String.fromCharCode((15&i)<<12|(63&e[++n])<<6|63&e[++n])}return t})(e)},24:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertToBuffer=void 0;var i=n(6),r="undefined"!=typeof Buffer&&Buffer.from?function(e){return Buffer.from(e,"utf8")}:i.fromUtf8;t.convertToBuffer=function(e){return e instanceof Uint8Array?e:"string"==typeof e?r(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}},110:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uint32ArrayFrom=void 0,t.uint32ArrayFrom=function(e){if(!Array.from){for(var t=new Uint32Array(e.length);0<e.length;)t[0]=e[0];return t}return Uint32Array.from(e)}},165:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEmptyData=void 0,t.isEmptyData=function(e){return"string"==typeof e?0===e.length:0===e.byteLength}},215:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>s,__asyncDelegator:()=>b,__asyncGenerator:()=>w,__asyncValues:()=>A,__await:()=>y,__awaiter:()=>l,__classPrivateFieldGet:()=>I,__classPrivateFieldSet:()=>T,__createBinding:()=>d,__decorate:()=>a,__exportStar:()=>f,__extends:()=>r,__generator:()=>h,__importDefault:()=>E,__importStar:()=>S,__makeTemplateObject:()=>v,__metadata:()=>u,__param:()=>c,__read:()=>g,__rest:()=>o,__spread:()=>_,__spreadArrays:()=>m,__values:()=>p});var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i(e,t)};function r(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s=function(){return s=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function o(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}function a(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function c(e,t){return function(n,i){t(n,i,e)}}function u(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function l(e,t,n,i){return new(n||(n=Promise))(function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}c((i=i.apply(e,t||[])).next())})}function h(e,t){var n,i,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,i&&(r=2&s[0]?i.return:s[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,s[1])).done)return r;switch(i=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,i=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((r=(r=o.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){o.label=s[1];break}if(6===s[0]&&o.label<r[1]){o.label=r[1],r=s;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(s);break}r[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],i=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}}function d(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}function f(e,t){for(var n in e)"default"===n||t.hasOwnProperty(n)||(t[n]=e[n])}function p(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return o}function _(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),r=0;for(t=0;t<n;t++)for(var s=arguments[t],o=0,a=s.length;o<a;o++,r++)i[r]=s[o];return i}function y(e){return this instanceof y?(this.v=e,this):new y(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(e,t||[]),s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(e){r[e]&&(i[e]=function(t){return new Promise(function(n,i){s.push([e,t,n,i])>1||a(e,t)})})}function a(e,t){try{(n=r[e](t)).value instanceof y?Promise.resolve(n.value.v).then(c,u):l(s[0][2],n)}catch(e){l(s[0][3],e)}var n}function c(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}function b(e){var t,n;return t={},i("next"),i("throw",function(e){throw e}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(i,r){t[i]=e[i]?function(t){return(n=!n)?{value:y(e[i](t)),done:"return"===i}:r?r(t):t}:r}}function A(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise(function(i,r){!function(e,t,n,i){Promise.resolve(i).then(function(t){e({value:t,done:n})},t)}(i,r,(t=e[n](t)).done,t.value)})}}}function v(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function S(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function E(e){return e&&e.__esModule?e:{default:e}}function I(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function T(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},251:(e,t)=>{t.read=function(e,t,n,i,r){var s,o,a=8*r-i-1,c=(1<<a)-1,u=c>>1,l=-7,h=n?r-1:0,d=n?-1:1,f=e[t+h];for(h+=d,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+h],h+=d,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=i;l>0;o=256*o+e[t+h],h+=d,l-=8);if(0===s)s=1-u;else{if(s===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,i),s-=u}return(f?-1:1)*o*Math.pow(2,s-i)},t.write=function(e,t,n,i,r,s){var o,a,c,u=8*s-r-1,l=(1<<u)-1,h=l>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:s-1,p=i?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*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(o++,c/=2),o+h>=l?(a=0,o=l):o+h>=1?(a=(t*c-1)*Math.pow(2,r),o+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,r),o=0));r>=8;e[n+f]=255&a,f+=p,a/=256,r-=8);for(o=o<<r|a,u+=r;u>0;e[n+f]=255&o,f+=p,o/=256,u-=8);e[n+f-p]|=128*g}},284:()=>{"use strict";window.global=window},287:(e,t,n)=>{"use strict";var i=n(526),r=n(251),s=n(634);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(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 u(this,e,t,n)}function u(e,t,n,i){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,i){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(i||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,n):new Uint8Array(t,n,i),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t),e}(e,t,n,i):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var i=0|p(t,n),r=(e=a(e,i)).write(t,n);return r!==i&&(e=e.slice(0,r)),e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|f(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||(i=t.length)!=i?a(e,0):d(e,t);if("Buffer"===t.type&&s(t.data))return d(e,t.data)}var i;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|f(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|f(t.length);e=a(e,n);for(var i=0;i<n;i+=1)e[i]=255&t[i];return e}function f(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(c.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 i=!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(i)return B(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,n){var i=!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 P(this,t,n);case"utf8":case"utf-8":return T(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 C(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function _(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function m(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,i,r);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,i,r){var s,o=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var l=-1;for(s=n;s<a;s++)if(u(e,s)===u(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===c)return l*o}else-1!==l&&(s-=s-l),l=-1}else for(n+c>a&&(n=a-c),s=n;s>=0;s--){for(var h=!0,d=0;d<c;d++)if(u(e,s+d)!==u(t,d)){h=!1;break}if(h)return s}return-1}function w(e,t,n,i){n=Number(n)||0;var r=e.length-n;i?(i=Number(i))>r&&(i=r):i=r;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");i>s/2&&(i=s/2);for(var o=0;o<i;++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,i){return j(B(t,e.length-n),e,n,i)}function A(e,t,n,i){return j(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,i)}function v(e,t,n,i){return A(e,t,n,i)}function S(e,t,n,i){return j($(t),e,n,i)}function E(e,t,n,i){return j(function(e,t){for(var n,i,r,s=[],o=0;o<e.length&&!((t-=2)<0);++o)i=(n=e.charCodeAt(o))>>8,r=n%256,s.push(r),s.push(i);return s}(t,e.length-n),e,n,i)}function I(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var i=[],r=t;r<n;){var s,o,a,c,u=e[r],l=null,h=u>239?4:u>223?3:u>191?2:1;if(r+h<=n)switch(h){case 1:u<128&&(l=u);break;case 2:128==(192&(s=e[r+1]))&&(c=(31&u)<<6|63&s)>127&&(l=c);break;case 3:s=e[r+1],o=e[r+2],128==(192&s)&&128==(192&o)&&(c=(15&u)<<12|(63&s)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:s=e[r+1],o=e[r+2],a=e[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,h=1):l>65535&&(l-=65536,i.push(l>>>10&1023|55296),l=56320|1023&l),i.push(l),r+=h}return function(e){var t=e.length;if(t<=R)return String.fromCharCode.apply(String,e);for(var n="",i=0;i<t;)n+=String.fromCharCode.apply(String,e.slice(i,i+=R));return n}(i)}t.hp=c,t.IS=50,c.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(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,i){return l(t),t<=0?a(e,t):void 0!==n?"string"==typeof i?a(e,t).fill(n,i):a(e,t).fill(n):a(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return h(null,e)},c.allocUnsafeSlow=function(e){return h(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,r=0,s=Math.min(n,i);r<s;++r)if(e[r]!==t[r]){n=e[r],i=t[r];break}return n<i?-1:i<n?1:0},c.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}},c.concat=function(e,t){if(!s(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=c.allocUnsafe(t),r=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,r),r+=o.length}return i},c.byteLength=p,c.prototype._isBuffer=!0,c.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)_(this,t,t+1);return this},c.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)_(this,t,t+3),_(this,t+1,t+2);return this},c.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)_(this,t,t+7),_(this,t+1,t+6),_(this,t+2,t+5),_(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.IS;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,i,r){if(!c.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===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var s=(r>>>=0)-(i>>>=0),o=(n>>>=0)-(t>>>=0),a=Math.min(s,o),u=this.slice(i,r),l=e.slice(t,n),h=0;h<a;++h)if(u[h]!==l[h]){s=u[h],o=l[h];break}return s<o?-1:o<s?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},c.prototype.write=function(e,t,n,i){if(void 0===t)i="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)i=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===i&&(i="utf8")):(i=n,n=void 0)}var r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var s=!1;;)switch(i){case"hex":return w(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 S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var R=4096;function D(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;r<n;++r)i+=String.fromCharCode(127&e[r]);return i}function U(e,t,n){var i="";n=Math.min(e.length,n);for(var r=t;r<n;++r)i+=String.fromCharCode(e[r]);return i}function P(e,t,n){var i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var r="",s=t;s<n;++s)r+=q(e[s]);return r}function C(e,t,n){for(var i=e.slice(t,n),r="",s=0;s<i.length;s+=2)r+=String.fromCharCode(i[s]+256*i[s+1]);return r}function k(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 N(e,t,n,i,r,s){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||t<s)throw new RangeError('"value" argument is out of bounds');if(n+i>e.length)throw new RangeError("Index out of range")}function L(e,t,n,i){t<0&&(t=65535+t+1);for(var r=0,s=Math.min(e.length-n,2);r<s;++r)e[n+r]=(t&255<<8*(i?r:1-r))>>>8*(i?r:1-r)}function O(e,t,n,i){t<0&&(t=4294967295+t+1);for(var r=0,s=Math.min(e.length-n,4);r<s;++r)e[n+r]=t>>>8*(i?r:3-r)&255}function M(e,t,n,i,r,s){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function x(e,t,n,i,s){return s||M(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function V(e,t,n,i,s){return s||M(e,0,n,8),r.write(e,t,n,i,52,8),n+8}c.prototype.slice=function(e,t){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var r=t-e;n=new c(r,void 0);for(var s=0;s<r;++s)n[s]=this[s+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e],r=1,s=0;++s<t&&(r*=256);)i+=this[e+s]*r;return i},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e+--t],r=1;t>0&&(r*=256);)i+=this[e+--t]*r;return i},c.prototype.readUInt8=function(e,t){return t||k(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||k(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||k(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||k(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||k(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=this[e],r=1,s=0;++s<t&&(r*=256);)i+=this[e+s]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||k(e,t,this.length);for(var i=t,r=1,s=this[e+--i];i>0&&(r*=256);)s+=this[e+--i]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*t)),s},c.prototype.readInt8=function(e,t){return t||k(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||k(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||k(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||k(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||k(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||k(e,4,this.length),r.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||k(e,4,this.length),r.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||k(e,8,this.length),r.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||k(e,8,this.length),r.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,i){e=+e,t|=0,n|=0,i||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,s=0;for(this[t]=255&e;++s<n&&(r*=256);)this[t+s]=e/r&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,i){e=+e,t|=0,n|=0,i||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=n-1,s=1;for(this[t+r]=255&e;--r>=0&&(s*=256);)this[t+r]=e/s&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):O(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}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},c.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t|=0,!i){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}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},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):O(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):O(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return x(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return x(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===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(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var r,s=i-n;if(this===e&&n<t&&t<i)for(r=s-1;r>=0;--r)e[r+t]=this[r+n];else if(s<1e3||!c.TYPED_ARRAY_SUPPORT)for(r=0;r<s;++r)e[r+t]=this[r+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},c.prototype.fill=function(e,t,n,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),1===e.length){var r=e.charCodeAt(0);r<256&&(e=r)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!c.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}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=c.isBuffer(e)?e:B(new c(e,i).toString()),a=o.length;for(s=0;s<n-t;++s)this[s+t]=o[s%a]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function q(e){return e<16?"0"+e.toString(16):e.toString(16)}function B(e,t){var n;t=t||1/0;for(var i=e.length,r=null,s=[],o=0;o<i;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===i){(t-=3)>-1&&s.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&s.push(239,191,189);if(r=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 i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function j(e,t,n,i){for(var r=0;r<i&&!(r+n>=t.length||r>=e.length);++r)t[r+n]=e[r];return r}},388:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uint32ArrayFrom=t.numToUint8=t.isEmptyData=t.convertToBuffer=void 0;var i=n(24);Object.defineProperty(t,"convertToBuffer",{enumerable:!0,get:function(){return i.convertToBuffer}});var r=n(165);Object.defineProperty(t,"isEmptyData",{enumerable:!0,get:function(){return r.isEmptyData}});var s=n(413);Object.defineProperty(t,"numToUint8",{enumerable:!0,get:function(){return s.numToUint8}});var o=n(110);Object.defineProperty(t,"uint32ArrayFrom",{enumerable:!0,get:function(){return o.uint32ArrayFrom}})},413:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numToUint8=void 0,t.numToUint8=function(e){return new Uint8Array([(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e])}},494:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_HASHABLE_LENGTH=t.INIT=t.KEY=t.DIGEST_LENGTH=t.BLOCK_SIZE=void 0,t.BLOCK_SIZE=64,t.DIGEST_LENGTH=32,t.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),t.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],t.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1},523:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,n(215).__exportStar)(n(871),t)},526:(e,t)=>{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],i=t[1];return 3*(n+i)/4-i},t.toByteArray=function(e){var t,n,s=a(e),o=s[0],c=s[1],u=new r(function(e,t,n){return 3*(t+n)/4-n}(0,o,c)),l=0,h=c>0?o-4:o;for(n=0;n<h;n+=4)t=i[e.charCodeAt(n)]<<18|i[e.charCodeAt(n+1)]<<12|i[e.charCodeAt(n+2)]<<6|i[e.charCodeAt(n+3)],u[l++]=t>>16&255,u[l++]=t>>8&255,u[l++]=255&t;return 2===c&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,u[l++]=255&t),1===c&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t),u},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,s=[],o=16383,a=0,c=i-r;a<c;a+=o)s.push(u(e,a,a+o>c?c:a+o));return 1===r?(t=e[i-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[i-2]<<8)+e[i-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),s.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=s[o],i[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 c(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function u(e,t,n){for(var i,r=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),r.push(c(i));return r.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},596:(e,t,n)=>{var i,r,s;void 0===(r="function"==typeof(i=s=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var i in n)t[i]=n[i]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(i){function r(){}function s(t,n,s){if("undefined"!=typeof document){"number"==typeof(s=e({path:"/"},r.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=i.write?i.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 c in s)s[c]&&(a+="; "+c,!0!==s[c]&&(a+="="+s[c].split(";")[0]));return document.cookie=t+"="+n+a}}function o(e,n){if("undefined"!=typeof document){for(var r={},s=document.cookie?document.cookie.split("; "):[],o=0;o<s.length;o++){var a=s[o].split("="),c=a.slice(1).join("=");n||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var u=t(a[0]);if(c=(i.read||i)(c,u)||t(c),n)try{c=JSON.parse(c)}catch(e){}if(r[u]=c,e===u)break}catch(e){}}return e?r[e]:r}}return r.set=s,r.get=function(e){return o(e,!1)},r.getJSON=function(e){return o(e,!0)},r.remove=function(t,n){s(t,"",e(n,{expires:-1}))},r.defaults={},r.withConverter=n,r}(function(){})})?i.call(t,n,t,e):i)||(e.exports=r),e.exports=s()},602:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RawSha256=void 0;var i=n(494),r=function(){function e(){this.state=Int32Array.from(i.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}return e.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,8*this.bytesHashed>i.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===i.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0)},e.prototype.digest=function(){if(!this.finished){var e=8*this.bytesHashed,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%i.BLOCK_SIZE>=i.BLOCK_SIZE-8){for(var r=this.bufferLength;r<i.BLOCK_SIZE;r++)t.setUint8(r,0);this.hashBuffer(),this.bufferLength=0}for(r=this.bufferLength;r<i.BLOCK_SIZE-8;r++)t.setUint8(r,0);t.setUint32(i.BLOCK_SIZE-8,Math.floor(e/4294967296),!0),t.setUint32(i.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=!0}var s=new Uint8Array(i.DIGEST_LENGTH);for(r=0;r<8;r++)s[4*r]=this.state[r]>>>24&255,s[4*r+1]=this.state[r]>>>16&255,s[4*r+2]=this.state[r]>>>8&255,s[4*r+3]=this.state[r]>>>0&255;return s},e.prototype.hashBuffer=function(){for(var e=this.buffer,t=this.state,n=t[0],r=t[1],s=t[2],o=t[3],a=t[4],c=t[5],u=t[6],l=t[7],h=0;h<i.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(255&e[4*h])<<24|(255&e[4*h+1])<<16|(255&e[4*h+2])<<8|255&e[4*h+3];else{var d=this.temp[h-2],f=(d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,p=((d=this.temp[h-15])>>>7|d<<25)^(d>>>18|d<<14)^d>>>3;this.temp[h]=(f+this.temp[h-7]|0)+(p+this.temp[h-16]|0)}var g=(((a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7))+(a&c^~a&u)|0)+(l+(i.KEY[h]+this.temp[h]|0)|0)|0,_=((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+(n&r^n&s^r&s)|0;l=u,u=c,c=a,a=o+g|0,o=s,s=r,r=n,n=g+_|0}t[0]+=n,t[1]+=r,t[2]+=s,t[3]+=o,t[4]+=a,t[5]+=c,t[6]+=u,t[7]+=l},e}();t.RawSha256=r},634:e=>{var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},682:()=>{},782:(e,t,n)=>{"use strict";function i(e,t){return t=t||{},new Promise(function(n,i){var r=new XMLHttpRequest,s=[],o=[],a={},c=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:c,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 u in r.open(t.method||"get",e,!0),r.onload=function(){r.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(c())},r.onerror=i,r.withCredentials="include"==t.credentials,t.headers)r.setRequestHeader(u,t.headers[u]);r.send(t.body||null)})}n.r(t),n.d(t,{default:()=>i})},871:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Sha256=void 0;var i=n(215),r=n(494),s=n(602),o=n(388),a=function(){function e(e){if(this.hash=new s.RawSha256,e){this.outer=new s.RawSha256;var t=function(e){var t=(0,o.convertToBuffer)(e);if(t.byteLength>r.BLOCK_SIZE){var n=new s.RawSha256;n.update(t),t=n.digest()}var i=new Uint8Array(r.BLOCK_SIZE);return i.set(t),i}(e),n=new Uint8Array(r.BLOCK_SIZE);n.set(t);for(var i=0;i<r.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;for(this.hash.update(t),this.outer.update(n),i=0;i<t.byteLength;i++)t[i]=0}}return e.prototype.update=function(e){if(!(0,o.isEmptyData)(e)&&!this.error)try{this.hash.update((0,o.convertToBuffer)(e))}catch(e){this.error=e}},e.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},e.prototype.digest=function(){return(0,i.__awaiter)(this,void 0,void 0,function(){return(0,i.__generator)(this,function(e){return[2,this.digestSync()]})})},e}();t.Sha256=a},916:(e,t,n)=>{e.exports=self.fetch||(self.fetch=n(782).default||n(782))}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},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 i={};return(()=>{"use strict";n.r(i),n.d(i,{Skapi:()=>Mn,SkapiError:()=>te,Types:()=>e});var e={};n.r(e),n(284);var t,r=function(){function e(e){var t=e||{},n=t.ValidationData,i=t.Username,r=t.Password,s=t.AuthParameters,o=t.ClientMetadata;this.validationData=n||{},this.authParameters=s||{},this.clientMetadata=o||{},this.username=i,this.password=r}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}(),s=n(287);if("undefined"!=typeof window&&window.crypto&&(t=window.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&void 0!==n.g&&n.g.crypto&&(t=n.g.crypto),!t)try{t=n(682)}catch(e){}function o(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}var a=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=[],i=0;i<t;i+=4)n.push(o());return new e(n,t)},t.toString=function(){return function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var s=t[r>>>2]>>>24-r%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join("")}(this)},e}(),c=n(523);const u=l;function l(e,t){null!=e&&this.fromString(e,t)}function h(){return new l(null)}var d,f="undefined"!=typeof navigator;f&&"Microsoft Internet Explorer"==navigator.appName?(l.prototype.am=function(e,t,n,i,r,s){for(var o=32767&t,a=t>>15;--s>=0;){var c=32767&this[e],u=this[e++]>>15,l=a*c+u*o;r=((c=o*c+((32767&l)<<15)+n[i]+(1073741823&r))>>>30)+(l>>>15)+a*u+(r>>>30),n[i++]=1073741823&c}return r},d=30):f&&"Netscape"!=navigator.appName?(l.prototype.am=function(e,t,n,i,r,s){for(;--s>=0;){var o=t*this[e++]+n[i]+r;r=Math.floor(o/67108864),n[i++]=67108863&o}return r},d=26):(l.prototype.am=function(e,t,n,i,r,s){for(var o=16383&t,a=t>>14;--s>=0;){var c=16383&this[e],u=this[e++]>>14,l=a*c+u*o;r=((c=o*c+((16383&l)<<14)+n[i]+r)>>28)+(l>>14)+a*u,n[i++]=268435455&c}return r},d=28),l.prototype.DB=d,l.prototype.DM=(1<<d)-1,l.prototype.DV=1<<d,l.prototype.FV=Math.pow(2,52),l.prototype.F1=52-d,l.prototype.F2=2*d-52;var p,g,_=new Array;for(p="0".charCodeAt(0),g=0;g<=9;++g)_[p++]=g;for(p="a".charCodeAt(0),g=10;g<36;++g)_[p++]=g;for(p="A".charCodeAt(0),g=10;g<36;++g)_[p++]=g;function m(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function y(e,t){var n=_[e.charCodeAt(t)];return null==n?-1:n}function w(e){var t=h();return t.fromInt(e),t}function b(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 A(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 v(e){return s.hp.from((new a).random(e).toString(),"hex")}A.prototype.convert=function(e){var t=h();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(l.ZERO)>0&&this.m.subTo(t,t),t},A.prototype.revert=function(e){var t=h();return e.copyTo(t),this.reduce(t),t},A.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],i=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,i,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)},A.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},A.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},l.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},l.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},l.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 i=e.length,r=!1,s=0;--i>=0;){var o=y(e,i);o<0?"-"==e.charAt(i)&&(r=!0):(r=!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(),r&&l.ZERO.subTo(this,this)},l.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},l.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},l.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},l.prototype.lShiftTo=function(e,t){var n,i=e%this.DB,r=this.DB-i,s=(1<<r)-1,o=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+o+1]=this[n]>>r|a,a=(this[n]&s)<<i;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()},l.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 i=e%this.DB,r=this.DB-i,s=(1<<i)-1;t[0]=this[n]>>i;for(var o=n+1;o<this.t;++o)t[o-n-1]|=(this[o]&s)<<r,t[o-n]=this[o]>>i;i>0&&(t[this.t-n-1]|=(this.s&s)<<r),t.t=this.t-n,t.clamp()}},l.prototype.subTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()},l.prototype.multiplyTo=function(e,t){var n=this.abs(),i=e.abs(),r=n.t;for(t.t=r+i.t;--r>=0;)t[r]=0;for(r=0;r<i.t;++r)t[r+n.t]=n.am(0,i[r],t,r,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&l.ZERO.subTo(t,t)},l.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 i=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,i,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()},l.prototype.divRemTo=function(e,t,n){var i=e.abs();if(!(i.t<=0)){var r=this.abs();if(r.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=h());var s=h(),o=this.s,a=e.s,c=this.DB-b(i[i.t-1]);c>0?(i.lShiftTo(c,s),r.lShiftTo(c,n)):(i.copyTo(s),r.copyTo(n));var u=s.t,d=s[u-1];if(0!=d){var f=d*(1<<this.F1)+(u>1?s[u-2]>>this.F2:0),p=this.FV/f,g=(1<<this.F1)/f,_=1<<this.F2,m=n.t,y=m-u,w=null==t?h():t;for(s.dlShiftTo(y,w),n.compareTo(w)>=0&&(n[n.t++]=1,n.subTo(w,n)),l.ONE.dlShiftTo(u,w),w.subTo(s,s);s.t<u;)s[s.t++]=0;for(;--y>=0;){var A=n[--m]==d?this.DM:Math.floor(n[m]*p+(n[m-1]+_)*g);if((n[m]+=s.am(0,A,n,y,0,u))<A)for(s.dlShiftTo(y,w),n.subTo(w,n);n[m]<--A;)n.subTo(w,n)}null!=t&&(n.drShiftTo(u,t),o!=a&&l.ZERO.subTo(t,t)),n.t=u,n.clamp(),c>0&&n.rShiftTo(c,n),o<0&&l.ZERO.subTo(n,n)}}},l.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(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},l.prototype.addTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()},l.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,i=(1<<t)-1,r=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(r=!0,s=m(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)&i,a<=0&&(a+=this.DB,--o)),n>0&&(r=!0),r&&(s+=m(n));return r?s:"0"},l.prototype.negate=function(){var e=h();return l.ZERO.subTo(this,e),e},l.prototype.abs=function(){return this.s<0?this.negate():this},l.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},l.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+b(this[this.t-1]^this.s&this.DM)},l.prototype.mod=function(e){var t=h();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(l.ZERO)>0&&e.subTo(t,t),t},l.prototype.equals=function(e){return 0==this.compareTo(e)},l.prototype.add=function(e){var t=h();return this.addTo(e,t),t},l.prototype.subtract=function(e){var t=h();return this.subTo(e,t),t},l.prototype.multiply=function(e){var t=h();return this.multiplyTo(e,t),t},l.prototype.divide=function(e){var t=h();return this.divRemTo(e,t,null),t},l.prototype.modPow=function(e,t,n){var i,r=e.bitLength(),s=w(1),o=new A(t);if(r<=0)return s;i=r<18?1:r<48?3:r<144?4:r<768?5:6;var a=new Array,c=3,u=i-1,l=(1<<i)-1;if(a[1]=o.convert(this),i>1){var d=h();for(o.sqrTo(a[1],d);c<=l;)a[c]=h(),o.mulTo(d,a[c-2],a[c]),c+=2}var f,p,g=e.t-1,_=!0,m=h();for(r=b(e[g])-1;g>=0;){for(r>=u?f=e[g]>>r-u&l:(f=(e[g]&(1<<r+1)-1)<<u-r,g>0&&(f|=e[g-1]>>this.DB+r-u)),c=i;!(1&f);)f>>=1,--c;if((r-=c)<0&&(r+=this.DB,--g),_)a[f].copyTo(s),_=!1;else{for(;c>1;)o.sqrTo(s,m),o.sqrTo(m,s),c-=2;c>0?o.sqrTo(s,m):(p=s,s=m,m=p),o.mulTo(m,a[f],s)}for(;g>=0&&!(e[g]&1<<r);)o.sqrTo(s,m),p=s,s=m,m=p,--r<0&&(r=this.DB-1,--g)}var y=o.revert(s);return n(null,y),y},l.ZERO=w(0),l.ONE=w(1);var S=/^[89a-f]/i,E=function(){function e(e){this.N=new u("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",16),this.g=new u("2",16),this.k=new u(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=s.hp.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,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},t.generateRandomSmallA=function(){var e=v(128).toString("hex");return new u(e,16)},t.generateRandomString=function(){return v(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 i=this;this.randomPassword=this.generateRandomString();var r=""+e+t+":"+this.randomPassword,s=this.hash(r),o=v(16).toString("hex");this.SaltToHashDevices=this.padHex(new u(o,16)),this.g.modPow(new u(this.hexHash(this.SaltToHashDevices+s),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},t.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(u.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},t.calculateU=function(e,t){return this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t)),new u(this.UHexHash,16)},t.hash=function(e){var t=new c.Sha256;t.update(e);var n=t.digestSync(),i=s.hp.from(n).toString("hex");return new Array(64-i.length).join("0")+i},t.hexHash=function(e){return this.hash(s.hp.from(e,"hex"))},t.computehkdf=function(e,t){var n=s.hp.concat([this.infoBits,s.hp.from(String.fromCharCode(1),"utf8")]),i=new c.Sha256(t);i.update(e);var r=i.digestSync(),o=new c.Sha256(r);return o.update(n),o.digestSync().slice(0,16)},t.getPasswordAuthenticationKey=function(e,t,n,i,r){var o=this;if(n.mod(this.N).equals(u.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(u.ZERO))throw new Error("U cannot be zero.");var a=""+this.poolName+e+":"+t,c=this.hash(a),l=new u(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&r(e,null);var n=o.computehkdf(s.hp.from(o.padHex(t),"hex"),s.hp.from(o.padHex(o.UValue),"hex"));r(null,n)})},t.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(r,s){r&&n(r,null),t.subtract(i.k.multiply(s)).modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},t.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return"userAttributes."},t.padHex=function(e){if(!(e instanceof u))throw new Error("Not a BigInteger");var t=e.compareTo(u.ZERO)<0,n=e.abs().toString(16);if(n=n.length%2!=0?"0"+n:n,n=S.test(n)?"00"+n:n,t){var i=n.split("").map(function(e){var t=15&~parseInt(e,16);return"0123456789ABCDEF".charAt(t)}).join("");(n=new u(i,16).add(u.ONE).toString(16)).toUpperCase().startsWith("FF8")&&(n=n.substring(2))}return n},e}(),I=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(s.hp.from(e,"base64").toString("utf8"))}catch(e){return{}}},e}();function T(e,t){return T=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},T(e,t)}var R=function(e){function t(t){var n=(void 0===t?{}:t).AccessToken;return e.call(this,n||"")||this}var n,i;return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,T(n,i),t}(I);function D(e,t){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},D(e,t)}var U=function(e){function t(t){var n=(void 0===t?{}:t).IdToken;return e.call(this,n||"")||this}var n,i;return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,D(n,i),t}(I),P="aws-amplify/5.0.4",C="undefined"!=typeof navigator&&"ReactNative"===navigator.product,k=function(){function e(e){var t=(void 0===e?{}:e).RefreshToken;this.token=t||""}return e.prototype.getToken=function(){return this.token},e}(),N=function(){function e(e){var t=void 0===e?{}:e,n=t.IdToken,i=t.RefreshToken,r=t.AccessToken,s=t.ClockDrift;if(null==r||null==n)throw new Error("Id token and Access Token must be present.");this.idToken=n,this.refreshToken=i,this.accessToken=r,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}(),L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],O=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],M=function(){function e(){}return e.prototype.getNowString=function(){var e=new Date,t=O[e.getUTCDay()],n=L[e.getUTCMonth()],i=e.getUTCDate(),r=e.getUTCHours();r<10&&(r="0"+r);var s=e.getUTCMinutes();s<10&&(s="0"+s);var o=e.getUTCSeconds();return o<10&&(o="0"+o),t+" "+n+" "+i+" "+r+":"+s+":"+o+" UTC "+e.getUTCFullYear()},e}(),x=function(){function e(e){var t=void 0===e?{}:e,n=t.Name,i=t.Value;this.Name=n||"",this.Value=i||""}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}(),V={},F=function(){function e(){}return e.setItem=function(e,t){return V[e]=t,V[e]},e.getItem=function(e){return Object.prototype.hasOwnProperty.call(V,e)?V[e]:void 0},e.removeItem=function(e){return delete V[e]},e.clear=function(){return V={}},e}(),q=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=F}}return e.prototype.getStorage=function(){return this.storageWindow},e}(),B="undefined"!=typeof navigator?C?"react-native":navigator.userAgent:"nodejs",$=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 q).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,i=e.getAuthParameters();i.USERNAME=this.username;var r=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),s={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:r};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",s,function(e,i){if(e)return t.onFailure(e);var r=i.ChallengeName,s=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===r?(n.Session=i.Session,t.customChallenge(s)):(n.signInUserSession=n.getCognitoUserSession(i.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,i,r=this,o=new E(this.pool.getUserPoolName()),a=new M,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,o.getLargeAValue(function(h,d){h&&t.onFailure(h),l.SRP_A=d.toString(16),"CUSTOM_AUTH"===r.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A");var f=0!==Object.keys(e.getValidationData()).length?e.getValidationData():e.getClientMetadata(),p={AuthFlow:r.authenticationFlowType,ClientId:r.pool.getClientId(),AuthParameters:l,ClientMetadata:f};r.getUserContextData(r.username)&&(p.UserContextData=r.getUserContextData(r.username)),r.client.request("InitiateAuth",p,function(l,h){if(l)return t.onFailure(l);var d=h.ChallengeParameters;r.username=d.USER_ID_FOR_SRP,r.userDataKey=r.keyPrefix+"."+r.username+".userData",n=new u(d.SRP_B,16),i=new u(d.SALT,16),r.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(r.username,e.getPassword(),n,i,function(e,n){e&&t.onFailure(e);var i=a.getNowString(),u=s.hp.concat([s.hp.from(r.pool.getUserPoolName(),"utf8"),s.hp.from(r.username,"utf8"),s.hp.from(d.SECRET_BLOCK,"base64"),s.hp.from(i,"utf8")]),l=new c.Sha256(n);l.update(u);var p=l.digestSync(),g=s.hp.from(p).toString("base64"),_={};_.USERNAME=r.username,_.PASSWORD_CLAIM_SECRET_BLOCK=d.SECRET_BLOCK,_.TIMESTAMP=i,_.PASSWORD_CLAIM_SIGNATURE=g,null!=r.deviceKey&&(_.DEVICE_KEY=r.deviceKey);var m=function(e,t){return r.client.request("RespondToAuthChallenge",e,function(n,i){return n&&"ResourceNotFoundException"===n.code&&-1!==n.message.toLowerCase().indexOf("device")?(_.DEVICE_KEY=null,r.deviceKey=null,r.randomPassword=null,r.deviceGroupKey=null,r.clearCachedDeviceKeyAndPassword(),m(e,t)):t(n,i)})},y={ChallengeName:"PASSWORD_VERIFIER",ClientId:r.pool.getClientId(),ChallengeResponses:_,Session:h.Session,ClientMetadata:f};r.getUserContextData()&&(y.UserContextData=r.getUserContextData()),m(y,function(e,n){return e?t.onFailure(e):r.authenticateUserInternal(n,o,t)})})})})},t.authenticateUserPlainUsernamePassword=function(e,t){var n=this,i={};if(i.USERNAME=this.username,i.PASSWORD=e.getPassword(),i.PASSWORD){var r=new E(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(i.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:i,ClientMetadata:s};this.getUserContextData(this.username)&&(o.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",o,function(e,i){return e?t.onFailure(e):n.authenticateUserInternal(i,r,t)})}else t.onFailure(new Error("PASSWORD parameter is required"))},t.authenticateUserInternal=function(e,t,n){var i=this,r=e.ChallengeName,o=e.ChallengeParameters;if("SMS_MFA"===r)return this.Session=e.Session,n.mfaRequired(r,o);if("SELECT_MFA_TYPE"===r)return this.Session=e.Session,n.selectMFAType(r,o);if("MFA_SETUP"===r)return this.Session=e.Session,n.mfaSetup(r,o);if("SOFTWARE_TOKEN_MFA"===r)return this.Session=e.Session,n.totpRequired(r,o);if("CUSTOM_CHALLENGE"===r)return this.Session=e.Session,n.customChallenge(o);if("NEW_PASSWORD_REQUIRED"===r){this.Session=e.Session;var a=null,c=null,u=[],l=t.getNewPasswordRequiredChallengeUserAttributePrefix();if(o&&(a=JSON.parse(e.ChallengeParameters.userAttributes),c=JSON.parse(e.ChallengeParameters.requiredAttributes)),c)for(var h=0;h<c.length;h++)u[h]=c[h].substr(l.length);return n.newPasswordRequired(a,u)}if("DEVICE_SRP_AUTH"===r)return this.Session=e.Session,void this.getDeviceResponse(n);this.signInUserSession=this.getCognitoUserSession(e.AuthenticationResult),this.challengeName=r,this.cacheTokens();var d=e.AuthenticationResult.NewDeviceMetadata;if(null==d)return n.onSuccess(this.signInUserSession);t.generateHashDevice(e.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,e.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(r){if(r)return n.onFailure(r);var o={Salt:s.hp.from(t.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:s.hp.from(t.getVerifierDevices(),"hex").toString("base64")};i.verifierDevices=o.PasswordVerifier,i.deviceGroupKey=d.DeviceGroupKey,i.randomPassword=t.getRandomPassword(),i.client.request("ConfirmDevice",{DeviceKey:d.DeviceKey,AccessToken:i.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:o,DeviceName:B},function(t,r){return t?n.onFailure(t):(i.deviceKey=e.AuthenticationResult.NewDeviceMetadata.DeviceKey,i.cacheDeviceKeyAndPassword(),!0===r.UserConfirmationNecessary?n.onSuccess(i.signInUserSession,r.UserConfirmationNecessary):n.onSuccess(i.signInUserSession))})})},t.completeNewPasswordChallenge=function(e,t,n,i){var r=this;if(!e)return n.onFailure(new Error("New password is required."));var s=new E(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 c={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:a,Session:this.Session,ClientMetadata:i};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(e,t){return e?n.onFailure(e):r.authenticateUserInternal(t,s,n)})},t.getDeviceResponse=function(e,t){var n=this,i=new E(this.deviceGroupKey),r=new M,o={};o.USERNAME=this.username,o.DEVICE_KEY=this.deviceKey,i.getLargeAValue(function(a,l){a&&e.onFailure(a),o.SRP_A=l.toString(16);var h={ChallengeName:"DEVICE_SRP_AUTH",ClientId:n.pool.getClientId(),ChallengeResponses:o,ClientMetadata:t,Session:n.Session};n.getUserContextData()&&(h.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",h,function(t,o){if(t)return e.onFailure(t);var a=o.ChallengeParameters,l=new u(a.SRP_B,16),h=new u(a.SALT,16);i.getPasswordAuthenticationKey(n.deviceKey,n.randomPassword,l,h,function(t,i){if(t)return e.onFailure(t);var u=r.getNowString(),l=s.hp.concat([s.hp.from(n.deviceGroupKey,"utf8"),s.hp.from(n.deviceKey,"utf8"),s.hp.from(a.SECRET_BLOCK,"base64"),s.hp.from(u,"utf8")]),h=new c.Sha256(i);h.update(l);var d=h.digestSync(),f=s.hp.from(d).toString("base64"),p={};p.USERNAME=n.username,p.PASSWORD_CLAIM_SECRET_BLOCK=a.SECRET_BLOCK,p.TIMESTAMP=u,p.PASSWORD_CLAIM_SIGNATURE=f,p.DEVICE_KEY=n.deviceKey;var g={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:p,Session:o.Session};n.getUserContextData()&&(g.UserContextData=n.getUserContextData()),n.client.request("RespondToAuthChallenge",g,function(t,i){return t?e.onFailure(t):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),e.onSuccess(n.signInUserSession))})})})})},t.confirmRegistration=function(e,t,n,i){var r={ClientId:this.pool.getClientId(),ConfirmationCode:e,Username:this.username,ForceAliasCreation:t,ClientMetadata:i};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",r,function(e){return e?n(e,null):n(null,"SUCCESS")})},t.sendCustomChallengeAnswer=function(e,t,n){var i=this,r={};r.USERNAME=this.username,r.ANSWER=e;var s=new E(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),null!=this.deviceKey&&(r.DEVICE_KEY=this.deviceKey);var o={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:r,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):i.authenticateUserInternal(n,s,t)})},t.sendMFACode=function(e,t,n,i){var r=this,o={};o.USERNAME=this.username,o.SMS_MFA_CODE=e;var a=n||"SMS_MFA";"SOFTWARE_TOKEN_MFA"===a&&(o.SOFTWARE_TOKEN_MFA_CODE=e),null!=this.deviceKey&&(o.DEVICE_KEY=this.deviceKey);var c={ChallengeName:a,ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:i};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(e,n){if(e)return t.onFailure(e);if("DEVICE_SRP_AUTH"!==n.ChallengeName){if(r.signInUserSession=r.getCognitoUserSession(n.AuthenticationResult),r.cacheTokens(),null==n.AuthenticationResult.NewDeviceMetadata)return t.onSuccess(r.signInUserSession);var i=new E(r.pool.getUserPoolName());i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(e){if(e)return t.onFailure(e);var o={Salt:s.hp.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:s.hp.from(i.getVerifierDevices(),"hex").toString("base64")};r.verifierDevices=o.PasswordVerifier,r.deviceGroupKey=n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,r.randomPassword=i.getRandomPassword(),r.client.request("ConfirmDevice",{DeviceKey:n.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:r.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:o,DeviceName:B},function(e,i){return e?t.onFailure(e):(r.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,r.cacheDeviceKeyAndPassword(),!0===i.UserConfirmationNecessary?t.onSuccess(r.signInUserSession,i.UserConfirmationNecessary):t.onSuccess(r.signInUserSession))})})}else r.getDeviceResponse(t)})},t.changePassword=function(e,t,n,i){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:i},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 i=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,n){return e?t(e,null):i.getUserData(function(){return t(null,"SUCCESS",n)},{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 i=[],r=0;r<n.UserAttributes.length;r++){var s={Name:n.UserAttributes[r].Name,Value:n.UserAttributes[r].Value},o=new x(s);i.push(o)}return e(null,i)})},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 i=t.signInUserSession.getRefreshToken();i&&i.getToken()?t.refreshSession(i,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 i=this.getUserDataFromCache();if(i)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(i))}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,i=n+".idToken",r=n+".accessToken",s=n+".refreshToken",o=n+".clockDrift";if(this.storage.getItem(i)){var a=new U({IdToken:this.storage.getItem(i)}),c=new R({AccessToken:this.storage.getItem(r)}),u=new k({RefreshToken:this.storage.getItem(s)}),l=parseInt(this.storage.getItem(o),0)||0,h=new N({IdToken:a,AccessToken:c,RefreshToken:u,ClockDrift:l});if(h.isValid())return this.signInUserSession=h,e(null,this.signInUserSession);if(!u.getToken())return e(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(u,e,t.clientMetadata)}else e(new Error("Local storage is missing an ID Token, Please authenticate"),null)},t.refreshSession=function(e,t,n){var i=this,r=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 c=o+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(c),s.DEVICE_KEY=this.deviceKey}var u={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:s,ClientMetadata:n};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",u,function(t,n){if(t)return"NotAuthorizedException"===t.code&&i.clearCachedUser(),r(t,null);if(n){var s=n.AuthenticationResult;return Object.prototype.hasOwnProperty.call(s,"RefreshToken")||(s.RefreshToken=e.getToken()),i.signInUserSession=i.getCognitoUserSession(s),i.cacheTokens(),r(null,i.signInUserSession)}})},t.cacheTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",r=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(i,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(r,""+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",i=e+".deviceGroupKey";this.storage.setItem(t,this.deviceKey),this.storage.setItem(n,this.randomPassword),this.storage.setItem(i,this.deviceGroupKey)},t.getCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.getItem(t)&&(this.deviceKey=this.storage.getItem(t),this.randomPassword=this.storage.getItem(n),this.deviceGroupKey=this.storage.getItem(i))},t.clearCachedDeviceKeyAndPassword=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,t=e+".deviceKey",n=e+".randomPasswordKey",i=e+".deviceGroupKey";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i)},t.clearCachedTokens=function(){var e="CognitoIdentityServiceProvider."+this.pool.getClientId(),t=e+"."+this.username+".idToken",n=e+"."+this.username+".accessToken",i=e+"."+this.username+".refreshToken",r=e+".LastAuthUser",s=e+"."+this.username+".clockDrift";this.storage.removeItem(t),this.storage.removeItem(n),this.storage.removeItem(i),this.storage.removeItem(r),this.storage.removeItem(s)},t.getCognitoUserSession=function(e){var t=new U(e),n=new R(e),i=new k(e);return new N({IdToken:t,AccessToken:n,RefreshToken:i})},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,i){var r={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:e,Password:t,ClientMetadata:i};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",r,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 i={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:e};t&&(i.PaginationToken=t),this.client.request("ListDevices",i,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,i){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,i={};i.USERNAME=this.username,i.ANSWER=e;var r={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:i,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(r.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",r,function(i,r){return i?t.onFailure(i):(n.Session=r.Session,"SMS_MFA"===e?t.mfaRequired(r.ChallengeName,r.ChallengeParameters):"SOFTWARE_TOKEN_MFA"===e?t.totpRequired(r.ChallengeName,r.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,i){return n?e.onFailure(n):(t.Session=i.Session,e.associateSecretCode(i.SecretCode))})},t.verifySoftwareToken=function(e,t,n){var i=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);i.Session=t.Session;var r={};r.USERNAME=i.username;var s={ChallengeName:"MFA_SETUP",ClientId:i.pool.getClientId(),ChallengeResponses:r,Session:i.Session};i.getUserContextData()&&(s.UserContextData=i.getUserContextData()),i.client.request("RespondToAuthChallenge",s,function(e,t){return e?n.onFailure(e):(i.signInUserSession=i.getCognitoUserSession(t.AuthenticationResult),i.cacheTokens(),n.onSuccess(i.signInUserSession))})})},e}();function j(){}function K(e){var t="function"==typeof Map?new Map:void 0;return K=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;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,n)}function n(){return function(e,t,n){if(H())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,t);var r=new(e.bind.apply(e,i));return n&&J(r,n.prototype),r}(e,arguments,Q(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),J(n,e)},K(e)}function H(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(H=function(){return!!e})()}function J(e,t){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},J(e,t)}function Q(e){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Q(e)}n(916),j.prototype.userAgent=P;var z=function(e){function t(t,n,i,r){var s;return(s=e.call(this,t)||this).code=n,s.name=i,s.statusCode=r,s}return i=e,(n=t).prototype=Object.create(i.prototype),n.prototype.constructor=n,J(n,i),t;var n,i}(K(Error)),G=function(){function e(e,t,n){this.endpoint=t||"https://cognito-idp."+e+".amazonaws.com/";var i=(n||{}).credentials;this.fetchOptions=i?{credentials:i}:{}}var t=e.prototype;return t.promisifyRequest=function(e,t){var n=this;return new Promise(function(i,r){n.request(e,t,function(e,t){e?r(new z(e.message,e.code,e.name,e.statusCode)):i(t)})})},t.requestWithRetry=function(e,t,n){var i,r,s=this;(i=[t],r=5e3,void 0===r&&(r=X),Z(function(t){return new Promise(function(n,i){s.request(e,t,function(e,t){e?i(e):n(t)})})},i,function(e){return function(t){var n=100*Math.pow(2,t)+100*Math.random();return!(n>e)&&n}}(r))).then(function(e){return n(null,e)}).catch(function(e){return n(e)})},t.request=function(e,t,n){var i,r,s,o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+e,"X-Amz-User-Agent":(i=j.category?" "+j.category:"",r=j.framework?" framework/"+j.framework:"",""+j.prototype.userAgent+i+r),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(t)});fetch(this.endpoint,a).then(function(e){return s=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(s.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(s&&s.headers&&s.headers.get("x-amzn-errortype"))try{var t=s.headers.get("x-amzn-errortype").split(":")[0],i=new Error(s.status?s.status.toString():null);return i.code=t,i.name=t,i.statusCode=s.status,n(i)}catch(t){return n(e)}else e instanceof Error&&"Network error"===e.message&&(e.code="NetworkError");return n(e)})},e}(),Y={debug:function(){}},W=function(e){return e&&e.nonRetryable};function Z(e,t,n,i){if(void 0===i&&(i=1),"function"!=typeof e)throw Error("functionToRetry must be a function");return Y.debug(e.name+" attempt #"+i+" with args: "+JSON.stringify(t)),e.apply(void 0,t).catch(function(r){if(Y.debug("error on "+e.name,r),W(r))throw Y.debug(e.name+" non retryable error",r),r;var s=n(i,t,r);if(Y.debug(e.name+" retrying in "+s+" ms"),!1!==s)return new Promise(function(e){return setTimeout(e,s)}).then(function(){return Z(e,t,n,i+1)});throw r})}var X=3e5,ee=function(){function e(e,t){var n=e||{},i=n.UserPoolId,r=n.ClientId,s=n.endpoint,o=n.fetchOptions,a=n.AdvancedSecurityDataCollectionFlag;if(!i||!r)throw new Error("Both UserPoolId and ClientId are required.");if(i.length>55||!/^[\w-]+_[0-9a-zA-Z]+$/.test(i))throw new Error("Invalid UserPoolId format.");var c=i.split("_")[0];this.userPoolId=i,this.clientId=r,this.client=new G(c,s,o),this.advancedSecurityDataCollectionFlag=!1!==a,this.storage=e.Storage||(new q).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,i,r,s){var o=this,a={ClientId:this.clientId,Username:e,Password:t,UserAttributes:n,ValidationData:i,ClientMetadata:s};this.getUserContextData(e)&&(a.UserContextData=this.getUserContextData(e)),this.client.request("SignUp",a,function(t,n){if(t)return r(t,null);var i={Username:e,Pool:o,Storage:o.storage},s={user:new $(i),userConfirmed:n.UserConfirmed,userSub:n.UserSub,codeDeliveryDetails:n.CodeDeliveryDetails};return r(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 $(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(596);class te extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let t=2;t<e.length&&"string"==typeof e[t];t++)n+=e[t];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause)}else super((e?.message||("string"==typeof e?e:"Something went wrong.")).trim()),"string"==typeof e?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):"object"==typeof e&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause)}}class ne{static hash(e){"string"!=typeof e&&(console.warn("coercing non-string value to empty string"),e="");const t=ne.sb(e);let n,i,r,s,o=1732584193,a=-271733879,c=-1732584194,u=271733878;for(let e=0;e<t.length;e+=16)n=o,i=a,r=c,s=u,o=ne.ff(o,a,c,u,t[e],7,-680876936),u=ne.ff(u,o,a,c,t[e+1],12,-389564586),c=ne.ff(c,u,o,a,t[e+2],17,606105819),a=ne.ff(a,c,u,o,t[e+3],22,-1044525330),o=ne.ff(o,a,c,u,t[e+4],7,-176418897),u=ne.ff(u,o,a,c,t[e+5],12,1200080426),c=ne.ff(c,u,o,a,t[e+6],17,-1473231341),a=ne.ff(a,c,u,o,t[e+7],22,-45705983),o=ne.ff(o,a,c,u,t[e+8],7,1770035416),u=ne.ff(u,o,a,c,t[e+9],12,-1958414417),c=ne.ff(c,u,o,a,t[e+10],17,-42063),a=ne.ff(a,c,u,o,t[e+11],22,-1990404162),o=ne.ff(o,a,c,u,t[e+12],7,1804603682),u=ne.ff(u,o,a,c,t[e+13],12,-40341101),c=ne.ff(c,u,o,a,t[e+14],17,-1502002290),a=ne.ff(a,c,u,o,t[e+15],22,1236535329),o=ne.gg(o,a,c,u,t[e+1],5,-165796510),u=ne.gg(u,o,a,c,t[e+6],9,-1069501632),c=ne.gg(c,u,o,a,t[e+11],14,643717713),a=ne.gg(a,c,u,o,t[e],20,-373897302),o=ne.gg(o,a,c,u,t[e+5],5,-701558691),u=ne.gg(u,o,a,c,t[e+10],9,38016083),c=ne.gg(c,u,o,a,t[e+15],14,-660478335),a=ne.gg(a,c,u,o,t[e+4],20,-405537848),o=ne.gg(o,a,c,u,t[e+9],5,568446438),u=ne.gg(u,o,a,c,t[e+14],9,-1019803690),c=ne.gg(c,u,o,a,t[e+3],14,-187363961),a=ne.gg(a,c,u,o,t[e+8],20,1163531501),o=ne.gg(o,a,c,u,t[e+13],5,-1444681467),u=ne.gg(u,o,a,c,t[e+2],9,-51403784),c=ne.gg(c,u,o,a,t[e+7],14,1735328473),a=ne.gg(a,c,u,o,t[e+12],20,-1926607734),o=ne.hh(o,a,c,u,t[e+5],4,-378558),u=ne.hh(u,o,a,c,t[e+8],11,-2022574463),c=ne.hh(c,u,o,a,t[e+11],16,1839030562),a=ne.hh(a,c,u,o,t[e+14],23,-35309556),o=ne.hh(o,a,c,u,t[e+1],4,-1530992060),u=ne.hh(u,o,a,c,t[e+4],11,1272893353),c=ne.hh(c,u,o,a,t[e+7],16,-155497632),a=ne.hh(a,c,u,o,t[e+10],23,-1094730640),o=ne.hh(o,a,c,u,t[e+13],4,681279174),u=ne.hh(u,o,a,c,t[e],11,-358537222),c=ne.hh(c,u,o,a,t[e+3],16,-722521979),a=ne.hh(a,c,u,o,t[e+6],23,76029189),o=ne.hh(o,a,c,u,t[e+9],4,-640364487),u=ne.hh(u,o,a,c,t[e+12],11,-421815835),c=ne.hh(c,u,o,a,t[e+15],16,530742520),a=ne.hh(a,c,u,o,t[e+2],23,-995338651),o=ne.ii(o,a,c,u,t[e],6,-198630844),u=ne.ii(u,o,a,c,t[e+7],10,1126891415),c=ne.ii(c,u,o,a,t[e+14],15,-1416354905),a=ne.ii(a,c,u,o,t[e+5],21,-57434055),o=ne.ii(o,a,c,u,t[e+12],6,1700485571),u=ne.ii(u,o,a,c,t[e+3],10,-1894986606),c=ne.ii(c,u,o,a,t[e+10],15,-1051523),a=ne.ii(a,c,u,o,t[e+1],21,-2054922799),o=ne.ii(o,a,c,u,t[e+8],6,1873313359),u=ne.ii(u,o,a,c,t[e+15],10,-30611744),c=ne.ii(c,u,o,a,t[e+6],15,-1560198380),a=ne.ii(a,c,u,o,t[e+13],21,1309151649),o=ne.ii(o,a,c,u,t[e+4],6,-145523070),u=ne.ii(u,o,a,c,t[e+11],10,-1120210379),c=ne.ii(c,u,o,a,t[e+2],15,718787259),a=ne.ii(a,c,u,o,t[e+9],21,-343485551),o=ne.ad(o,n),a=ne.ad(a,i),c=ne.ad(c,r),u=ne.ad(u,s);return ne.rh(o)+ne.rh(a)+ne.rh(c)+ne.rh(u)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=ne.alphabet.charAt(e>>8*n+4&15)+ne.alphabet.charAt(e>>8*n&15);return t}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,t,n,i,r,s){return ne.ad(ne.rl(ne.ad(ne.ad(t,e),ne.ad(i,s)),r),n)}static ff(e,t,n,i,r,s,o){return ne.cm(t&n|~t&i,e,t,r,s,o)}static gg(e,t,n,i,r,s,o){return ne.cm(t&i|n&~i,e,t,r,s,o)}static hh(e,t,n,i,r,s,o){return ne.cm(t^n^i,e,t,r,s,o)}static ii(e,t,n,i,r,s,o){return ne.cm(n^(t|~i),e,t,r,s,o)}static sb(e){let t;const n=1+(e.length+8>>6),i=new Array(16*n);for(t=0;t<16*n;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[16*n-2]=8*e.length,i}}function ie(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}function re(e){return e.split("").reverse().reduce((e,t,n)=>e+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(t)*62**n,0)}function se(e=6){let t="";let n=0;for(;n<e;)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random())),n+=1;return t}function oe(e,t,n){let i={},r=[];function s(e){let t;try{t=JSON.stringify(e)}catch(e){throw new te("Invalid data type.",{code:"INVALID_REQUEST"})}return new Blob([t]).size}function o(e,i,r){if(t?.ignoreEmpty&&""===r)return;if(t?.nullIfEmpty&&""===r&&(r=null),"function"==typeof n){let e=n(i,r);void 0!==e&&(r=e)}let s=i.split("[").map(e=>{let t=e.replace("]",""),n=Number(t);return isNaN(n)||t.includes(".")?('"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1])&&(t=t.replace(/"/g,"").replace(/'/g,"")):t=n,t}),o=e;if("number"==typeof s[0])throw new te("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let e=0;e<s.length;e++){let t=s[e];if(e<s.length-1){if(void 0===o[t]){let n=s[e+1];o[t]="number"==typeof n?[]:{}}o=o[t]}else void 0===o[t]?o[t]=r:Array.isArray(o[t])?o[t].push(r):o[t]=[o[t],r]}}function a(e,t,n){if(n instanceof File)e.push({name:t,file:n});else if(n instanceof FileList&&n&&n.length>0)for(let i=0;i<=n.length-1;i++){let r=n.item(i);r&&e.push({name:t,file:r})}}let c=e=>{e.name&&("number"===e.type?e.value&&o(i,e.name,Number(e.value)):"checkbox"===e.type||"radio"===e.type?e.checked?""===e.value&&"checkbox"===e.type||"on"===e.value||"true"===e.value?o(i,e.name,!0):"false"===e.value?o(i,e.name,!1):e.value&&o(i,e.name,e.value):"checkbox"===e.type&&(""===e.value||"on"===e.value||"true"===e.value?o(i,e.name,!1):"false"===e.value&&o(i,e.name,!0)):"file"===e.type?e.files&&e.files.length>0&&a(r,e.name,e.files):o(i,e.name,e.value))};if(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement){if(c(e),s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(e instanceof FormData){for(let t of e.entries()){let e=t[0],n=t[1];if(n instanceof File||n instanceof FileList)a(r,e,n);else if(n instanceof Blob){let t=n;if("application/json"===t.type)try{let n=JSON.parse(t.text());o(i,e,n)}catch(n){o(i,e,t)}}else o(i,e,n)}if(s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(e instanceof SubmitEvent&&(e=e.target),e instanceof HTMLFormElement){let t=e.querySelectorAll("input"),n=e.querySelectorAll("select"),a=e.querySelectorAll("textarea");for(let e=0;e<n.length;e++){let t=n[e];t.name&&o(i,t.name,t.value)}for(let e=0;e<a.length;e++){let t=a[e];t.name&&o(i,t.name,t.value)}for(let e=0;e<t.length;e++)c(t[e]);if(s(i)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:i,files:r}}if(s(e)>2097152)throw new te("Data should not exceed 2MB",{code:"INVALID_REQUEST"});return{data:e,files:r}}function ae(e){let t={};for(let n in e){let i=e[n],r={auth_time:"log",sub:"user_id"};if(!["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"].includes(n))if(r[n])t[r[n]]=i;else if(n.includes("custom:"))t[n.replace("custom:","")]=i;else if("address"===n){let e=i;if(e&&"object"==typeof e&&Object.keys(e).length){if(e?.formatted)try{t[n]=JSON.parse(e.formatted)}catch(i){t[n]=e.formatted}}else t[n]=e}else t[n]=i}for(let e of["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])e.includes("_public")?t.hasOwnProperty(e.split("_")[0])?t[e]=!!t.hasOwnProperty(e)&&!!Number(t[e]):delete t[e]:t[e]=t.hasOwnProperty(e)?Number(t[e]):0;for(let e of["email","phone_number"])t.hasOwnProperty(e)?t[e+"_verified"]=!0===t[e+"_verified"]:delete t[e+"_verified"];return t}function ce(e,t,n=[],i=null){function r(e){return e&&"object"==typeof e&&!Array.isArray(e)&&Object.keys(e).length}function s(e){return Array.isArray(e)&&e.length}if(null===i&&!r(t))throw'Argument "struct" is required.';let o=null!==i?` in key "${i}" is invalid.`:". Parameter should be type <object>.";if(s(t)){let r="";t.forEach(e=>{["string","number","boolean","object","array"].includes(e)?r+=`Type<${e}>, `:"function"!=typeof e&&(r+=JSON.stringify(e,null,2)+", ")}),r=r?" Should be: "+r.slice(0,-2):"";let s,a=!1,c="";for(let r of t)try{s=ce(e,r,n,i),a=!0;break}catch(e){c="function"==typeof r?e?.message||e:"",a=!1}if(!a)throw c||`Invalid type "${typeof e}"${o}${r}.`;return s}if(r(e)){if(r(t))for(let r in t){let o=(null===i?"":i)+(null!==i?"["+r+"]":r);if(!e.hasOwnProperty(r)){if(n.includes(o))throw`Key "${o}" is required.`;s(t[r])&&"function"==typeof t[r][t[r].length-1]&&(e[r]=t[r][t[r].length-1]())}}if("object"===t)return e;if("function"==typeof t)return t(e);for(let r in e){let o=(null===i?"":i)+(null!==i?"["+r+"]":r);if(s(t)||t.hasOwnProperty(r))if(s(e[r])){if("array"===t[r])continue;if("function"==typeof t[r]){e[r]=t[r](e[r]);continue}for(let i=0;i<e[r].length;i++)e[r][i]=ce(e[r][i],t[r],n,o+`[${i}]`)}else e[r]=ce(e[r],t[r],n,o)}return e}if("function"==typeof t)return t(e);if("array"===t&&Array.isArray(e)||t===typeof e||e===t)return e;if(null==e||(a=e)&&"object"==typeof a&&!Array.isArray(a)&&!Object.keys(a).length)return e;var a;throw`Invalid type "${typeof e}"${o} Should be: ${["string","number","boolean","object","array"].includes(t)?`Type<${t}>`:JSON.stringify(t,null,2)}`}ne.alphabet="0123456789abcdef";const ue={UserId:function(e,t="User ID"){if(!e)throw new te(`${t} is empty.`,{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te(`${t} should be type: string.`,{code:"INVALID_PARAMETER"});if(!e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i))throw new te(`${t} is invalid.`,{code:"INVALID_PARAMETER"});return e},PhoneNumber:function(e){if(e&&("string"!=typeof e||"+"!==e.charAt(0)||isNaN(Number(e.substring(1)))))throw new te('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return e||""},Birthdate:function(e){if(e){if("string"!=typeof e)throw new te('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let t=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(10!==e.length||3!==e.split("-").length||!t.test(e))throw new te('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return e||""},Password:function(e){if(!e)throw new te('"password" is required.',{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(e.length<6)throw new te('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(e.length>60)throw new te('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"});return e},Email:function(e,t="email"){if(!e)throw new te(`"${t}" is required.`,{code:"INVALID_PARAMETER"});if("string"!=typeof e)throw new te(`"${t}"should be type: string.`,{code:"INVALID_PARAMETER"});if(e.length<5)throw new te(`"${t}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(e)&&(e=e.trim()).split("@")[1].split(".").length>=2)return e.toLowerCase();throw new te(`"${e}" is an invalid email.`,{code:"INVALID_PARAMETER"})},Url:function(e){const t=(()=>{let e=location.origin||null;return e&&"/"===e.slice(-1)&&(e=e.slice(0,-1)),e})();let n=e=>{if("string"==typeof e){if("*"===e)return"*";{let n,i=e.trim();if("/"===i[0]&&t){if("file:"===t.slice(0,5))throw new te(`"${e}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});i=t+i}else if("."===i[0]&&t){if("file:"===t.slice(0,5))throw new te(`"${e}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let n=location.href.split("?")[0];"/"!==n.slice(-1)&&(n+="/"),i=n+i.slice(1)}try{n=new URL(i)}catch(t){throw new te(`"${e}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(n.protocol)return n.href}}throw new te(`"${e}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(e)?e.map(e=>n(e)):n(e)},specialChars:function(e,t="parameter",n=!1,i=!1){let r=e=>{if("string"!=typeof e)throw new te(`${t} should be type: <string | string[]>.`,{code:"INVALID_PARAMETER"});if(!i&&e.includes(" "))throw new te(`${t} should not have whitespace.`,{code:"INVALID_PARAMETER"});if(!n&&e.includes("."))throw new te(`${t} should not have periods.`,{code:"INVALID_PARAMETER"});if(/[!#$%&*()+\-{};'"|,<>\/~]/.test(e))throw new te(`${t} should not have special characters. Allowed special characters are: [ ] ^ _ \` : ; < = > ? @`,{code:"INVALID_PARAMETER"})};if(Array.isArray(e))for(let t of e)r(t);else r(e);return e},Params:function(e,t,n=[],i){let r=oe(e,i).data;t.service="string",t.owner="string";let s={};for(let e in t)if(r&&"object"==typeof r&&!Array.isArray(r)&&r.hasOwnProperty(e))if("function"==typeof r[e])s[e]=r[e];else try{s[e]=JSON.parse(JSON.stringify(r[e]))}catch(t){s[e]=r[e]}try{return ce(s,t,n)}catch(e){throw new te(e,{code:"INVALID_PARAMETER"})}},checkParams:ce};let le=null;function he(e){let t={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},n={};for(let i in e)if("tkid"===i){let t=e[i].split("#");if(1===t.length){n.ticket_id=t[0];continue}n.ticket_id=t[1],n.consume_id=t[2],n.user_id=t[3];let r=t[2].slice(-4);if(n.is_test=":CHK"===r,!e.stmp){let e=t[2].slice(0,-4);/^[0-9]+$/.test(e)?n.timestamp=parseInt(e,10):n.timestamp=re(t[2].slice(0,-4))}}else t[i]?n[t[i]]=e[i]:n[i]=e[i];return n}async function de(e){if(!e.ticket_id)throw new te("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!e.method)throw new te('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let t=e.ticket_id;return await this.__connection,he(await Ge.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${t}`,e?.data||{},{method:e.method,auth:!!e?.auth}))}async function fe(e,t){await this.__connection;let n=await Ge.bind(this)("ticket",Object.assign({exec:"list"},e||{}),{auth:!0,fetchOptions:t});return n.list=n.list.map(he),n}async function pe(e,t){await this.__connection;let n=await Ge.bind(this)("ticket",Object.assign({exec:"consumed"},e||{}),{auth:!0,fetchOptions:t});return n.list=n.list.map(he),n}async function ge(e){return Ge.bind(this)("register-ticket",Object.assign({exec:"reg"},e),{auth:!0})}async function _e(e){return Ge.bind(this)("register-ticket",Object.assign({exec:"unreg"},e),{auth:!0})}async function me(){if(await this.__connection,this.session){const e=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:e,expiresIn:t-e,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token}),t<e){this.log("request:requesting new token",null);try{await we.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session.idToken.payload.exp,currentTime:e,expiresIn:t-e,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token})}catch(e){throw this.log("request:new token error",e),new te("User login is required.",{code:"INVALID_REQUEST"})}}return this.session?.idToken?.jwtToken}throw this.log("request:no session",null),Se.bind(this)(),new te("User login is required.",{code:"INVALID_REQUEST"})}function ye(e,t){return new Promise((n,i)=>{t.refreshSession(e.getRefreshToken(),(e,t)=>{this.log("getSession:refreshSessionCallback",{refreshErr:e,refreshedSession:t}),e?(Se.bind(this)(),i(e)):t.isValid()?n(t):(Se.bind(this)(),i(new te("Invalid session.",{code:"INVALID_REQUEST"})))})})}function we(){if(!this.userPool)throw new te("User pool is missing",{code:"INVALID_REQUEST"});const e=()=>{let e=ae(le.getSignInUserSession().getIdToken().payload||null);return this.log("normalized user attribute",e),this.__user=e,e},t=async t=>new Promise((n,i)=>{this.log("getSession:option",t);let{refreshToken:r=!1,skipUserUpdateEventTrigger:s=!1}=t||{};if(r&&s&&(s=!1),le=this.userPool.getCurrentUser(),!le)return this.log("getSession:cognitoUser",le),Se.bind(this)(),void i(null);let o=t=>{let n=t.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",n),n["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),Se.bind(this)(),new te("Invalid session.",{code:"INVALID_REQUEST"});return this.session=t,e(),s||this._runOnUserUpdateListeners(this.user),this.session};le.getSession((e,t)=>{if(this.log("getSession:getSessionCallback",{err:e,session:t}),!t)return Se.bind(this)(),void i(new te("Current session does not exist.",{code:"INVALID_REQUEST"}));if(e)return void ye.bind(this)(t,le).then(e=>n(o(e))).catch(i);const s=Math.floor(Date.now()/1e3),a=t.getIdToken().getExpiration(),c=a<s;if(this.log("getSession:currentTime",s),this.log("getSession:idTokenExp",a),this.log("getSession:isExpired",c),c||r||!t.isValid())ye.bind(this)(t,le).then(e=>n(o(e))).catch(i);else try{n(o(t))}catch(e){i(e)}})}),n=(e,t)=>{let n=t||e.includes(this.service+"-")?e:this.service+"-"+ne.hash(e);return{cognitoUser:new $({Username:n,Pool:this.userPool}),cognitoUsername:n}};return{getSession:t,authenticateUser:(e,i,s=!1,o=!1)=>new Promise((a,c)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let u=n(e,s),l=u.cognitoUsername,h=new r({Username:l,Password:i});u.cognitoUser.authenticateUser(h,{newPasswordRequired:(e,n)=>{this.__disabledAccount=null,this.__request_signup_confirmation=l,"PASS"===e["custom:signup_ticket"]||"MEMBER"===e["custom:signup_ticket"]||"OIDPASS"===e["custom:signup_ticket"]?u.cognitoUser.completeNewPasswordChallenge(i,{},{onSuccess:e=>{le=u.cognitoUser,t().then(e=>a(this.user))},onFailure:e=>{c(new te(e.message||"Failed to authenticate user.",{code:e.code}))}}):c(new te("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}))},onSuccess:e=>t({skipUserUpdateEventTrigger:!0}).then(e=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),a(this.user)}),onFailure:e=>{let t=[e.message||"Failed to authenticate user.",e?.code||"INVALID_REQUEST"];"NotAuthorizedException"===e.code?"User is disabled."===e.message?(this.__disabledAccount=l,t=["This account is disabled.","USER_IS_DISABLED"]):t=o?["The account already exists.","ACCOUNT_EXISTS"]:["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotFoundException"===e.code?t=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:"UserNotConfirmedException"===e.code?(this.__request_signup_confirmation=l,t=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):"TooManyRequestsException"!==e.code&&"LimitExceededException"!==e.code||(t=["Too many attempts. Please try again later.","REQUEST_EXCEED"]);let n=t[1],i=t[0],r=t[0].split("#");if(r.length>1&&(r=r[r.length-1].split(":"),n=r[0],i=r[1],"CONFIRM_REQUIRED"===n))return this.__request_signup_confirmation=l,void c(new te("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));c(new te(i,{code:n,cause:e}))}})}),createCognitoUser:n,signup:(e,t,n)=>new Promise((i,r)=>{this.userPool.signUp(e,t,n,null,(e,t)=>{e?r(e):i(t)})})}}async function be(e){await this.__authConnection;try{return await we.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!0},e)),this.user}catch(e){return null}}async function Ae(e){await this.__connection,e=ue.Params(e,{token:"string",id:"string",merge:e=>{if(void 0===e)return!1;if("string"==typeof e)return[e];if(Array.isArray(e))for(let t of e)if("string"!=typeof t)throw new te('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"});if("boolean"!=typeof e&&!Array.isArray(e))throw new te('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return e}});let t=await Ge.bind(this)("openid-logger",e),n=t.logger.split("#"),i=this.service+"-"+n[0],r=n[1];return{userProfile:await we.bind(this)().authenticateUser(i,r,!0,!0),openid:t.openid}}async function ve(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Ee.bind(this)(),!1)}async function Se(e=!1){let t=null;le&&(e?t=new Promise((e,t)=>{le.globalSignOut({onSuccess:t=>{this.log("globalSignOut:success",t),e(t)},onFailure:e=>{this.log("globalSignOut:error",e),t(e)}})}):le.signOut());let n={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};t&&(t=await t);for(let e in n)this[e]=n[e];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),t}async function Ee(e){await this.__connection;let{data:t}=oe(e);return await Se.bind(this)(t?.global),"SUCCESS: The user has been logged out."}async function Ie(){if(!this.__request_signup_confirmation)throw new te("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await Ge.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function Te(e=!1){if("string"==typeof e)e=ue.Url(e);else if("boolean"!=typeof e)throw new te("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new te("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await Ge.bind(this)("recover-account",{username:this.__disabledAccount,redirect:e}),"SUCCESS: Recovery e-mail has been sent."}async function Re(e){let t=ue.Params(e,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,t.email)try{ue.Email(t.email)}catch(e){t.username=t.email,delete t.email}if(!t.username&&!t.email)throw new te('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await we.bind(this)().authenticateUser(t.username||t.email,t.password)}async function De(e,t){await this.__authConnection;let n={username:"string",password:e=>ue.Password(e),email:e=>ue.Email(e),name:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",gender:"string",birthdate:e=>e?ue.Birthdate(e):"",phone_number:e=>e?ue.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",picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:e=>e?ue.Url(e):""},i=ue.Params(e||{},n,["email","password"]);await Ee.bind(this)(),t=ue.Params(t||{},{email_subscription:e=>{if("boolean"!=typeof e)throw new te('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!t?.signup_confirmation)throw new te('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return e},signup_confirmation:e=>{let t=e;if("string"==typeof e)t=ue.Url(e);else{if("boolean"!=typeof e)throw new te('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});t=e}if(t&&!i.email)throw new te('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return t},login:e=>{if("boolean"==typeof e){if(t.signup_confirmation&&e)throw new te('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return e}throw new te('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})}});let r=t?.login||!1;if(i.signup_confirmation=t?.signup_confirmation||!1,i.email_subscription=t?.email_subscription||!1,i.email_public&&!i.signup_confirmation)throw new te('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});i.service=this.service,i.owner=this.owner;let s=we.bind(this)().createCognitoUser(i.username||i.email);for(let e of["email_public","address_public","gender_public","birthdate_public","phone_number_public"])i[e]=i[e]?"1":"0";i.access_group&&(i.access_group=i.access_group.toString());let o=(await Ge.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:"boolean"==typeof i.signup_confirmation?JSON.stringify(i.signup_confirmation):i.signup_confirmation,email_subscription:i.email_subscription})).split(":"),a=o.slice(1).join(":"),c=[new x({Name:"custom:signup",Value:o[0]}),new x({Name:"locale",Value:a.split("#")[1]}),new x({Name:"custom:signup_ticket",Value:a})];for(let e in n){let t=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];""!==i[e]&&"username"!==e&&"password"!==e&&"access_group"!==e&&(t.includes(e)?c.push(new x({Name:"custom:"+e,Value:i[e]})):c.push(new x({Name:e,Value:i[e]})))}return await we.bind(this)().signup(s.cognitoUsername,i.password,c),i.signup_confirmation?(le=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):r?Re.bind(this)({email:i.username||i.email,password:i.password}):"SUCCESS: The account has been created."}async function Ue(){await this.__connection;let e=await Ge.bind(this)("remove-account",{disable:this.__user.user_id},{auth:!0});return await Ee.bind(this)(),e}async function Pe(e){await this.__connection;let t=ue.Params(e,{email:e=>ue.Email(e),code:["number","string"],new_password:e=>ue.Password(e)},["email","code","new_password"]),n=t.code,i=t.new_password;return"number"==typeof n&&(n=n.toString()),new Promise(async(e,r)=>{we.bind(this)().createCognitoUser(t.email).cognitoUser.confirmPassword(n,i,{onSuccess:t=>{e("SUCCESS: New password has been set.")},onFailure:e=>{r(new te(e?.message||"Failed to reset password.",{code:e?.code}))}})})}async function Ce(e,t){let n;if(await this.__connection,!le)throw new te("The user has to be logged in.",{code:"INVALID_REQUEST"});if("email"===e||"phone_number"===e){if(!this.__user.hasOwnProperty(e))throw new te(`No ${"email"===e?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});return this.__user?.[`${e}_verified`]?`SUCCESS: "${e}" is verified.`:(n=(t?ue.Params(t,{code:["string"]}):{}).code||"",new Promise((t,i)=>{let r={onSuccess:r=>{n?we.bind(this)().getSession({refreshToken:!0}).then(()=>{this.__user&&(this.__user[e+"_verified"]=!0),t(`SUCCESS: "${e}" is verified.`)}).catch(e=>{i(e)}):t("SUCCESS: Verification code has been sent.")},onFailure:e=>{i(new te(e.message||"Failed to request verification code.",{code:e?.code}))}};n?le?.verifyAttribute(e,n,r):(r.inputVerificationCode=null,le?.getAttributeVerificationCode(e,r))}))}}function ke(e){return Ce.bind(this)("phone_number",e)}function Ne(e){return Ce.bind(this)("email",e)}async function Le(e){await this.__connection;let t=ue.Params(e,{email:e=>ue.Email(e)},["email"]);return new Promise(async(e,n)=>{we.bind(this)().createCognitoUser(t.email).cognitoUser.forgotPassword({onSuccess:t=>{e("SUCCESS: Verification code has been sent.")},onFailure:e=>{n(new te(e?.message||"Failed to send verification code.",{code:e?.code||"ERROR"}))}})})}async function Oe(e){if(await this.__connection,!this.session)throw new te("User login is required.",{code:"INVALID_REQUEST"});let t=ue.Params(e,{current_password:"string",new_password:"string"});if(!t?.current_password)throw new te('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!t?.new_password)throw new te('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return ue.Password(t.current_password),ue.Password(t.new_password),new Promise((e,n)=>{le.changePassword(t.current_password,t.new_password,(t,i)=>{t&&n("InvalidParameterException"===t?.code?new te("Invalid password parameter.",{code:"INVALID_PARAMETER"}):"NotAuthorizedException"===t?.code?new te("Incorrect password.",{code:"INVALID_REQUEST"}):"TooManyRequestsException"===t?.code||"LimitExceededException"===t?.code?new te("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}):new te(t?.message||"Failed to change user password.",{code:t?.code||t?.name})),e("SUCCESS: Password has been changed.")})})}async function Me(e){if(await this.__connection,!this.session)throw new te("User login is required.",{code:"INVALID_REQUEST"});let t=ue.Params(e||{},{user_id:e=>ue.UserId(e),email:e=>ue.Email(e),address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",name:"string",gender:"string",birthdate:e=>e?ue.Birthdate(e):"",phone_number:e=>e?ue.PhoneNumber(e):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:e=>e?ue.Url(e):""});if(t&&"object"==typeof t&&!Object.keys(t).length)return this.user;t.email&&(t.preferred_username=this.service+"-"+ne.hash(t.email));let n=[["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 e of n)if(t[e[0]]&&!this.__user[e[1]])throw new te(`${e[2]} "${e[0]}" to true.`,{code:"INVALID_REQUEST"});let i=[];for(let e in t)if(t[e]!==this.user[e]){if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(e)){let n=t[e];"boolean"==typeof n&&(n=n?"1":"0"),t["custom:"+e]=n,i.push(e)}}else i.push(e);for(let e of i)delete t[e];if(t.user_id){if(t.user_id!==this.user.user_id)return Ge.bind(this)("admin-edit-profile",{attributes:t},{auth:!0});delete t.user_id}if(t&&"object"==typeof t&&Object.keys(t).length){let e=[];for(let n in t)e.push(new x({Name:n,Value:t[n]}));return await new Promise((t,n)=>{le?.updateAttributes(e,(e,i)=>{e&&n([e?.code||e?.name,e?.message||"Failed to update user settings."]),t(i)})}),await we.bind(this)().getSession({refreshToken:!0}),this.user}return this.user}async function xe(e,t){(e=oe(e).data)||(e={searchFor:"timestamp",condition:">",value:0},t||(t={}),t.ascending=!1),await this.__connection;const n={user_id:e=>Array.isArray(e)?e.map(e=>ue.UserId(e)):ue.UserId(e),email:"string",phone_number:"string",locale:e=>{if("string"!=typeof e||"string"==typeof e&&e.length>5)throw new te('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return e},name:"string",address:"string",gender:"string",birthdate:e=>ue.Birthdate(e),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"};if(e=ue.Params(e,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:t=>{let i=n[e.searchFor];if("function"==typeof i)return i(t);if(typeof t!==i)throw new te(`Value does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});return t},range:t=>{let i=n[e.searchFor];if("function"==typeof i)return i(t);if(typeof t!==i)throw new te(`Range does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});return t}},["searchFor","value"]),e?.condition&&"="!==e?.condition&&e.hasOwnProperty("range"))throw new te("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if("user_id"===e.searchFor&&("="!==e.condition||e.range))throw new te(`Conditions are not allowed on "${e.searchFor}"`,{code:"INVALID_PARAMETER"});if("string"==typeof e?.value&&!e?.value)throw new te("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if("string"==typeof e?.searchFor&&!e?.searchFor)throw new te('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return Ge.bind(this)("get-users",e,{auth:!0,fetchOptions:t})}async function Ve(e){await this.__connection;let t=await Ge.bind(this)("last-verified-email",e,{auth:!0});return t.includes("SUCCESS")?(await we.bind(this)().getSession({refreshToken:!0}),this.user):t}async function Fe(e){return await this.__connection,e=ue.Params(e,{username:ue.Email,redirect:ue.Url},["username"]),await Ge.bind(this)("request-username-change",e,{auth:!0})}const qe=class{version="1.0.12";items=[];breakWhenError=!1;batchSize=1;onProgress;completed=[];runningBatches=[];runningSlots=[];get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}get batchProcessFinished(){let e=Object.keys(this.completed).length===this.runningBatches.length;if(e){const e=this.completed;this.completed=[],this.runningBatches=[],this.runningSlots=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:e})}return e}constructor(e){if(this.breakWhenError=!!e?.breakWhenError,this.batchSize=e?.batchSize??1,"number"!=typeof this.batchSize||this.batchSize<1)throw new Error("batchSize must be at least 1");if(e?.onProgress){if("function"!=typeof e.onProgress)throw new Error("onProgress must be a function");this.onProgress=e.onProgress}}add(e){const t=Array.isArray(e)?e:[e];for(const e of t){if("function"!=typeof e)throw new Error("Each job must be a function that returns a Promise");this.items.push(e)}this.processNext()}processNext(){if(0===this.items.length)return;const e=this.batchSize-this.runningBatches.length;if(!(e<=0)){this.runningBatches.push(...this.items.splice(0,e));for(let e=0;e<this.runningBatches.length;e++)this.runningSlots?.[e]||(this.runningSlots[e]=!0,this.runningBatches[e]().then(t=>this.completed[e]?t:(this.completed[e]=t,this.batchProcessFinished?this.processNext():t)).catch(t=>{if(this.breakWhenError)throw t;return this.completed[e]=t,this.batchProcessFinished?this.processNext():t}))}}terminate(){this.items=[]}};let Be=null,$e=0,je=0,Ke=0,He=0;async function Je(e,t){const n=await Promise.all([this.admin_endpoint,this.record_endpoint]),i=n[0],r=n[1];let s=e.split("?"),o=s.length>1?"?"+s[1]:"";switch(e=s[0]){case"get-users":return i.get_users_private+e+o;case"service":return i.service_public+e+o;case"get-newsletters":case"get-public-newsletters":case"subscribe-newsletter":case"subscribe-public-newsletter":case"signupkey":case"admin-newsletter-request":return(t?i.extra_private:i.extra_public)+e+o;case"admin-signup":case"confirm-signup":case"client-secret-request":case"client-secret-request-public":case"openid-logger":return(t?i.extra_private_2:i.extra_public_2)+e+o;case"block-account":case"admin-edit-profile":return i.admin_private+e+o;case"remove-account":case"post-secure":case"recover-account":case"mock":case"grant-access":case"last-verified-email":case"ticket":case"register-ticket":case"get-newsletter-subscription":case"request-username-change":case"send-inquiry":case"register-newsletter-group":case"newsletter-group-endpoint":case"invitation-list":const n=t?[i.admin_private,i.admin_private_2]:[i.admin_public,i.admin_public_2],s=n[(t?$e:je)%n.length];return t?$e++:je++,s+e+o;case"post-record":return(t?r.post_private:r.post_public)+e+o;case"get-records":return(t?r.get_private:r.get_public)+e+o;case"del-files":case"del-records":return r.del_private+e+o;case"store-subscription":case"get-vapid-public-key":case"push-notification":case"delete-subscription":case"subscription":case"get-subscription":case"get-table":case"get-tag":case"get-uniqueid":case"get-index":case"get-signed-url":case"grant-private-access":case"request-private-access-key":case"get-ws-group":case"check-schema":case"get-feed":case"castspell":case"dopamine":case"getspell":const a=t?[r.record_private,r.record_private_2]:[r.record_public,r.record_public_2],c=a[(t?Ke:He)%a.length];return t?Ke++:He++,c+e+o;default:return ue.Url(e)+o}}const Qe={};function ze(){Be&&Be.terminate()}async function Ge(e,t=null,n,i){this.log("request",{url:e,data:t,options:n,_etc:i||{}}),n=n||{};let{auth:r=!1,method:s="post",bypassAwaitConnection:o=!1}=n;s=s.toUpperCase();let a=null,c=t?.service||this.service,u=t?.owner||this.owner,l=null,h=await Je.bind(this)(e,!!r);if(!o&&(a=await this.__connection,!a))throw new te("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});r&&(l=await me.bind(this)());let d={},{fetchMore:f=!1,progress:p}=n?.fetchOptions||{};if(n?.fetchOptions&&Object.keys(n.fetchOptions).length){for(let e of["limit","startKey","ascending"])n.fetchOptions.hasOwnProperty(e)&&(d[e]=n.fetchOptions[e]);d=ue.Params(d,{limit:e=>{if("number"!=typeof e)throw new te("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(e>1e3)throw new te("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return e},startKey:e=>e,ascending:"boolean"})}let g=i?.ignoreService?{}:{service:c,owner:u};Object.assign(g,d),(t=oe(t).data)?t&&"object"==typeof t&&(t=Object.assign(g,t)):t=g;let _=(()=>{if(t&&"object"==typeof t&&Object.keys(t).length&&!(t instanceof FormData)){function n(e){return"object"==typeof e&&null!==e?Object.keys(e).sort().reduce((t,i)=>("object"==typeof e[i]&&null!==e[i]?t[i]=n(e[i]):t[i]=e[i],t),{}):e}return ne.hash(e+"/"+JSON.stringify(n(t)))}return ne.hash(e+"/"+this.service)})(),m=Ye.bind(this)({params:t,url:e,fetchMore:f,hashedParams:_});if(this.log("requestKey",m),!m||m&&"object"==typeof m)return m;if("string"==typeof m&&Qe[m]instanceof Promise)return this.log("request:returning pending",m),Qe[m];let y={Accept:"*/*","Content-Type":n.hasOwnProperty("contentType")?null===n.contentType?"application/x-www-form-urlencoded":n.contentType||"application/json":"application/json"};l&&(y.Authorization=l);let w={public_identifier:this.__public_identifier,service:c,owner:u};y["Content-Meta"]=JSON.stringify(w);let b={headers:y};if(n?.responseType&&(b.responseType=n.responseType),"GET"===s){if(t){let e=[];if(t instanceof FormData)for(let[n,i]of t.entries())"string"==typeof i&&(i=encodeURIComponent(i),e.push(`&${n}=${i}`));else e=Object.keys(t).map(e=>{let n=t[e];return"string"!=typeof n&&(n=JSON.stringify(n)),encodeURIComponent(e)+"="+encodeURIComponent(n)});e.length&&("?"!==h.substring(h.length-1)&&(h+="?"),h+=e.join("&"))}b.body=null}else b.body=t?JSON.stringify(t):null;if(b.method=s,null===Be){let e={batchSize:this.requestBatchSize,breakWhenError:!1,onProgress:e=>{for(let e in Qe)delete Qe[e];this.onBatchProcess.forEach(t=>t(e))}};Be=new qe(e)}return new Promise((t,n)=>{Be.add([async()=>{let i=We.bind(this)(h,b,p);Qe[m]=i;try{let n=Ze.bind(this)({hashedParam:m,url:e,fetched:await i});return this.log("request:end",n),t(n),n}catch(e){throw this.log("request:err",e),n(e),e}}])})}function Ye(e){let{params:t={},url:n,fetchMore:i=!1,hashedParams:r}=e||{};if(t.startKey){if(("object"!=typeof t.startKey||!Object.keys(t.startKey).length)&&"start"!==t.startKey&&"end"!==t.startKey)throw new te(`"${t.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});"start"===t.startKey&&(i=!1,delete t.startKey)}if(!i){if(this.__cached_requests?.[n]?.[r]&&delete this.__cached_requests[n][r],this.__startKeyHistory?.[n]?.[r]){if(Array.isArray(this.__startKeyHistory[n][r])&&this.__startKeyHistory[n][r].length)for(let e of this.__startKeyHistory[n][r]){let t=r+ne.hash(e);this.__cached_requests?.[n]&&this.__cached_requests?.[n]?.[t]&&delete this.__cached_requests[n][t]}delete this.__startKeyHistory[n][r]}return r}if(!Array.isArray(this.__startKeyHistory?.[n]?.[r]))return r;let s=this.__startKeyHistory[n][r],o=s[s.length-1],a=r;if(o){if("end"===o)return{list:[],startKey:"end",endOfList:!0,startKeyHistory:s};a+=ne.hash(o),t.startKey=JSON.parse(o)}return this.__cached_requests?.[n]?.[a]?this.__cached_requests[n][a]:r}function We(e,t,n){return new Promise((i,r)=>{let s=new XMLHttpRequest;for(var o in s.open(t.method||"GET",e),t.headers||{})s.setRequestHeader(o,t.headers[o]);t.responseType&&(s.responseType=t.responseType),s.onload=()=>{if(s.status<400)if("json"==t.responseType||"blob"==t.responseType)i(s.response);else{let e=s.responseText;try{e=JSON.parse(e)}catch(e){}i(e)}else if(429===s.status){let o=s.getResponseHeader("Retry-After");o?setTimeout(()=>{We(e,t,n).then(i,r)},1e3*parseInt(o)):r("Too many requests")}else{let e=s.status,n=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],i="blob"==t.responseType?s.response:s.responseText;try{i=JSON.parse(i)}catch(e){}if("string"==typeof i){let e=s.response.split(":"),t=e.splice(0,1)[0].trim();r(new te(e.join(":").trim(),{code:n.includes(t)?t:"ERROR"}))}else if("object"==typeof i&&i?.message){let t=i?.code||(e?e.toString():null)||"ERROR",n=i.message,s=i?.cause;"string"==typeof n&&(n=n.trim()),r(new te(n,{cause:s,code:t}))}else r(i)}},s.onerror=()=>r("Network error"),s.onabort=()=>r("Aborted"),s.ontimeout=()=>r("Timeout"),"function"==typeof n&&(s.onprogress=e=>{n({status:"download",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>s.abort()})},s.upload&&(s.upload.onprogress=e=>{n({status:"upload",progress:e.loaded/e.total*100,loaded:e.loaded,total:e.total,abort:()=>s.abort()})})),s.send(t.body)})}function Ze(e){let{hashedParam:t,url:n,fetched:i}=e;if(!i?.startKey)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 r="end"===i.startKey?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][t].includes(r)||this.__startKeyHistory[n][t].push(r),Object.assign({startKeyHistory:this.__startKeyHistory[n][t]},i)}async function Xe(e,t){await this.__connection;let{record_id:n,service:i=this.service,progress:r}=t;if(!n)throw new te('"record_id" is required.',{code:"INVALID_PARAMETER"});if(e instanceof SubmitEvent&&(e=e.target),e instanceof HTMLFormElement&&(e=new FormData(e)),!(e instanceof FormData))throw new te('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let s,o={reserved_key:se(),service:i,request:"post"};t?.record_id&&(o.id=t.record_id);let a=(e,t,n)=>new Promise((i,r)=>{s=new XMLHttpRequest,s.open("POST",e),s.onload=()=>{let o=s.responseText;try{o=JSON.parse(o)}catch(e){}if(s.status>=200&&s.status<300)i(o);else if(429===s.status){let o=s.getResponseHeader("Retry-After");o?setTimeout(()=>{a(e,t,n).then(i,r)},1e3*parseInt(o)):r("Too many requests")}else r(o)},s.onerror=()=>r("Network error"),s.onabort=()=>r("Aborted"),s.ontimeout=()=>r("Timeout"),s.upload&&"function"==typeof n&&(s.upload.onprogress=n),s.send(t)});function c(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}return null===Be&&(Be=new qe({batchSize:this.requestBatchSize,breakWhenError:!1})),new Promise((t,n)=>{Be.add([async()=>{let n=[],i=[],u=[];for(let[t,l]of e.entries()){if(!(l instanceof File))continue;let e=Object.assign({key:t+"/"+l.name,sizeKey:c(l.size),contentType:l.type||null},o),{fields:h=null,url:d,cdn:f}=await Ge.bind(this)("get-signed-url",e,{auth:!!this.__user});u.push(f);let p=new FormData;for(let e in h)p.append(e,h[e]);p.append("file",l);try{await a(d,p,"function"==typeof r?e=>r({status:"upload",progress:e.loaded/e.total*100,currentFile:l,completed:n,failed:i,loaded:e.loaded,total:e.total,abort:()=>s.abort()}):null),n.push(l)}catch(e){i.push(l)}}return t({completed:n,failed:i,bin_endpoints:u}),{completed:n,failed:i,bin_endpoints:u}}])})}const et={};function tt(e){let{preventMultipleCalls:t=!1}=e||{};return function(e,n,i){const r=i.value;i.value=function(...e){let i=e[0],s=!0,o=null,a="",c={},u=!1;if(i instanceof SubmitEvent){i.preventDefault();let e=location.href;o=i.target;let t=new URL(o.action);a=t.href;let n=a?a.match(/(?<=\{).*?(?=\})/g):"";if(n)for(let e of n){if(!e)continue;let t=o.querySelector(`[name="${e}"]`);if(t)if("file"===t.type)for(let n=0;n<=t.files.length-1;n++)t.files[n]&&(c[e]||(c[e]=[]),c[e].push(new Promise((e,i)=>{let r=new FileReader;r.onload=function(){e(r.result)},r.readAsDataURL(t.files[n]),r.onerror=i})));else a=a.replace(`{${e}}`,t.value)}null===o.getAttribute("action")?s=!1:u=t.href===e}const l=async e=>{if(a)for(let e in c)c[e].length&&(a=a.replace(`{${e}}`,(await Promise.all(c[e])).join(",")));return o&&s&&(sessionStorage.setItem(`${this.service}:${ne.hash(a)}`,JSON.stringify(e)),u?location.replace(a):location.href=a),e};let h;const d=async()=>{try{if(h=r.bind(this)(...e),h instanceof Promise){let e=await h;return await l(e),h}}catch(e){throw(e=>{throw e instanceof te?e.name=n+"()":e=e instanceof Error?e:new te(e,{name:n+"()"}),e})(e)}};return t?(et?.[n]||(et[n]=d().finally(()=>{delete et[n]})),et[n]):d()}}}async function nt(){await this.__connection;let e=`${this.service}:${ne.hash(location.href.split("?")[0])}`,t=sessionStorage.getItem(e);if(sessionStorage.removeItem(e),null!==t){try{t=JSON.parse(t)}catch(e){}return t}return null}function it(e,t="parameter",n=!1,i=!1){if(!e)throw new te(`"${t}" is required.`,{code:"INVALID_PARAMETER"});return ue.specialChars(e,t,n,i)}function rt(e){if(void 0===e)return 0;if("number"==typeof e){if(e>99||e<0)throw new te('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else{if("string"!=typeof e)throw new te('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(void 0===(e={private:"private",public:0,authorized:1,admin:99}[e]))throw new te('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}if(!this.__user&&e)throw new te("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return e}function st(e){if("number"==typeof e){if(e>4503599627370496||e<-4503599627370496)throw new te("Number value should be within range -4503599627370496 ~ +4503599627370496",{code:"INVALID_PARAMETER"});return e}if("boolean"==typeof e)return e;if("string"==typeof e)return it(e,"index.value",!1,!0);throw new te('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function ot(e){return{table:{name:[e=>it(e,"table.name",!0,!0)],access_group:[rt.bind(this)],subscription:e=>{if("string"==typeof e)return ue.UserId(e,'User ID in "subscription"'),e}},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",e=>it(e,"index.name",!0,!1)],value:t=>{const n={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:ue.UserId};if(n.hasOwnProperty(e.index.name)){let i=n[e.index.name];if("function"==typeof i)return i(t);if(i!==typeof t)throw new te(`"index.value" should be type: ${i}.`,{code:"INVALID_PARAMETER"});return t}return"string"!=typeof t||t?st(t):" "},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:t=>function(e,t){if(!t.index||!("value"in t.index))throw new te('"index.value" is required.',{code:"INVALID_PARAMETER"});if("$record_id"===t.index.name)throw new te(`Cannot do "index.range" on ${t.index.name}`,{code:"INVALID_PARAMETER"});if(typeof t.index.value!=typeof e)throw new te('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return"string"==typeof e?ue.specialChars(e,"index.range",!1,!0):e}(t,e)},tag:e=>{if(null==e)return e;if("string"==typeof e)return ue.specialChars(e,"tag",!1,!0);throw new te('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"}}async function at(e,t){if(e?.rec&&"called from postRecord"!==t){let t=sessionStorage.getItem(`${this.service}:post:${e.rec}`);if(t){try{e=JSON.parse(t)}catch(e){}sessionStorage.removeItem(`${this.service}:post:${e.rec}`)}}const n={user_id:"",record_id:"",updated:0,uploaded:0,readonly:!1,table:{name:"",access_group:0,subscription:{is_subscription_record:!1,upload_to_feed:!1,notify_subscribers:!1,feed_referencing_records:!1,notify_referencing_records:!1}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:!1,can_remove_referencing_records:!1,only_granted_can_reference:!1},ip:"",bin:{}};let i=!1;function r(e){let t="**"==e?"private":parseInt(e);return t=0==t?"public":1==t?"authorized":99==t?"admin":t,t}const s={ip:e=>{let t=e.split("#"),r=t[0];t.length>1&&(n.unique_id=t[1]),"R"===r.slice(-1)?(n.readonly=!0,r=r.slice(0,-1)):n.readonly=!1,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(r)&&(r=r.split("-").join("."),i=!0),n.ip=r},rec:e=>{if(!e)return;n.record_id=e;let t=re(e.substring(0,e.length-9));n.uploaded=t},usr:e=>{n.user_id=e},tbl:e=>{if(e&&!n.table.name){let t=e.split("/");n.table.name=t[0],n.table.access_group=r(t[2]),t?.[3]&&(n.table.subscription.is_subscription_record=!0)}},usr_tbl:e=>{let t=e.split("/");n.user_id||(n.user_id=t[0]),n.table.name||(n.table.name=t[1],n.table.access_group=r(t[3]),t?.[4]&&(n.table.subscription.is_subscription_record=!0))},idx:e=>{if(!e)return;let t=e.split("!"),i=t.splice(0,1)[0],r=function(e){let t=e.substring(3);switch(e.substring(0,3)){case"!S%":return t;case"!N%":let n=t.split("."),i=Number(n[0])-4503599627370496;return 1===n.length?i:parseFloat(i.toString()+"."+n[1]);case"!B%":return"1"===t;case"!L%":case"!D%":try{return JSON.parse(t)}catch(e){throw new te("Value parse error.",{code:"PARSE_ERROR"})}default:return e}}("!"+t.join("!"));n.index={name:i,value:r}},ref:e=>{e&&(n.reference=e.split("/")[0])},tags:e=>{n.tags=e},upd:e=>{n.updated=e},acpt_mrf:e=>{n.source.prevent_multiple_referencing=!e},ref_limt:e=>{n.source.referencing_limit=e},rfd:e=>{n.referenced_count=e},bin:async e=>{let t={},i=n?.reference||null;if(Array.isArray(e))for(let n of e){let e=n.split("/").slice(3).join("/"),s=e.split("/"),o=decodeURIComponent(s.slice(-1)[0]),a=decodeURIComponent(s[10]),c=s[9],u=s[8],l=r(s[6]),h=n;"public"!==l&&(h=await ut.bind(this)(n,{dataType:"endpoint",_ref:i}));let d={access_group:l,filename:o,url:h,path:e,size:re(c),uploaded:re(u),getFile:(e,t)=>{let n={dataType:e||"download",progress:t,_ref:i,_update:d};return ut.bind(this)(h,n)}};t[a]?t[a].push(d):t[a]=[d]}n.bin=t},prv_acs:e=>{for(let t in e)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(t)?n.table.subscription[t]=e[t]:n.source[t]=e[t]},data:e=>{let t=e;"!D%{}"===e?t={}:"!L%[]"===e&&(t=[]),n.data=t}};if(e.record_id)return e;for(let t in s)if(e.hasOwnProperty(t)){let n=s[t](e[t]);n instanceof Promise&&await n}return i&&(n.user_id="anonymous:"+n.user_id),n}async function ct(e){let{endpoints:t}=e;if("string"==typeof t&&(t=[t]),!Array.isArray(t))throw new te('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("del-files",{endpoints:t,storage:"records"},{auth:!0,method:"post"}),i=[];for(let e in n)i.push(at.bind(this)(n[e]));return Promise.all(i)}async function ut(e,t){if("string"!=typeof e)throw new te('"url" should be type: string.',{code:"INVALID_PARAMETER"});let n=!1,i=(e=ue.Url(e.split("?")[0])).split("/"),r=i[2].split("."),s=null;3===r.length&&"skapi"===r[1]&&(s=r[0],n=!0);let o=i.slice(3),a=!1;if(!n&&("auth"===o[0]||"publ"===o[0]))try{ue.UserId(o[2]),ue.UserId(o[3]),a="auth"==o[0],n=!0}catch{throw new te("Invalid file url.",{code:"INVALID_PARAMETER"})}let c=s?null:o[1];if(t=ue.Params(t,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:"function",_ref:"string",_update:e=>e}),"info"===t?.dataType)return{url:e,filename:o[o.length-1],fileKey:o[o.length-2],access_group:"**"===o[6]?"private":"01"===o[6]?"authorized":"00"===o[6]?"public":parseInt(o[6]),uploader:o[3],record_id:"records"===o[4]?o[5]:"N/A",filesize:re(o[9]),uploaded:re(o[8])};let u=e.split("/").slice(-1)[0],l=t.expires;if(l){if(!n)throw new te("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(l<0)throw new te('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let t={request:s?"get-host":"get",id:s||o[5],key:e,expires:l};c&&(t.service=c),e=(await Ge.bind(this)("get-signed-url",t,{auth:!0})).url}else if(a){let n=Math.floor(Date.now()/1e3);if(this.log("getFile:tokens",{exp:this.session.idToken.payload.exp,currTime:n,expiresIn:this.session.idToken.payload.exp-n,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token}),this.session.idToken.payload.exp<n){this.log("getFile:requesting new token",null);try{await we.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session.idToken.payload.exp,currTime:n,expiresIn:this.session.idToken.payload.exp-n,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token})}catch(e){throw this.log("getFile:new token error",e),new te("User login is required.",{code:"INVALID_REQUEST"})}}let i=this.session?.idToken?.jwtToken;e+=`?t=${i}`;let r="**"===o[6]?"**":parseInt(o[6]);if(this.user.user_id!==o[3]&&("**"===r||this.user?.access_group<r)){let n=o[5];if(this.__private_access_key[n]&&"string"==typeof this.__private_access_key[n])e+="&p="+this.__private_access_key[n];else if(this.owner!==this.host)try{let i=await this.requestPrivateRecordAccessKey({record_id:n,reference_id:t?._ref});e+="&p="+i}catch(e){}}}if("endpoint"===t?.dataType)return t._update&&(t._update.url=e),e;if("download"===t?.dataType){let t=document.createElement("a");return t.href=e,document.body.appendChild(t),t.setAttribute("download",u),t.target="_blank",t.click(),document.body.removeChild(t),null}return new Promise(async(n,i)=>{try{let i=await Ge.bind(this)(e,null,{method:"get",contentType:null,responseType:"text"===t?.dataType?"text":"blob",fetchOptions:{progress:t?.progress}},{ignoreService:!0});if("base64"===t?.dataType){const e=new FileReader;e.onloadend=()=>n(e.result),e.readAsDataURL(i)}else n(i)}catch(e){i(e)}})}async function lt(e,t=!1){e=oe(e,{ignoreEmpty:!0}).data,"string"==typeof e?.table&&(e.table={name:e.table,access_group:0});let n="",i=function(e){if(!e.record_id&&!e.unique_id)return null;let t={};return e?.service&&(t.service=e.service),e?.owner&&(t.owner=e.owner),e?.record_id?t.record_id=ue.specialChars(e.record_id,"record_id",!1,!1):e?.unique_id&&(t.unique_id=e.unique_id),t}(e);if(i)n=(e=i).record_id||e.unique_id,"string"==typeof n&&("string"==typeof this.__private_access_key?.[n]&&(e.private_key=this.__private_access_key?.[n]||void 0),this.__my_unique_ids[n]&&(t?delete this.__my_unique_ids[n]:e.record_id=this.__my_unique_ids[n]));else{let t=await ve.bind(this)(),i=e.reference,r="";i?.record_id||i?.unique_id?(n=i.record_id||i.unique_id,n&&"string"==typeof this.__private_access_key?.[n]&&(e.private_key=this.__private_access_key?.[n]||void 0),e.reference=n):i?.user_id&&(r=i.user_id,e.reference=r),e=ue.Params(e||{},ot.bind(this)(e),r||t?[]:["table"],{ignoreEmpty:!0})}return{query:e,is_reference_fetch:n}}async function ht(e,t){await this.__connection;let n=await lt.bind(this)(e),i=n.is_reference_fetch,r=await Ge.bind(this)("get-records",n.query,{fetchOptions:t,auth:!!this.__user,method:this.__user?"post":"get"});i&&r?.reference_private_key&&"string"==typeof r.reference_private_key&&(this.__private_access_key[i]=r.reference_private_key);let s=[];for(let e in r.list)s.push(at.bind(this)(r.list[e]));return r.list=await Promise.all(s),r}async function dt(e,t,n){await this.__connection;let i="";if(!t)throw new te('"config" argument is required.',{code:"INVALID_PARAMETER"});let r=!this.__user;"string"==typeof t.table&&(t.table={name:t.table}),t.record_id||t.table.hasOwnProperty("access_group")||(t.table.access_group=0),t.table?.subscription&&(t.table?.subscription?.is_subscription_record?Object.assign(t.table.subscription,{group:1}):!1!==t.table?.subscription?.is_subscription_record&&(t.record_id||t.table.subscription?.is_subscription_record)||Object.assign(t.table.subscription,{group:null}),delete t.table.subscription?.is_subscription_record);let s=ue.Params(t||{},{record_id:["string",()=>{if(!t.table||!t.table.name)throw new te('"table.name" is required.',{code:"INVALID_PARAMETER"})}],unique_id:"string",readonly:"boolean",table:{name:e=>it(e,"table name",!0,!0),subscription:{group:e=>1===e?1:null,upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"},access_group:rt.bind(this)},source:{referencing_limit:e=>{if(null===e)return null;if("number"==typeof e){if(0>e)throw new te('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(e>4503599627370546)throw new te('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return e}throw new te('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:e=>{if(void 0===e)return;if(!e)return null;if(Array.isArray(e)&&!e.length)return null;let t={name:[e=>it(e,'"name" in "index_restrictions"',!0,!1)],value:e=>st(e),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:t=>{if(null!==t&&typeof e.value!=typeof t)throw new te('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!e.hasOwnProperty("value"))throw new te('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});if(e.condition&&("eq"!==e.condition||"="!==e.condition))throw new te('Index restriction "condition" cannot be used with "range".',{code:"INVALID_PARAMETER"});return t}};return Array.isArray(e)||(e=[e]),e.map(e=>ue.Params(e,t))}},reference:e=>{if(null===e)return{record_id:null};if(e){if("string"==typeof e)return i=e,this.__my_unique_ids[e]?this.__my_unique_ids[e]:e;if("object"!=typeof e)throw new te('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return ue.Params(e,{unique_id:"string",record_id:e=>null==e?e:(i=e,"string"==typeof this.__private_access_key?.[e]&&(t.reference_private_key=this.__private_access_key[e]||void 0),ue.specialChars(e,'"reference.record_id"',!1,!1))})}},index:{name:e=>it(e,"index.name",!0,!1),value:e=>st(e)},tags:e=>null==e?e:("string"==typeof e&&(e=e.split(",").map(e=>e.trim())),ue.specialChars(e,"tag",!1,!0)),remove_bin:e=>{if(!e)return null;let t=[];if(!Array.isArray(e))throw new te('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});for(let n of e)if("string"==typeof n)t.push(decodeURIComponent(n.split("?")[0]));else{if(!(n.url&&n.size&&n.filename))throw new te('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});{let e=n.url.split("/").slice(0,3).join("/")+"/"+n.path;t.push(e)}}return t},progress:"function"}),o=t.progress||null;delete s.progress;let a={auth:!!this.__user,method:"post"},c=null,u=null,l=oe(e);if(n?u=n:l.files.length&&(u=l.files),r){if(s.record_id)throw new te("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if("public"!==s.table.access_group&&0!==s.table.access_group)throw new te("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s.table.subscription)throw new te("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(s.remove_bin)throw new te("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(s.unique_id)throw new te("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}c=Object.assign({data:l.data},s);let h={};"function"==typeof o&&(h.progress=o),Object.keys(h).length&&Object.assign(a,{fetchOptions:h});let d=await Ge.bind(this)("post-record",c,a);if(u){let e=new FormData;for(let t of u)e.append(t.name,t.file,t.file.name);let t={record_id:d.rec,progress:o};s.hasOwnProperty("service")&&(t.service=s.service);let{bin_endpoints:n}=await Xe.bind(this)(e,t);d.bin?d.bin.push(...n):d.bin=n}i&&"string"==typeof d?.reference_private_key&&(this.__private_access_key[i]=d.reference_private_key),sessionStorage.setItem(`${this.service}:post:${d.rec}`,JSON.stringify(d));let f=await at.bind(this)(d,"called from postRecord");return f.unique_id&&(this.__my_unique_ids[f.unique_id]=f.record_id,sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids))),f}async function ft(e,t){let n=await Ge.bind(this)("get-table",ue.Params(e||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t})),i={cnt_rec:"number_of_records",tbl:"table",srvc:"service"};if(Array.isArray(n?.list))for(let e of n.list)for(let t in i)e.hasOwnProperty(t)&&(e[i[t]]=e[t],delete e[t]);return n}async function pt(e,t){if(!e?.table)throw new te('"table" is required.',{code:"INVALID_PARAMETER"});let n=ue.Params(e||{},{table:"string",index:e=>ue.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(n.hasOwnProperty("order")){if(!n.order?.by)throw new te('"order.by" is required.',{code:"INVALID_PARAMETER"});if(n.order.hasOwnProperty("condition")&&!n.order.hasOwnProperty("value"))throw new te('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(n.hasOwnProperty("index")&&"."!==n.index.substring(n.index.length-1))throw new te('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let i=await Ge.bind(this)("get-index",n,Object.assign({auth:!!this.__user},{fetchOptions:t})),r={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 r)e?.[t]&&(n[r[t]]=e[t]);return n})),i}async function gt(e,t){let n=await Ge.bind(this)("get-tag",ue.Params(e||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t}));return Array.isArray(n?.list)&&(n.list=n.list.map(e=>{let t=e.tag.split("/");return{table:t[1],tag:t[0],number_of_records:e.cnt_rec}})),n}async function _t(e,t){let n=await Ge.bind(this)("get-uniqueid",ue.Params(e||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:t}));if(Array.isArray(n?.list))for(let e in n.list){let t=n.list[e];n.list[e]={unique_id:t.unq,record_id:t.rec}}return n}async function mt(e,t){await this.__connection;let n=await lt.bind(this)(e,!0),i=n.is_reference_fetch,r=await Ge.bind(this)("del-records",n.query,{auth:!0,fetchOptions:t});return i&&"string"==typeof r?.reference_private_key&&(this.__private_access_key[i]=r.reference_private_key),r?.message||r}function yt(e){return vt.bind(this)({record_id:e.record_id,user_id:e.user_id,execute:"add"})}function wt(e){return vt.bind(this)({record_id:e.record_id,user_id:e.user_id||null,execute:"remove"})}async function bt(e,t){let n={record_id:e.record_id||void 0,user_id:e.user_id||void 0,execute:"list"};if(!n.record_id&&!n.user_id)throw new te("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(n.user_id)if("string"==typeof n.user_id)ue.UserId(n.user_id),n.user_id=[n.user_id];else{if(!Array.isArray(n.user_id))throw new te("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});for(let e of n.user_id)ue.UserId(e)}let i=await Ge.bind(this)("grant-private-access",n,{auth:!0,fetchOptions:t});return i.list=i.list.map(e=>(e.rec_usr?(e.record_id=e.rec_usr.split("/")[0],e.user_id=e.rec_usr.split("/")[1]):e.usr_rec&&(e.user_id=e.usr_rec.split("/")[0],e.record_id=e.usr_rec.split("/")[1]),e)),i}function At(e){let t=e.record_id,n=e.reference_id||void 0;if(!t)throw new te("Record ID is required.",{code:"INVALID_PARAMETER"});if("string"!=typeof t)throw new te("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(n&&"string"!=typeof n)throw new te("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(this.__private_access_key[t])return this.__private_access_key[t];let i=Ge.bind(this)("request-private-access-key",{record_id:t,reference_id:n},{auth:!0});return this.__private_access_key[t]=i,i}function vt(e){e.execute;let t=ue.Params(e,{record_id:"string",user_id:e=>{if(!e)throw new te("User ID is required.",{code:"INVALID_PARAMETER"});let t=e;if("string"==typeof t&&(t=[t]),t.length>100)throw new te("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let e of t)ue.UserId(e,'User ID in "user_id"');return t},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),Ge.bind(this)("grant-private-access",t,{auth:!0})}const St={},Et={},It={},Tt={},Rt={};let Dt,Ut={},Pt={};function Ct(e,t,n){e[t]||(e[t]=[]),e[t].push(n)}async function kt(e,t,n){let i=[];if(e[t]){for(let r of e[t])if(r){let e=n(r);e instanceof Promise&&(e=await e),i.push(e)}delete e[t]}return i}async function Nt(e,t){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});let n=await this.__socket;async function i(e,t,n){this.log("answerSdpOffer from",t),await St[t].setRemoteDescription(new RTCSessionDescription(e));const i=await St[t].createAnswer();await St[t].setLocalDescription(i),n.send(JSON.stringify({action:"rtc",uid:t,content:{sdpanswer:i},token:this.session.accessToken.jwtToken}))}St?.[t]?e?(await kt(Pt,t,e=>i.bind(this)(e,t,n)),await i.bind(this)(e,t,n)):await kt(Pt,t,e=>i.bind(this)(e,t,n)):e&&Ct(Pt,t,e)}async function Lt(e,t){if(this.log("receiveIceCandidate",e),St?.[t]&&St[t]?.remoteDescription&&St[t]?.remoteDescription?.type){if(!e)return kt(Ut,t,e=>St[t].addIceCandidate(e));await kt(Ut,t,e=>St[t].addIceCandidate(e)),await St[t].addIceCandidate(e)}else Ct(Ut,t,e)}async function Ot(e){ue.Params(e,{cid:e=>{if("string"!=typeof e)throw new te('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(e&&"cid:"!==e.slice(0,4))throw new te('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return e},close:"boolean"});let t=await this.__socket,{cid:n,close_all:i=!1}=e||{};if(!i&&!n)throw new te('"cid" is required.',{code:"INVALID_PARAMETER"});let r=e=>{if(!e)throw new te('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete Pt[e],delete Ut[e],Et[e]&&Object.values(Et[e]).forEach(e=>{"closed"!==e.readyState&&e.close()}),delete Et[e],St?.[e]){"closed"!==St[e].connectionState&&(St[e].close(),t.send(JSON.stringify({action:"rtc",uid:e,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let n={type:"connectionstatechange",target:St[e],timestamp:(new Date).toISOString(),state:St[e].connectionState,iceState:St[e].iceConnectionState,signalingState:St[e].signalingState};Rt[e]&&Rt[e](n),this.log("closeRTC",n)}delete Rt[e],delete Tt[e],delete It[e],delete St[e]};if(i)for(let e in St)r(e);else r(n);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(e=>{e.stop()}),this.__mediaStream=null)}async function Mt(e){if(e instanceof MediaStream)return e;if(!e.video&&!e.audio){const e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;const n=t.captureStream().getVideoTracks()[0];return e.addTrack(n),e}return navigator.mediaDevices.getUserMedia(e)}async function xt(e,t){if("function"!=typeof t)throw new te("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});e=ue.Params(e,{cid:e=>{if("string"!=typeof e)throw new te('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(e&&"cid:"!==e.slice(0,4))throw new te('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return e},ice:["string",()=>"stun:stun.skapi.com:3468"],media:e=>e,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:!0,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:n,ice:i}=e;if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&"localhost"!==location.hostname&&"https:"!==location.protocol)throw new te("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let r=this.__socket?await this.__socket:this.__socket;if(!r)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(1!==r.readyState)throw new te("Realtime connection is not ready.",{code:"INVALID_REQUEST"});const s={iceServers:[{urls:i}]};St?.[n]||(St[n]=new RTCPeerConnection(s)),e?.media&&(this.__mediaStream=await Mt(e.media),this.__mediaStream.getTracks().forEach(e=>{St[n].addTrack(e,this.__mediaStream)})),Rt[n]=t,Et[n]||(Et[n]={});for(let t=0;t<e.channels.length;t++){let i=e.channels[t];if("string"==typeof i)switch(i){case"text-chat":i={ordered:!0,maxRetransmits:10,protocol:"text-chat"};break;case"file-transfer":i={ordered:!1,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case"video-chat":i={ordered:!0,maxRetransmits:10,protocol:"video-chat"};break;case"voice-chat":i={ordered:!0,maxRetransmits:10,protocol:"voice-chat"};break;case"gaming":i={ordered:!1,maxPacketLifeTime:100,protocol:"gaming"};break;default:i={ordered:!0,maxRetransmits:10,protocol:"default"}}let r=i.protocol||"default";if(Object.keys(Et[n]).includes(r))throw new te(`Data channel with the protocol "${r}" already exists.`,{code:"INVALID_REQUEST"});let s=St[n].createDataChannel(r,i);Et[n][r]=s}for(let e in Et[n]){let t=Et[n][e];$t.bind(this)(n,t)}return Bt.bind(this)(n,["onnegotiationneeded"]),await Ft.bind(this)(n),{hangup:()=>It[n]&&It[n](!1),connection:new Promise(e=>{It[n]=(t=>{if(this.log("receiver picked up the call",n),!t)return Ot.bind(this)({cid:n}),null;St[n].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${n}".`),Ft.bind(this)(n),Rt[n]&&Rt[n]({type:"negotiationneeded",target:St[n],timestamp:(new Date).toISOString(),signalingState:St[n].signalingState,connectionState:St[n].iceConnectionState,gatheringState:St[n].iceGatheringState})},e({target:St[n],channels:Et[n],hangup:()=>Ot.bind(this)({cid:n}),media:this.__mediaStream})}).bind(this)})}}function Vt(e){return async(t,n)=>{t=oe(t=t||{}).data;let i=e.sender_cid,r=await this.__socket;if(!Tt[i])return null;if("function"!=typeof n)throw new te("Callback is required.",{code:"INVALID_PARAMETER"});if(!(t?.media instanceof MediaStream)&&(t?.media?.video||t?.media?.audio)&&"localhost"!==location.hostname&&"https:"!==location.protocol)throw new te("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=t;return St?.[i]||(St[i]=new RTCPeerConnection({iceServers:[{urls:s}]})),t?.media&&(this.__mediaStream=await Mt(t.media),this.__mediaStream.getTracks().forEach(e=>{St[i].addTrack(e,this.__mediaStream)})),delete Tt[i],Rt[i]=n,Et[i]||(Et[i]={}),St[i].ondatachannel=e=>{this.log("ondatachannel",`received data channel "${e.channel.label}".`);const t=e.channel;Et[i][t.label]=t,$t.bind(this)(i,t)},Bt.bind(this)(i,["onnegotiationneeded"]),await Nt.bind(this)(null,i),await Lt.bind(this)(null,i),r.send(JSON.stringify({action:"rtc",uid:i,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:St[i],channels:Et[i],hangup:()=>Ot.bind(this)({cid:i}),media:this.__mediaStream}}}async function Ft(e){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",e);let t=await this.__socket;const n=await St[e].createOffer();await St[e].setLocalDescription(n);let i=St[e].localDescription;this.log("rtcSdpOffer to",i),t.send(JSON.stringify({action:"rtc",uid:e,content:{sdpoffer:i},token:this.session.accessToken.jwtToken}))}async function qt(e,t){if(!this?.session?.accessToken?.jwtToken)throw new te("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",t);let n=await this.__socket;if(!e.candidate)return void this.log("candidate-end","all ice candidates have been sent");let i=Rt[t]||(()=>{}),r=e.candidate;this.log("ice gathering state set to",St[t].iceGatheringState),i({type:"icecandidate",target:St[t],timestamp:(new Date).toISOString(),candidate:e.candidate.candidate,sdpMid:e.candidate.sdpMid,sdpMLineIndex:e.candidate.sdpMLineIndex,usernameFragment:e.candidate.usernameFragment,protocol:e.candidate.protocol,gatheringState:St[t].iceGatheringState,connectionState:St[t].iceConnectionState}),n.send(JSON.stringify({action:"rtc",uid:t,content:{candidate:r},token:this.session.accessToken.jwtToken}))}function Bt(e,t){let n=new Set(t),i=Rt[e]||(e=>{}),r=St[e];const s={ontrack:e=>{i({type:"track",target:r,timeStamp:e.timeStamp,streams:e.streams,track:e.track})},onicecandidate:t=>{qt.bind(this)(t,e),t.candidate?i({type:"icecandidate",target:r,timestamp:(new Date).toISOString(),candidate:t.candidate.candidate,sdpMid:t.candidate.sdpMid,sdpMLineIndex:t.candidate.sdpMLineIndex,usernameFragment:t.candidate.usernameFragment,protocol:t.candidate.protocol,gatheringState:r.iceGatheringState,connectionState:r.iceConnectionState}):i({type:"icecandidateend",target:r,timestamp:(new Date).toISOString()})},onicecandidateerror:e=>{i({type:"icecandidateerror",target:r,timestamp:(new Date).toISOString(),errorCode:e.errorCode,errorText:e.errorText,url:e.url,hostCandidate:e.hostCandidate,gatheringState:r.iceGatheringState,connectionState:r.iceConnectionState})},oniceconnectionstatechange:()=>{i({type:"iceconnectionstatechange",target:r,timestamp:(new Date).toISOString(),state:r.iceConnectionState,gatheringState:r.iceGatheringState,signalingState:r.signalingState})},onicegatheringstatechange:()=>{i({type:"icegatheringstatechange",target:r,timestamp:(new Date).toISOString(),state:r.iceGatheringState,connectionState:r.iceConnectionState,signalingState:r.signalingState})},onsignalingstatechange:()=>{i({type:"signalingstatechange",target:r,timestamp:(new Date).toISOString(),state:r.signalingState,connectionState:r.iceConnectionState,gatheringState:r.iceGatheringState})},onnegotiationneeded:()=>{Ft.bind(this)(e),i({type:"negotiationneeded",target:r,timestamp:(new Date).toISOString(),signalingState:r.signalingState,connectionState:r.iceConnectionState,gatheringState:r.iceGatheringState})},onconnectionstatechange:()=>{i({type:"connectionstatechange",target:r,timestamp:(new Date).toISOString(),state:r.connectionState,iceState:r.iceConnectionState,signalingState:r.signalingState});let t=r.connectionState;"disconnected"!==t&&"failed"!==t&&"closed"!==t||Ot.bind(this)({cid:e})}};for(const[e,t]of Object.entries(s))n.has(e)||(r[e]=t)}function $t(e,t,n){let i=new Set(n),r=Rt[e]||(e=>{});const s={onmessage:e=>{let n={type:e.type,target:t,timeStamp:e.timeStamp,data:e.data,lastEventId:e.lastEventId,origin:e.origin,readyState:t.readyState,bufferedAmount:t.bufferedAmount};this.log(`${t.label}: message`,e.data),r(n)},onerror:e=>{let n={type:e.type,target:t,timeStamp:e.timeStamp,error:e.error.message,errorCode:e.error.errorDetail,readyState:t.readyState,label:t.label};this.log(`${t.label}: error`,e.error.message),r(n)},onclose:n=>{let i={type:n.type,target:t,timeStamp:n.timeStamp,readyState:t.readyState,label:t.label,id:t.id};this.log(`${t.label}: closed`,null),r(i),Et[e]&&(delete Et[e][t.label],0===Object.keys(Et[e]).length&&Ot.bind(this)({cid:e}))},onbufferedamountlow:e=>{let n={target:t,bufferedAmount:t.bufferedAmount,bufferedAmountLowThreshold:t.bufferedAmountLowThreshold,type:e.type,timeStamp:e.timeStamp};this.log(`${t.label}: bufferedamountlow`,t.bufferedAmount),r(n)},onopen:e=>{this.log("dataChannel",`data channel: "${t.label}" is open and ready to send messages.`);let n={type:e.type,target:t,timeStamp:e.timeStamp,readyState:t.readyState,label:t.label,id:t.id,ordered:t.ordered,maxRetransmits:t.maxRetransmits,protocol:t.protocol};r(n)}};for(const[e,n]of Object.entries(s))i.has(e)||(t[e]=n)}let jt=null,Kt=!0,Ht=0;async function Jt(){if(await this.getProfile(),!this.session)throw new te("No access.",{code:"INVALID_REQUEST"});let e=await this.record_endpoint;return new WebSocket(e.websocket_private+"?token="+this.session.accessToken.jwtToken)}let Qt=null;async function zt(){Kt=!0;let e=this.__socket?await this.__socket:this.__socket;Ot.bind(this)({close_all:!0}),Dt&&Wt.bind(this)({group:null}),Ht=0,jt&&(jt.terminate(),jt=null);try{e&&e.close()}catch(e){}return window.removeEventListener("visibilitychange",Qt),this.__socket=null,null}async function Gt(e,t=50,n){if("function"!=typeof e)throw new te("Callback must be a function.",{code:"INVALID_REQUEST"});if("reconnect"===n){if(this.__socket instanceof Promise){let e=await this.__socket;if(e.readyState!==WebSocket.CLOSED&&e.readyState!==WebSocket.CLOSING)return this.__socket}}else if(Kt&&(Qt=()=>{document.hidden||Kt||Gt.bind(this)(e,0,"reconnect")},this.__socket instanceof Promise))return this.__socket;jt&&(jt.terminate(),jt=null),this.__socket=new Promise(async i=>{await me.bind(this)(),setTimeout(async()=>{let t=await Jt.bind(this)();t.onopen=()=>{Kt=!1,Ht=0,"reconnect"!==n&&window.addEventListener("visibilitychange",Qt),this.log("realtime onopen","Connected to WebSocket server."),e({type:"success",message:"Connected to WebSocket server."}),Dt&&t.send(JSON.stringify({action:"joinRoom",rid:Dt,token:this.session.accessToken.jwtToken}));const r=new Blob(['\n let interval = 15000; // Set interval time 15 seconds\n\n function runInterval() {\n postMessage({ type: "ping" });\n setTimeout(runInterval, interval); // Use setTimeout instead of setInterval\n }\n\n runInterval(); // Start interval\n '],{type:"application/javascript"});jt=new Worker(URL.createObjectURL(r)),jt.onmessage=e=>{1===t.readyState&&t.send(JSON.stringify({action:"keepAlive"}))},i(t)},t.onmessage=async n=>{let i,r="";try{r=JSON.parse(decodeURI(n.data)),this.log("socket onmessage",r)}catch(e){return}switch(!0){case!!r?.["#message"]:i="message";break;case!!r?.["#private"]:i="private";break;case!!r?.["#notice"]:i="notice";break;case!!r?.["#rtc"]:i="rtc";break;case!!r?.["#error"]:i="error"}if(!i)return;let s={type:i,message:r?.["#rtc"]||r?.["#message"]||r?.["#private"]||r?.["#notice"]||r?.["#error"]||null,sender:r?.["#user_id"]||null,sender_cid:r?.["#scid"]?"cid:"+r["#scid"]:null,sender_rid:r?.["#srid"]||null,code:r?.["#code"]||null};if("notice"===i)e(s);else if("rtc"===i){if(s.sender!==this.user.user_id){let n=s.message;if(n.hungup)return It[s.sender_cid]&&(It[s.sender_cid](!1),delete It[s.sender_cid]),Tt[s.sender_cid]&&delete Tt[s.sender_cid],St?.[s.sender_cid]&&Ot.bind(this)({cid:s.sender_cid}),s.type="rtc:closed",void e(s);if(n.candidate&&Lt.bind(this)(n.candidate,s.sender_cid),n.sdpoffer&&(Nt.bind(this)(n.sdpoffer,s.sender_cid),Tt[s.sender_cid]||(Tt[s.sender_cid]=s.sender_cid,delete s.message,s.connectRTC=Vt.bind(this)(s),s.type="rtc:incoming",s.hangup=(()=>{St[s.sender_cid]?Ot.bind(this)({cid:s.sender_cid}):Tt[s.sender_cid]&&(delete Tt[s.sender_cid],t.send(JSON.stringify({action:"rtc",uid:s.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})))}).bind(this),e(s))),n.pickup&&It[s.sender_cid]&&(It[s.sender_cid](!0),delete It[s.sender_cid]),n.sdpanswer&&St[s.sender_cid]){if("have-local-offer"!==St[s.sender_cid].signalingState)throw new te("Invalid signaling state.",{code:"INVALID_REQUEST"});await St[s.sender_cid].setRemoteDescription(new RTCSessionDescription(n.sdpanswer))}}}else e(s)},t.onclose=()=>{Kt?(this.log("realtime onclose","WebSocket connection closed."),e({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),e({type:"error",message:"Skapi: WebSocket unexpected close."}),Ht++,Ht<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+Ht),e({type:"reconnect",message:"Reconnecting to WebSocket server..."+Ht}),Gt.bind(this)(e,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),e({type:"error",message:"Skapi: Max reconnection attempts reached."})))},t.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),e({type:"error",message:"Skapi: WebSocket connection error."})}},t)})}async function Yt(e,t,n){let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!t)throw new te("No recipient.",{code:"INVALID_REQUEST"});await me.bind(this)(),e=oe(e).data;let r="";if(n&&(n=ue.Params(n,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),r=JSON.stringify({title:n.title,body:n.body}),new Blob([r]).size>3072))throw new te("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(1===i.readyState){try{ue.UserId(t),i.send(JSON.stringify({action:"sendMessage",uid:t,content:e,notification:r,notificationConfig:n?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.session?.idToken?.jwtToken||"null")}))}catch(s){if(this.log("postRealtime:err",{err:s}),Dt!==t)throw new te(`User has not joined to the recipient group. Run joinRealtime({ group: "${t}" })`,{code:"INVALID_REQUEST"});i.send(JSON.stringify({action:"broadcast",rid:t,content:e,notification:r,notificationConfig:n?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.session?.idToken?.jwtToken||"null")}))}return{type:"success",message:"Message sent."}}throw new te("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function Wt(e){let t=this.__socket?await this.__socket:this.__socket;if(!t)throw new te("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await me.bind(this)(),e=oe(e,{nullIfEmpty:!0}).data;let{group:n=null}=e;if(!n&&!Dt)return{type:"success",message:"Left realtime message group."};if(null!==n&&"string"!=typeof n)throw new te('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return t.send(JSON.stringify({action:"joinRoom",rid:n,token:this.session.accessToken.jwtToken})),Dt=n,{type:"success",message:n?`Joined realtime message group: "${n}".`:"Left realtime message group."}}async function Zt(e,t){e=ue.Params(e,{user_id:e=>ue.UserId(e,'User ID in "user_id"'),group:["string",()=>{if(!Dt)throw new te('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Dt}]});let n=await Ge.bind(this)("get-ws-group",e,{fetchOptions:t,auth:!0,method:"post"});return n.list=n.list.map(e=>({user_id:e.uid.split("#")[1],cid:"cid:"+e.cid})),n}async function Xt(e,t){if(await this.__connection,e||(e={searchFor:"group",value:" ",condition:">"}),(e=ue.Params(e,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>e?.searchFor&&"number_of_users"===e?.searchFor?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]})).condition||(" "!==e.value&&e.value?e.condition="=":e.condition=">"),e.range&&e.condition&&delete e.condition,"number_of_users"===e.searchFor&&"number"!=typeof e.value)throw new te('"value" must be a number.',{code:"INVALID_PARAMETER"});if("group"===e.searchFor&&"string"!=typeof e.value)throw new te('"value" must be a string.',{code:"INVALID_PARAMETER"});if(e.hasOwnProperty("range")&&typeof e.range!=typeof e.value)throw new te(`"range" must be a ${typeof e.value}.`,{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("get-ws-group",e,{fetchOptions:t,auth:!0,method:"post"});return n.list=n.list.map(e=>({group:e.rid.split("#")[1],number_of_users:e.cnt})),n}async function en(e){let t=!1,n=e=>{for(let n in e)if("string"==typeof e[n]&&e[n].includes("$CLIENT_SECRET")){t=!0;break}};if(e=ue.Params(e,{url:e=>{if(!e||"string"!=typeof e)throw new te('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return ue.Url(e),e.includes("$CLIENT_SECRET")&&(t=!0),e},clientSecretName:"string",method:e=>{if(e&&"string"!=typeof e)throw new te('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let t=e.toLowerCase();if("get"!==t&&"post"!==t&&"delete"!==t&&"put"!==t)throw new te('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return t},headers:e=>{if(e&&"object"!=typeof e)throw new te('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e},data:e=>{if(e&&"object"!=typeof e)throw new te('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e},params:e=>{if(e&&"object"!=typeof e)throw new te('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return n(e),e}},["clientSecretName","method","url"]),!t)throw new te(`At least one parameter value should include "$CLIENT_SECRET" in ${"post"===e.method.toLowerCase()?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let i=!!this.__user;return Ge.bind(this)("client-secret-request"+(i?"-public":""),e,{auth:i})}async function tn(e){await this.__connection;let t={name:"string",email:e=>(ue.Email(e),e),subject:"string",message:"string"};return e=ue.Params(e,t,["name","email","subject","message"]),await Ge.bind(this)("send-inquiry",e),"SUCCESS: Inquiry has been sent."}async function nn(e,t){if(await this.__connection,e instanceof FormData||e instanceof HTMLFormElement||e instanceof SubmitEvent){if(!t)throw new te("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});e={url:t,data:oe(e).data,sync:!0}}let n={url:e=>ue.Url(e),data:e=>e,sync:["boolean",()=>!0]};if(Array.isArray(e))for(let t of e)t=ue.Params(t,n);else e=ue.Params(e,n);return Ge.bind(this)("post-secure",e,{auth:!0})}async function rn(e,t){await this.__connection;let{auth:n=!1,method:i="POST",bypassAwaitConnection:r=!1,responseType:s,contentType:o,progress:a}=t||{};if(t=Object.assign({auth:n,method:i,bypassAwaitConnection:r,responseType:s,contentType:o},{fetchOptions:{progress:a}}),"object"!=typeof e&&("application/json"===o||void 0===o))throw new te('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return Ge.bind(this)("mock",e,t)}async function sn(e,t){await this.__connection,e=ue.Params(e||{},{access_group:e=>{if("authorized"===e&&(e=1),"public"===e&&(e=0),"number"!=typeof e)throw new te('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(e<0)throw new te('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(e>this.__user.access_group)throw new te("User has no access.",{code:"INVALID_REQUEST"});return e}});let n=await Ge.bind(this)("get-feed",e,{auth:!0,fetchOptions:t});for(let e in n.list)n.list[e]=await at.bind(this)(n.list[e]);return n}function on(e){if(e===this.__user.user_id)throw new te('"user_id" cannot be the user\'s own ID.',{code:"INVALID_PARAMETER"});return ue.UserId(e,'"user_id"')}async function an(e,t){if(e=oe(e,{ignoreEmpty:!0}).data,!(e=ue.Params(e,{subscriber:e=>ue.UserId(e,'User ID in "subscriber"'),subscription:on.bind(this),blocked:"boolean"})).subscriber&&!e.subscription)throw new te('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let n=await Ge.bind(this)("get-subscription",e,Object.assign({auth:!0},{fetchOptions:t}));return n.list=n.list.map(e=>{let t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0]}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||"N"===e.grp.substring(0,1),Object.assign(t,e.opt),t}),n}async function cn(e){await this.__connection,e=ue.Params(e,{user_id:on.bind(this),get_feed:["boolean",()=>!1],get_notified:["boolean",()=>!1],get_email:e=>{if(e&&!this.__user.email||!this.__user.email_verified)throw new te("User has no verified email address.",{code:"INVALID_REQUEST"});return!!e}},["user_id"]);let t=await Ge.bind(this)("subscription",{subscribe:e.user_id,option:{get_feed:e.get_feed,get_notified:e.get_notified,get_email:e.get_email||!1}},{auth:!0}),n={};if(t.sub){let e=t.sub.split("#");n.subscriber=e[2],n.subscription=e[0]}else n.subscriber=t.subscriber,n.subscription=t.subscription;return n.timestamp=t?.timestamp||t.stmp,n.blocked=t?.blocked||"N"===t.grp.substring(0,1),Object.assign(n,t.opt),n}async function un(e){return await this.__connection,await Ge.bind(this)("admin-newsletter-request",e,{auth:!0})}async function ln(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{unsubscribe:t},{auth:!0})}async function hn(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{block:t},{auth:!0})}async function dn(e){await this.__connection;let{user_id:t}=ue.Params(e,{user_id:on.bind(this)},["user_id"]);return await Ge.bind(this)("subscription",{unblock:t},{auth:!0})}async function fn(e){await this.__connection;let t=await ve.bind(this)();e=ue.Params(e,{user_id:e=>{if(e!==this.__user.user_id&&!t)throw new te("No access.",{code:"INVALID_REQUEST"});return e},group:e=>{if("public"===e&&(e=0),"authorized"===e&&(e=1),"number"!=typeof e)throw new te('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return e}});let n=await Ge.bind(this)("get-newsletter-subscription",e,{auth:!0}),i=[];for(let e of n){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 pn(e){await this.__connection;let t=ue.Params(e||{},{email:e=>ue.Email(e),group:["number","public","authorized","admin",e=>{if("string"!=typeof e||e.length>20||!/^[a-zA-Z0-9]+$/.test(e))throw new te('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return e}],redirect:e=>ue.Url(e)},this.__user?["group"]:["email","group"]);return Ge.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,t,{auth:!!this.__user})}async function gn(e){await this.__connection;let t=ue.Params(e||{},{group:e=>{if("string"!=typeof e||e.length>20||!/^[a-zA-Z0-9]+$/.test(e))throw new te('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return e},restriction:e=>{if("number"!=typeof e||e<0||e>99)throw new te('"restriction" should be a number between 0 and 99.',{code:"INVALID_PARAMETER"});return e}},["group","restriction"]);return Ge.bind(this)("register-newsletter-group",t,{auth:!0})}async function _n(e){return await this.__connection,await Ge.bind(this)("newsletter-group-endpoint",e,{auth:!0})}async function mn(e){await this.__connection,e=ue.Params(e,{group:["number","public","authorized","admin"]},["group"]);let t=Object.assign({action:"unsubscribe"},e);return Ge.bind(this)("subscribe-newsletter",t,{auth:!0})}async function yn(e,t){let n=await ve.bind(this)(),i={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};e||(t=Object.assign({ascending:!1},t||{})),e=(e=oe(e).data)||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"};let r=0===(e=ue.Params(e,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:t=>{if(typeof t!==i[e.searchFor])throw new te(`"value" type does not match the type of "${e.searchFor}" index.`,{code:"INVALID_PARAMETER"});if("string"==typeof t&&!t)throw new te('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return t},range:t=>{if(!e.hasOwnProperty("value")||typeof t!=typeof e.value)throw new te('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return t},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:e=>{if("public"===e)return 0;if(!this.session)throw new te("User should be logged in.",{code:"INVALID_REQUEST"});if("authorized"===e)return 1;if("number"==typeof e){if(!n&&e>parseInt(this.session.idToken.payload.access_group))throw new te("User has no access.",{code:"INVALID_REQUEST"});return e}throw new te('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"])).group?"get-public-newsletters":"get-newsletters",s=await Ge.bind(this)(r,e,Object.assign({method:"get",auth:"get-public-newsletters"!==r||!!this.__user},{fetchOptions:t})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:0,url:"",delivered:0};return s.list=s.list.map(e=>{let t={};for(let n in o)t[n]=e[o[n]]||a[n];return t}),s}async function wn(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,block:t.user_id}:{block:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("block-account",t,{auth:!0})}async function bn(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,unblock:t.user_id}:{unblock:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("block-account",t,{auth:!0})}async function An(e){let t=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"')},["user_id"]);if(t=t?.service&&t?.owner?{service:t?.service,owner:t?.owner,delete:t.user_id}:{delete:t.user_id},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("remove-account",t,{auth:!0})}async function vn(e,t){let n={email:e=>ue.Email(e),password:e=>ue.Password(e),name:"string",username:"string",gender:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",birthdate:e=>ue.Birthdate(e),phone_number:e=>ue.PhoneNumber(e),picture:e=>e?ue.Url(e):void 0,profile:e=>e?ue.Url(e):void 0,website:e=>e?ue.Url(e):void 0,nickname:"string",misc:"string",email_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],address_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],openid_id:"string",access_group:e=>{try{"string"==typeof e&&(e="admin"===e?99:parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"!=typeof e||e<1||e>100)throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return e}},i=ue.Params(e,n,["email"]);if(t=ue.Params(t,{confirmation_url:e=>{let t=e;if("string"!=typeof e)throw new te('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(t=ue.Url(e),t&&!i.email)throw new te('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return t},email_subscription:e=>{if("boolean"!=typeof e)throw new te('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!t?.confirmation_url)throw new te('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return e},template:e=>{if("object"!=typeof e||!e.url||!e.subject)throw new te('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return{url:ue.Url(e.url),subject:e.subject}}}),i.signup_confirmation=t?.confirmation_url||!0,i.email_subscription=t?.email_subscription||!1,i.template=t?.template||{},!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("admin-signup",i,{auth:!0})}async function Sn(e){let t={email:e=>ue.Email(e),password:e=>ue.Password(e),openid_id:"string",name:"string",username:"string",gender:"string",address:e=>e?"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):void 0:"",birthdate:e=>ue.Birthdate(e),phone_number:e=>ue.PhoneNumber(e),picture:e=>e?ue.Url(e):"",profile:e=>e?ue.Url(e):"",website:e=>e?ue.Url(e):"",nickname:"string",misc:"string",email_public:["boolean",()=>!1],gender_public:["boolean",()=>!1],address_public:["boolean",()=>!1],birthdate_public:["boolean",()=>!1],phone_number_public:["boolean",()=>!1],access_group:e=>{try{"string"==typeof e&&(e=parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"!=typeof e||e<1||e>100)throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return e}},n=ue.Params(e,t,["email","password"]);if(!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("admin-signup",n,{auth:!0})}async function En(e){if(e=ue.Params(e,{user_id:e=>ue.UserId(e,'"user_id"'),access_group:e=>{try{"string"==typeof e&&(e=parseInt(e))}catch(e){throw new te('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if("number"==typeof e&&e>0&&e<100)return e;throw new te('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("grant-access",e,{auth:!0})}async function In(e,t){if(e=ue.Params(e,{email:"string"}),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}let n=await Ge.bind(this)("invitation-list",Object.assign({mode:"search"},e),{fetchOptions:t,auth:!0});return n.list=n.list.map(e=>ae(e.user)),n}async function Tn(e){if(e=ue.Params(e,{email:e=>ue.Email(e)},["email"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("invitation-list",Object.assign({mode:"cancel"},e),{auth:!0})}async function Rn(e){if(e=ue.Params(e,{email:e=>ue.Email(e)},["email"]),!await ve.bind(this)()){if(!this.__user)throw new te("User needs to login.",{code:"INVALID_REQUEST"});if(99!==this.__user.access_group)throw new te("Invalid access.",{code:"INVALID_REQUEST"})}return await Ge.bind(this)("invitation-list",Object.assign({mode:"resend"},e),{auth:!0})}async function Dn(e){if(await this.__connection,!e.endpoint)throw new te("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!e.keys||!e.keys.p256dh||!e.keys.auth)throw new te("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await Ge.bind(this)("store-subscription",{endpoint:e.endpoint,keys:e.keys},{auth:!0}),"SUCCESS: Subscribed to receive notifications."}async function Un(e){if(await this.__connection,!e.endpoint)throw new te("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!e.keys||!e.keys.p256dh||!e.keys.auth)throw new te("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await Ge.bind(this)("delete-subscription",{endpoint:e.endpoint,keys:e.keys},{auth:!0}),"SUCCESS: Unsubscribed from notifications."}async function Pn(){return await this.__connection,{VAPIDPublicKey:await Ge.bind(this)("get-vapid-public-key",null,{auth:!0})}}async function Cn(e,t){await this.__connection;let{title:n,body:i}=oe(e||{},{nullIfEmpty:!0}).data;if(!n)throw new te("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!i)throw new te("Missing parameter: message body",{code:"INVALID_PARAMETER"});const r={title:n,body:i};return t?("string"==typeof t&&(t=[t]),r.user_ids=t):r.user_ids="all_users",await Ge.bind(this)("push-notification",r,{auth:!0}),"SUCCESS: Notification sent."}async function kn(e){return await this.__connection,e=ue.Params(e,{spell:"string",name:"string",magic:"object"},["spell","name"]),await Ge.bind(this)("castspell",e)}async function Nn(e){return await this.__connection,e=ue.Params(e,{search_option:["spell","name"],value:"string",condition:["starts_with","exact"]},["search_option","value","condition"]),await Ge.bind(this)("getspell",e)}async function Ln(e){await this.__connection,e=ue.Params(e,{message:"string",name:"string"},["message","name"]);let t=await Ge.bind(this)("dopamine",e,{auth:!0}),n=t.previous_message.message,i=t.previous_message.name;alert(`${i} said ${n}`),window.location.href=t.video}var On=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o};class Mn{get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){"function"==typeof e&&this._onLoginListeners.push(e)}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){"function"==typeof e&&this._userProfileListeners.push(e)}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)"function"==typeof t&&t(e)}_runOnLoginListeners(e){for(let t of this._onLoginListeners)"function"==typeof t&&t(e)}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){"function"==typeof e&&this._onBatchProcessListeners.push(e)}constructor(e,t,n,i){if(this.__version="1.2.2",this.session=null,this.connection=null,this.__my_unique_ids={},this.userPool=null,this.__socket=null,this.__mediaStream=null,this.host="skapi",this.hostDomain="skapi.com",this.target_cdn="d3e9syvbtso631",this.customApiDomain="skapi.dev",this.requestBatchSize=30,this.__disabledAccount=null,this.__cached_requests={},this.__startKeyHistory={},this.__request_signup_confirmation=null,this.__private_access_key={},this.__class_properties_has_been_cached=!1,this.__user=null,this._userProfileListeners=[],this._onLoginListeners=[],this._onBatchProcessListeners=[],this.validate={userId(e){try{return ue.UserId(e),!0}catch(e){return!1}},url(e){try{return ue.Url(e),!0}catch(e){return!1}},phoneNumber(e){try{return ue.PhoneNumber(e),!0}catch(e){return!1}},birthdate(e){try{return ue.Birthdate(e),!0}catch(e){return!1}},email(e){try{return ue.Email(e),!0}catch(e){return!1}},params:(e,t,n)=>ue.Params(e,t,n)},this.util={MD5:ne,generateRandom:se,toBase62:ie,fromBase62:re,extractFormData:oe,terminatePendingRequests:ze,request:(e,t,n)=>Ge.bind(this)(e,t,n,{ignoreService:!0})},this.__network_logs=!1,this.__endpoint_version="v1",this.__public_identifier="",this.registerTicket=ge.bind(this),this.unregisterTicket=_e.bind(this),7===e.split("-").length){if("xxxxxxxxxxxx-xxxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"===e)throw alert('Replace "service_id" and "owner_id" with your actual Service ID and Owner ID.'),new te("Service ID or Owner ID is invalid.",{code:"INVALID_PARAMETER"});n&&"object"==typeof n&&(i=n),t&&"object"==typeof t&&(n=t);const r=e.split("-");let s,o;try{s=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"][re(r[1][0])],o=r.slice(2).join("-")}catch(e){throw alert("Service ID or Owner ID is invalid."),new te("Service ID or Owner ID is invalid.",{code:"INVALID_PARAMETER"})}if(!s)throw alert("Service ID or Owner ID is invalid."),new te("Service ID or Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(t&&"string"==typeof t&&t!==o)throw alert("Service ID or Owner ID is invalid."),new te("Service ID or Owner ID is invalid.",{code:"INVALID_PARAMETER"});t=o,e=s+r[0]+r[1].slice(1)}if(!sessionStorage)throw new te("Web browser API is not available.",{code:"NOT_SUPPORTED"});if(sessionStorage.setItem("__skapi_kiss","kiss"),"kiss"!==sessionStorage.getItem("__skapi_kiss"))throw alert("Session storage is disabled. Please enable session storage."),new te("Session storage is disabled. Please enable session storage.",{code:"SESSION_STORAGE_DISABLED"});if(sessionStorage.removeItem("__skapi_kiss"),"string"!=typeof e||"string"!=typeof t)throw alert("Service ID or Owner ID is invalid."),new te('"service" and "owner" should be type <string>.',{code:"INVALID_PARAMETER"});if(!e||!t)throw alert("Service ID and Owner ID are required."),new te('"service" and "owner" are required.',{code:"INVALID_PARAMETER"});if("service_id"===e.toLowerCase()||"owner_id"===t.toLowerCase())throw alert('Replace "service_id" and "owner_id" with your actual Service ID and Owner ID.'),new te('"service" and "owner" are required.',{code:"INVALID_PARAMETER"});if(t!==this.host)try{ue.UserId(t,'"owner"')}catch(e){throw alert("Service ID or Owner ID is invalid."),e}this.service=e,this.owner=t;let r=!0;if(n&&("boolean"==typeof n.autoLogin&&(r=n.autoLogin),"number"==typeof n.requestBatchSize)){if(n.requestBatchSize<1)throw new te('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize}n?.eventListener&&"object"==typeof n.eventListener&&(n.eventListener?.onLogin&&"function"==typeof n.eventListener.onLogin&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&"function"==typeof n.eventListener.onUserUpdate&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&"function"==typeof n.eventListener.onBatchProcess&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;const s=`https://${this.target_cdn}.cloudfront.net`;let o=e.substring(0,4);if(this.admin_endpoint=fetch(`${s}/${o}/admin-${this.__endpoint_version}.json`).then(e=>e.blob()).then(e=>new Promise((t,n)=>{const i=new FileReader;i.onloadend=()=>t(i.result),i.onerror=n,i.readAsDataURL(e)})).then(e=>{try{return"string"==typeof e?JSON.parse(atob(e.split(",")[1])):null}catch(e){throw new te("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${s}/${o}/record-${this.__endpoint_version}.json`).then(e=>e.blob()).then(e=>new Promise((t,n)=>{const i=new FileReader;i.onloadend=()=>t(i.result),i.onerror=n,i.readAsDataURL(e)})).then(e=>{try{return"string"==typeof e?JSON.parse(atob(e.split(",")[1])):null}catch(e){throw new te("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),!sessionStorage)throw alert("This browser is not supported."),new Error("This browser is not supported.");const a=JSON.parse(sessionStorage.getItem(`${e}#${t}`)||"null");if(this.log("constructor:restore",a),a?.connection){for(let e in a)this[e]=a[e];a.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${se(16)}`)}this.__authConnection=(async()=>{const e=await this.admin_endpoint;this.userPool=new ee({UserPoolId:e.userpool_id,ClientId:e.userpool_client});try{await we.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(a?.connection||r?(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)):Se.bind(this)())}catch(e){}})();let c=sessionStorage.getItem(`${this.service}:uniqueids`);if(c)try{this.__my_unique_ids=JSON.parse(c)}catch(e){this.__my_unique_ids={}}this.__connection=(async()=>{let n=null;await this.record_endpoint,a?.connection||(n=this._updateConnection());const i=()=>{if(this.__class_properties_has_been_cached)return;let i=()=>{let n={};const i=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let e of i)n[e]=this[e];sessionStorage.setItem(`${e}#${t}`,JSON.stringify(n)),this.__class_properties_has_been_cached=!0}};return n instanceof Promise?n.then(()=>i()):i()};return addEventListener("beforeunload",()=>{this.closeRealtime(),i()}),addEventListener("visibilitychange",()=>{i()}),await n,await this.__authConnection,this.connection})(),this.__connection.then(e=>{((e?.group||0)<3||this.__network_logs)&&this.version()})}async getConnectionInfo(){let e=await this.__connection,t=e?.user_agent||navigator.userAgent;return{user_ip:e.ip,user_agent:t,user_location:e.locale,service_name:e.service_name,version:this.__version}}async _updateConnection(){try{this.connection=await Ge.bind(this)("service",{service:this.service,owner:this.owner},{bypassAwaitConnection:!0,method:"get"})}catch(e){throw this.log("connection fail",e),alert("Service is not available: "+(e.message||e.toString())),this.connection=null,e}return this.connection}async version(){return await this.__connection,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\nFull Documentation: https://docs.skapi.com/skapi.md`,"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 30 DAYS.","font-family: monospace; color:red;"),this.__version}log(e,t){if(this.__network_logs)try{console.log(`%c${e}:`,"color: blue;",JSON.parse(JSON.stringify(t)))}catch(n){console.log(`%c${e}:`,"color: blue;",t)}}getFeed(e,t){return sn.bind(this)(e,t)}closeRTC(e){return Ot.bind(this)(e)}connectRTC(e,t){return xt.bind(this)(e,t)}connectRealtime(e){return Gt.bind(this)(e)}spellcast(e){return kn.bind(this)(e)}getspell(e){return Nn.bind(this)(e)}dopamine(e){return Ln.bind(this)(e)}getUniqueId(e,t){return _t.bind(this)(e,t)}resendInvitation(e){return Rn.bind(this)(e)}cancelInvitation(e){return Tn.bind(this)(e)}getInvitations(e,t){return In.bind(this)(e,t)}openIdLogin(e){return Ae.bind(this)(e)}registerNewsletterGroup(e){return gn.bind(this)(e)}clientSecretRequest(e){return en.bind(this)(e)}consumeTicket(e){return de.bind(this)(e)}getConsumedTickets(e,t){return pe.bind(this)(e,t)}getTickets(e,t){return fe.bind(this)(e,t)}closeRealtime(){return zt.bind(this)()}getRealtimeUsers(e,t){return Zt.bind(this)(e,t)}sendInquiry(e){return tn.bind(this)(e)}blockAccount(e){return wn.bind(this)(e)}unblockAccount(e){return bn.bind(this)(e)}deleteAccount(e){return An.bind(this)(e)}inviteUser(e,t){return vn.bind(this)(e,t)}createAccount(e){return Sn.bind(this)(e)}grantAccess(e){return En.bind(this)(e)}getRealtimeGroups(e,t){return Xt.bind(this)(e,t)}newsletterGroupEndpoint(e){return _n.bind(this)(e)}postRealtime(e,t,n){return Yt.bind(this)(e,t,n)}joinRealtime(e){return Wt.bind(this)(e)}getConnection(){return this.__connection}getProfile(e){return be.bind(this)(e)}getFile(e,t){return ut.bind(this)(e,t)}secureRequest(e,t){return nn.bind(this)(e,t)}getFormResponse(){return nt.bind(this)()}getRecords(e,t){return ht.bind(this)(e,t)}getTables(e,t){return ft.bind(this)(e,t)}getIndexes(e,t){return pt.bind(this)(e,t)}getTags(e,t){return gt.bind(this)(e,t)}deleteRecords(e,t){return mt.bind(this)(e,t)}resendSignupConfirmation(){return Ie.bind(this)()}recoverAccount(e=!1){return Te.bind(this)(e)}getUsers(e,t){return xe.bind(this)(e,t)}disableAccount(){return Ue.bind(this)()}lastVerifiedEmail(e){return Ve.bind(this)(e)}unsubscribeNewsletter(e){return mn.bind(this)(e)}adminNewsletterRequest(e){return un.bind(this)(e)}subscribeNotification(e,t){return Dn.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Un.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return Pn.bind(this)()}pushNotification(e,t){return Cn.bind(this)(e,t)}getNewsletters(e,t){return yn.bind(this)(e,t)}getNewsletterSubscription(e){return fn.bind(this)(e)}requestUsernameChange(e){return Fe.bind(this)(e)}grantPrivateRecordAccess(e){return yt.bind(this)(e)}removePrivateRecordAccess(e){return wt.bind(this)(e)}listPrivateRecordAccess(e){return bt.bind(this)(e)}requestPrivateRecordAccessKey(e){return At.bind(this)(e)}deleteFiles(e){return ct.bind(this)(e)}uploadFiles(e,t){return Xe.bind(this)(e,t)}mock(e,t){return rn.bind(this)(e,t)}login(e){return Re.bind(this)(e)}logout(e){return Ee.bind(this)(e)}signup(e,t){return De.bind(this)(e,t)}resetPassword(e){return Pe.bind(this)(e)}verifyEmail(e){return Ne.bind(this)(e)}verifyPhoneNumber(e){return ke.bind(this)(e)}forgotPassword(e){return Le.bind(this)(e)}changePassword(e){return Oe.bind(this)(e)}updateProfile(e){return Me.bind(this)(e)}postRecord(e,t,n){return dt.bind(this)(e,t,n)}getSubscriptions(e,t){return an.bind(this)(e,t)}subscribe(e){return cn.bind(this)(e)}unsubscribe(e){return ln.bind(this)(e)}blockSubscriber(e){return hn.bind(this)(e)}unblockSubscriber(e){return dn.bind(this)(e)}subscribeNewsletter(e){return pn.bind(this)(e)}}On([tt()],Mn.prototype,"getFeed",null),On([tt()],Mn.prototype,"closeRTC",null),On([tt()],Mn.prototype,"connectRTC",null),On([tt()],Mn.prototype,"spellcast",null),On([tt()],Mn.prototype,"getspell",null),On([tt()],Mn.prototype,"dopamine",null),On([tt()],Mn.prototype,"getUniqueId",null),On([tt()],Mn.prototype,"resendInvitation",null),On([tt()],Mn.prototype,"cancelInvitation",null),On([tt()],Mn.prototype,"getInvitations",null),On([tt()],Mn.prototype,"openIdLogin",null),On([tt()],Mn.prototype,"registerNewsletterGroup",null),On([tt()],Mn.prototype,"clientSecretRequest",null),On([tt()],Mn.prototype,"consumeTicket",null),On([tt()],Mn.prototype,"getConsumedTickets",null),On([tt()],Mn.prototype,"getTickets",null),On([tt()],Mn.prototype,"getRealtimeUsers",null),On([tt()],Mn.prototype,"sendInquiry",null),On([tt()],Mn.prototype,"blockAccount",null),On([tt()],Mn.prototype,"unblockAccount",null),On([tt()],Mn.prototype,"deleteAccount",null),On([tt()],Mn.prototype,"inviteUser",null),On([tt()],Mn.prototype,"createAccount",null),On([tt()],Mn.prototype,"grantAccess",null),On([tt()],Mn.prototype,"getRealtimeGroups",null),On([tt()],Mn.prototype,"newsletterGroupEndpoint",null),On([tt()],Mn.prototype,"postRealtime",null),On([tt()],Mn.prototype,"joinRealtime",null),On([tt()],Mn.prototype,"getProfile",null),On([tt()],Mn.prototype,"getFile",null),On([tt()],Mn.prototype,"secureRequest",null),On([tt()],Mn.prototype,"getFormResponse",null),On([tt()],Mn.prototype,"getRecords",null),On([tt()],Mn.prototype,"getTables",null),On([tt()],Mn.prototype,"getIndexes",null),On([tt()],Mn.prototype,"getTags",null),On([tt()],Mn.prototype,"deleteRecords",null),On([tt()],Mn.prototype,"resendSignupConfirmation",null),On([tt()],Mn.prototype,"recoverAccount",null),On([tt()],Mn.prototype,"getUsers",null),On([tt()],Mn.prototype,"disableAccount",null),On([tt()],Mn.prototype,"lastVerifiedEmail",null),On([tt()],Mn.prototype,"unsubscribeNewsletter",null),On([tt()],Mn.prototype,"adminNewsletterRequest",null),On([tt()],Mn.prototype,"subscribeNotification",null),On([tt()],Mn.prototype,"unsubscribeNotification",null),On([tt()],Mn.prototype,"vapidPublicKey",null),On([tt()],Mn.prototype,"pushNotification",null),On([tt()],Mn.prototype,"getNewsletters",null),On([tt()],Mn.prototype,"getNewsletterSubscription",null),On([tt()],Mn.prototype,"requestUsernameChange",null),On([tt()],Mn.prototype,"grantPrivateRecordAccess",null),On([tt()],Mn.prototype,"removePrivateRecordAccess",null),On([tt()],Mn.prototype,"listPrivateRecordAccess",null),On([tt()],Mn.prototype,"requestPrivateRecordAccessKey",null),On([tt()],Mn.prototype,"deleteFiles",null),On([tt()],Mn.prototype,"uploadFiles",null),On([tt()],Mn.prototype,"mock",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"login",null),On([tt()],Mn.prototype,"logout",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"signup",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"resetPassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"verifyEmail",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"verifyPhoneNumber",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"forgotPassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"changePassword",null),On([tt({preventMultipleCalls:!0})],Mn.prototype,"updateProfile",null),On([tt()],Mn.prototype,"postRecord",null),On([tt()],Mn.prototype,"getSubscriptions",null),On([tt()],Mn.prototype,"subscribe",null),On([tt()],Mn.prototype,"unsubscribe",null),On([tt()],Mn.prototype,"blockSubscriber",null),On([tt()],Mn.prototype,"unblockSubscriber",null),On([tt()],Mn.prototype,"subscribeNewsletter",null)})(),i})());
3
3
  //# sourceMappingURL=skapi.js.map