skapi-js 1.7.7 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/skapi.js CHANGED
@@ -203,8 +203,8 @@ var __SKAPI_BUNDLE__=(function(exports){'use strict';/**
203
203
  limitations under the License.
204
204
 
205
205
  */
206
- var Vs=Object.create;var Ne=Object.defineProperty;var jr=Object.getOwnPropertyDescriptor;var qs=Object.getOwnPropertyNames;var Bs=Object.getPrototypeOf,$s=Object.prototype.hasOwnProperty;var js=(r,e,t)=>e in r?Ne(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Kr=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Fe=(r,e)=>()=>(r&&(e=r(r=0)),e);var W=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)Ne(r,t,{get:e[t],enumerable:true});},Hr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of qs(e))!$s.call(r,i)&&i!==t&&Ne(r,i,{get:()=>e[i],enumerable:!(n=jr(e,i))||n.enumerable});return r};var Le=(r,e,t)=>(t=r!=null?Vs(Bs(r)):{},Hr(!r||!r.__esModule?Ne(t,"default",{value:r,enumerable:true}):t,r)),re=r=>Hr(Ne({},"__esModule",{value:true}),r),v=(r,e,t,n)=>{for(var i=jr(e,t),s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=(o(e,t,i))||i);return i&&Ne(e,t,i),i};var ae=(r,e,t)=>js(r,typeof e!="symbol"?e+"":e,t);var Ie={};ct(Ie,{default:()=>Hs});var Ks,Hs,Pe=Fe(()=>{Ks={},Hs=Ks;});var Gr=W(dt=>{dt.byteLength=Gs;dt.toByteArray=zs;dt.fromByteArray=Zs;var ue=[],Y=[],Js=typeof Uint8Array<"u"?Uint8Array:Array,Jt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(xe=0,Wr=Jt.length;xe<Wr;++xe)ue[xe]=Jt[xe],Y[Jt.charCodeAt(xe)]=xe;var xe,Wr;Y[45]=62;Y[95]=63;function Jr(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return [t,n]}function Gs(r){var e=Jr(r),t=e[0],n=e[1];return (t+n)*3/4-n}function Qs(r,e,t){return (e+t)*3/4-t}function zs(r){var e,t=Jr(r),n=t[0],i=t[1],s=new Js(Qs(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=Y[r.charCodeAt(u)]<<18|Y[r.charCodeAt(u+1)]<<12|Y[r.charCodeAt(u+2)]<<6|Y[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Y[r.charCodeAt(u)]<<2|Y[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=Y[r.charCodeAt(u)]<<10|Y[r.charCodeAt(u+1)]<<4|Y[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function Ys(r){return ue[r>>18&63]+ue[r>>12&63]+ue[r>>6&63]+ue[r&63]}function Xs(r,e,t){for(var n,i=[],s=e;s<t;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(Ys(n));return i.join("")}function Zs(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(Xs(r,o,o+s>a?a:o+s));return n===1?(e=r[t-1],i.push(ue[e>>2]+ue[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(ue[e>>10]+ue[e>>4&63]+ue[e<<2&63]+"=")),i.join("")}});var Qr=W(Gt=>{Gt.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,d=-7,l=t?i-1:0,h=t?-1:1,_=r[e+l];for(l+=h,s=_&(1<<-d)-1,_>>=-d,d+=a;d>0;s=s*256+r[e+l],l+=h,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+r[e+l],l+=h,d-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(_?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (_?-1:1)*o*Math.pow(2,s-n)};Gt.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,d=(1<<c)-1,l=d>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,_=n?0:s-1,g=n?1:-1,p=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+l>=1?e+=h/u:e+=h*Math.pow(2,1-l),e*u>=2&&(o++,u/=2),o+l>=d?(a=0,o=d):o+l>=1?(a=(e*u-1)*Math.pow(2,i),o=o+l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;r[t+_]=a&255,_+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+_]=o&255,_+=g,o/=256,c-=8);r[t+_-g]|=p*128;};});var Yr=W((dc,zr)=>{var eo={}.toString;zr.exports=Array.isArray||function(r){return eo.call(r)=="[object Array]"};});var _t=W(Me=>{var Qt=Gr(),Oe=Qr(),en=Yr();Me.Buffer=y;Me.SlowBuffer=oo;Me.INSPECT_MAX_BYTES=50;y.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:to();Me.kMaxLength=ft();function to(){try{var r=new Uint8Array(1);return r.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},r.foo()===42&&typeof r.subarray=="function"&&r.subarray(1,1).byteLength===0}catch{return false}}function ft(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function me(r,e){if(ft()<e)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(e),r.__proto__=y.prototype):(r===null&&(r=new y(e)),r.length=e),r}function y(r,e,t){if(!y.TYPED_ARRAY_SUPPORT&&!(this instanceof y))return new y(r,e,t);if(typeof r=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Yt(this,r)}return tn(this,r,e,t)}y.poolSize=8192;y._augment=function(r){return r.__proto__=y.prototype,r};function tn(r,e,t,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?io(r,e,t,n):typeof e=="string"?no(r,e,t):so(r,e)}y.from=function(r,e,t){return tn(null,r,e,t)};y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&y[Symbol.species]===y&&Object.defineProperty(y,Symbol.species,{value:null,configurable:true}));function rn(r){if(typeof r!="number")throw new TypeError('"size" argument must be a number');if(r<0)throw new RangeError('"size" argument must not be negative')}function ro(r,e,t,n){return rn(e),e<=0?me(r,e):t!==void 0?typeof n=="string"?me(r,e).fill(t,n):me(r,e).fill(t):me(r,e)}y.alloc=function(r,e,t){return ro(null,r,e,t)};function Yt(r,e){if(rn(e),r=me(r,e<0?0:Xt(e)|0),!y.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}y.allocUnsafe=function(r){return Yt(null,r)};y.allocUnsafeSlow=function(r){return Yt(null,r)};function no(r,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!y.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=nn(e,t)|0;r=me(r,n);var i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function zt(r,e){var t=e.length<0?0:Xt(e.length)|0;r=me(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function io(r,e,t,n){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");return t===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,t):e=new Uint8Array(e,t,n),y.TYPED_ARRAY_SUPPORT?(r=e,r.__proto__=y.prototype):r=zt(r,e),r}function so(r,e){if(y.isBuffer(e)){var t=Xt(e.length)|0;return r=me(r,t),r.length===0||e.copy(r,0,0,t),r}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||Ro(e.length)?me(r,0):zt(r,e);if(e.type==="Buffer"&&en(e.data))return zt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Xt(r){if(r>=ft())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ft().toString(16)+" bytes");return r|0}function oo(r){return +r!=r&&(r=0),y.alloc(+r)}y.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};y.compare=function(e,t){if(!y.isBuffer(e)||!y.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==t[s]){n=e[s],i=t[s];break}return n<i?-1:i<n?1:0};y.isEncoding=function(e){switch(String(e).toLowerCase()){case "hex":case "utf8":case "utf-8":case "ascii":case "latin1":case "binary":case "base64":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return true;default:return false}};y.concat=function(e,t){if(!en(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return y.alloc(0);var n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=y.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!y.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function nn(r,e){if(y.isBuffer(r))return r.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;typeof r!="string"&&(r=""+r);var t=r.length;if(t===0)return 0;for(var n=false;;)switch(e){case "ascii":case "latin1":case "binary":return t;case "utf8":case "utf-8":case void 0:return ht(r).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return t*2;case "hex":return t>>>1;case "base64":return dn(r).length;default:if(n)return ht(r).length;e=(""+e).toLowerCase(),n=true;}}y.byteLength=nn;function ao(r,e,t){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return "";for(r||(r="utf8");;)switch(r){case "hex":return bo(this,e,t);case "utf8":case "utf-8":return an(this,e,t);case "ascii":return mo(this,e,t);case "latin1":case "binary":return _o(this,e,t);case "base64":return go(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return yo(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=true;}}y.prototype._isBuffer=true;function Ue(r,e,t){var n=r[e];r[e]=r[t],r[t]=n;}y.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Ue(this,t,t+1);return this};y.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Ue(this,t,t+3),Ue(this,t+1,t+2);return this};y.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Ue(this,t,t+7),Ue(this,t+1,t+6),Ue(this,t+2,t+5),Ue(this,t+3,t+4);return this};y.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?an(this,0,e):ao.apply(this,arguments)};y.prototype.equals=function(e){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:y.compare(this,e)===0};y.prototype.inspect=function(){var e="",t=Me.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"};y.prototype.compare=function(e,t,n,i,s){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),t<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&t>=n)return 0;if(i>=s)return -1;if(t>=n)return 1;if(t>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-t,u=Math.min(o,a),c=this.slice(i,s),d=e.slice(t,n),l=0;l<u;++l)if(c[l]!==d[l]){o=c[l],a=d[l];break}return o<a?-1:a<o?1:0};function sn(r,e,t,n,i){if(r.length===0)return -1;if(typeof t=="string"?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return -1;t=r.length-1;}else if(t<0)if(i)t=0;else return -1;if(typeof e=="string"&&(e=y.from(e,n)),y.isBuffer(e))return e.length===0?-1:Xr(r,e,t,n,i);if(typeof e=="number")return e=e&255,y.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Xr(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function Xr(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(_,g){return s===1?_[g]:_.readUInt16BE(g*s)}var c;if(i){var d=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,d===-1?0:c-d)){if(d===-1&&(d=c),c-d+1===a)return d*s}else d!==-1&&(c-=c-d),d=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var l=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){l=false;break}if(l)return c}return -1}y.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1};y.prototype.indexOf=function(e,t,n){return sn(this,e,t,n,true)};y.prototype.lastIndexOf=function(e,t,n){return sn(this,e,t,n,false)};function uo(r,e,t,n){t=Number(t)||0;var i=r.length-t;n?(n=Number(n),n>i&&(n=i)):n=i;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;r[t+o]=a;}return o}function co(r,e,t,n){return mt(ht(e,r.length-t),r,t,n)}function on(r,e,t,n){return mt(vo(e),r,t,n)}function lo(r,e,t,n){return on(r,e,t,n)}function fo(r,e,t,n){return mt(dn(e),r,t,n)}function ho(r,e,t,n){return mt(To(e,r.length-t),r,t,n)}y.prototype.write=function(e,t,n,i){if(t===void 0)i="utf8",n=this.length,t=0;else if(n===void 0&&typeof t=="string")i=t,n=this.length,t=0;else if(isFinite(t))t=t|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s=this.length-t;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=false;;)switch(i){case "hex":return uo(this,e,t,n);case "utf8":case "utf-8":return co(this,e,t,n);case "ascii":return on(this,e,t,n);case "latin1":case "binary":return lo(this,e,t,n);case "base64":return fo(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return ho(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};y.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function go(r,e,t){return e===0&&t===r.length?Qt.fromByteArray(r):Qt.fromByteArray(r.slice(e,t))}function an(r,e,t){t=Math.min(r.length,t);for(var n=[],i=e;i<t;){var s=r[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=t){var u,c,d,l;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(l=(s&31)<<6|u&63,l>127&&(o=l));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(l=(s&15)<<12|(u&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:u=r[i+1],c=r[i+2],d=r[i+3],(u&192)===128&&(c&192)===128&&(d&192)===128&&(l=(s&15)<<18|(u&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l));}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a;}return po(n)}var Zr=4096;function po(r){var e=r.length;if(e<=Zr)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Zr));return t}function mo(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]&127);return n}function _o(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}function bo(r,e,t){var n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var i="",s=e;s<t;++s)i+=So(r[s]);return i}function yo(r,e,t){for(var n=r.slice(e,t),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}y.prototype.slice=function(e,t){var n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var i;if(y.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=y.prototype;else {var s=t-e;i=new y(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function q(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUIntLE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return i};y.prototype.readUIntBE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e+--t],s=1;t>0&&(s*=256);)i+=this[e+--t]*s;return i};y.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]};y.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8};y.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]};y.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};y.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};y.prototype.readIntLE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*t)),i};y.prototype.readIntBE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=t,s=1,o=this[e+--i];i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*t)),o};y.prototype.readInt8=function(e,t){return t||q(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};y.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};y.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};y.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};y.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};y.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,true,23,4)};y.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,false,23,4)};y.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),Oe.read(this,e,true,52,8)};y.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),Oe.read(this,e,false,52,8)};function Q(r,e,t,n,i,s){if(!y.isBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<s)throw new RangeError('"value" argument is out of bounds');if(t+n>r.length)throw new RangeError("Index out of range")}y.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=1,a=0;for(this[t]=e&255;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n};y.prototype.writeUIntBE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=n-1,a=1;for(this[t+o]=e&255;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n};y.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,255,0),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function gt(r,e,t,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(r.length-t,2);i<s;++i)r[t+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8;}y.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):gt(this,e,t,true),t+2};y.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):gt(this,e,t,false),t+2};function pt(r,e,t,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(r.length-t,4);i<s;++i)r[t+i]=e>>>(n?i:3-i)*8&255;}y.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):pt(this,e,t,true),t+4};y.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):pt(this,e,t,false),t+4};y.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=0,a=1,u=0;for(this[t]=e&255;++o<n&&(a*=256);)e<0&&u===0&&this[t+o-1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=n-1,a=1,u=0;for(this[t+o]=e&255;--o>=0&&(a*=256);)e<0&&u===0&&this[t+o+1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,127,-128),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};y.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):gt(this,e,t,true),t+2};y.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):gt(this,e,t,false),t+2};y.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):pt(this,e,t,true),t+4};y.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):pt(this,e,t,false),t+4};function un(r,e,t,n,i,s){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function cn(r,e,t,n,i){return i||un(r,e,t,4),Oe.write(r,e,t,n,23,4),t+4}y.prototype.writeFloatLE=function(e,t,n){return cn(this,e,t,true,n)};y.prototype.writeFloatBE=function(e,t,n){return cn(this,e,t,false,n)};function ln(r,e,t,n,i){return i||un(r,e,t,8),Oe.write(r,e,t,n,52,8),t+8}y.prototype.writeDoubleLE=function(e,t,n){return ln(this,e,t,true,n)};y.prototype.writeDoubleBE=function(e,t,n){return ln(this,e,t,false,n)};y.prototype.copy=function(e,t,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var s=i-n,o;if(this===e&&n<t&&t<i)for(o=s-1;o>=0;--o)e[o+t]=this[o+n];else if(s<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s};y.prototype.fill=function(e,t,n,i){if(typeof e=="string"){if(typeof t=="string"?(i=t,t=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),e.length===1){var s=e.charCodeAt(0);s<256&&(e=s);}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!y.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o<n;++o)this[o]=e;else {var a=y.isBuffer(e)?e:ht(new y(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var wo=/[^+\/0-9A-Za-z-_]/g;function Ao(r){if(r=Eo(r).replace(wo,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function Eo(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function So(r){return r<16?"0"+r.toString(16):r.toString(16)}function ht(r,e){e=e||1/0;for(var t,n=r.length,i=null,s=[],o=0;o<n;++o){if(t=r.charCodeAt(o),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),i=t;continue}t=(i-55296<<10|t-56320)+65536;}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,t<128){if((e-=1)<0)break;s.push(t);}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128);}else if(t<65536){if((e-=3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128);}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128);}else throw new Error("Invalid code point")}return s}function vo(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function To(r,e){for(var t,n,i,s=[],o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(o),n=t>>8,i=t%256,s.push(i),s.push(n);return s}function dn(r){return Qt.toByteArray(Ao(r))}function mt(r,e,t,n){for(var i=0;i<n&&!(i+t>=e.length||i>=r.length);++i)e[i+t]=r[i];return i}function Ro(r){return r!==r}});var fn=W(()=>{});var ir={};ct(ir,{__assign:()=>rr,__asyncDelegator:()=>qo,__asyncGenerator:()=>Vo,__asyncValues:()=>Bo,__await:()=>ze,__awaiter:()=>ko,__classPrivateFieldGet:()=>Ho,__classPrivateFieldSet:()=>Wo,__createBinding:()=>Fo,__decorate:()=>Uo,__exportStar:()=>Lo,__extends:()=>Po,__generator:()=>No,__importDefault:()=>Ko,__importStar:()=>jo,__makeTemplateObject:()=>$o,__metadata:()=>Do,__param:()=>Co,__read:()=>hn,__rest:()=>xo,__spread:()=>Oo,__spreadArrays:()=>Mo,__values:()=>nr});function Po(r,e){tr(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function xo(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function Uo(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function Co(r,e){return function(t,n){e(t,n,r);}}function Do(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function ko(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s);})}return new(t||(t=Promise))(function(s,o){function a(d){try{c(n.next(d));}catch(l){o(l);}}function u(d){try{c(n.throw(d));}catch(l){o(l);}}function c(d){d.done?s(d.value):i(d.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function No(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(d){return u([c,d])}}function u(c){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t);}catch(d){c=[6,d],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function Fo(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function Lo(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function nr(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return {next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function hn(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value);}catch(a){o={error:a};}finally{try{i&&!i.done&&(t=n.return)&&t.call(n);}finally{if(o)throw o.error}}return s}function Oo(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(hn(arguments[e]));return r}function Mo(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function ze(r){return this instanceof ze?(this.v=r,this):new ze(r)}function Vo(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(_){return new Promise(function(g,p){s.push([h,_,g,p])>1||a(h,_);})});}function a(h,_){try{u(n[h](_));}catch(g){l(s[0][3],g);}}function u(h){h.value instanceof ze?Promise.resolve(h.value.v).then(c,d):l(s[0][2],h);}function c(h){a("next",h);}function d(h){a("throw",h);}function l(h,_){h(_),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function qo(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(o){return (t=!t)?{value:ze(r[i](o)),done:i==="return"}:s?s(o):o}:s;}}function Bo(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof nr=="function"?nr(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(o){return new Promise(function(a,u){o=r[s](o),i(a,u,o.done,o.value);})};}function i(s,o,a,u){Promise.resolve(u).then(function(c){s({value:c,done:a});},o);}}function $o(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function jo(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e}function Ko(r){return r&&r.__esModule?r:{default:r}}function Ho(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Wo(r,e,t){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,t),t}var tr,rr,sr=Fe(()=>{tr=function(r,e){return tr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n;}||function(t,n){for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i]);},tr(r,e)};rr=function(){return rr=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);}return e},rr.apply(this,arguments)};});var or=W(Z=>{Object.defineProperty(Z,"__esModule",{value:true});Z.MAX_HASHABLE_LENGTH=Z.INIT=Z.KEY=Z.DIGEST_LENGTH=Z.BLOCK_SIZE=void 0;Z.BLOCK_SIZE=64;Z.DIGEST_LENGTH=32;Z.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);Z.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];Z.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var gn=W(bt=>{Object.defineProperty(bt,"__esModule",{value:true});bt.RawSha256=void 0;var ee=or(),Jo=(function(){function r(){this.state=Int32Array.from(ee.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=false;}return r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>ee.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===ee.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0);},r.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%ee.BLOCK_SIZE>=ee.BLOCK_SIZE-8){for(var i=this.bufferLength;i<ee.BLOCK_SIZE;i++)t.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<ee.BLOCK_SIZE-8;i++)t.setUint8(i,0);t.setUint32(ee.BLOCK_SIZE-8,Math.floor(e/4294967296),true),t.setUint32(ee.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(ee.DIGEST_LENGTH),i=0;i<8;i++)s[i*4]=this.state[i]>>>24&255,s[i*4+1]=this.state[i]>>>16&255,s[i*4+2]=this.state[i]>>>8&255,s[i*4+3]=this.state[i]>>>0&255;return s},r.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,i=n[0],s=n[1],o=n[2],a=n[3],u=n[4],c=n[5],d=n[6],l=n[7],h=0;h<ee.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var _=this.temp[h-2],g=(_>>>17|_<<15)^(_>>>19|_<<13)^_>>>10;_=this.temp[h-15];var p=(_>>>7|_<<25)^(_>>>18|_<<14)^_>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(p+this.temp[h-16]|0);}var w=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&d)|0)+(l+(ee.KEY[h]+this.temp[h]|0)|0)|0,b=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;l=d,d=c,c=u,u=a+w|0,a=o,o=s,s=i,i=w+b|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=d,n[7]+=l;},r})();bt.RawSha256=Jo;});var pn,mn,_n=Fe(()=>{pn=r=>{let e=[];for(let t=0,n=r.length;t<n;t++){let i=r.charCodeAt(t);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192,i&63|128);else if(t+1<r.length&&(i&64512)===55296&&(r.charCodeAt(t+1)&64512)===56320){let s=65536+((i&1023)<<10)+(r.charCodeAt(++t)&1023);e.push(s>>18|240,s>>12&63|128,s>>6&63|128,s&63|128);}else e.push(i>>12|224,i>>6&63|128,i&63|128);}return Uint8Array.from(e)},mn=r=>{let e="";for(let t=0,n=r.length;t<n;t++){let i=r[t];if(i<128)e+=String.fromCharCode(i);else if(192<=i&&i<224){let s=r[++t];e+=String.fromCharCode((i&31)<<6|s&63);}else if(240<=i&&i<365){let o="%"+[i,r[++t],r[++t],r[++t]].map(a=>a.toString(16)).join("%");e+=decodeURIComponent(o);}else e+=String.fromCharCode((i&15)<<12|(r[++t]&63)<<6|r[++t]&63);}return e};});function bn(r){return new TextEncoder().encode(r)}function yn(r){return new TextDecoder("utf-8").decode(r)}var wn=Fe(()=>{});var An={};ct(An,{fromUtf8:()=>Go,toUtf8:()=>Qo});var Go,Qo,En=Fe(()=>{_n();wn();Go=r=>typeof TextEncoder=="function"?bn(r):pn(r),Qo=r=>typeof TextDecoder=="function"?yn(r):mn(r);});var Sn=W(yt=>{Object.defineProperty(yt,"__esModule",{value:true});yt.convertToBuffer=void 0;var zo=(En(),re(An)),Yo=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:zo.fromUtf8;function Xo(r){return r instanceof Uint8Array?r:typeof r=="string"?Yo(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}yt.convertToBuffer=Xo;});var vn=W(wt=>{Object.defineProperty(wt,"__esModule",{value:true});wt.isEmptyData=void 0;function Zo(r){return typeof r=="string"?r.length===0:r.byteLength===0}wt.isEmptyData=Zo;});var Tn=W(At=>{Object.defineProperty(At,"__esModule",{value:true});At.numToUint8=void 0;function ea(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}At.numToUint8=ea;});var Rn=W(Et=>{Object.defineProperty(Et,"__esModule",{value:true});Et.uint32ArrayFrom=void 0;function ta(r){if(!Array.from){for(var e=new Uint32Array(r.length),t=0;t<r.length;)e[t]=r[t];return e}return Uint32Array.from(r)}Et.uint32ArrayFrom=ta;});var In=W(ce=>{Object.defineProperty(ce,"__esModule",{value:true});ce.uint32ArrayFrom=ce.numToUint8=ce.isEmptyData=ce.convertToBuffer=void 0;var ra=Sn();Object.defineProperty(ce,"convertToBuffer",{enumerable:true,get:function(){return ra.convertToBuffer}});var na=vn();Object.defineProperty(ce,"isEmptyData",{enumerable:true,get:function(){return na.isEmptyData}});var ia=Tn();Object.defineProperty(ce,"numToUint8",{enumerable:true,get:function(){return ia.numToUint8}});var sa=Rn();Object.defineProperty(ce,"uint32ArrayFrom",{enumerable:true,get:function(){return sa.uint32ArrayFrom}});});var xn=W(vt=>{Object.defineProperty(vt,"__esModule",{value:true});vt.Sha256=void 0;var Pn=(sr(),re(ir)),St=or(),ar=gn(),ur=In(),oa=(function(){function r(e){if(this.hash=new ar.RawSha256,e){this.outer=new ar.RawSha256;var t=aa(e),n=new Uint8Array(St.BLOCK_SIZE);n.set(t);for(var i=0;i<St.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;this.hash.update(t),this.outer.update(n);for(var i=0;i<t.byteLength;i++)t[i]=0;}}return r.prototype.update=function(e){if(!((0, ur.isEmptyData)(e)||this.error))try{this.hash.update((0,ur.convertToBuffer)(e));}catch(t){this.error=t;}},r.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},r.prototype.digest=function(){return (0, Pn.__awaiter)(this,void 0,void 0,function(){return (0, Pn.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();vt.Sha256=oa;function aa(r){var e=(0, ur.convertToBuffer)(r);if(e.byteLength>St.BLOCK_SIZE){var t=new ar.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(St.BLOCK_SIZE);return n.set(e),n}});var lr=W(cr=>{Object.defineProperty(cr,"__esModule",{value:true});var ua=(sr(),re(ir));(0, ua.__exportStar)(xn(),cr);});var yr={};ct(yr,{default:()=>ru});function ru(r,e){return e=e||{},new Promise(function(t,n){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return {ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return o},get:function(d){return a[d.toLowerCase()]},has:function(d){return d.toLowerCase()in a}}}};for(var c in i.open(e.method||"get",r,true),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(d,l,h){s.push(l=l.toLowerCase()),o.push([l,h]),a[l]=a[l]?a[l]+","+h:h;}),t(u());},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(c,e.headers[c]);i.send(e.body||null);})}var wr=Fe(()=>{});var Mn=W((ol,On)=>{On.exports=self.fetch||(self.fetch=(wr(),re(yr)).default||(wr(),re(yr)));});var pe=typeof globalThis<"u"?globalThis:void 0,lt=pe?.window;function Ws(r){if(Buffer)return Buffer.from(r).toString("base64");let e="",t=new Uint8Array(r),n=32768;for(let i=0;i<t.length;i+=n){let s=t.subarray(i,i+n);e+=String.fromCharCode.apply(null,Array.from(s));}if(typeof btoa=="function")return btoa(e);throw new Error("No base64 encoder available in this environment.")}if(lt)lt.global=lt,lt.global._runningInNodeJS=false;else if(pe&&(pe.global=pe,typeof pe.window>"u")){class r{constructor(){this.result=null;this.error=null;this.onload=null;this.onloadend=null;this.onerror=null;}readAsDataURL(n){n.arrayBuffer().then(i=>{let s=Ws(i),o=n.type||"application/octet-stream";this.result=`data:${o};base64,${s}`,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsArrayBuffer(n){n.arrayBuffer().then(i=>{this.result=i,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsText(n,i="utf-8"){n.text().then(s=>{this.result=s,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(s=>{this.error=s,this.onerror&&this.onerror({target:this});});}}pe.FileReader=r;class e{constructor(){this.status=0;this.statusText="";this.readyState=0;this.responseText="";this.response=null;this.responseType="";this.responseURL="";this.timeout=0;this.withCredentials=false;this.onload=null;this.onerror=null;this.onabort=null;this.ontimeout=null;this.onprogress=null;this.onreadystatechange=null;this.upload={onprogress:null};this._method="GET";this._url="";this._headers={};this._aborted=false;}open(n,i){this._method=n,this._url=i,this.readyState=1;}setRequestHeader(n,i){this._headers[n]=i;}getResponseHeader(n){return null}abort(){this._aborted=true,this.onabort&&this.onabort({});}send(n){if(this._aborted)return;let i={method:this._method,headers:this._headers};n&&this._method!=="GET"&&this._method!=="HEAD"&&(i.body=n),fetch(this._url,i).then(async s=>{if(!this._aborted){if(this.status=s.status,this.statusText=s.statusText,this.responseURL=s.url,this.readyState=4,this.responseType==="blob")this.response=await s.blob();else if(this.responseType==="json")try{this.response=await s.json();}catch{this.response=null;}else this.responseType==="arraybuffer"?this.response=await s.arrayBuffer():(this.responseText=await s.text(),this.response=this.responseText);this.onload&&this.onload({});}}).catch(s=>{this._aborted||this.onerror&&this.onerror(s);});}}pe.XMLHttpRequest=e,pe.window={_runningInNodeJS:true,alert:t=>console.error("[Alert]",t),sessionStorage:{getItem:t=>null,setItem:(t,n)=>{},removeItem:t=>{}},localStorage:{getItem:t=>{let n=(Pe(),re(Ie)),i=(Pe(),re(Ie));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);return n.existsSync(s)?n.readFileSync(s,"utf8"):null}catch{return null}},setItem:(t,n)=>{let i=(Pe(),re(Ie)),s=(Pe(),re(Ie));try{let o=s.resolve(process.cwd(),"states","localStorage");i.existsSync(o)||i.mkdirSync(o,{recursive:!0});let a=s.resolve(o,`${t}.skapi`);i.writeFileSync(a,n,"utf8");}catch{}},removeItem:t=>{let n=(Pe(),re(Ie)),i=(Pe(),re(Ie));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);n.existsSync(s)&&n.unlinkSync(s);}catch{}}},location:{href:"",origin:"",hostname:"",protocol:"",replace:t=>{}},navigator:{userAgent:`nodejs/${pe?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async t=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var Wt=(function(){function r(t){var n=t||{},i=n.ValidationData,s=n.Username,o=n.Password,a=n.AuthParameters,u=n.ClientMetadata;this.validationData=i||{},this.authParameters=a||{},this.clientMetadata=u||{},this.username=s,this.password=o;}var e=r.prototype;return e.getUsername=function(){return this.username},e.getPassword=function(){return this.password},e.getValidationData=function(){return this.validationData},e.getAuthParameters=function(){return this.authParameters},e.getClientMetadata=function(){return this.clientMetadata},r})();var _e=Le(_t());var X;typeof window<"u"&&window.crypto&&(X=window.crypto);!X&&typeof window<"u"&&window.msCrypto&&(X=window.msCrypto);!X&&typeof globalThis<"u"&&globalThis.crypto&&(X=globalThis.crypto);if(!X&&typeof Kr=="function")try{X=fn();}catch{}function Zt(){if(X){if(typeof X.getRandomValues=="function")try{return X.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof X.randomBytes=="function")try{return X.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function Io(r){for(var e=r.words,t=r.sigBytes,n=[],i=0;i<t;i++){var s=e[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((s&15).toString(16));}return n.join("")}var er=(function(){function r(t,n){t=this.words=t||[],n!=null?this.sigBytes=n:this.sigBytes=t.length*4;}var e=r.prototype;return e.random=function(n){for(var i=[],s=0;s<n;s+=4)i.push(Zt());return new r(i,n)},e.toString=function(){return Io(this)},r})();var Rt=Le(lr());var M=U;function U(r,e){r!=null&&this.fromString(r,e);}function J(){return new U(null)}var Ae,ca=0xdeadbeefcafe,Un=(ca&16777215)==15715070;function la(r,e,t,n,i,s){for(;--s>=0;){var o=e*this[r++]+t[n]+i;i=Math.floor(o/67108864),t[n++]=o&67108863;}return i}function da(r,e,t,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var u=this[r]&32767,c=this[r++]>>15,d=a*u+c*o;u=o*u+((d&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(d>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function fa(r,e,t,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var u=this[r]&16383,c=this[r++]>>14,d=a*u+c*o;u=o*u+((d&16383)<<14)+t[n]+i,i=(u>>28)+(d>>14)+a*c,t[n++]=u&268435455;}return i}var Cn=typeof navigator<"u";Cn&&Un&&navigator.appName=="Microsoft Internet Explorer"?(U.prototype.am=da,Ae=30):Cn&&Un&&navigator.appName!="Netscape"?(U.prototype.am=la,Ae=26):(U.prototype.am=fa,Ae=28);U.prototype.DB=Ae;U.prototype.DM=(1<<Ae)-1;U.prototype.DV=1<<Ae;var dr=52;U.prototype.FV=Math.pow(2,dr);U.prototype.F1=dr-Ae;U.prototype.F2=2*Ae-dr;var ha="0123456789abcdefghijklmnopqrstuvwxyz",Tt=new Array,Ve,te;Ve=48;for(te=0;te<=9;++te)Tt[Ve++]=te;Ve=97;for(te=10;te<36;++te)Tt[Ve++]=te;Ve=65;for(te=10;te<36;++te)Tt[Ve++]=te;function Dn(r){return ha.charAt(r)}function ga(r,e){var t=Tt[r.charCodeAt(e)];return t??-1}function pa(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function ma(r){this.t=1,this.s=r<0?-1:0,r>0?this[0]=r:r<-1?this[0]=r+this.DV:this.t=0;}function fr(r){var e=J();return e.fromInt(r),e}function _a(r,e){var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");this.t=0,this.s=0;for(var n=r.length,i=false,s=0;--n>=0;){var o=ga(r,n);if(o<0){r.charAt(n)=="-"&&(i=true);continue}i=false,s==0?this[this.t++]=o:s+t>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,s+=t,s>=this.DB&&(s-=this.DB);}this.clamp(),i&&U.ZERO.subTo(this,this);}function ba(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function ya(r){if(this.s<0)return "-"+this.negate().toString(r);var e;if(r==16)e=4;else if(r==8)e=3;else if(r==2)e=1;else if(r==32)e=5;else if(r==4)e=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");var t=(1<<e)-1,n,i=false,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=true,s=Dn(n));o>=0;)a<e?(n=(this[o]&(1<<a)-1)<<e-a,n|=this[--o]>>(a+=this.DB-e)):(n=this[o]>>(a-=e)&t,a<=0&&(a+=this.DB,--o)),n>0&&(i=true),i&&(s+=Dn(n));return i?s:"0"}function wa(){var r=J();return U.ZERO.subTo(this,r),r}function Aa(){return this.s<0?this.negate():this}function Ea(r){var e=this.s-r.s;if(e!=0)return e;var t=this.t;if(e=t-r.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-r[t])!=0)return e;return 0}function hr(r){var e=1,t;return (t=r>>>16)!=0&&(r=t,e+=16),(t=r>>8)!=0&&(r=t,e+=8),(t=r>>4)!=0&&(r=t,e+=4),(t=r>>2)!=0&&(r=t,e+=2),(t=r>>1)!=0&&(r=t,e+=1),e}function Sa(){return this.t<=0?0:this.DB*(this.t-1)+hr(this[this.t-1]^this.s&this.DM)}function va(r,e){var t;for(t=this.t-1;t>=0;--t)e[t+r]=this[t];for(t=r-1;t>=0;--t)e[t]=0;e.t=this.t+r,e.s=this.s;}function Ta(r,e){for(var t=r;t<this.t;++t)e[t-r]=this[t];e.t=Math.max(this.t-r,0),e.s=this.s;}function Ra(r,e){var t=r%this.DB,n=this.DB-t,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<t&this.DM,a;for(a=this.t-1;a>=0;--a)e[a+s+1]=this[a]>>n|o,o=(this[a]&i)<<t;for(a=s-1;a>=0;--a)e[a]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp();}function Ia(r,e){e.s=this.s;var t=Math.floor(r/this.DB);if(t>=this.t){e.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;e[0]=this[t]>>n;for(var o=t+1;o<this.t;++o)e[o-t-1]|=(this[o]&s)<<i,e[o-t]=this[o]>>n;n>0&&(e[this.t-t-1]|=(this.s&s)<<i),e.t=this.t-t,e.clamp();}function Pa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]-r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n-=r[t],e[t++]=n&this.DM,n>>=this.DB;n-=r.s;}e.s=n<0?-1:0,n<-1?e[t++]=this.DV+n:n>0&&(e[t++]=n),e.t=t,e.clamp();}function xa(r,e){var t=this.abs(),n=r.abs(),i=t.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+t.t]=t.am(0,n[i],e,i,0,t.t);e.s=0,e.clamp(),this.s!=r.s&&U.ZERO.subTo(e,e);}function Ua(r){for(var e=this.abs(),t=r.t=2*e.t;--t>=0;)r[t]=0;for(t=0;t<e.t-1;++t){var n=e.am(t,e[t],r,2*t,0,1);(r[t+e.t]+=e.am(t+1,2*e[t],r,2*t+1,n,e.t-t-1))>=e.DV&&(r[t+e.t]-=e.DV,r[t+e.t+1]=1);}r.t>0&&(r[r.t-1]+=e.am(t,e[t],r,2*t,0,1)),r.s=0,r.clamp();}function Ca(r,e,t){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),t!=null&&this.copyTo(t);return}t==null&&(t=J());var s=J(),o=this.s,a=r.s,u=this.DB-hr(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,d=s[c-1];if(d!=0){var l=d*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/l,_=(1<<this.F1)/l,g=1<<this.F2,p=t.t,w=p-c,b=e??J();for(s.dlShiftTo(w,b),t.compareTo(b)>=0&&(t[t.t++]=1,t.subTo(b,t)),U.ONE.dlShiftTo(c,b),b.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--w>=0;){var R=t[--p]==d?this.DM:Math.floor(t[p]*h+(t[p-1]+g)*_);if((t[p]+=s.am(0,R,t,w,0,c))<R)for(s.dlShiftTo(w,b),t.subTo(b,t);t[p]<--R;)t.subTo(b,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&U.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&U.ZERO.subTo(t,t);}}}function Da(r){var e=J();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(U.ZERO)>0&&r.subTo(e,e),e}function ka(){if(this.t<1)return 0;var r=this[0];if((r&1)==0)return 0;var e=r&3;return e=e*(2-(r&15)*e)&15,e=e*(2-(r&255)*e)&255,e=e*(2-((r&65535)*e&65535))&65535,e=e*(2-r*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Na(r){return this.compareTo(r)==0}function Fa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]+r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n+=r[t],e[t++]=n&this.DM,n>>=this.DB;n+=r.s;}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp();}function La(r){var e=J();return this.addTo(r,e),e}function Oa(r){var e=J();return this.subTo(r,e),e}function Ma(r){var e=J();return this.multiplyTo(r,e),e}function Va(r){var e=J();return this.divRemTo(r,e,null),e}function qe(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t;}function qa(r){var e=J();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(U.ZERO)>0&&this.m.subTo(e,e),e}function Ba(r){var e=J();return r.copyTo(e),this.reduce(e),e}function $a(r){for(;r.t<=this.mt2;)r[r.t++]=0;for(var e=0;e<this.m.t;++e){var t=r[e]&32767,n=t*this.mpl+((t*this.mph+(r[e]>>15)*this.mpl&this.um)<<15)&r.DM;for(t=e+this.m.t,r[t]+=this.m.am(0,n,r,e,0,this.m.t);r[t]>=r.DV;)r[t]-=r.DV,r[++t]++;}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r);}function ja(r,e){r.squareTo(e),this.reduce(e);}function Ka(r,e,t){r.multiplyTo(e,t),this.reduce(t);}qe.prototype.convert=qa;qe.prototype.revert=Ba;qe.prototype.reduce=$a;qe.prototype.mulTo=Ka;qe.prototype.sqrTo=ja;function Ha(r,e,t){var n=r.bitLength(),i,s=fr(1),o=new qe(e);if(n<=0)return s;n<18?i=1:n<48?i=3:n<144?i=4:n<768?i=5:i=6;var a=new Array,u=3,c=i-1,d=(1<<i)-1;if(a[1]=o.convert(this),i>1){var l=J();for(o.sqrTo(a[1],l);u<=d;)a[u]=J(),o.mulTo(l,a[u-2],a[u]),u+=2;}var h=r.t-1,_,g=true,p=J(),w;for(n=hr(r[h])-1;h>=0;){for(n>=c?_=r[h]>>n-c&d:(_=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(_|=r[h-1]>>this.DB+n-c)),u=i;(_&1)==0;)_>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[_].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,p),o.sqrTo(p,s),u-=2;u>0?o.sqrTo(s,p):(w=s,s=p,p=w),o.mulTo(p,a[_],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,p),w=s,s=p,p=w,--n<0&&(n=this.DB-1,--h);}var b=o.revert(s);return t(null,b),b}U.prototype.copyTo=pa;U.prototype.fromInt=ma;U.prototype.fromString=_a;U.prototype.clamp=ba;U.prototype.dlShiftTo=va;U.prototype.drShiftTo=Ta;U.prototype.lShiftTo=Ra;U.prototype.rShiftTo=Ia;U.prototype.subTo=Pa;U.prototype.multiplyTo=xa;U.prototype.squareTo=Ua;U.prototype.divRemTo=Ca;U.prototype.invDigit=ka;U.prototype.addTo=Fa;U.prototype.toString=ya;U.prototype.negate=wa;U.prototype.abs=Aa;U.prototype.compareTo=Ea;U.prototype.bitLength=Sa;U.prototype.mod=Da;U.prototype.equals=Na;U.prototype.add=La;U.prototype.subtract=Oa;U.prototype.multiply=Ma;U.prototype.divide=Va;U.prototype.modPow=Ha;U.ZERO=fr(0);U.ONE=fr(1);function gr(r){return _e.Buffer.from(new er().random(r).toString(),"hex")}var Wa=/^[89a-f]/i,Ja="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",Ga="userAttributes.",Ee=(function(){function r(t){this.N=new M(Ja,16),this.g=new M("2",16),this.k=new M(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=_e.Buffer.from("Caldera Derived Key","utf8"),this.poolName=t;}var e=r.prototype;return e.getSmallAValue=function(){return this.smallAValue},e.getLargeAValue=function(n){var i=this;this.largeAValue?n(null,this.largeAValue):this.calculateA(this.smallAValue,function(s,o){s&&n(s,null),i.largeAValue=o,n(null,i.largeAValue);});},e.generateRandomSmallA=function(){var n=gr(128).toString("hex"),i=new M(n,16);return i},e.generateRandomString=function(){return gr(40).toString("base64")},e.getRandomPassword=function(){return this.randomPassword},e.getSaltDevices=function(){return this.SaltToHashDevices},e.getVerifierDevices=function(){return this.verifierDevices},e.generateHashDevice=function(n,i,s){var o=this;this.randomPassword=this.generateRandomString();var a=""+n+i+":"+this.randomPassword,u=this.hash(a),c=gr(16).toString("hex");this.SaltToHashDevices=this.padHex(new M(c,16)),this.g.modPow(new M(this.hexHash(this.SaltToHashDevices+u),16),this.N,function(d,l){d&&s(d,null),o.verifierDevices=o.padHex(l),s(null,null);});},e.calculateA=function(n,i){var s=this;this.g.modPow(n,this.N,function(o,a){o&&i(o,null),a.mod(s.N).equals(M.ZERO)&&i(new Error("Illegal paramater. A mod N cannot be 0."),null),i(null,a);});},e.calculateU=function(n,i){this.UHexHash=this.hexHash(this.padHex(n)+this.padHex(i));var s=new M(this.UHexHash,16);return s},e.hash=function(n){var i=new Rt.Sha256;i.update(n);var s=i.digestSync(),o=_e.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(_e.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=_e.Buffer.concat([this.infoBits,_e.Buffer.from("","utf8")]),o=new Rt.Sha256(i);o.update(n);var a=o.digestSync(),u=new Rt.Sha256(a);u.update(s);var c=u.digestSync(),d=c,l=d.slice(0,16);return l},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var u=this;if(s.mod(this.N).equals(M.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(M.ZERO))throw new Error("U cannot be zero.");var c=""+this.poolName+n+":"+i,d=this.hash(c),l=new M(this.hexHash(this.padHex(o)+d),16);this.calculateS(l,s,function(h,_){h&&a(h,null);var g=u.computehkdf(_e.Buffer.from(u.padHex(_),"hex"),_e.Buffer.from(u.padHex(u.UValue),"hex"));a(null,g);});},e.calculateS=function(n,i,s){var o=this;this.g.modPow(n,this.N,function(a,u){a&&s(a,null);var c=i.subtract(o.k.multiply(u));c.modPow(o.smallAValue.add(o.UValue.multiply(n)),o.N,function(d,l){d&&s(d,null),s(null,l.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return Ga},e.padHex=function(n){if(!(n instanceof M))throw new Error("Not a BigInteger");var i=n.compareTo(M.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=Wa.test(s)?"00"+s:s,i){var o=s.split("").map(function(u){var c=~parseInt(u,16)&15;return "0123456789ABCDEF".charAt(c)}).join(""),a=new M(o,16).add(M.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},r})();var kn=Le(_t());var It=(function(){function r(t){this.jwtToken=t||"",this.payload=this.decodePayload();}var e=r.prototype;return e.getJwtToken=function(){return this.jwtToken},e.getExpiration=function(){return this.payload.exp},e.getIssuedAt=function(){return this.payload.iat},e.decodePayload=function(){var n=this.jwtToken.split(".")[1];try{return JSON.parse(kn.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function Qa(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,pr(r,e);}function pr(r,e){return pr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},pr(r,e)}var Be=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return Qa(e,r),e})(It);function za(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,mr(r,e);}function mr(r,e){return mr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},mr(r,e)}var $e=(function(r){function e(t){var n=t===void 0?{}:t,i=n.IdToken;return r.call(this,i||"")||this}return za(e,r),e})(It);var je=(function(){function r(t){var n=t===void 0?{}:t,i=n.RefreshToken;this.token=i||"";}var e=r.prototype;return e.getToken=function(){return this.token},r})();var B=Le(_t()),br=Le(lr());var Nn="5.0.4";var Ya="aws-amplify/"+Nn,_r={userAgent:Ya,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Fn=function(){return _r.userAgent};var Ke=(function(){function r(t){var n=t===void 0?{}:t,i=n.IdToken,s=n.RefreshToken,o=n.AccessToken,a=n.ClockDrift;if(o==null||i==null)throw new Error("Id token and Access Token must be present.");this.idToken=i,this.refreshToken=s,this.accessToken=o,this.clockDrift=a===void 0?this.calculateClockDrift():a;}var e=r.prototype;return e.getIdToken=function(){return this.idToken},e.getRefreshToken=function(){return this.refreshToken},e.getAccessToken=function(){return this.accessToken},e.getClockDrift=function(){return this.clockDrift},e.calculateClockDrift=function(){var n=Math.floor(new Date/1e3),i=Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt());return n-i},e.isValid=function(){var n=Math.floor(new Date/1e3),i=n-this.clockDrift;return i<this.accessToken.getExpiration()&&i<this.idToken.getExpiration()},r})();var Xa=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Za=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Pt=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=Za[n.getUTCDay()],s=Xa[n.getUTCMonth()],o=n.getUTCDate(),a=n.getUTCHours();a<10&&(a="0"+a);var u=n.getUTCMinutes();u<10&&(u="0"+u);var c=n.getUTCSeconds();c<10&&(c="0"+c);var d=n.getUTCFullYear(),l=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+d;return l},r})();var le=(function(){function r(t){var n=t===void 0?{}:t,i=n.Name,s=n.Value;this.Name=i||"",this.Value=s||"";}var e=r.prototype;return e.getValue=function(){return this.Value},e.setValue=function(n){return this.Value=n,this},e.getName=function(){return this.Name},e.setName=function(n){return this.Name=n,this},e.toString=function(){return JSON.stringify(this)},e.toJSON=function(){return {Name:this.Name,Value:this.Value}},r})();var Ce={},eu=(function(){function r(){}return r.setItem=function(t,n){return Ce[t]=n,Ce[t]},r.getItem=function(t){return Object.prototype.hasOwnProperty.call(Ce,t)?Ce[t]:void 0},r.removeItem=function(t){return delete Ce[t]},r.clear=function(){return Ce={},Ce},r})(),xt=(function(){function r(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls");}catch{this.storageWindow=eu;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var tu=typeof navigator<"u",Ln=tu?_r.isReactNative?"react-native":navigator.userAgent:"nodejs",be=(function(){function r(t){if(t==null||t.Username==null||t.Pool==null)throw new Error("Username and Pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||new xt().getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData";}var e=r.prototype;return e.setSignInUserSession=function(n){this.clearCachedUserData(),this.signInUserSession=n,this.cacheTokens();},e.getSignInUserSession=function(){return this.signInUserSession},e.getUsername=function(){return this.username},e.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.setAuthenticationFlowType=function(n){this.authenticationFlowType=n;},e.initiateAuth=function(n,i){var s=this,o=n.getAuthParameters();o.USERNAME=this.username;var a=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),u={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:a};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",u,function(c,d){if(c)return i.onFailure(c);var l=d.ChallengeName,h=d.ChallengeParameters;return l==="CUSTOM_CHALLENGE"?(s.Session=d.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(d.AuthenticationResult),s.cacheTokens(),i.onSuccess(s.signInUserSession))});},e.authenticateUser=function(n,i){return this.authenticationFlowType==="USER_PASSWORD_AUTH"?this.authenticateUserPlainUsernamePassword(n,i):this.authenticationFlowType==="USER_SRP_AUTH"||this.authenticationFlowType==="CUSTOM_AUTH"?this.authenticateUserDefaultAuth(n,i):i.onFailure(new Error("Authentication flow type is invalid."))},e.authenticateUserDefaultAuth=function(n,i){var s=this,o=new Ee(this.pool.getUserPoolName()),a=new Pt,u,c,d={};this.deviceKey!=null&&(d.DEVICE_KEY=this.deviceKey),d.USERNAME=this.username,o.getLargeAValue(function(l,h){l&&i.onFailure(l),d.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(d.CHALLENGE_NAME="SRP_A");var _=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:d,ClientMetadata:_};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(p,w){if(p)return i.onFailure(p);var b=w.ChallengeParameters;s.username=b.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new M(b.SRP_B,16),c=new M(b.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,C){R&&i.onFailure(R);var I=a.getNowString(),k=B.Buffer.concat([B.Buffer.from(s.pool.getUserPoolName(),"utf8"),B.Buffer.from(s.username,"utf8"),B.Buffer.from(b.SECRET_BLOCK,"base64"),B.Buffer.from(I,"utf8")]),H=new br.Sha256(C);H.update(k);var Re=H.digestSync(),V=B.Buffer.from(Re).toString("base64"),P={};P.USERNAME=s.username,P.PASSWORD_CLAIM_SECRET_BLOCK=b.SECRET_BLOCK,P.TIMESTAMP=I,P.PASSWORD_CLAIM_SIGNATURE=V,s.deviceKey!=null&&(P.DEVICE_KEY=s.deviceKey);var D=function(ke,$r){return s.client.request("RespondToAuthChallenge",ke,function(ut,Ms){return ut&&ut.code==="ResourceNotFoundException"&&ut.message.toLowerCase().indexOf("device")!==-1?(P.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),D(ke,$r)):$r(ut,Ms)})},N={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:P,Session:w.Session,ClientMetadata:_};s.getUserContextData()&&(N.UserContextData=s.getUserContextData()),D(N,function(F,ke){return F?i.onFailure(F):s.authenticateUserInternal(ke,o,i)});});});});},e.authenticateUserPlainUsernamePassword=function(n,i){var s=this,o={};if(o.USERNAME=this.username,o.PASSWORD=n.getPassword(),!o.PASSWORD){i.onFailure(new Error("PASSWORD parameter is required"));return}var a=new Ee(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(o.DEVICE_KEY=this.deviceKey);var u=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),c={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:u};this.getUserContextData(this.username)&&(c.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",c,function(d,l){return d?i.onFailure(d):s.authenticateUserInternal(l,a,i)});},e.authenticateUserInternal=function(n,i,s){var o=this,a=n.ChallengeName,u=n.ChallengeParameters;if(a==="SMS_MFA")return this.Session=n.Session,s.mfaRequired(a,u);if(a==="SELECT_MFA_TYPE")return this.Session=n.Session,s.selectMFAType(a,u);if(a==="MFA_SETUP")return this.Session=n.Session,s.mfaSetup(a,u);if(a==="SOFTWARE_TOKEN_MFA")return this.Session=n.Session,s.totpRequired(a,u);if(a==="CUSTOM_CHALLENGE")return this.Session=n.Session,s.customChallenge(u);if(a==="NEW_PASSWORD_REQUIRED"){this.Session=n.Session;var c=null,d=null,l=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),d=JSON.parse(n.ChallengeParameters.requiredAttributes)),d)for(var _=0;_<d.length;_++)l[_]=d[_].substr(h.length);return s.newPasswordRequired(c,l)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(p){if(p)return s.onFailure(p);var w={Salt:B.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=w.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Ln},function(b,R){return b?s.onFailure(b):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,R.UserConfirmationNecessary):s.onSuccess(o.signInUserSession))});});},e.completeNewPasswordChallenge=function(n,i,s,o){var a=this;if(!n)return s.onFailure(new Error("New password is required."));var u=new Ee(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),d={};i&&Object.keys(i).forEach(function(h){d[c+h]=i[h];}),d.NEW_PASSWORD=n,d.USERNAME=this.username;var l={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:d,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(h,_){return h?s.onFailure(h):a.authenticateUserInternal(_,u,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new Ee(this.deviceGroupKey),a=new Pt,u={};u.USERNAME=this.username,u.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(c,d){c&&n.onFailure(c),u.SRP_A=d.toString(16);var l={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(l.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",l,function(h,_){if(h)return n.onFailure(h);var g=_.ChallengeParameters,p=new M(g.SRP_B,16),w=new M(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,p,w,function(b,R){if(b)return n.onFailure(b);var C=a.getNowString(),I=B.Buffer.concat([B.Buffer.from(s.deviceGroupKey,"utf8"),B.Buffer.from(s.deviceKey,"utf8"),B.Buffer.from(g.SECRET_BLOCK,"base64"),B.Buffer.from(C,"utf8")]),k=new br.Sha256(R);k.update(I);var H=k.digestSync(),Re=B.Buffer.from(H).toString("base64"),V={};V.USERNAME=s.username,V.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,V.TIMESTAMP=C,V.PASSWORD_CLAIM_SIGNATURE=Re,V.DEVICE_KEY=s.deviceKey;var P={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:V,Session:_.Session};s.getUserContextData()&&(P.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",P,function(D,N){return D?n.onFailure(D):(s.signInUserSession=s.getCognitoUserSession(N.AuthenticationResult),s.cacheTokens(),n.onSuccess(s.signInUserSession))});});});});},e.confirmRegistration=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),ConfirmationCode:n,Username:this.username,ForceAliasCreation:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",a,function(u){return u?s(u,null):s(null,"SUCCESS")});},e.sendCustomChallengeAnswer=function(n,i,s){var o=this,a={};a.USERNAME=this.username,a.ANSWER=n;var u=new Ee(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(a.DEVICE_KEY=this.deviceKey);var c={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:a,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:s};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(d,l){return d?i.onFailure(d):o.authenticateUserInternal(l,u,i)});},e.sendMFACode=function(n,i,s,o){var a=this,u={};u.USERNAME=this.username,u.SMS_MFA_CODE=n;var c=s||"SMS_MFA";c==="SOFTWARE_TOKEN_MFA"&&(u.SOFTWARE_TOKEN_MFA_CODE=n),this.deviceKey!=null&&(u.DEVICE_KEY=this.deviceKey);var d={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(l,h){if(l)return i.onFailure(l);var _=h.ChallengeName;if(_==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new Ee(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(p){if(p)return i.onFailure(p);var w={Salt:B.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=w.PasswordVerifier,a.deviceGroupKey=h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,a.randomPassword=g.getRandomPassword(),a.client.request("ConfirmDevice",{DeviceKey:h.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:a.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Ln},function(b,R){return b?i.onFailure(b):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,R.UserConfirmationNecessary):i.onSuccess(a.signInUserSession))});});});},e.changePassword=function(n,i,s,o){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return s(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:n,ProposedPassword:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:o},function(a){return a?s(a,null):s(null,"SUCCESS")});},e.enableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[],s={DeliveryMedium:"SMS",AttributeName:"phone_number"};i.push(s),this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?n(o,null):n(null,"SUCCESS")});},e.setUserMfaPreference=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:n,SoftwareTokenMfaSettings:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s(o,null):s(null,"SUCCESS")});},e.disableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[];this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n(s,null):n(null,"SUCCESS")});},e.deleteUser=function(n,i){var s=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:i},function(o){return o?n(o,null):(s.clearCachedUser(),n(null,"SUCCESS"))});},e.updateAttributes=function(n,i,s){var o=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return i(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:n,ClientMetadata:s},function(a,u){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",u)},{bypassCache:true})});},e.getUserAttributes=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){if(i)return n(i,null);for(var o=[],a=0;a<s.UserAttributes.length;a++){var u={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},c=new le(u);o.push(c);}return n(null,o)});},e.getMFAOptions=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){return i?n(i,null):n(null,s.MFAOptions)});},e.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},e.refreshSessionIfPossible=function(n){var i=this;return n===void 0&&(n={}),new Promise(function(s){var o=i.signInUserSession.getRefreshToken();o&&o.getToken()?i.refreshSession(o,s,n.clientMetadata):s();})},e.getUserData=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return this.clearCachedUserData(),n(new Error("User is not authenticated"),null);var o=this.getUserDataFromCache();if(!o){this.fetchUserData().then(function(a){n(null,a);}).catch(n);return}if(this.isFetchUserDataAndTokenRequired(i)){this.fetchUserData().then(function(a){return s.refreshSessionIfPossible(i).then(function(){return a})}).then(function(a){return n(null,a)}).catch(n);return}try{n(null,JSON.parse(o));return}catch(a){this.clearCachedUserData(),n(a,null);return}},e.getUserDataFromCache=function(){var n=this.storage.getItem(this.userDataKey);return n},e.isFetchUserDataAndTokenRequired=function(n){var i=n||{},s=i.bypassCache,o=s===void 0?false:s;return o},e.fetchUserData=function(){var n=this;return this.createGetUserRequest().then(function(i){return n.cacheUserData(i),i})},e.deleteAttributes=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return i(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?i(o,null):s.getUserData(function(){return i(null,"SUCCESS")},{bypassCache:true})});},e.resendConfirmationCode=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.client.request("ResendConfirmationCode",s,function(o,a){return o?n(o,null):n(null,a)});},e.getSession=function(n,i){if(i===void 0&&(i={}),this.username==null)return n(new Error("Username is null. Cannot retrieve a new session"),null);if(this.signInUserSession!=null&&this.signInUserSession.isValid())return n(null,this.signInUserSession);var s="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,o=s+".idToken",a=s+".accessToken",u=s+".refreshToken",c=s+".clockDrift";if(this.storage.getItem(o)){var d=new $e({IdToken:this.storage.getItem(o)}),l=new Be({AccessToken:this.storage.getItem(a)}),h=new je({RefreshToken:this.storage.getItem(u)}),_=parseInt(this.storage.getItem(c),0)||0,g={IdToken:d,AccessToken:l,RefreshToken:h,ClockDrift:_},p=new Ke(g);if(p.isValid())return this.signInUserSession=p,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),d=c+".LastAuthUser";if(this.storage.getItem(d)){this.username=this.storage.getItem(d);var l=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(l),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(_,g){if(_)return _.code==="NotAuthorizedException"&&o.clearCachedUser(),a(_,null);if(g){var p=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(p,"RefreshToken")||(p.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(p),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new $e(n),s=new Be(n),o=new je(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new Ke(a)},e.forgotPassword=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",s,function(o,a){return o?n.onFailure(o):typeof n.inputVerificationCode=="function"?n.inputVerificationCode(a):n.onSuccess(a)});},e.confirmPassword=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:n,Password:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",a,function(u){return u?s.onFailure(u):s.onSuccess("SUCCESS")});},e.getAttributeVerificationCode=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:s},function(o,a){return o?i.onFailure(o):typeof i.inputVerificationCode=="function"?i.inputVerificationCode(a):i.onSuccess("SUCCESS")});},e.verifyAttribute=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:n,Code:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s.onFailure(o):s.onSuccess("SUCCESS")});},e.getDevice=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(i,s){return i?n.onFailure(i):n.onSuccess(s)});},e.forgetSpecificDevice=function(n,i){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:n},function(s){return s?i.onFailure(s):i.onSuccess("SUCCESS")});},e.forgetDevice=function(n){var i=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:n.onFailure,onSuccess:function(o){return i.deviceKey=null,i.deviceGroupKey=null,i.randomPassword=null,i.clearCachedDeviceKeyAndPassword(),n.onSuccess(o)}});},e.setDeviceStatusRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.setDeviceStatusNotRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.listDevices=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));var o={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:n};i&&(o.PaginationToken=i),this.client.request("ListDevices",o,function(a,u){return a?s.onFailure(a):s.onSuccess(u)});},e.globalSignOut=function(n){var i=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n.onFailure(s):(i.clearCachedUser(),n.onSuccess("SUCCESS"))});},e.signOut=function(n){var i=this;if(!n||typeof n!="function"){this.cleanClientData();return}this.getSession(function(s,o){if(s)return n(s);i.revokeTokens(function(a){i.cleanClientData(),n(a);});});},e.revokeTokens=function(n){if(n===void 0&&(n=function(){}),typeof n!="function")throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession){var s=new Error("User is not authenticated");return n(s)}if(!this.signInUserSession.getAccessToken()){var o=new Error("No Access token available");return n(o)}var a=this.signInUserSession.getRefreshToken().getToken(),u=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(u)&&a)return this.revokeToken({token:a,callback:n});n();},e.isSessionRevocable=function(n){if(n&&typeof n.decodePayload=="function")try{var i=n.decodePayload(),s=i.origin_jti;return !!s}catch{}return false},e.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser();},e.revokeToken=function(n){var i=n.token,s=n.callback;this.client.requestWithRetry("RevokeToken",{Token:i,ClientId:this.pool.getClientId()},function(o){if(o)return s(o);s();});},e.sendMFASelectionAnswer=function(n,i){var s=this,o={};o.USERNAME=this.username,o.ANSWER=n;var a={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,function(u,c){if(u)return i.onFailure(u);if(s.Session=c.Session,n==="SMS_MFA")return i.mfaRequired(c.ChallengeName,c.ChallengeParameters);if(n==="SOFTWARE_TOKEN_MFA")return i.totpRequired(c.ChallengeName,c.ChallengeParameters)});},e.getUserContextData=function(){var n=this.pool;return n.getUserContextData(this.username)},e.associateSoftwareToken=function(n){var i=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s,o){return s?n.onFailure(s):n.associateSecretCode(o.SecretCode)}):this.client.request("AssociateSoftwareToken",{Session:this.Session},function(s,o){return s?n.onFailure(s):(i.Session=o.Session,n.associateSecretCode(o.SecretCode))});},e.verifySoftwareToken=function(n,i,s){var o=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:n,FriendlyDeviceName:i},function(a,u){return a?s.onFailure(a):s.onSuccess(u)}):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:n,FriendlyDeviceName:i},function(a,u){if(a)return s.onFailure(a);o.Session=u.Session;var c={};c.USERNAME=o.username;var d={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(d.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",d,function(l,h){return l?s.onFailure(l):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Le(Mn());function He(){}He.prototype.userAgent=Fn();var Vn=function(e){var t=He.category?" "+He.category:"",n=He.framework?" framework/"+He.framework:"",i=""+He.prototype.userAgent+t+n;return i};function nu(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ye(r,e);}function Ar(r){var e=typeof Map=="function"?new Map:void 0;return Ar=function(n){if(n===null||!su(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,i);}function i(){return iu(n,arguments,Er(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),Ye(i,n)},Ar(r)}function iu(r,e,t){if(qn())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(r.bind.apply(r,n));return t&&Ye(i,t.prototype),i}function qn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (qn=function(){return !!r})()}function su(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}}function Ye(r,e){return Ye=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},Ye(r,e)}function Er(r){return Er=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Er(r)}var ou=(function(r){function e(t,n,i,s){var o;return o=r.call(this,t)||this,o.code=n,o.name=i,o.statusCode=s,o}return nu(e,r),e})(Ar(Error)),Bn=(function(){function r(t,n,i){this.endpoint=n||"https://cognito-idp."+t+".amazonaws.com/";var s=i||{},o=s.credentials;this.fetchOptions=o?{credentials:o}:{};}var e=r.prototype;return e.promisifyRequest=function(n,i){var s=this;return new Promise(function(o,a){s.request(n,i,function(u,c){u?a(new ou(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;lu(function(u){return new Promise(function(c,d){o.request(n,u,function(l,h){l?d(l):c(h);});})},[i],a).then(function(u){return s(null,u)}).catch(function(u){return s(u)});},e.request=function(n,i,s){var o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+n,"X-Amz-User-Agent":Vn(),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(i)}),u;fetch(this.endpoint,a).then(function(d){return u=d,d},function(d){throw d instanceof TypeError?new Error("Network error"):d}).then(function(d){return d.json().catch(function(){return {}})}).then(function(d){if(u.ok)return s(null,d);var l=(d.__type||d.code).split("#").pop(),h=new Error(d.message||d.Message||null);return h.name=l,h.code=l,s(h)}).catch(function(d){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var l=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=l,h.name=l,h.statusCode=u.status,s(h)}catch{return s(d)}else d instanceof Error&&d.message==="Network error"&&(d.code="NetworkError");return s(d)});},r})();var Ut={debug:function(){}};var au=function(e){var t="nonRetryable";return e&&e[t]};function $n(r,e,t,n){if(n===void 0&&(n=1),typeof r!="function")throw Error("functionToRetry must be a function");return Ut.debug(r.name+" attempt #"+n+" with args: "+JSON.stringify(e)),r.apply(void 0,e).catch(function(i){if(Ut.debug("error on "+r.name,i),au(i))throw Ut.debug(r.name+" non retryable error",i),i;var s=t(n,e,i);if(Ut.debug(r.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return $n(r,e,t,n+1)});throw i})}function uu(r){var e=100,t=100;return function(n){var i=Math.pow(2,n)*e+t*Math.random();return i>r?false:i}}function lu(r,e,t){return $n(r,e,uu(t))}var du=55,Sr=(function(){function r(t,n){var i=t||{},s=i.UserPoolId,o=i.ClientId,a=i.endpoint,u=i.fetchOptions,c=i.AdvancedSecurityDataCollectionFlag;if(!s||!o)throw new Error("Both UserPoolId and ClientId are required.");if(s.length>du||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var d=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new Bn(d,a,u),this.advancedSecurityDataCollectionFlag=c!==false,this.storage=t.Storage||new xt().getStorage(),n&&(this.wrapRefreshSessionCallback=n);}var e=r.prototype;return e.getUserPoolId=function(){return this.userPoolId},e.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},e.getClientId=function(){return this.clientId},e.signUp=function(n,i,s,o,a,u){var c=this,d={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(d.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",d,function(l,h){if(l)return a(l,null);var _={Username:n,Pool:c,Storage:c.storage},g={user:new be(_),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new be(s)}return null},e.getUserContextData=function(n){if(!(typeof AmazonCognitoAdvancedSecurityData>"u")){var i=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var s=i.getData(n,this.userPoolId,this.clientId);if(s){var o={EncodedData:s};return o}}return {}}},r})();function Ct(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)n!=="__proto__"&&(r[n]=t[n]);}return r}var fu={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function vr(r,e){function t(i,s,o){if(!(typeof document>"u")){o=Ct({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var u in o)o[u]&&(a+="; "+u,o[u]!==true&&(a+="="+o[u].split(";")[0]));return document.cookie=i+"="+r.write(s,i)+a}}function n(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var s=document.cookie?document.cookie.split("; "):[],o={},a=0;a<s.length;a++){var u=s[a].split("="),c=u.slice(1).join("=");try{var d=decodeURIComponent(u[0]);if(d in o||(o[d]=r.read(c,d)),i===d)break}catch{}}return i?o[i]:o}}return Object.create({set:t,get:n,remove:function(i,s){t(i,"",Ct({},s,{expires:-1}));},withAttributes:function(i){return vr(this.converter,Ct({},this.attributes,i))},withConverter:function(i){return vr(Ct({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}vr(fu,{path:"/"});var f=class extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let i=2;i<e.length&&typeof e[i]=="string";i++)n+=e[i];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause);}else super((e?.message||(typeof e=="string"?e:"Something went wrong.")).trim()),typeof e=="string"?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):typeof e=="object"&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause);}};var ye="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Tr=BigInt(ye.length),gu=2*1024*1024,pu=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],jn={auth_time:"log",sub:"user_id"},mu=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Gn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Kn=typeof TextEncoder<"u"?new TextEncoder:null;function _u(){if(typeof globalThis<"u")return globalThis.Buffer}function bu(r){if(Kn)return Kn.encode(r);let e=unescape(encodeURIComponent(r)),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function yu(r){if(r instanceof Uint8Array)return r;if(typeof r=="string")return bu(r);if(typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer)return new Uint8Array(r);if(typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);if(Array.isArray(r))return Uint8Array.from(r);let e=_u();if(e)return new Uint8Array(e.from(r));throw new Error("No byte conversion available in this environment.")}var A=class A{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let t=A.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,u,c,d;for(let l=0;l<t.length;l+=16)a=n,u=i,c=s,d=o,n=A.ff(n,i,s,o,t[l],7,-680876936),o=A.ff(o,n,i,s,t[l+1],12,-389564586),s=A.ff(s,o,n,i,t[l+2],17,606105819),i=A.ff(i,s,o,n,t[l+3],22,-1044525330),n=A.ff(n,i,s,o,t[l+4],7,-176418897),o=A.ff(o,n,i,s,t[l+5],12,1200080426),s=A.ff(s,o,n,i,t[l+6],17,-1473231341),i=A.ff(i,s,o,n,t[l+7],22,-45705983),n=A.ff(n,i,s,o,t[l+8],7,1770035416),o=A.ff(o,n,i,s,t[l+9],12,-1958414417),s=A.ff(s,o,n,i,t[l+10],17,-42063),i=A.ff(i,s,o,n,t[l+11],22,-1990404162),n=A.ff(n,i,s,o,t[l+12],7,1804603682),o=A.ff(o,n,i,s,t[l+13],12,-40341101),s=A.ff(s,o,n,i,t[l+14],17,-1502002290),i=A.ff(i,s,o,n,t[l+15],22,1236535329),n=A.gg(n,i,s,o,t[l+1],5,-165796510),o=A.gg(o,n,i,s,t[l+6],9,-1069501632),s=A.gg(s,o,n,i,t[l+11],14,643717713),i=A.gg(i,s,o,n,t[l],20,-373897302),n=A.gg(n,i,s,o,t[l+5],5,-701558691),o=A.gg(o,n,i,s,t[l+10],9,38016083),s=A.gg(s,o,n,i,t[l+15],14,-660478335),i=A.gg(i,s,o,n,t[l+4],20,-405537848),n=A.gg(n,i,s,o,t[l+9],5,568446438),o=A.gg(o,n,i,s,t[l+14],9,-1019803690),s=A.gg(s,o,n,i,t[l+3],14,-187363961),i=A.gg(i,s,o,n,t[l+8],20,1163531501),n=A.gg(n,i,s,o,t[l+13],5,-1444681467),o=A.gg(o,n,i,s,t[l+2],9,-51403784),s=A.gg(s,o,n,i,t[l+7],14,1735328473),i=A.gg(i,s,o,n,t[l+12],20,-1926607734),n=A.hh(n,i,s,o,t[l+5],4,-378558),o=A.hh(o,n,i,s,t[l+8],11,-2022574463),s=A.hh(s,o,n,i,t[l+11],16,1839030562),i=A.hh(i,s,o,n,t[l+14],23,-35309556),n=A.hh(n,i,s,o,t[l+1],4,-1530992060),o=A.hh(o,n,i,s,t[l+4],11,1272893353),s=A.hh(s,o,n,i,t[l+7],16,-155497632),i=A.hh(i,s,o,n,t[l+10],23,-1094730640),n=A.hh(n,i,s,o,t[l+13],4,681279174),o=A.hh(o,n,i,s,t[l],11,-358537222),s=A.hh(s,o,n,i,t[l+3],16,-722521979),i=A.hh(i,s,o,n,t[l+6],23,76029189),n=A.hh(n,i,s,o,t[l+9],4,-640364487),o=A.hh(o,n,i,s,t[l+12],11,-421815835),s=A.hh(s,o,n,i,t[l+15],16,530742520),i=A.hh(i,s,o,n,t[l+2],23,-995338651),n=A.ii(n,i,s,o,t[l],6,-198630844),o=A.ii(o,n,i,s,t[l+7],10,1126891415),s=A.ii(s,o,n,i,t[l+14],15,-1416354905),i=A.ii(i,s,o,n,t[l+5],21,-57434055),n=A.ii(n,i,s,o,t[l+12],6,1700485571),o=A.ii(o,n,i,s,t[l+3],10,-1894986606),s=A.ii(s,o,n,i,t[l+10],15,-1051523),i=A.ii(i,s,o,n,t[l+1],21,-2054922799),n=A.ii(n,i,s,o,t[l+8],6,1873313359),o=A.ii(o,n,i,s,t[l+15],10,-30611744),s=A.ii(s,o,n,i,t[l+6],15,-1560198380),i=A.ii(i,s,o,n,t[l+13],21,1309151649),n=A.ii(n,i,s,o,t[l+4],6,-145523070),o=A.ii(o,n,i,s,t[l+11],10,-1120210379),s=A.ii(s,o,n,i,t[l+2],15,718787259),i=A.ii(i,s,o,n,t[l+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,u),s=A.ad(s,c),o=A.ad(o,d);return A.rh(n)+A.rh(i)+A.rh(s)+A.rh(o)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=A.alphabet.charAt(e>>n*8+4&15)+A.alphabet.charAt(e>>n*8&15);return t}static ad(e,t){let n=(e&65535)+(t&65535);return (e>>16)+(t>>16)+(n>>16)<<16|n&65535}static rl(e,t){return e<<t|e>>>32-t}static cm(e,t,n,i,s,o){return A.ad(A.rl(A.ad(A.ad(t,e),A.ad(i,o)),s),n)}static ff(e,t,n,i,s,o,a){return A.cm(t&n|~t&i,e,t,s,o,a)}static gg(e,t,n,i,s,o,a){return A.cm(t&i|n&~i,e,t,s,o,a)}static hh(e,t,n,i,s,o,a){return A.cm(t^n^i,e,t,s,o,a)}static ii(e,t,n,i,s,o,a){return A.cm(n^(t|~i),e,t,s,o,a)}static sb(e){let t,n=(e.length+8>>6)+1,i=new Array(n*16);for(t=0;t<n*16;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[n*16-2]=e.length*8,i}};A.alphabet="0123456789abcdef";var j=A;function Qn(r){if(r===0)return ye[0];let e="";for(;r>0;)e=ye[r%62]+e,r=Math.floor(r/62);return e}function ne(r){return r.split("").reverse().reduce((e,t,n)=>e+ye.indexOf(t)*62**n,0)}function De(r=6){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t.length,i=0;for(;i<r;)e+=t.charAt(Math.floor(Math.random()*n)),i+=1;return e}function Rr(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !Rr()&&typeof document<"u"&&typeof document.createElement=="function"}function Dt(r){let e;try{e=JSON.stringify(r);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>gu)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function Hn(r){return r===""||r==="on"||r==="true"}function Wn(r){return r==="false"}function Jn(r,e,t){e.name&&t(r,e.name,e.value);}var kt=z(),wu=typeof SubmitEvent<"u",Au=typeof HTMLFormElement<"u";function L(r,e,t){let n={},i=[];function s(u,c,d){if(e?.ignoreEmpty&&d==="")return;if(e?.nullIfEmpty&&d===""&&(d=null),typeof t=="function"){let _=t(c,d);_!==void 0&&(d=_);}let l=c.split("[").map(_=>{let g=_.replace("]",""),p=Number(g);return !isNaN(p)&&!g.includes(".")?g=p:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof l[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let _=0;_<l.length;_++){let g=l[_];_<l.length-1?(h[g]===void 0&&(typeof l[_+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=d:Array.isArray(h[g])?h[g].push(d):h[g]=[h[g],d];}}function o(u,c,d){if(d instanceof File)u.push({name:c,file:d});else if(d instanceof FileList&&d&&d.length>0)for(let l=0;l<=d.length-1;l++){let h=d.item(l);h&&u.push({name:c,file:h});}}let a=u=>{u.name&&(u.type==="number"?u.value&&s(n,u.name,Number(u.value)):u.type==="checkbox"||u.type==="radio"?u.checked?u.type==="checkbox"&&u.value===""||Hn(u.value)?s(n,u.name,true):Wn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(Hn(u.value)?s(n,u.name,false):Wn(u.value)&&s(n,u.name,true)):u.type==="file"?u.files&&u.files.length>0&&o(i,u.name,u.files):s(n,u.name,u.value));};if(kt&&(r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement))return a(r),Dt(n),{data:n,files:i};if(kt&&r instanceof FormData){for(let u of r.entries()){let c=u[0],d=u[1];if(d instanceof File||d instanceof FileList)o(i,c,d);else if(d instanceof Blob){let l=d;if(l.type==="application/json")try{let h=JSON.parse(l.text());s(n,c,h);}catch{s(n,c,l);}}else s(n,c,d);}return Dt(n),{data:n,files:i}}if(kt&&wu&&r instanceof SubmitEvent&&(r=r.target),kt&&Au&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),d=r.querySelectorAll("textarea");for(let l=0;l<c.length;l++)Jn(n,c[l],s);for(let l=0;l<d.length;l++)Jn(n,d[l],s);for(let l=0;l<u.length;l++)a(u[l]);return Dt(n),{data:n,files:i}}return Dt(r),{data:r,files:i}}function Xe(r){let e={};for(let t in r){let n=r[t];if(!pu.includes(t))if(jn[t])e[jn[t]]=n;else if(t.includes("custom:"))e[t.replace("custom:","")]=n;else if(t==="address"){let i=n;if(i&&typeof i=="object"&&Object.keys(i).length){if(i?.formatted)try{e[t]=JSON.parse(i.formatted);}catch{e[t]=i.formatted;}}else e[t]=i;}else e[t]=n;}for(let t of ["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])t.includes("_public")?e.hasOwnProperty(t.split("_")[0])?e[t]=e.hasOwnProperty(t)?!!Number(e[t]):false:delete e[t]:e[t]=e.hasOwnProperty(t)?Number(e[t]):0;for(let t of ["email","phone_number"])e.hasOwnProperty(t)?e[t+"_verified"]=e[t+"_verified"]===true:delete e[t+"_verified"];return e}function Ir(r){if(r=xu(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=Gn[ne(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid.")}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid.");return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function zn(r,e){let t=Gn.indexOf(r.slice(0,4)),n=mu[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return Pu(s)}function Eu(r){let e=0n;for(let t of r){let n=ye.indexOf(t);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${t}`);e=e*Tr+BigInt(n);}return e}function Su(r,e=1){if(r<0n)throw new Error("INVALID_PARAMETER: Negative values are not supported.");if(r===0n)return "0".repeat(Math.max(1,e));let t="",n=r;for(;n>0n;){let i=Number(n%Tr);t=ye[i]+t,n/=Tr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function vu(r){if(r===0n)return Uint8Array.from([0]);let e=[],t=r;for(;t>0n;)e.push(Number(t&0xffn)),t>>=8n;return e.reverse(),Uint8Array.from(e)}function Tu(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function Ru(r){let e=String(r).replace(/-/g,"");if(!/^[0-9a-fA-F]{32}$/.test(e))throw new Error("INVALID_PARAMETER: Invalid UUID format.");let t=new Uint8Array(16);for(let n=0;n<16;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}function Iu(r){let e=Array.from(yu(r),t=>t.toString(16).padStart(2,"0")).join("");return [e.slice(0,8),e.slice(8,12),e.slice(12,16),e.slice(16,20),e.slice(20)].join("-")}function Pu(r){let e=String(r);if(e.split("-").length===2)return e;let t=e.match(/^([0-9A-Za-z]+)-([0-9A-Za-z]+)-([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/);if(!t)throw new Error("INVALID_PARAMETER: Input must match <base62>-<base62>-<uuid>.");let[,n,i,s]=t;if(n.length<2)throw new Error("INVALID_PARAMETER: The first part must contain at least 2 characters.");if(i.length>=ye.length)throw new Error("INVALID_PARAMETER: The middle section is too long to encode.");let o=n.slice(0,2),a=n.slice(2),u=i+o,c=ye[i.length]+a+u,d=Ru(s),l=Su(Tu(d));return `${c}-${l}`}function xu(r){let e=String(r);if(e.split("-").length!==2)return e;let t=e.split("-");if(t.length!==2||!t[0]||!t[1])throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let[n,i]=t,s=ye.indexOf(n[0]);if(s<0)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let o=n.slice(1),a=s+2;if(o.length<a)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let u=o.slice(0,o.length-a),c=o.slice(o.length-a),d=c.slice(s),l=c.slice(0,s),h=d+u;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(l))throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let _=Eu(i),g=vu(_);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let p=new Uint8Array(16);p.set(g,16-g.length);let w=Iu(p);return `${h}-${l}-${w}`}function Ze(r,e,t=[],n=null){let i=["string","number","boolean","object","array","function","null","undefined"];function s(g){return g!==null&&typeof g=="object"&&!Array.isArray(g)}function o(g){return s(g)}function a(g){return Array.isArray(g)}function u(g){return typeof g=="string"&&i.indexOf(g)!==-1}function c(g){return Array.isArray(g)?"array":g===null?"null":typeof g}function d(g){try{return JSON.stringify(g)}catch{return String(g)}}function l(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(p,w)=>typeof w=="function"?"custom validator":w)}catch{return String(g)}}function h(g,p){return p==="array"?Array.isArray(g):p==="object"?s(g):p==="null"?g===null:p==="undefined"?typeof g>"u":typeof g===p}function _(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
207
- `+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let p=_(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=Ze(r[g],e[g],t,p);else {if(t.indexOf(p)!==-1)throw new Error(`Key "${p}" is required.`);let w=e[g];a(w)&&w.length>1&&typeof w[w.length-1]=="function"&&(r[g]=w[w.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let p=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let w=0;w<r.length;w++){let b=r[w];if(u(p)){if(!h(b,p))throw new Error(`Type <${c(b)}> is invalid in "${n}". Expected a list of Type <${p}>.`)}else if(typeof p=="function")r[w]=p(b);else if(b!==p)throw new Error(`Value ${d(b)} is invalid in "${n}". Expected a list of ${d(p)}.`)}g=true;}else if(Array.isArray(r)&&e.every(w=>!a(w)&&w!=="array")){for(let w=0;w<r.length;w++){let b=false,R="";for(let C of e)try{r[w]=Ze(r[w],C,t,n),b=!0;break}catch(I){typeof C=="function"&&(R=I?.message||String(I));}if(!b&&R)throw new Error(R);if(!b){let C=e.map(l).join(", ");throw new Error(`${d(r[w])} is invalid in "${n}". allowed types or values are: ${C}.`)}}g=true;}else {let w="";for(let b of e)try{r=Ze(r,b,t,n),g=!0;break}catch(R){typeof b=="function"&&(w=R?.message||String(R));}if(!g&&w)throw new Error(w)}if(!g){let p=e.map(l).join(", ");throw new Error(`${d(r)} is invalid in "${n}". allowed types or values are: ${p}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${d(r)} is invalid in "${n}". allowed type or value is: ${l(e)}.`)}function Uu(r,e="User ID"){let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;if(r){if(typeof r!="string")throw new f(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!r.match(t))throw new f(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new f(`${e} is empty.`,{code:"INVALID_PARAMETER"});return r}function Cu(r){if(r&&(typeof r!="string"||r.charAt(0)!=="+"||isNaN(Number(r.substring(1)))))throw new f('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return r||""}function Du(r){if(r){if(typeof r!="string")throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let e=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(r.length!==10||r.split("-").length!==3||!e.test(r))throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return r||""}function ku(r){if(r){if(typeof r!="string")throw new f('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(r.length<6)throw new f('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(r.length>60)throw new f('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"})}else throw new f('"password" is required.',{code:"INVALID_PARAMETER"});return r}function Nu(r,e="email"){if(r){if(typeof r!="string")throw new f(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(r.length<5)throw new f(`"${e}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r)&&(r=r.trim(),r.split("@")[1].split(".").length>=2))return r.toLowerCase()}else throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new f(`"${r}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function Fu(r){let e=typeof window<"u",t=(()=>{let i=e&&window.location.origin||null;return i&&i.slice(-1)==="/"&&(i=i.slice(0,-1)),i})(),n=i=>{if(typeof i=="string"){if(i==="*")return "*";{let s=i.trim();if(s[0]==="/"&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=t+s;}else if(s[0]==="."&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let a=e?window.location.href.split("?")[0]:"";a.slice(-1)!=="/"&&(a+="/"),s=a+s.slice(1);}let o;try{o=new URL(s);}catch{throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(r)?r.map(i=>n(i)):n(r)}function Lu(r,e,t=[],n){let i=L(r,n),s=i.data;e.service="string",e.owner="string";let o={};for(let a in e)if(s&&typeof s=="object"&&!Array.isArray(s)&&s.hasOwnProperty(a))if(typeof s[a]=="function")o[a]=s[a];else try{o[a]=JSON.parse(JSON.stringify(s[a]));}catch{o[a]=s[a];}n?.precall&&n.precall({data:o,files:i?.files||[]});try{return Ze(o,e,t)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var m={UserId:Uu,PhoneNumber:Cu,Birthdate:Du,Password:ku,Email:Nu,Url:Fu,Params:Lu};var O=null;function Pr(r){let e={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},t={};for(let n in r)if(n==="tkid"){let i=r[n].split("#");if(i.length===1){t.ticket_id=i[0];continue}t.ticket_id=i[1],t.consume_id=i[2],t.user_id=i[3];let s=i[2].slice(-4);if(t.is_test=s===":CHK",!r.stmp){let o=i[2].slice(0,-4);/^[0-9]+$/.test(o)?t.timestamp=parseInt(o,10):t.timestamp=ne(i[2].slice(0,-4));}}else e[n]?t[e[n]]=r[n]:t[n]=r[n];return t}async function Xn(r){if(!r.ticket_id)throw new f("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!r.method)throw new f('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let e=r.ticket_id;await this.__connection;let t=await S.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${e}`,r?.data||{},{method:r.method,auth:!!r?.auth});return Pr(t)}async function Zn(r,e){await this.__connection;let t=await S.bind(this)("ticket",Object.assign({exec:"list"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Pr),t}async function ei(r,e){await this.__connection;let t=await S.bind(this)("ticket",Object.assign({exec:"consumed"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Pr),t}async function ti(r){return S.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function ri(r){return S.bind(this)("register-ticket",Object.assign({exec:"unreg"},r),{auth:true})}async function We(){if(await this.__connection,this.session){let r=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(t<r){this.log("request:requesting new token",null);try{await G.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session?.idToken?.payload?.exp,currentTime:r,expiresIn:t-r,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(n){throw this.log("request:new token error",n),new f("User login is required.",{code:"INVALID_REQUEST"})}}else this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:r,expiresIn:t-r,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token});return this.session?.idToken?.jwtToken}else throw this.log("request:no session",null),we.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function Yn(r,e){return new Promise((t,n)=>{e.refreshSession(r.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(we.bind(this)(),n(i)):s.isValid()?t(s):(we.bind(this)(),n(new f("Invalid session.",{code:"INVALID_REQUEST"})));});})}function G(){if(!this.userPool)throw new f("User pool is missing",{code:"INVALID_REQUEST"});let r=()=>{let s=O.getSignInUserSession().getIdToken().payload||null,o=Xe(s);return this.log("normalized user attribute",o),this.__user=o,o},e=async s=>new Promise((o,a)=>{this.log("getSession:option",s);let{refreshToken:u=false,skipUserUpdateEventTrigger:c=false}=s||{};if(u&&c&&(c=false),O=this.userPool.getCurrentUser(),!O){this.log("getSession:cognitoUser",O),we.bind(this)(),a(null);return}let d=l=>{let h=l.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),we.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=l,r(),c||this._runOnUserUpdateListeners(this.user),this.session};O.getSession((l,h)=>{if(this.log("getSession:getSessionCallback",{err:l,session:h}),!h){we.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(l){Yn.bind(this)(h,O).then(b=>o(d(b))).catch(a);return}let _=Math.floor(Date.now()/1e3),g=h.getIdToken(),p=g.getExpiration(),w=p<_;if(this.log("getSession:currentTime",_),this.log("getSession:idTokenExp",p),this.log("getSession:isExpired",w),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),w||u||!h.isValid())Yn.bind(this)(h,O).then(b=>o(d(b))).catch(a);else try{o(d(h));}catch(b){a(b);}});}),t=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+j.hash(s);return {cognitoUser:new be({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,u=false)=>new Promise((c,d)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let l=t(s,a),h=l.cognitoUsername,_=new Wt({Username:h,Password:o});l.cognitoUser.authenticateUser(_,{newPasswordRequired:(g,p)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?l.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:w=>{O=l.cognitoUser,e().then(b=>c(this.user));},onFailure:w=>{d(new f(w.message||"Failed to authenticate user.",{code:w.code}));}}):d(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(p=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let p=[],{parsed:w,code:b}=Nt(g),R=typeof g?.message=="string"?g.message:"";if(b==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,p=["This account is disabled.","USER_IS_DISABLED"]):u?p=["The account already exists.","ACCOUNT_EXISTS"]:p=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotFoundException"?p=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,p=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(b==="TooManyRequestsException"||b==="LimitExceededException")&&(p=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),w.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),p.length){let C=p[1],I=p[0];d(new f(I,{code:C,cause:g}));}else d(w);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(d,l)=>{if(d){let{parsed:h,code:_}=Nt(d),g=[];_==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:_==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:_==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:_==="TooManyRequestsException"||_==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:_==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:_==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:d})):c(h);return}u(l);});})}}function Nt(r){let e=typeof r?.code=="string"&&r.code.trim()?r.code.trim():"ERROR",n=((typeof r?.message=="string"?r.message:typeof r=="string"?r:"An error occurred.")||"An error occurred.").trim();n||(n="An error occurred.");let i=n.match(/#([A-Za-z0-9_]+)\s*:\s*([\s\S]+)/),s=i?.[1]?.trim()||e,o=i?.[2]?.trim()||n;return {parsed:new f(o,{code:s,cause:r}),code:e}}async function ni(r){await this.__authConnection;let e=r?.refreshToken||false;if(!e)return this.user;try{return await G.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},r)),this.user}catch{return null}}async function ii(r){await this.__connection,r=m.Params(r,{token:"string",id:"string",merge:o=>{if(o===void 0)return false;if(typeof o=="string")return [o];if(Array.isArray(o)){for(let a of o)if(typeof a!="string")throw new f('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"})}if(typeof o!="boolean"&&!Array.isArray(o))throw new f('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return o},template:o=>{if(typeof o!="object"||o===null)throw new f('"template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(o.welcome!==void 0&&(typeof o.welcome!="string"||!o.welcome))throw new f('"template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return o}});let e={token:r.token,id:r.id,merge:r.merge};r.template?.welcome&&(e.template_welcome=r.template.welcome);let t=await S.bind(this)("openid-logger",e),n=t.logger.split("#"),i=this.service+"-"+n[0],s=n[1];return {userProfile:await G.bind(this)().authenticateUser(i,s,true,true),openid:t.openid}}function Ou(r){let e=typeof globalThis<"u"?globalThis:void 0;if(e?.Buffer)return e.Buffer.from(r,"base64").toString("utf8");if(typeof atob=="function"){let t=atob(r),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return typeof TextDecoder<"u"?new TextDecoder().decode(n):t}throw new Error("No base64 decoder available in this environment")}function Mu(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Ou(n);return JSON.parse(i)}async function si(r){await this.__authConnection,this.log("loginWithToken:params",r),r=m.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Mu(r.idToken);if(this.log("loginWithToken:idTokenPayload",e),e["custom:service"]!==this.service)throw new f("Token does not belong to this service.",{code:"INVALID_REQUEST"});let t=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<t)throw new f("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=Xe(e),this.session=null,r.accessToken&&r.refreshToken)try{if(this.session=new Ke({IdToken:new $e({IdToken:r.idToken}),AccessToken:new Be({AccessToken:r.accessToken}),RefreshToken:new je({RefreshToken:r.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",be),this.log("loginWithToken:userPool",this.userPool),be&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),O=new be(n),O.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof O,cognitoUserKeys:Object.keys(O||{}),cognitoUser:O});}}catch(n){this.log("loginWithToken:err",n);try{this.log("loginWithToken:err:stringified",JSON.stringify(n));}catch{this.log("loginWithToken:err:stringifyFail",String(n));}try{let i=Object.keys(n||{}),s=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(n||{}):[],o=Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors(n||{}):{};this.log("loginWithToken:createSessionError:allKeys",{keys:i,symbols:s,descriptors:o});}catch(i){this.log("loginWithToken:createSessionError:allKeysFail",String(i));}}return this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),this.user}async function K(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await et.bind(this)(),false)}async function we(r=false){let e=null;O&&(r?e=new Promise((n,i)=>{O.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):O.signOut());let t={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};e&&(e=await e);for(let n in t)this[n]=t[n];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),e}async function et(r){await this.__connection;let{data:e}=L(r);return await we.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function oi(){if(!this.__request_signup_confirmation)throw new f("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await S.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function ai(r=false){if(typeof r=="string")r=m.Url(r);else if(typeof r!="boolean")throw new f("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new f("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await S.bind(this)("recover-account",{username:this.__disabledAccount,redirect:r}),"SUCCESS: Recovery e-mail has been sent."}async function xr(r){let e=m.Params(r,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,e.email)try{m.Email(e.email);}catch{e.username=e.email,delete e.email;}if(!e.username&&!e.email)throw new f('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await G.bind(this)().authenticateUser(e.username||e.email,e.password)}async function ui(r,e){await this.__authConnection;let t={username:"string",password:c=>m.Password(c),email:c=>m.Email(c),name:"string",address:c=>{if(!c)return "";if(typeof c=="string")return c;if(typeof c=="object")return JSON.stringify(c)},gender:"string",birthdate:c=>c?m.Birthdate(c):"",phone_number:c=>c?m.PhoneNumber(c):"",email_public:["boolean",()=>false],address_public:["boolean",()=>false],gender_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:"number",misc:"string",picture:c=>c?m.Url(c):"",profile:c=>c?m.Url(c):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:c=>c?m.Url(c):""},n=m.Params(r||{},t,["email","password"]);await et.bind(this)(),e=m.Params(e||{},{email_subscription:c=>{if(typeof c!="boolean")throw new f('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return c},signup_confirmation:c=>{let d=c;if(typeof c=="string")d=m.Url(c);else if(typeof c=="boolean")d=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(d&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return d},login:c=>{if(typeof c=="boolean"){if(e.signup_confirmation&&c)throw new f('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return c}throw new f('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})},template:c=>{if(typeof c!="object"||c===null)throw new f('"option.template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(c.signup_confirmation!==void 0){if(typeof c.signup_confirmation!="string"||!c.signup_confirmation)throw new f('"option.template.signup_confirmation" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required when "option.template.signup_confirmation" is set.',{code:"INVALID_PARAMETER"})}if(c.welcome!==void 0&&(typeof c.welcome!="string"||!c.welcome))throw new f('"option.template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return c}});let i=e?.login||false;if(n.signup_confirmation=e?.signup_confirmation||false,n.email_subscription=e?.email_subscription||false,n.email_public&&!n.signup_confirmation)throw new f('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});n.service=this.service,n.owner=this.owner;let s=G.bind(this)().createCognitoUser(n.username||n.email);for(let c of ["email_public","address_public","gender_public","birthdate_public","phone_number_public"])n[c]=n[c]?"1":"0";n.access_group&&(n.access_group=n.access_group.toString());let o=(await S.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:typeof n.signup_confirmation=="boolean"?JSON.stringify(n.signup_confirmation):n.signup_confirmation,email_subscription:n.email_subscription,template_confirmation:e?.template?.signup_confirmation||"",template_welcome:e?.template?.welcome||""})).split(":"),a=o.slice(1).join(":"),u=[new le({Name:"custom:signup",Value:o[0]}),new le({Name:"locale",Value:a.split("#")[1]}),new le({Name:"custom:signup_ticket",Value:a})];for(let c in t){let d=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(d.includes(c)?u.push(new le({Name:"custom:"+c,Value:n[c]})):u.push(new le({Name:c,Value:n[c]}))));}return await G.bind(this)().signup(s.cognitoUsername,n.password,u),n.signup_confirmation?(O=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?xr.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function ci(){await this.__connection;let r=await S.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await et.bind(this)(),r}async function li(r){await this.__connection;let e=m.Params(r,{email:i=>m.Email(i),code:["number","string"],new_password:i=>m.Password(i)},["email","code","new_password"]),t=e.code,n=e.new_password;return typeof t=="number"&&(t=t.toString()),new Promise(async(i,s)=>{G.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(t,n,{onSuccess:a=>{i("SUCCESS: New password has been set.");},onFailure:a=>{s(new f(a?.message||"Failed to reset password.",{code:a?.code||"ERROR",cause:a}));}});})}async function di(r,e,t){await this.__connection;let n;if(!O)throw new f("The user has to be logged in.",{code:"INVALID_REQUEST"});if(r==="email"||r==="phone_number"){if(!this.__user.hasOwnProperty(r))throw new f(`No ${r==="email"?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});if(this.__user?.[`${r}_verified`])return `SUCCESS: "${r}" is verified.`;n=(e?m.Params(e,{code:"string"}):{}).code||"";}else return;let i,s=t?.template?.verification;if(s!==void 0){if(typeof s!="string"||!s)throw new f('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});i={template_verification:s};}return new Promise((o,a)=>{let u={onSuccess:c=>{n?G.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[r+"_verified"]=true),o(`SUCCESS: "${r}" is verified.`);}).catch(d=>{a(d);}):o("SUCCESS: Verification code has been sent.");},onFailure:c=>{a(new f(c.message||"Failed to request verification code.",{code:c?.code}));}};n?O?.verifyAttribute(r,n,u):(u.inputVerificationCode=null,O?.getAttributeVerificationCode(r,u,i));})}function fi(r,e){return di.bind(this)("phone_number",r,e)}function hi(r,e){return di.bind(this)("email",r,e)}async function gi(r,e){await this.__connection;let t=m.Params(r,{email:s=>m.Email(s)},["email"]),n,i=e?.template?.verification;if(i!==void 0){if(typeof i!="string"||!i)throw new f('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});n={template_verification:i};}return new Promise(async(s,o)=>{G.bind(this)().createCognitoUser(t.email).cognitoUser.forgotPassword({onSuccess:u=>{s("SUCCESS: Verification code has been sent.");},onFailure:u=>{let{parsed:c,code:d}=Nt(u),l={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[d]||c.code||d||"ERROR";o(new f(c.message,{code:l,cause:u}));}},n);})}async function pi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new f('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new f('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return m.Password(e.current_password),m.Password(e.new_password),new Promise((t,n)=>{O.changePassword(e.current_password,e.new_password,(i,s)=>{if(i){if(i?.code==="InvalidParameterException")n(new f("Invalid password parameter.",{code:"INVALID_PARAMETER"}));else if(i?.code==="NotAuthorizedException")n(new f("Incorrect password.",{code:"INVALID_REQUEST"}));else if(i?.code==="TooManyRequestsException"||i?.code==="LimitExceededException")n(new f("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}));else {let{parsed:o}=Nt(i);n(o);}return}t("SUCCESS: Password has been changed.");});})}async function mi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=m.Params(r||{},{user_id:i=>m.UserId(i),email:i=>m.Email(i),address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},name:"string",gender:"string",birthdate:i=>i?m.Birthdate(i):"",phone_number:i=>i?m.PhoneNumber(i):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:i=>i?m.Url(i):"",profile:i=>i?m.Url(i):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:i=>i?m.Url(i):""});if(e&&typeof e=="object"&&!Object.keys(e).length)return this.user;e.email&&(e.preferred_username=this.service+"-"+j.hash(e.email));let t=[["email_public","email_verified","User's e-mail should be verified to set"],["phone_number_public","phone_number_verified","User's phone number should be verified to set"]];if(this.__user){for(let i of t)if(e[i[0]]&&!this.__user[i[1]])throw new f(`${i[2]} "${i[0]}" to true.`,{code:"INVALID_REQUEST"})}let n=[];for(let i in e){if(e[i]===this.user[i]){n.push(i);continue}if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(i)){let o=e[i];typeof o=="boolean"&&(o=o?"1":"0"),e["custom:"+i]=o,n.push(i);}}for(let i of n)delete e[i];if(e.user_id)if(e.user_id===this.user.user_id)delete e.user_id;else return S.bind(this)("admin-edit-profile",{attributes:e},{auth:true});if(e&&typeof e=="object"&&Object.keys(e).length){let i=[];for(let s in e)i.push(new le({Name:s,Value:e[s]}));return await new Promise((s,o)=>{O?.updateAttributes(i,(a,u)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(u);});}),await G.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function _i(r,e){r=L(r).data,r||(r={searchFor:"timestamp",condition:">",value:0},e||(e={}),e.ascending=false),await this.__connection;let t={user_id:i=>Array.isArray(i)?i.map(s=>m.UserId(s)):m.UserId(i),email:"string",phone_number:"string",locale:i=>{if(typeof i!="string"||typeof i=="string"&&i.length>5)throw new f('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>m.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(r=m.Params(r,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Value does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i},range:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Range does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i}},n),r?.condition&&r?.condition!=="="&&r.hasOwnProperty("range"))throw new f("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(r.searchFor==="user_id"&&(r.condition!=="="||r.range))throw new f(`Conditions are not allowed on "${r.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof r?.value=="string"&&!r?.value)throw new f("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof r?.searchFor=="string"&&!r?.searchFor)throw new f('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return S.bind(this)("get-users",r,{auth:true,fetchOptions:e})}async function bi(r){await this.__connection;let e=await S.bind(this)("last-verified-email",r,{auth:true});return e.includes("SUCCESS")?(await G.bind(this)().getSession({refreshToken:true}),this.user):e}async function yi(r){return await this.__connection,r=m.Params(r,{username:m.Email,redirect:m.Url},["username"]),await S.bind(this)("request-username-change",r,{auth:true})}var Vu="1.2.1",qu=class{constructor(r){ae(this,"version",Vu);ae(this,"items",[]);ae(this,"nextJobId",1);ae(this,"breakWhenError",false);ae(this,"batchSize",1);ae(this,"onProgress");ae(this,"activeCount",0);ae(this,"currentCycleCompleted",[]);ae(this,"stopProcessing",false);if(this.breakWhenError=!!r?.breakWhenError,this.batchSize=r?.batchSize??1,typeof this.batchSize!="number"||this.batchSize<1)throw new Error("batchSize must be at least 1");if(r?.onProgress)if(typeof r.onProgress=="function")this.onProgress=r.onProgress;else throw new Error("onProgress must be a function")}get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}add(r){let e=Array.isArray(r)?r:[r],t=[];for(let n of e){if(typeof n!="function")throw new Error("Each job must be a function that returns a Promise");let i=String(this.nextJobId++);this.items.push({id:i,job:n}),t.push(i);}return this.processNext(),t}setBatchSize(r){if(typeof r!="number"||r<1)throw new Error("batchSize must be at least 1");this.batchSize=r;}remove(r){let e=String(r),t=this.items.findIndex(n=>n.id===e);return t===-1?false:(this.items.splice(t,1),true)}processNext(){if(this.stopProcessing||this.items.length===0||this.activeCount>0)return;let r=this.items.splice(0,this.batchSize);this.activeCount=r.length,this.currentCycleCompleted=new Array(r.length),r.forEach((e,t)=>{Promise.resolve().then(()=>e.job()).then(n=>(this.finalizeJob(t,n,false),n)).catch(n=>(this.finalizeJob(t,n,true),n));});}finalizeJob(r,e,t){if(this.currentCycleCompleted[r]=e,this.activeCount-=1,t&&this.breakWhenError&&(this.stopProcessing=true,this.items=[]),this.activeCount!==0)return;let n=this.currentCycleCompleted.slice();this.currentCycleCompleted=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:n}),this.processNext();}terminate(){this.items=[];}},tt=qu;var Je=null,Ai=typeof SubmitEvent<"u",Bu=typeof HTMLFormElement<"u",nt=z(),Ur=0;function Ei(r){if(!r)return null;let e=Number(r);if(Number.isFinite(e))return Math.max(0,e*1e3);let t=Date.parse(r);return Number.isNaN(t)?null:Math.max(0,t-Date.now())}function Cr(r,e){return e>0?r/e*100:0}var wi=r=>{let{auth:e,type:t,endpoints:n}=r,i=n[0],s=n[1];if(Ur++,t==="admin"){let o=Object.entries(i).filter(([a,u])=>a.includes(e?"_private":"_public")&&a!=="get_users_private"&&a!=="service_public"&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available admin gateways.",{code:"INVALID_REQUEST"});return o[Ur%o.length]}if(t==="record"){let o=Object.entries(s).filter(([a,u])=>a.includes(e?"record_private":"record_public")&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available record gateways.",{code:"INVALID_REQUEST"});return o[Ur%o.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function $u(r,e){let t=await Promise.all([this.admin_endpoint,this.record_endpoint]),n=t[0],i=t[1],s=r.split("?"),o=s.length>1?"?"+s[1]:"";switch(r=s[0],r){case "get-users":return n.get_users_private+r+o;case "service":return n.service_public+r+o;case "get-newsletters":case "get-public-newsletters":case "subscribe-newsletter":case "subscribe-public-newsletter":case "signupkey":case "admin-newsletter-request":case "admin-signup":case "confirm-signup":case "openid-logger":case "block-account":case "admin-edit-profile":case "remove-account":case "post-secure":case "recover-account":case "mock":case "grant-access":case "last-verified-email":case "ticket":case "register-ticket":case "get-newsletter-subscription":case "request-username-change":case "send-inquiry":case "register-newsletter-group":case "newsletter-group-endpoint":case "invitation-list":case "csr":case "csr-poll":case "csr-cancel":return wi.bind(this)({auth:e,type:"admin",endpoints:t})+r+o;case "post-record":return (e?i.post_private:i.post_public)+r+o;case "get-records":return (e?i.get_private:i.get_public)+r+o;case "del-files":case "del-records":return i.del_private+r+o;case "store-subscription":case "get-vapid-public-key":case "push-notification":case "delete-subscription":case "subscription":case "get-subscription":case "get-table":case "get-tag":case "get-uniqueid":case "get-index":case "get-signed-url":case "extract-file-text":case "grant-private-access":case "request-private-access-key":case "get-ws-group":case "check-schema":case "get-feed":case "castspell":case "dopamine":case "getspell":return wi.bind(this)({auth:e,type:"record",endpoints:t})+r+o;default:return m.Url(r)+o}}var rt={};function Si(){Je&&(Je.terminate(),Je=null);}async function S(r,e=null,t,n){this.log("request",{url:r,data:e,options:t,_etc:n||{}}),t=t||{};let{auth:i=false,method:s="post",bypassAwaitConnection:o=false}=t;s=s.toUpperCase();let a=null,u=e?.service||this.service,c=e?.owner||this.owner,d=null,l=await $u.bind(this)(r,!!i);if(!o&&(a=await this.__connection,!a))throw new f("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});let h=t?.tokenHeaders?.idToken===true;(i||h)&&(d=await We.bind(this)());let _={},{fetchMore:g=false,progress:p}=t?.fetchOptions||{};if(t?.fetchOptions&&Object.keys(t.fetchOptions).length){for(let P of ["limit","startKey","ascending"])if(t.fetchOptions.hasOwnProperty(P)){if(P==="startKey"&&t.fetchOptions[P]===null)continue;_[P]=t.fetchOptions[P];}_=m.Params(_,{limit:P=>{if(typeof P!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(P>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return P},startKey:P=>P,ascending:"boolean"});}let w=n?.ignoreService?{}:{service:u,owner:c};Object.assign(w,_),e=L(e).data,e?e&&typeof e=="object"&&(e=Object.assign(w,e)):e=w;let b=`${s}:${i?"auth":"public"}:${r}`,R=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(nt&&e instanceof FormData)){let P=function(D){return typeof D=="object"&&D!==null?Object.keys(D).sort().reduce((N,F)=>(typeof D[F]=="object"&&D[F]!==null?N[F]=P(D[F]):N[F]=D[F],N),{}):D};return j.hash(b+"/"+JSON.stringify(P(e)))}return j.hash(b+"/"+u)})(),{requestKey:C,requestKeyWithStartKey:I}=ju.bind(this)({params:e,url:r,fetchMore:g,hashedParams:R});if(!C||C&&typeof C=="object")return C;if(this.log("requestKey",I),typeof I=="string"&&rt[I]instanceof Promise)return this.log("request:returning pending",I),rt[I];let k={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(t,"contentType")&&t.contentType!==void 0){let P=t.contentType===null?"application/x-www-form-urlencoded":t.contentType;P&&(k["Content-Type"]=P);}else k["Content-Type"]="application/json";if(d&&(k.Authorization=d),t?.tokenHeaders){let P=(F,ke)=>typeof F=="string"?F:F===true?ke:null,D=P(t.tokenHeaders.accessToken,this.session?.accessToken?.jwtToken||null),N=P(t.tokenHeaders.idToken,this.bearerToken||this.session?.idToken?.jwtToken||d||null);D&&(k["X-Access-Token"]=D),N&&(k["X-Id-Token"]=N);}let Re={public_identifier:this.__public_identifier,service:u,owner:c};k["Content-Meta"]=JSON.stringify(Re);let V={headers:k};if(t?.responseType&&(V.responseType=t.responseType),s==="GET"){if(e){let P=[];if(nt&&e instanceof FormData?P=Array.from(e.entries()).map(([D,N])=>{let F=typeof N=="string"?N:N.name;return encodeURIComponent(D)+"="+encodeURIComponent(F)}):P=Object.keys(e).map(D=>{let N=e[D];return typeof N!="string"&&(N=JSON.stringify(N)),encodeURIComponent(D)+"="+encodeURIComponent(N)}),P.length){let D=l.includes("?")?l.endsWith("?")||l.endsWith("&")?"":"&":"?";l+=D+P.join("&");}}V.body=null;}else if(nt&&e instanceof FormData)V.body=e;else if(k["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let P=new URLSearchParams;for(let D of Object.keys(e)){let N=e[D];P.append(D,typeof N=="string"?N:JSON.stringify(N));}V.body=P.toString();}else typeof e=="string"?V.body=e:V.body=e?JSON.stringify(e):null;if(V.method=s,Je===null){let P={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:D=>{this.onBatchProcess.forEach(N=>N(D));}};Je=new tt(P);}return this.log("request-opt",V),new Promise((P,D)=>{Je.add([async()=>{let N=vi.bind(this)(l,V,p);rt[I]=N;try{let F=Ku.bind(this)({hashedParam:C,requestKeyWithStartKey:I,url:r,fetched:await N});return delete rt[I],this.log("request:end",F),P(F),F}catch(F){throw delete rt[I],this.log("request:err",F),D(F),F}}]);})}function ju(r){let{params:e={},url:t,fetchMore:n=false,hashedParams:i}=r||{};if(e.startKey){if(!(typeof e.startKey=="object"&&Object.keys(e.startKey).length)&&e.startKey!=="start"&&e.startKey!=="end")throw new f(`"${e.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});e.startKey==="start"&&(n=false,delete e.startKey);}if(!n){if(this.__cached_requests?.[t]?.[i]&&delete this.__cached_requests[t][i],this.__startKeyHistory?.[t]?.[i]){if(Array.isArray(this.__startKeyHistory[t][i])&&this.__startKeyHistory[t][i].length)for(let u of this.__startKeyHistory[t][i]){let c=i+j.hash(u);this.__cached_requests?.[t]&&this.__cached_requests?.[t]?.[c]&&delete this.__cached_requests[t][c];}delete this.__startKeyHistory[t][i];}return {requestKeyWithStartKey:i,requestKey:i}}if(!Array.isArray(this.__startKeyHistory?.[t]?.[i]))return {requestKeyWithStartKey:i,requestKey:i};let s=this.__startKeyHistory[t][i],o=s[s.length-1],a=i;if(o){if(o==="end")return {requestKey:{list:[],startKey:"end",endOfList:true,startKeyHistory:s},requestKeyWithStartKey:a};a+=j.hash(o),e.startKey=JSON.parse(o);}return this.__cached_requests?.[t]?.[a]?{requestKey:this.__cached_requests[t][a],requestKeyWithStartKey:a}:{requestKeyWithStartKey:a,requestKey:i}}function vi(r,e,t){return new Promise((n,i)=>{let s=new XMLHttpRequest;s.open(e.method||"GET",r);for(var o in e.headers||{})s.setRequestHeader(o,e.headers[o]);e.responseType&&(s.responseType=e.responseType),s.onload=()=>{if(s.status<400)if(e.responseType=="json"||e.responseType=="blob")n(s.response);else {let a=s.responseText;try{a=JSON.parse(a);}catch{}n(a);}else if(s.status===429){let a=s.getResponseHeader("Retry-After"),u=Ei(a);u!==null?setTimeout(()=>{vi(r,e,t).then(n,i);},u):i("Too many requests");}else {let a=s.status,u=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],c=e.responseType=="blob"?s.response:s.responseText;try{c=JSON.parse(c);}catch{}if(typeof c=="string"){let d=c.split(":"),l=d.splice(0,1)[0].trim(),h=d.join(":").trim();i(new f(h||c,{code:u.includes(l)?l:"ERROR"}));}else if(typeof c=="object"&&c?.message){let d=c?.code||(a?a.toString():null)||"ERROR",l=c.message,h=c?.cause;typeof l=="string"&&(l=l.trim()),i(new f(l,{cause:h,code:d}));}else i(c);}},s.onerror=()=>i("Network error"),s.onabort=()=>i("Aborted"),s.ontimeout=()=>i("Timeout"),typeof t=="function"&&(s.onprogress=a=>{t({status:"download",progress:Cr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Cr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Ku(r){let{hashedParam:e,requestKeyWithStartKey:t,url:n,fetched:i}=r;if(!i?.startKey)return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__startKeyHistory[n].hasOwnProperty(e)||(this.__startKeyHistory[n][e]=[]);let s=i.startKey==="end"?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][e].includes(s)||this.__startKeyHistory[n][e].push(s),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][e]},i)}async function Lt(r,e){await this.__connection;let{record_id:t,service:n=this.service,progress:i}=e;if(!t)throw new f('"record_id" is required.',{code:"INVALID_PARAMETER"});if(Ai&&r instanceof SubmitEvent&&(r=r.target),Bu&&r instanceof HTMLFormElement&&(r=new FormData(r)),!nt||!(r instanceof FormData))throw new f('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:De(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,u=(_,g,p)=>new Promise((w,b)=>{a=new XMLHttpRequest,a.open("POST",_),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)w(R);else if(a.status===429){let C=a.getResponseHeader("Retry-After"),I=Ei(C);I!==null?setTimeout(()=>{u(_,g,p).then(w,b);},I):b("Too many requests");}else b(R);},a.onerror=()=>b("Network error"),a.onabort=()=>b("Aborted"),a.ontimeout=()=>b("Timeout"),a.upload&&typeof p=="function"&&(a.upload.onprogress=p),a.send(g);});function c(_){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(_===0)return g[0];let p="";for(;_>0;)p=g[_%62]+p,_=Math.floor(_/62);return p}let d=[],l=[],h=[];for(let[_,g]of r.entries()){if(!(g instanceof File))continue;let p=Object.assign({key:_+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:w=null,url:b,cdn:R}=await S.bind(this)("get-signed-url",p,{auth:!!this.__user});h.push(R);let C=new FormData;for(let I in w)C.append(I,w[I]);C.append("file",g);try{await u(b,C,typeof i=="function"?I=>i({status:"upload",progress:Cr(I.loaded,I.total),currentFile:g,completed:d,failed:l,loaded:I.loaded,total:I.total,abort:()=>a.abort()}):null),d.push(g);}catch{l.push(g);}}return {completed:d,failed:l,bin_endpoints:h}}var Ft={};function T(r){let{preventMultipleCalls:e=false}=r||{};return function(t,n,i){let s=i.value;i.value=function(...o){let a=o[0],u=true,c=null,d="",l={},h=false;if(Ai&&a instanceof SubmitEvent){a.preventDefault();let b=window.location.href;c=a.target;let R=new URL(c.action);d=R.href;let C=d?d.match(/(?<=\{).*?(?=\})/g):"";if(C)for(let I of C){if(!I)continue;let k=c.querySelector(`[name="${I}"]`);if(k)if(k.type==="file")for(let H=0;H<=k.files.length-1;H++)k.files[H]&&(l[I]||(l[I]=[]),l[I].push(new Promise((Re,V)=>{let P=new FileReader;P.onload=function(){Re(P.result);},P.readAsDataURL(k.files[H]),P.onerror=V;})));else d=d.replace(`{${I}}`,k.value);}c.getAttribute("action")===null?u=false:h=R.href===b;}let _=async b=>{if(d)for(let R in l)l[R].length&&(d=d.replace(`{${R}}`,(await Promise.all(l[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${j.hash(d)}`,JSON.stringify(b)),h?window.location.replace(d):window.location.href=d),b},g,p=b=>{throw b instanceof f?b.name=n+"()":b=b instanceof Error?b:new f(b,{name:n+"()"}),b},w=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let b=await g;return _(b)}return _(g)}catch(b){throw p(b)}};if(e){let b=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Ft?.[b]||(Ft[b]=w().finally(()=>{delete Ft[b];})),Ft[b]}return w()};}}async function Ti(){await this.__connection;let r=`${this.service}:${j.hash(window.location.href.split("?")[0])}`,e=window.sessionStorage.getItem(r);if(window.sessionStorage.removeItem(r),e!==null){try{e=JSON.parse(e);}catch{}return e}return null}var Hu=128,Wu=64,Ju=128,Gu=256,Qu="\u{10FFFF}",zu=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,Yu=/[\/!*#]/,Xu={"/":"%2F","!":"%21","*":"%2A","#":"%23"},Zu={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function ec(r){return r.replace(/%/g,"%25").replace(/[\/!*#]/g,t=>Xu[t]||t)}function ie(r){return typeof r!="string"?r:r.replace(/%(2F|21|2A|23)/gi,t=>{let n=t.toUpperCase();return Zu[n]||t}).replace(/%25/gi,"%")}function Se(r,e,t={}){let{allowEmpty:n=false,maxLength:i,blockKeyDelimiters:s=false,disallowLeadingDollar:o=false,onlyAlphanumeric:a=false}=t;if(typeof r!="string")throw new f(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(r))throw new f(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&r.length===0)throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&r.length>i)throw new f(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(zu.test(r)||r.includes(Qu))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&Yu.test(r)&&(r=ec(r)),o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function Dr(r,e="table.name"){return Se(r,e,{allowEmpty:false,maxLength:Hu,blockKeyDelimiters:true})}function kr(r,e="tag"){return Se(r,e,{allowEmpty:false,maxLength:Wu,blockKeyDelimiters:true})}function it(r,e="index.name"){return Se(r,e,{allowEmpty:false,maxLength:Ju,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Ri(r,e="index.value"){return Se(r,e,{allowEmpty:true,maxLength:Gu})}function Ii(r){if(!r.record_id&&!r.unique_id)return null;let e={};return r?.service&&(e.service=r.service),r?.owner&&(e.owner=r.owner),r?.record_id?e.record_id=Se(r.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):r?.unique_id&&(e.unique_id=r.unique_id),e}function Nr(r){if(r===void 0)return 0;if(typeof r=="number"){if(r>99||r<0)throw new f('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else if(typeof r=="string"){if(r={private:"private",public:0,authorized:1,admin:99}[r],r===void 0)throw new f('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}else throw new f('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(!this.__user&&r)throw new f("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return r}var Ot=4503599627370496;function Mt(r){if(typeof r=="number"){if(r>Ot||r<-Ot)throw new f(`Number value should be within range -${Ot} ~ +${Ot}`,{code:"INVALID_PARAMETER"});return r}if(typeof r=="boolean")return r;if(typeof r=="string")return Ri(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function Pi(r,e){if(!e.index||!("value"in e.index))throw new f('"index.value" is required.',{code:"INVALID_PARAMETER"});if(e.index.name==="$record_id")throw new f(`Cannot do "index.range" on ${e.index.name}`,{code:"INVALID_PARAMETER"});if(typeof e.index.value!=typeof r)throw new f('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof r=="string"?Ri(r,"index.range"):r}var Vt={};async function Ge(r,e){let t={user_id:"",record_id:"",updated:0,uploaded:0,readonly:false,table:{name:"",access_group:0,subscription:{is_subscription_record:false,upload_to_feed:false,notify_subscribers:false,feed_referencing_records:false,notify_referencing_records:false}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:false,can_remove_referencing_records:false,only_granted_can_reference:false},ip:"",bin:{}},n=false;function i(o){let a=o=="**"?"private":parseInt(o);return a=a==0?"public":a==1?"authorized":a==99?"admin":a,a}let s={ip:o=>{let a=o.split("#"),u=a[0];a.length>1&&(t.unique_id=a.slice(1).join("#")),u.slice(-1)==="R"?(t.readonly=true,u=u.slice(0,-1)):t.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(u)&&(u=u.split("-").join("."),n=true),t.ip=u;},rec:o=>{if(!o)return;t.record_id=o;let a=o.substring(0,o.length-9),u=ne(a);t.uploaded=u;},usr:o=>{t.user_id=o;},tbl:o=>{if(o&&!t.table.name){let a=o.split("/");t.table.name=ie(a[0]),t.table.access_group=i(a[2]),a?.[3]&&(t.table.subscription.is_subscription_record=true);}},usr_tbl:o=>{let a=o.split("/");t.user_id||(t.user_id=a[0]),t.table.name||(t.table.name=ie(a[1]),t.table.access_group=i(a[3]),a?.[4]&&(t.table.subscription.is_subscription_record=true));},idx:o=>{if(!o)return;let a=o.split("!"),u=ie(a.splice(0,1)[0]),c=tc("!"+a.join("!"));typeof c=="string"&&(c=ie(c)),t.index={name:u,value:c};},ref:o=>{o&&(t.reference=o.split("/")[0]);},tags:o=>{t.tags=Array.isArray(o)?o.map(a=>ie(a)):o;},upd:o=>{t.updated=o;},acpt_mrf:o=>{t.source.prevent_multiple_referencing=!o;},ref_limt:o=>{t.source.referencing_limit=o;},rfd:o=>{t.referenced_count=o;},bin:async o=>{let a={},u=t?.reference||null;if(Array.isArray(o)){let c=await Promise.all(o.map(async d=>{try{let l=d.split("/").slice(3).join("/"),h=l.split("/");if(h.length<12)return null;let _=decodeURIComponent(h[h.length-1]),g=decodeURIComponent(h[10]),p=h[9],w=h[8],b=i(h[6]),R=d;if(b!=="public")try{R=await qt.bind(this)(d,{dataType:"endpoint",_ref:u});}catch(I){console.error("Error getting signed url for private file:",I),R=d;}let C={access_group:b,filename:_,url:R,path:l,size:ne(p),uploaded:ne(w),getFile:(I,k)=>{let H={dataType:I||"download",progress:k,_ref:u,_update:C};return qt.bind(this)(R,H)}};return {pathKey:g,obj:C}}catch{return null}}));for(let d of c)if(d){if(a[d.pathKey]){a[d.pathKey].push(d.obj);continue}a[d.pathKey]=[d.obj];}}t.bin=a;},prv_acs:o=>{for(let a in o)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(a)?t.table.subscription[a]=o[a]:t.source[a]=o[a];},data:o=>{let a=o;o==="!D%{}"?a={}:o==="!L%[]"&&(a=[]),t.data=a;}};if(r.record_id)return r;for(let o in s)if(r.hasOwnProperty(o)){let a=s[o](r[o]);a instanceof Promise&&await a;}return n&&(t.user_id="anonymous:"+t.user_id),t}function tc(r){let e=r.substring(3);switch(r.substring(0,3)){case "!S%":return e;case "!N%":let n=e.split("."),i=Number(n[0])-4503599627370496;return n.length===1?i:parseFloat(i.toString()+"."+n[1]);case "!B%":return e==="1";case "!L%":case "!D%":try{return JSON.parse(e)}catch{throw new f("Value parse error.",{code:"PARSE_ERROR"})}default:return r}}async function xi(r){let{endpoints:e}=r;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new f('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let t=await S.bind(this)("del-files",{endpoints:e,storage:"records"},{auth:true,method:"post"}),n=[];for(let i in t)n.push(Ge.bind(this)(t[i]));return Promise.all(n)}async function qt(r,e){if(typeof r!="string")throw new f('"url" should be type: string.',{code:"INVALID_PARAMETER"});let t=r.split("?"),n=t.shift()||"",i=t.length?"?"+t.join("?"):"",s=m.Url(n);r=s+i;let o=false,a=s.split("/"),c=a[2].split("."),d=null;c.length===3&&c[1]==="skapi"&&(d=c[0],o=true);let l=a.slice(3),h=false;if(!o&&(l[0]==="auth"||l[0]==="publ"))try{m.UserId(l[2]),m.UserId(l[3]),h=l[0]=="auth",o=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let _=d?null:l[1];if(e=m.Params(e,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:["function","undefined",null],_ref:[null,"string"],_update:b=>b}),e?.dataType==="info")return {url:r,filename:l[l.length-1],fileKey:l[l.length-2],access_group:l[6]==="**"?"private":l[6]==="01"?"authorized":l[6]==="00"?"public":parseInt(l[6]),uploader:l[3],record_id:l[4]==="records"?l[5]:"N/A",filesize:ne(l[9]),uploaded:ne(l[8])};let g=r.split("/").slice(-1)[0],p=e.expires;if(p){if(!o)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(p<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let b={request:d?"get-host":"get",id:d||l[5],key:r,expires:p};_&&(b.service=_),r=(await S.bind(this)("get-signed-url",b,{auth:true})).url;}else if(h){let b=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<b)){this.log("getFile:requesting new token",null);try{await G.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:b,expiresIn:this.session?.idToken?.payload?.exp-b,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(k){throw this.log("getFile:new token error",k),new f("User login is required.",{code:"INVALID_REQUEST"})}}let R=this.bearerToken||this.session?.idToken?.jwtToken;if(!R||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(R)}`;let C=l[6]==="**"?"**":parseInt(l[6]),I=this.user?.access_group??-1;if(this.user.user_id!==l[3]&&(C==="**"||I<C)){let k=l[5];if(this.__private_access_key[k]&&typeof this.__private_access_key[k]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[k])}`;else if(this.owner!==this.host)try{let H=await this.requestPrivateRecordAccessKey({record_id:k,reference_id:e?._ref});r+=`&p=${encodeURIComponent(H)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let b=document.createElement("a");return b.href=r,document.body.appendChild(b),b.setAttribute("download",g),b.target="_blank",b.click(),document.body.removeChild(b),null}return new Promise(async(b,R)=>{try{let C=await S.bind(this)(r,null,{method:"get",contentType:null,responseType:e?.dataType==="text"?"text":"blob",fetchOptions:{progress:e?.progress}},{ignoreService:!0});if(e?.dataType==="base64"){let I=new FileReader;I.onloadend=()=>b(I.result),I.readAsDataURL(C);}else b(C);}catch(C){R(C);}})}async function Ui(r,e=false){r=L(r,{ignoreEmpty:true}).data||{};let t="",n=Ii(r);if(n)r=n,t=r.record_id||r.unique_id,typeof t=="string"&&(typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),this.__my_unique_ids[t]&&(e?delete this.__my_unique_ids[t]:r.record_id=this.__my_unique_ids[t]));else {let i=await K.bind(this)(),s=r?.reference,o=false;typeof s=="object"&&Object.keys(s).length&&(s?.record_id||s?.unique_id?(t=s.record_id||s.unique_id,t&&typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),r.reference=t):s?.user_id&&(o=s.user_id===this.user?.user_id,r.reference=s.user_id)),typeof r?.table=="string"&&(r.table={name:r.table,access_group:0}),r.index&&r.index.hasOwnProperty("range")&&r.index.hasOwnProperty("condition")&&delete r.index.range;let a=u=>({table:{name:c=>Dr(c,"table.name"),access_group:Nr.bind(this),subscription:c=>m.UserId(c,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",c=>it(c,"index.name")],value:c=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:m.UserId};if(d.hasOwnProperty(u.index.name)){let l=d[u.index.name];if(typeof l=="function")return l(c);if(l!==typeof c)throw new f(`"index.value" should be type: ${l}.`,{code:"INVALID_PARAMETER"});return c}return typeof c=="string"&&!c?"":Mt(c)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:c=>Pi(c,u)},tag:c=>{if(c==null)return c;if(typeof c=="string")return kr(c,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=m.Params(r||{},a(r),o||i?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:t}}async function Ci(r,e){await this.__connection;let t=await Ui.bind(this)(r),n=t.is_reference_fetch,i=await S.bind(this)("get-records",t.query,{fetchOptions:e,auth:!!this.__user,method:this.__user?"post":"get"});n&&i?.reference_private_key&&typeof i.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key);let s=[];for(let o in i.list)s.push(Ge.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function Di(r){let e="",t=[],n=m.Params(r||{},{record_id:s=>typeof s=="string"&&this.__my_unique_ids[s]?this.__my_unique_ids[s]:Se(s,"record_id",{allowEmpty:false}),unique_id:["string",null],readonly:"boolean",table:{name:s=>Dr(s,"table.name"),subscription:[null,{is_subscription_record:"boolean",upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"}],access_group:Nr.bind(this)},source:{referencing_limit:s=>{if(s===null)return null;if(typeof s=="number"){if(0>s)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(s>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return s}throw new f('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:s=>{if(s===void 0)return;if(!s||Array.isArray(s)&&!s.length)return null;let o={name:u=>it(u,'"name" in "index_restrictions"'),value:u=>Mt(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof s.value!=typeof u)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!s.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return u}};Array.isArray(s)||(s=[s]);let a=s.map(u=>m.Params(u,o,["name"]));if(a.length)for(let u of a)u.condition&&u.hasOwnProperty("range")&&delete u.range;return a}},reference:s=>{if(s===null)return {record_id:null};if(s){if(typeof s=="string")return e=s,this.__my_unique_ids[s]?this.__my_unique_ids[s]:s;if(typeof s!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return m.Params(s,{unique_id:"string",record_id:o=>o==null?o:(e=o,typeof this.__private_access_key?.[o]=="string"&&(r.reference_private_key=this.__private_access_key[o]||void 0),Se(o,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:s=>it(s,"index.name"),value:s=>Mt(s)}],tags:s=>{if(s==null)return s;if(typeof s=="string"&&(s=s.split(",").map(o=>o.trim())),!Array.isArray(s))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return s.map(o=>kr(o,"tag"))},remove_bin:s=>{if(!s)return null;let o=[];if(Array.isArray(s))for(let a of s)if(typeof a=="string")o.push(decodeURIComponent(a.split("?")[0]));else if(a.url&&a.size&&a.filename){let c=a.url.split("/").slice(0,3).join("/")+"/"+a.path;o.push(c);}else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});return o},progress:"function",data:s=>s},[],{precall:s=>{let o=s?.data||{};if(!o?.record_id&&!o.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof o.table=="string"&&(o.table={name:o.table,access_group:0}),s.files&&(t=s.files);}}),i=r.progress||null;if(delete n.progress,!this.__user){let s=!!(n.table?.subscription?.is_subscription_record||n.table?.subscription?.upload_to_feed||n.table?.subscription?.notify_subscribers||n.table?.subscription?.feed_referencing_records||n.table?.subscription?.notify_referencing_records);if(n.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(n.table.access_group!=="public"&&n.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(n.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(n.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:n,progress:i,is_reference_post:e,files:t}}async function ki(r){if(await this.__connection,!Array.isArray(r)||!r.length)throw new f('"params" should be a non-empty array.',{code:"INVALID_PARAMETER"});let e=[],t,n,i=null,o={_is_bulk_:r.map((l,h)=>{if(!l||typeof l!="object"||Array.isArray(l))throw new f(`"params[${h}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let _=Di.bind(this)(l),g=_.config;if(_.is_reference_post&&e.push(_.is_reference_post),typeof g.progress=="function"&&i===null&&(i=g.progress),g.service!==void 0){if(t===void 0)t=g.service;else if(t!==g.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(g.owner!==void 0){if(n===void 0)n=g.owner;else if(n!==g.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete g.progress,delete g.service,delete g.owner,g}),service:"",owner:""};t!==void 0&&(o.service=t),n!==void 0&&(o.owner=n);let a={auth:!!this.__user,method:"post"},u={};Object.keys(u).length&&Object.assign(a,{fetchOptions:u});let c=await S.bind(this)("post-record",o,a),d=await Promise.all(c.map(l=>Ge.bind(this)(l,"called from postRecord")));for(let l=0;l<c.length;l++){let h=c[l],_=d[l];if(typeof h?.reference_private_key=="string")for(let g of e)this.__private_access_key[g]=h.reference_private_key;_?.unique_id&&(this.__my_unique_ids[_.unique_id]=_.record_id);}return d}async function Ni(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Di.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},u=[],c=L(r);t&&Array.isArray(t)&&t.length&&(u=u.concat(t)),c.files&&Array.isArray(c.files)&&c.files.length&&(u=u.concat(c.files));let d=null;d=Object.assign({data:c.data},i);let l={};typeof s=="function"&&(l.progress=s),Object.keys(l).length&&Object.assign(a,{fetchOptions:l});let h=await S.bind(this)("post-record",d,a);if(z()&&u.length){let g=new FormData;for(let b of u)g.append(b.name,b.file,b.file.name);let p={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(p.service=i.service);let{bin_endpoints:w}=await Lt.bind(this)(g,p);h.bin?h.bin.push(...w):h.bin=w;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let _=await Ge.bind(this)(h,"called from postRecord");return _.unique_id&&(this.__my_unique_ids[_.unique_id]=_.record_id,z()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids));}catch{}},500))),_}async function Fi(r,e){let t=await S.bind(this)("get-table",m.Params(r||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e})),n={cnt_rec:"number_of_records",tbl:"table",srvc:"service",grp_:"number_of_records_in_access_group_"};if(Array.isArray(t?.list))for(let i of t.list){for(let s in n){if(s==="grp_"){for(let o in i)if(o.startsWith("grp_")){let a=o.substring(4);a==="pv"?a="private":a==="00"?a="public":a==="01"?a="authorized":a==="99"&&(a="admin"),i[`number_of_records_in_access_group_${a}`]=i[o],delete i[o];}}i.hasOwnProperty(s)&&(i[n[s]]=i[s],delete i[s]);}typeof i.table=="string"&&(i.table=ie(i.table));}return t}async function Li(r,e){if(!r?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let t=m.Params(r||{},{table:"string",index:s=>it(s,"index.name"),order:{by:["average_number","total_number","number_count","average_bool","total_bool","bool_count","string_count","index_name","number_of_records"],value:["string","number","boolean"],condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}},["table"]);if(t.hasOwnProperty("order")){if(!t.order?.by)throw new f('"order.by" is required.',{code:"INVALID_PARAMETER"});if(t.order.hasOwnProperty("condition")&&!t.order.hasOwnProperty("value"))throw new f('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("index")&&t.index.substring(t.index.length-1)!==".")throw new f('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let n=await S.bind(this)("get-index",t,Object.assign({auth:!!this.__user},{fetchOptions:e})),i={cnt_bool:"boolean_count",cnt_numb:"number_count",totl_numb:"total_number",totl_bool:"total_bool",avrg_numb:"average_number",avrg_bool:"average_bool",cnt_str:"string_count"};return Array.isArray(n?.list)&&(n.list=n.list.map(s=>{let o=s.idx.split("/"),a={table:ie(o[1]),index:ie(o[2]),number_of_records:s.cnt_rec};for(let u in i)Object.prototype.hasOwnProperty.call(s,u)&&(a[i[u]]=s[u]);return a})),n}async function Oi(r,e){let t=await S.bind(this)("get-tag",m.Params(r||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));return Array.isArray(t?.list)&&(t.list=t.list.map(n=>{let i=n.tag.split("/");return {table:ie(i[1]),tag:ie(i[0]),number_of_records:n.cnt_rec}})),t}async function Mi(r,e){let t=await S.bind(this)("get-uniqueid",m.Params(r||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));if(Array.isArray(t?.list))for(let n in t.list){let i=t.list[n];t.list[n]={unique_id:i.unq,record_id:i.rec};}return t}async function Vi(r,e){await this.__connection;let t=await Ui.bind(this)(r,true),n=t.is_reference_fetch,i=await S.bind(this)("del-records",t.query,{auth:true,fetchOptions:e});return n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),i?.message||i}function qi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function Bi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function $i(r,e){let t={record_id:r.record_id||void 0,user_id:r.user_id||void 0,execute:"list"};if(!t.record_id&&!t.user_id)throw new f("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(t.user_id)if(typeof t.user_id=="string")m.UserId(t.user_id),t.user_id=[t.user_id];else if(Array.isArray(t.user_id))for(let s of t.user_id)m.UserId(s);else throw new f("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});let n=s=>(s.rec_usr?(s.record_id=s.rec_usr.split("/")[0],s.user_id=s.rec_usr.split("/")[1]):s.usr_rec&&(s.user_id=s.usr_rec.split("/")[0],s.record_id=s.usr_rec.split("/")[1]),s),i=await S.bind(this)("grant-private-access",t,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function ji(r){let e=r.record_id,t=r.reference_id||void 0;if(!e)throw new f("Record ID is required.",{code:"INVALID_PARAMETER"});if(typeof e!="string")throw new f("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(t&&typeof t!="string")throw new f("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(typeof this.__private_access_key[e]=="string")return Promise.resolve(this.__private_access_key[e]);if(Vt[e])return Vt[e];let n=S.bind(this)("request-private-access-key",{record_id:e,reference_id:t},{auth:true}).then(i=>{let s=typeof i=="string"?i:i?.private_key;if(typeof s!="string")throw new f("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete Vt[e];});return Vt[e]=n,n}function Ki(r){r.execute;let t=m.Params(r,{record_id:"string",user_id:n=>{if(!n)throw new f("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new f("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)m.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),S.bind(this)("grant-private-access",t,{auth:true})}var x={},$={},se={},fe={},de={},Bt={},$t={};function Hi(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function jt(r,e,t){let n=[];if(r[e]){for(let i of r[e])if(i){let s=t(i);s instanceof Promise&&(s=await s),n.push(s);}delete r[e];}return n}async function Lr(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let t=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await x[s].setRemoteDescription(new RTCSessionDescription(i));let a=await x[s].createAnswer();await x[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}x?.[e]?r?(await jt($t,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await jt($t,e,i=>n.bind(this)(i,e,t)):r&&Hi($t,e,r);}async function Or(r,e){if(this.log("receiveIceCandidate",r),x?.[e]&&x[e]?.remoteDescription&&x[e]?.remoteDescription?.type){if(!r)return jt(Bt,e,t=>x[e].addIceCandidate(t));await jt(Bt,e,t=>x[e].addIceCandidate(t)),await x[e].addIceCandidate(r);}else Hi(Bt,e,r);}async function oe(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});m.Params(r,{cid:s=>{if(typeof s!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(s&&s.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return s},close:"boolean"});let e=await this.__socket,{cid:t,close_all:n=false}=r||{};if(!n&&!t)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});let i=s=>{if(!s)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete $t[s],delete Bt[s],$[s]&&Object.values($[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete $[s],x?.[s]){x[s].connectionState!=="closed"&&(x[s].close(),e.send(JSON.stringify({action:"rtc",uid:s,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let o={type:"connectionstatechange",target:x[s],timestamp:new Date().toISOString(),state:x[s].connectionState,iceState:x[s].iceConnectionState,signalingState:x[s].signalingState};de[s]&&de[s](o),this.log("closeRTC",o);}delete de[s],delete fe[s],delete se[s],delete x[s];};if(n)for(let s in x)i(s);else i(t);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function Wi(r){if(r instanceof MediaStream)return r;if(!r.video&&!r.audio){let e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;let i=t.captureStream().getVideoTracks()[0];return e.addTrack(i),e}return window.navigator.mediaDevices.getUserMedia(r)}async function Ji(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof e!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});r=m.Params(r,{cid:o=>{if(typeof o!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&o.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return o},ice:["string",()=>"stun:stun.skapi.com:3468"],media:o=>o,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:true,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:t,ice:n}=r;if(!(r?.media instanceof MediaStream)&&(r?.media?.video||r?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(i.readyState!==1)throw new f("Realtime connection is not ready.",{code:"INVALID_REQUEST"});let s={iceServers:[{urls:n}]};x?.[t]||(x[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Wi(r.media),this.__mediaStream.getTracks().forEach(o=>{x[t].addTrack(o,this.__mediaStream);})),de[t]=e,$[t]||($[t]={});for(let o=0;o<r.channels.length;o++){let a=r.channels[o];if(typeof a=="string")switch(a){case "text-chat":a={ordered:true,maxRetransmits:10,protocol:"text-chat"};break;case "file-transfer":a={ordered:false,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case "video-chat":a={ordered:true,maxRetransmits:10,protocol:"video-chat"};break;case "voice-chat":a={ordered:true,maxRetransmits:10,protocol:"voice-chat"};break;case "gaming":a={ordered:false,maxPacketLifeTime:100,protocol:"gaming"};break;default:a={ordered:true,maxRetransmits:10,protocol:"default"};break}let u=a.protocol||"default";if(Object.keys($[t]).includes(u))throw new f(`Data channel with the protocol "${u}" already exists.`,{code:"INVALID_REQUEST"});let c=x[t].createDataChannel(u,a);$[t][u]=c;}for(let o in $[t]){let a=$[t][o];zi.bind(this)(t,a);}return Qi.bind(this)(t,["onnegotiationneeded"]),await Fr.bind(this)(t),{hangup:()=>se[t]&&se[t](false),connection:new Promise(o=>{se[t]=(a=>{if(this.log("receiver picked up the call",t),!a)return oe.bind(this)({cid:t}),null;x[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),Fr.bind(this)(t),de[t]&&de[t]({type:"negotiationneeded",target:x[t],timestamp:new Date().toISOString(),signalingState:x[t].signalingState,connectionState:x[t].iceConnectionState,gatheringState:x[t].iceGatheringState});},o({target:x[t],channels:$[t],hangup:()=>oe.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function Gi(r){return async(e,t)=>{e=e||{},e=L(e).data;let n=r.sender_cid,i=await this.__socket;if(!fe[n])return null;if(typeof t!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=e;return x?.[n]||(x[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Wi(e.media),this.__mediaStream.getTracks().forEach(o=>{x[n].addTrack(o,this.__mediaStream);})),delete fe[n],de[n]=t,$[n]||($[n]={}),x[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;$[n][a.label]=a,zi.bind(this)(n,a);},Qi.bind(this)(n,["onnegotiationneeded"]),await Lr.bind(this)(null,n),await Or.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:x[n],channels:$[n],hangup:()=>oe.bind(this)({cid:n}),media:this.__mediaStream}}}async function Fr(r){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",r);let e=await this.__socket,t=await x[r].createOffer();await x[r].setLocalDescription(t);let n=x[r].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:r,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function rc(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",e);let t=await this.__socket;if(!r.candidate){this.log("candidate-end","all ice candidates have been sent");return}let n=de[e]||(()=>{}),i=r.candidate;this.log("ice gathering state set to",x[e].iceGatheringState),n({type:"icecandidate",target:x[e],timestamp:new Date().toISOString(),candidate:r.candidate.candidate,sdpMid:r.candidate.sdpMid,sdpMLineIndex:r.candidate.sdpMLineIndex,usernameFragment:r.candidate.usernameFragment,protocol:r.candidate.protocol,gatheringState:x[e].iceGatheringState,connectionState:x[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Qi(r,e){let t=new Set(e),n=de[r]||(o=>{}),i=x[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{rc.bind(this)(o,r),o.candidate?n({type:"icecandidate",target:i,timestamp:new Date().toISOString(),candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex,usernameFragment:o.candidate.usernameFragment,protocol:o.candidate.protocol,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState}):n({type:"icecandidateend",target:i,timestamp:new Date().toISOString()});},onicecandidateerror:o=>{n({type:"icecandidateerror",target:i,timestamp:new Date().toISOString(),errorCode:o.errorCode,errorText:o.errorText,url:o.url,hostCandidate:o.hostCandidate,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState});},oniceconnectionstatechange:()=>{n({type:"iceconnectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceConnectionState,gatheringState:i.iceGatheringState,signalingState:i.signalingState});},onicegatheringstatechange:()=>{n({type:"icegatheringstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceGatheringState,connectionState:i.iceConnectionState,signalingState:i.signalingState});},onsignalingstatechange:()=>{n({type:"signalingstatechange",target:i,timestamp:new Date().toISOString(),state:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onnegotiationneeded:()=>{Fr.bind(this)(r),n({type:"negotiationneeded",target:i,timestamp:new Date().toISOString(),signalingState:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onconnectionstatechange:()=>{n({type:"connectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.connectionState,iceState:i.iceConnectionState,signalingState:i.signalingState});let o=i.connectionState;(o==="disconnected"||o==="failed"||o==="closed")&&oe.bind(this)({cid:r});}};for(let[o,a]of Object.entries(s))t.has(o)||(i[o]=a);}function zi(r,e,t){let n=new Set(t),i=de[r]||(o=>{}),s={onmessage:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,data:o.data,lastEventId:o.lastEventId,origin:o.origin,readyState:e.readyState,bufferedAmount:e.bufferedAmount};this.log(`${e.label}: message`,o.data),i(a);},onerror:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,error:o.error.message,errorCode:o.error.errorDetail,readyState:e.readyState,label:e.label};this.log(`${e.label}: error`,o.error.message),i(a);},onclose:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id};this.log(`${e.label}: closed`,null),i(a),$[r]&&(delete $[r][e.label],Object.keys($[r]).length===0&&oe.bind(this)({cid:r}));},onbufferedamountlow:o=>{let a={target:e,bufferedAmount:e.bufferedAmount,bufferedAmountLowThreshold:e.bufferedAmountLowThreshold,type:o.type,timeStamp:o.timeStamp};this.log(`${e.label}: bufferedamountlow`,e.bufferedAmount),i(a);},onopen:o=>{this.log("dataChannel",`data channel: "${e.label}" is open and ready to send messages.`);let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id,ordered:e.ordered,maxRetransmits:e.maxRetransmits,protocol:e.protocol};i(a);}};for(let[o,a]of Object.entries(s))n.has(o)||(e[o]=a);}var Te,ve=null,st=true,Qe=0;async function nc(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.getProfile(),!this.session)throw new f("No access.",{code:"INVALID_REQUEST"});let r=await this.record_endpoint;return new WebSocket(r.websocket_private+"?token="+this.session.accessToken.jwtToken)}var Mr=null;async function Yi(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});st=true;let r=this.__socket?await this.__socket:this.__socket;oe.bind(this)({close_all:true}),Te&&Vr.bind(this)({group:null}),Qe=0,ve&&(ve.terminate(),ve=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",Mr),this.__socket=null,null}async function Kt(r,e=50,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof r!="function")throw new f("Callback must be a function.",{code:"INVALID_REQUEST"});if(t==="reconnect"){if(this.__socket instanceof Promise){let n=await this.__socket;if(n.readyState!==WebSocket.CLOSED&&n.readyState!==WebSocket.CLOSING)return this.__socket}}else if(st&&(Mr=()=>{!document.hidden&&!st&&Kt.bind(this)(r,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;ve&&(ve.terminate(),ve=null),this.__socket=new Promise(async n=>{await We.bind(this)(),setTimeout(async()=>{let i=await nc.bind(this)();i.onopen=()=>{st=false,Qe=0,t!=="reconnect"&&window.addEventListener("visibilitychange",Mr),this.log("realtime onopen","Connected to WebSocket server."),r({type:"success",message:"Connected to WebSocket server."}),Te&&i.send(JSON.stringify({action:"joinRoom",rid:Te,token:this.session.accessToken.jwtToken}));let s=`
206
+ var Vs=Object.create;var Ne=Object.defineProperty;var jr=Object.getOwnPropertyDescriptor;var qs=Object.getOwnPropertyNames;var Bs=Object.getPrototypeOf,$s=Object.prototype.hasOwnProperty;var js=(r,e,t)=>e in r?Ne(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Kr=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Fe=(r,e)=>()=>(r&&(e=r(r=0)),e);var W=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),lt=(r,e)=>{for(var t in e)Ne(r,t,{get:e[t],enumerable:true});},Hr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of qs(e))!$s.call(r,i)&&i!==t&&Ne(r,i,{get:()=>e[i],enumerable:!(n=jr(e,i))||n.enumerable});return r};var Le=(r,e,t)=>(t=r!=null?Vs(Bs(r)):{},Hr(!r||!r.__esModule?Ne(t,"default",{value:r,enumerable:true}):t,r)),ne=r=>Hr(Ne({},"__esModule",{value:true}),r),v=(r,e,t,n)=>{for(var i=jr(e,t),s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=(o(e,t,i))||i);return i&&Ne(e,t,i),i};var ue=(r,e,t)=>js(r,typeof e!="symbol"?e+"":e,t);var Ie={};lt(Ie,{default:()=>Hs});var Ks,Hs,Pe=Fe(()=>{Ks={},Hs=Ks;});var Gr=W(ft=>{ft.byteLength=Gs;ft.toByteArray=zs;ft.fromByteArray=Zs;var ce=[],Y=[],Js=typeof Uint8Array<"u"?Uint8Array:Array,Jt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(xe=0,Wr=Jt.length;xe<Wr;++xe)ce[xe]=Jt[xe],Y[Jt.charCodeAt(xe)]=xe;var xe,Wr;Y[45]=62;Y[95]=63;function Jr(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return [t,n]}function Gs(r){var e=Jr(r),t=e[0],n=e[1];return (t+n)*3/4-n}function Qs(r,e,t){return (e+t)*3/4-t}function zs(r){var e,t=Jr(r),n=t[0],i=t[1],s=new Js(Qs(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=Y[r.charCodeAt(u)]<<18|Y[r.charCodeAt(u+1)]<<12|Y[r.charCodeAt(u+2)]<<6|Y[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Y[r.charCodeAt(u)]<<2|Y[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=Y[r.charCodeAt(u)]<<10|Y[r.charCodeAt(u+1)]<<4|Y[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function Ys(r){return ce[r>>18&63]+ce[r>>12&63]+ce[r>>6&63]+ce[r&63]}function Xs(r,e,t){for(var n,i=[],s=e;s<t;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(Ys(n));return i.join("")}function Zs(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(Xs(r,o,o+s>a?a:o+s));return n===1?(e=r[t-1],i.push(ce[e>>2]+ce[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(ce[e>>10]+ce[e>>4&63]+ce[e<<2&63]+"=")),i.join("")}});var Qr=W(Gt=>{Gt.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,d=-7,l=t?i-1:0,h=t?-1:1,m=r[e+l];for(l+=h,s=m&(1<<-d)-1,m>>=-d,d+=a;d>0;s=s*256+r[e+l],l+=h,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+r[e+l],l+=h,d-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(m?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (m?-1:1)*o*Math.pow(2,s-n)};Gt.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,d=(1<<c)-1,l=d>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?0:s-1,g=n?1:-1,p=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+l>=1?e+=h/u:e+=h*Math.pow(2,1-l),e*u>=2&&(o++,u/=2),o+l>=d?(a=0,o=d):o+l>=1?(a=(e*u-1)*Math.pow(2,i),o=o+l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;r[t+m]=a&255,m+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+m]=o&255,m+=g,o/=256,c-=8);r[t+m-g]|=p*128;};});var Yr=W((fc,zr)=>{var eo={}.toString;zr.exports=Array.isArray||function(r){return eo.call(r)=="[object Array]"};});var bt=W(Me=>{var Qt=Gr(),Oe=Qr(),en=Yr();Me.Buffer=y;Me.SlowBuffer=oo;Me.INSPECT_MAX_BYTES=50;y.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:to();Me.kMaxLength=ht();function to(){try{var r=new Uint8Array(1);return r.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},r.foo()===42&&typeof r.subarray=="function"&&r.subarray(1,1).byteLength===0}catch{return false}}function ht(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function _e(r,e){if(ht()<e)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(e),r.__proto__=y.prototype):(r===null&&(r=new y(e)),r.length=e),r}function y(r,e,t){if(!y.TYPED_ARRAY_SUPPORT&&!(this instanceof y))return new y(r,e,t);if(typeof r=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Yt(this,r)}return tn(this,r,e,t)}y.poolSize=8192;y._augment=function(r){return r.__proto__=y.prototype,r};function tn(r,e,t,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?io(r,e,t,n):typeof e=="string"?no(r,e,t):so(r,e)}y.from=function(r,e,t){return tn(null,r,e,t)};y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&y[Symbol.species]===y&&Object.defineProperty(y,Symbol.species,{value:null,configurable:true}));function rn(r){if(typeof r!="number")throw new TypeError('"size" argument must be a number');if(r<0)throw new RangeError('"size" argument must not be negative')}function ro(r,e,t,n){return rn(e),e<=0?_e(r,e):t!==void 0?typeof n=="string"?_e(r,e).fill(t,n):_e(r,e).fill(t):_e(r,e)}y.alloc=function(r,e,t){return ro(null,r,e,t)};function Yt(r,e){if(rn(e),r=_e(r,e<0?0:Xt(e)|0),!y.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}y.allocUnsafe=function(r){return Yt(null,r)};y.allocUnsafeSlow=function(r){return Yt(null,r)};function no(r,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!y.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=nn(e,t)|0;r=_e(r,n);var i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function zt(r,e){var t=e.length<0?0:Xt(e.length)|0;r=_e(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function io(r,e,t,n){if(e.byteLength,t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");return t===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,t):e=new Uint8Array(e,t,n),y.TYPED_ARRAY_SUPPORT?(r=e,r.__proto__=y.prototype):r=zt(r,e),r}function so(r,e){if(y.isBuffer(e)){var t=Xt(e.length)|0;return r=_e(r,t),r.length===0||e.copy(r,0,0,t),r}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||Ro(e.length)?_e(r,0):zt(r,e);if(e.type==="Buffer"&&en(e.data))return zt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Xt(r){if(r>=ht())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ht().toString(16)+" bytes");return r|0}function oo(r){return +r!=r&&(r=0),y.alloc(+r)}y.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};y.compare=function(e,t){if(!y.isBuffer(e)||!y.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,i=t.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==t[s]){n=e[s],i=t[s];break}return n<i?-1:i<n?1:0};y.isEncoding=function(e){switch(String(e).toLowerCase()){case "hex":case "utf8":case "utf-8":case "ascii":case "latin1":case "binary":case "base64":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return true;default:return false}};y.concat=function(e,t){if(!en(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return y.alloc(0);var n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=y.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!y.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function nn(r,e){if(y.isBuffer(r))return r.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;typeof r!="string"&&(r=""+r);var t=r.length;if(t===0)return 0;for(var n=false;;)switch(e){case "ascii":case "latin1":case "binary":return t;case "utf8":case "utf-8":case void 0:return gt(r).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return t*2;case "hex":return t>>>1;case "base64":return dn(r).length;default:if(n)return gt(r).length;e=(""+e).toLowerCase(),n=true;}}y.byteLength=nn;function ao(r,e,t){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return "";for(r||(r="utf8");;)switch(r){case "hex":return bo(this,e,t);case "utf8":case "utf-8":return an(this,e,t);case "ascii":return mo(this,e,t);case "latin1":case "binary":return _o(this,e,t);case "base64":return go(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return yo(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=true;}}y.prototype._isBuffer=true;function Ue(r,e,t){var n=r[e];r[e]=r[t],r[t]=n;}y.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Ue(this,t,t+1);return this};y.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Ue(this,t,t+3),Ue(this,t+1,t+2);return this};y.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Ue(this,t,t+7),Ue(this,t+1,t+6),Ue(this,t+2,t+5),Ue(this,t+3,t+4);return this};y.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?an(this,0,e):ao.apply(this,arguments)};y.prototype.equals=function(e){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:y.compare(this,e)===0};y.prototype.inspect=function(){var e="",t=Me.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"};y.prototype.compare=function(e,t,n,i,s){if(!y.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),t<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&t>=n)return 0;if(i>=s)return -1;if(t>=n)return 1;if(t>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-t,u=Math.min(o,a),c=this.slice(i,s),d=e.slice(t,n),l=0;l<u;++l)if(c[l]!==d[l]){o=c[l],a=d[l];break}return o<a?-1:a<o?1:0};function sn(r,e,t,n,i){if(r.length===0)return -1;if(typeof t=="string"?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return -1;t=r.length-1;}else if(t<0)if(i)t=0;else return -1;if(typeof e=="string"&&(e=y.from(e,n)),y.isBuffer(e))return e.length===0?-1:Xr(r,e,t,n,i);if(typeof e=="number")return e=e&255,y.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Xr(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function Xr(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(m,g){return s===1?m[g]:m.readUInt16BE(g*s)}var c;if(i){var d=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,d===-1?0:c-d)){if(d===-1&&(d=c),c-d+1===a)return d*s}else d!==-1&&(c-=c-d),d=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var l=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){l=false;break}if(l)return c}return -1}y.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1};y.prototype.indexOf=function(e,t,n){return sn(this,e,t,n,true)};y.prototype.lastIndexOf=function(e,t,n){return sn(this,e,t,n,false)};function uo(r,e,t,n){t=Number(t)||0;var i=r.length-t;n?(n=Number(n),n>i&&(n=i)):n=i;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;o<n;++o){var a=parseInt(e.substr(o*2,2),16);if(isNaN(a))return o;r[t+o]=a;}return o}function co(r,e,t,n){return _t(gt(e,r.length-t),r,t,n)}function on(r,e,t,n){return _t(vo(e),r,t,n)}function lo(r,e,t,n){return on(r,e,t,n)}function fo(r,e,t,n){return _t(dn(e),r,t,n)}function ho(r,e,t,n){return _t(To(e,r.length-t),r,t,n)}y.prototype.write=function(e,t,n,i){if(t===void 0)i="utf8",n=this.length,t=0;else if(n===void 0&&typeof t=="string")i=t,n=this.length,t=0;else if(isFinite(t))t=t|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s=this.length-t;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=false;;)switch(i){case "hex":return uo(this,e,t,n);case "utf8":case "utf-8":return co(this,e,t,n);case "ascii":return on(this,e,t,n);case "latin1":case "binary":return lo(this,e,t,n);case "base64":return fo(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return ho(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};y.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function go(r,e,t){return e===0&&t===r.length?Qt.fromByteArray(r):Qt.fromByteArray(r.slice(e,t))}function an(r,e,t){t=Math.min(r.length,t);for(var n=[],i=e;i<t;){var s=r[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=t){var u,c,d,l;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(l=(s&31)<<6|u&63,l>127&&(o=l));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(l=(s&15)<<12|(u&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:u=r[i+1],c=r[i+2],d=r[i+3],(u&192)===128&&(c&192)===128&&(d&192)===128&&(l=(s&15)<<18|(u&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l));}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a;}return po(n)}var Zr=4096;function po(r){var e=r.length;if(e<=Zr)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Zr));return t}function mo(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]&127);return n}function _o(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}function bo(r,e,t){var n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var i="",s=e;s<t;++s)i+=So(r[s]);return i}function yo(r,e,t){for(var n=r.slice(e,t),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}y.prototype.slice=function(e,t){var n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var i;if(y.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=y.prototype;else {var s=t-e;i=new y(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function q(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUIntLE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return i};y.prototype.readUIntBE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e+--t],s=1;t>0&&(s*=256);)i+=this[e+--t]*s;return i};y.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]};y.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8};y.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]};y.prototype.readUInt32LE=function(e,t){return t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};y.prototype.readUInt32BE=function(e,t){return t||q(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};y.prototype.readIntLE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=this[e],s=1,o=0;++o<t&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*t)),i};y.prototype.readIntBE=function(e,t,n){e=e|0,t=t|0,n||q(e,t,this.length);for(var i=t,s=1,o=this[e+--i];i>0&&(s*=256);)o+=this[e+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*t)),o};y.prototype.readInt8=function(e,t){return t||q(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};y.prototype.readInt16LE=function(e,t){t||q(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};y.prototype.readInt16BE=function(e,t){t||q(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};y.prototype.readInt32LE=function(e,t){return t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};y.prototype.readInt32BE=function(e,t){return t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};y.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,true,23,4)};y.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,false,23,4)};y.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),Oe.read(this,e,true,52,8)};y.prototype.readDoubleBE=function(e,t){return t||q(e,8,this.length),Oe.read(this,e,false,52,8)};function Q(r,e,t,n,i,s){if(!y.isBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<s)throw new RangeError('"value" argument is out of bounds');if(t+n>r.length)throw new RangeError("Index out of range")}y.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=1,a=0;for(this[t]=e&255;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n};y.prototype.writeUIntBE=function(e,t,n,i){if(e=+e,t=t|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;Q(this,e,t,n,s,0);}var o=n-1,a=1;for(this[t+o]=e&255;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n};y.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,255,0),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function pt(r,e,t,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(r.length-t,2);i<s;++i)r[t+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8;}y.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):pt(this,e,t,true),t+2};y.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):pt(this,e,t,false),t+2};function mt(r,e,t,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(r.length-t,4);i<s;++i)r[t+i]=e>>>(n?i:3-i)*8&255;}y.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):mt(this,e,t,true),t+4};y.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):mt(this,e,t,false),t+4};y.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=0,a=1,u=0;for(this[t]=e&255;++o<n&&(a*=256);)e<0&&u===0&&this[t+o-1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t=t|0,!i){var s=Math.pow(2,8*n-1);Q(this,e,t,n,s-1,-s);}var o=n-1,a=1,u=0;for(this[t+o]=e&255;--o>=0&&(a*=256);)e<0&&u===0&&this[t+o+1]!==0&&(u=1),this[t+o]=(e/a>>0)-u&255;return t+n};y.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,127,-128),y.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};y.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):pt(this,e,t,true),t+2};y.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):pt(this,e,t,false),t+2};y.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):mt(this,e,t,true),t+4};y.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),y.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):mt(this,e,t,false),t+4};function un(r,e,t,n,i,s){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function cn(r,e,t,n,i){return i||un(r,e,t,4),Oe.write(r,e,t,n,23,4),t+4}y.prototype.writeFloatLE=function(e,t,n){return cn(this,e,t,true,n)};y.prototype.writeFloatBE=function(e,t,n){return cn(this,e,t,false,n)};function ln(r,e,t,n,i){return i||un(r,e,t,8),Oe.write(r,e,t,n,52,8),t+8}y.prototype.writeDoubleLE=function(e,t,n){return ln(this,e,t,true,n)};y.prototype.writeDoubleBE=function(e,t,n){return ln(this,e,t,false,n)};y.prototype.copy=function(e,t,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-n&&(i=e.length-t+n);var s=i-n,o;if(this===e&&n<t&&t<i)for(o=s-1;o>=0;--o)e[o+t]=this[o+n];else if(s<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s};y.prototype.fill=function(e,t,n,i){if(typeof e=="string"){if(typeof t=="string"?(i=t,t=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),e.length===1){var s=e.charCodeAt(0);s<256&&(e=s);}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!y.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o<n;++o)this[o]=e;else {var a=y.isBuffer(e)?e:gt(new y(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var wo=/[^+\/0-9A-Za-z-_]/g;function Ao(r){if(r=Eo(r).replace(wo,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function Eo(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function So(r){return r<16?"0"+r.toString(16):r.toString(16)}function gt(r,e){e=e||1/0;for(var t,n=r.length,i=null,s=[],o=0;o<n;++o){if(t=r.charCodeAt(o),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),i=t;continue}t=(i-55296<<10|t-56320)+65536;}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,t<128){if((e-=1)<0)break;s.push(t);}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128);}else if(t<65536){if((e-=3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128);}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128);}else throw new Error("Invalid code point")}return s}function vo(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function To(r,e){for(var t,n,i,s=[],o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(o),n=t>>8,i=t%256,s.push(i),s.push(n);return s}function dn(r){return Qt.toByteArray(Ao(r))}function _t(r,e,t,n){for(var i=0;i<n&&!(i+t>=e.length||i>=r.length);++i)e[i+t]=r[i];return i}function Ro(r){return r!==r}});var fn=W(()=>{});var ir={};lt(ir,{__assign:()=>rr,__asyncDelegator:()=>qo,__asyncGenerator:()=>Vo,__asyncValues:()=>Bo,__await:()=>ze,__awaiter:()=>ko,__classPrivateFieldGet:()=>Ho,__classPrivateFieldSet:()=>Wo,__createBinding:()=>Fo,__decorate:()=>Uo,__exportStar:()=>Lo,__extends:()=>Po,__generator:()=>No,__importDefault:()=>Ko,__importStar:()=>jo,__makeTemplateObject:()=>$o,__metadata:()=>Do,__param:()=>Co,__read:()=>hn,__rest:()=>xo,__spread:()=>Oo,__spreadArrays:()=>Mo,__values:()=>nr});function Po(r,e){tr(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function xo(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function Uo(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function Co(r,e){return function(t,n){e(t,n,r);}}function Do(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function ko(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s);})}return new(t||(t=Promise))(function(s,o){function a(d){try{c(n.next(d));}catch(l){o(l);}}function u(d){try{c(n.throw(d));}catch(l){o(l);}}function c(d){d.done?s(d.value):i(d.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function No(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(c){return function(d){return u([c,d])}}function u(c){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t);}catch(d){c=[6,d],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function Fo(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function Lo(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function nr(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return {next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function hn(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value);}catch(a){o={error:a};}finally{try{i&&!i.done&&(t=n.return)&&t.call(n);}finally{if(o)throw o.error}}return s}function Oo(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(hn(arguments[e]));return r}function Mo(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function ze(r){return this instanceof ze?(this.v=r,this):new ze(r)}function Vo(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(m){return new Promise(function(g,p){s.push([h,m,g,p])>1||a(h,m);})});}function a(h,m){try{u(n[h](m));}catch(g){l(s[0][3],g);}}function u(h){h.value instanceof ze?Promise.resolve(h.value.v).then(c,d):l(s[0][2],h);}function c(h){a("next",h);}function d(h){a("throw",h);}function l(h,m){h(m),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function qo(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(o){return (t=!t)?{value:ze(r[i](o)),done:i==="return"}:s?s(o):o}:s;}}function Bo(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof nr=="function"?nr(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(o){return new Promise(function(a,u){o=r[s](o),i(a,u,o.done,o.value);})};}function i(s,o,a,u){Promise.resolve(u).then(function(c){s({value:c,done:a});},o);}}function $o(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function jo(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e}function Ko(r){return r&&r.__esModule?r:{default:r}}function Ho(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Wo(r,e,t){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,t),t}var tr,rr,sr=Fe(()=>{tr=function(r,e){return tr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n;}||function(t,n){for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i]);},tr(r,e)};rr=function(){return rr=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);}return e},rr.apply(this,arguments)};});var or=W(Z=>{Object.defineProperty(Z,"__esModule",{value:true});Z.MAX_HASHABLE_LENGTH=Z.INIT=Z.KEY=Z.DIGEST_LENGTH=Z.BLOCK_SIZE=void 0;Z.BLOCK_SIZE=64;Z.DIGEST_LENGTH=32;Z.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);Z.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];Z.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var gn=W(yt=>{Object.defineProperty(yt,"__esModule",{value:true});yt.RawSha256=void 0;var ee=or(),Jo=(function(){function r(){this.state=Int32Array.from(ee.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=false;}return r.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>ee.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===ee.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0);},r.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%ee.BLOCK_SIZE>=ee.BLOCK_SIZE-8){for(var i=this.bufferLength;i<ee.BLOCK_SIZE;i++)t.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<ee.BLOCK_SIZE-8;i++)t.setUint8(i,0);t.setUint32(ee.BLOCK_SIZE-8,Math.floor(e/4294967296),true),t.setUint32(ee.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(ee.DIGEST_LENGTH),i=0;i<8;i++)s[i*4]=this.state[i]>>>24&255,s[i*4+1]=this.state[i]>>>16&255,s[i*4+2]=this.state[i]>>>8&255,s[i*4+3]=this.state[i]>>>0&255;return s},r.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,i=n[0],s=n[1],o=n[2],a=n[3],u=n[4],c=n[5],d=n[6],l=n[7],h=0;h<ee.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var m=this.temp[h-2],g=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10;m=this.temp[h-15];var p=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(p+this.temp[h-16]|0);}var w=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&d)|0)+(l+(ee.KEY[h]+this.temp[h]|0)|0)|0,b=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;l=d,d=c,c=u,u=a+w|0,a=o,o=s,s=i,i=w+b|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=d,n[7]+=l;},r})();yt.RawSha256=Jo;});var pn,mn,_n=Fe(()=>{pn=r=>{let e=[];for(let t=0,n=r.length;t<n;t++){let i=r.charCodeAt(t);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192,i&63|128);else if(t+1<r.length&&(i&64512)===55296&&(r.charCodeAt(t+1)&64512)===56320){let s=65536+((i&1023)<<10)+(r.charCodeAt(++t)&1023);e.push(s>>18|240,s>>12&63|128,s>>6&63|128,s&63|128);}else e.push(i>>12|224,i>>6&63|128,i&63|128);}return Uint8Array.from(e)},mn=r=>{let e="";for(let t=0,n=r.length;t<n;t++){let i=r[t];if(i<128)e+=String.fromCharCode(i);else if(192<=i&&i<224){let s=r[++t];e+=String.fromCharCode((i&31)<<6|s&63);}else if(240<=i&&i<365){let o="%"+[i,r[++t],r[++t],r[++t]].map(a=>a.toString(16)).join("%");e+=decodeURIComponent(o);}else e+=String.fromCharCode((i&15)<<12|(r[++t]&63)<<6|r[++t]&63);}return e};});function bn(r){return new TextEncoder().encode(r)}function yn(r){return new TextDecoder("utf-8").decode(r)}var wn=Fe(()=>{});var An={};lt(An,{fromUtf8:()=>Go,toUtf8:()=>Qo});var Go,Qo,En=Fe(()=>{_n();wn();Go=r=>typeof TextEncoder=="function"?bn(r):pn(r),Qo=r=>typeof TextDecoder=="function"?yn(r):mn(r);});var Sn=W(wt=>{Object.defineProperty(wt,"__esModule",{value:true});wt.convertToBuffer=void 0;var zo=(En(),ne(An)),Yo=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:zo.fromUtf8;function Xo(r){return r instanceof Uint8Array?r:typeof r=="string"?Yo(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}wt.convertToBuffer=Xo;});var vn=W(At=>{Object.defineProperty(At,"__esModule",{value:true});At.isEmptyData=void 0;function Zo(r){return typeof r=="string"?r.length===0:r.byteLength===0}At.isEmptyData=Zo;});var Tn=W(Et=>{Object.defineProperty(Et,"__esModule",{value:true});Et.numToUint8=void 0;function ea(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}Et.numToUint8=ea;});var Rn=W(St=>{Object.defineProperty(St,"__esModule",{value:true});St.uint32ArrayFrom=void 0;function ta(r){if(!Array.from){for(var e=new Uint32Array(r.length),t=0;t<r.length;)e[t]=r[t];return e}return Uint32Array.from(r)}St.uint32ArrayFrom=ta;});var In=W(le=>{Object.defineProperty(le,"__esModule",{value:true});le.uint32ArrayFrom=le.numToUint8=le.isEmptyData=le.convertToBuffer=void 0;var ra=Sn();Object.defineProperty(le,"convertToBuffer",{enumerable:true,get:function(){return ra.convertToBuffer}});var na=vn();Object.defineProperty(le,"isEmptyData",{enumerable:true,get:function(){return na.isEmptyData}});var ia=Tn();Object.defineProperty(le,"numToUint8",{enumerable:true,get:function(){return ia.numToUint8}});var sa=Rn();Object.defineProperty(le,"uint32ArrayFrom",{enumerable:true,get:function(){return sa.uint32ArrayFrom}});});var xn=W(Tt=>{Object.defineProperty(Tt,"__esModule",{value:true});Tt.Sha256=void 0;var Pn=(sr(),ne(ir)),vt=or(),ar=gn(),ur=In(),oa=(function(){function r(e){if(this.hash=new ar.RawSha256,e){this.outer=new ar.RawSha256;var t=aa(e),n=new Uint8Array(vt.BLOCK_SIZE);n.set(t);for(var i=0;i<vt.BLOCK_SIZE;i++)t[i]^=54,n[i]^=92;this.hash.update(t),this.outer.update(n);for(var i=0;i<t.byteLength;i++)t[i]=0;}}return r.prototype.update=function(e){if(!((0, ur.isEmptyData)(e)||this.error))try{this.hash.update((0,ur.convertToBuffer)(e));}catch(t){this.error=t;}},r.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},r.prototype.digest=function(){return (0, Pn.__awaiter)(this,void 0,void 0,function(){return (0, Pn.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();Tt.Sha256=oa;function aa(r){var e=(0, ur.convertToBuffer)(r);if(e.byteLength>vt.BLOCK_SIZE){var t=new ar.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(vt.BLOCK_SIZE);return n.set(e),n}});var lr=W(cr=>{Object.defineProperty(cr,"__esModule",{value:true});var ua=(sr(),ne(ir));(0, ua.__exportStar)(xn(),cr);});var yr={};lt(yr,{default:()=>ru});function ru(r,e){return e=e||{},new Promise(function(t,n){var i=new XMLHttpRequest,s=[],o=[],a={},u=function(){return {ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:u,headers:{keys:function(){return s},entries:function(){return o},get:function(d){return a[d.toLowerCase()]},has:function(d){return d.toLowerCase()in a}}}};for(var c in i.open(e.method||"get",r,true),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(d,l,h){s.push(l=l.toLowerCase()),o.push([l,h]),a[l]=a[l]?a[l]+","+h:h;}),t(u());},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(c,e.headers[c]);i.send(e.body||null);})}var wr=Fe(()=>{});var Mn=W((al,On)=>{On.exports=self.fetch||(self.fetch=(wr(),ne(yr)).default||(wr(),ne(yr)));});var me=typeof globalThis<"u"?globalThis:void 0,dt=me?.window;function Ws(r){if(Buffer)return Buffer.from(r).toString("base64");let e="",t=new Uint8Array(r),n=32768;for(let i=0;i<t.length;i+=n){let s=t.subarray(i,i+n);e+=String.fromCharCode.apply(null,Array.from(s));}if(typeof btoa=="function")return btoa(e);throw new Error("No base64 encoder available in this environment.")}if(dt)dt.global=dt,dt.global._runningInNodeJS=false;else if(me&&(me.global=me,typeof me.window>"u")){class r{constructor(){this.result=null;this.error=null;this.onload=null;this.onloadend=null;this.onerror=null;}readAsDataURL(n){n.arrayBuffer().then(i=>{let s=Ws(i),o=n.type||"application/octet-stream";this.result=`data:${o};base64,${s}`,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsArrayBuffer(n){n.arrayBuffer().then(i=>{this.result=i,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(i=>{this.error=i,this.onerror&&this.onerror({target:this});});}readAsText(n,i="utf-8"){n.text().then(s=>{this.result=s,this.onload&&this.onload({target:this}),this.onloadend&&this.onloadend({target:this});}).catch(s=>{this.error=s,this.onerror&&this.onerror({target:this});});}}me.FileReader=r;class e{constructor(){this.status=0;this.statusText="";this.readyState=0;this.responseText="";this.response=null;this.responseType="";this.responseURL="";this.timeout=0;this.withCredentials=false;this.onload=null;this.onerror=null;this.onabort=null;this.ontimeout=null;this.onprogress=null;this.onreadystatechange=null;this.upload={onprogress:null};this._method="GET";this._url="";this._headers={};this._aborted=false;}open(n,i){this._method=n,this._url=i,this.readyState=1;}setRequestHeader(n,i){this._headers[n]=i;}getResponseHeader(n){return null}abort(){this._aborted=true,this.onabort&&this.onabort({});}send(n){if(this._aborted)return;let i={method:this._method,headers:this._headers};n&&this._method!=="GET"&&this._method!=="HEAD"&&(i.body=n),fetch(this._url,i).then(async s=>{if(!this._aborted){if(this.status=s.status,this.statusText=s.statusText,this.responseURL=s.url,this.readyState=4,this.responseType==="blob")this.response=await s.blob();else if(this.responseType==="json")try{this.response=await s.json();}catch{this.response=null;}else this.responseType==="arraybuffer"?this.response=await s.arrayBuffer():(this.responseText=await s.text(),this.response=this.responseText);this.onload&&this.onload({});}}).catch(s=>{this._aborted||this.onerror&&this.onerror(s);});}}me.XMLHttpRequest=e,me.window={_runningInNodeJS:true,alert:t=>console.error("[Alert]",t),sessionStorage:{getItem:t=>null,setItem:(t,n)=>{},removeItem:t=>{}},localStorage:{getItem:t=>{let n=(Pe(),ne(Ie)),i=(Pe(),ne(Ie));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);return n.existsSync(s)?n.readFileSync(s,"utf8"):null}catch{return null}},setItem:(t,n)=>{let i=(Pe(),ne(Ie)),s=(Pe(),ne(Ie));try{let o=s.resolve(process.cwd(),"states","localStorage");i.existsSync(o)||i.mkdirSync(o,{recursive:!0});let a=s.resolve(o,`${t}.skapi`);i.writeFileSync(a,n,"utf8");}catch{}},removeItem:t=>{let n=(Pe(),ne(Ie)),i=(Pe(),ne(Ie));try{let s=i.resolve(process.cwd(),"states","localStorage",`${t}.skapi`);n.existsSync(s)&&n.unlinkSync(s);}catch{}}},location:{href:"",origin:"",hostname:"",protocol:"",replace:t=>{}},navigator:{userAgent:`nodejs/${me?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async t=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var Wt=(function(){function r(t){var n=t||{},i=n.ValidationData,s=n.Username,o=n.Password,a=n.AuthParameters,u=n.ClientMetadata;this.validationData=i||{},this.authParameters=a||{},this.clientMetadata=u||{},this.username=s,this.password=o;}var e=r.prototype;return e.getUsername=function(){return this.username},e.getPassword=function(){return this.password},e.getValidationData=function(){return this.validationData},e.getAuthParameters=function(){return this.authParameters},e.getClientMetadata=function(){return this.clientMetadata},r})();var be=Le(bt());var X;typeof window<"u"&&window.crypto&&(X=window.crypto);!X&&typeof window<"u"&&window.msCrypto&&(X=window.msCrypto);!X&&typeof globalThis<"u"&&globalThis.crypto&&(X=globalThis.crypto);if(!X&&typeof Kr=="function")try{X=fn();}catch{}function Zt(){if(X){if(typeof X.getRandomValues=="function")try{return X.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof X.randomBytes=="function")try{return X.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function Io(r){for(var e=r.words,t=r.sigBytes,n=[],i=0;i<t;i++){var s=e[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((s&15).toString(16));}return n.join("")}var er=(function(){function r(t,n){t=this.words=t||[],n!=null?this.sigBytes=n:this.sigBytes=t.length*4;}var e=r.prototype;return e.random=function(n){for(var i=[],s=0;s<n;s+=4)i.push(Zt());return new r(i,n)},e.toString=function(){return Io(this)},r})();var It=Le(lr());var V=U;function U(r,e){r!=null&&this.fromString(r,e);}function J(){return new U(null)}var Ee,ca=0xdeadbeefcafe,Un=(ca&16777215)==15715070;function la(r,e,t,n,i,s){for(;--s>=0;){var o=e*this[r++]+t[n]+i;i=Math.floor(o/67108864),t[n++]=o&67108863;}return i}function da(r,e,t,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var u=this[r]&32767,c=this[r++]>>15,d=a*u+c*o;u=o*u+((d&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(d>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function fa(r,e,t,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var u=this[r]&16383,c=this[r++]>>14,d=a*u+c*o;u=o*u+((d&16383)<<14)+t[n]+i,i=(u>>28)+(d>>14)+a*c,t[n++]=u&268435455;}return i}var Cn=typeof navigator<"u";Cn&&Un&&navigator.appName=="Microsoft Internet Explorer"?(U.prototype.am=da,Ee=30):Cn&&Un&&navigator.appName!="Netscape"?(U.prototype.am=la,Ee=26):(U.prototype.am=fa,Ee=28);U.prototype.DB=Ee;U.prototype.DM=(1<<Ee)-1;U.prototype.DV=1<<Ee;var dr=52;U.prototype.FV=Math.pow(2,dr);U.prototype.F1=dr-Ee;U.prototype.F2=2*Ee-dr;var ha="0123456789abcdefghijklmnopqrstuvwxyz",Rt=new Array,Ve,te;Ve=48;for(te=0;te<=9;++te)Rt[Ve++]=te;Ve=97;for(te=10;te<36;++te)Rt[Ve++]=te;Ve=65;for(te=10;te<36;++te)Rt[Ve++]=te;function Dn(r){return ha.charAt(r)}function ga(r,e){var t=Rt[r.charCodeAt(e)];return t??-1}function pa(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function ma(r){this.t=1,this.s=r<0?-1:0,r>0?this[0]=r:r<-1?this[0]=r+this.DV:this.t=0;}function fr(r){var e=J();return e.fromInt(r),e}function _a(r,e){var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");this.t=0,this.s=0;for(var n=r.length,i=false,s=0;--n>=0;){var o=ga(r,n);if(o<0){r.charAt(n)=="-"&&(i=true);continue}i=false,s==0?this[this.t++]=o:s+t>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,s+=t,s>=this.DB&&(s-=this.DB);}this.clamp(),i&&U.ZERO.subTo(this,this);}function ba(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function ya(r){if(this.s<0)return "-"+this.negate().toString(r);var e;if(r==16)e=4;else if(r==8)e=3;else if(r==2)e=1;else if(r==32)e=5;else if(r==4)e=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");var t=(1<<e)-1,n,i=false,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this[o]>>a)>0&&(i=true,s=Dn(n));o>=0;)a<e?(n=(this[o]&(1<<a)-1)<<e-a,n|=this[--o]>>(a+=this.DB-e)):(n=this[o]>>(a-=e)&t,a<=0&&(a+=this.DB,--o)),n>0&&(i=true),i&&(s+=Dn(n));return i?s:"0"}function wa(){var r=J();return U.ZERO.subTo(this,r),r}function Aa(){return this.s<0?this.negate():this}function Ea(r){var e=this.s-r.s;if(e!=0)return e;var t=this.t;if(e=t-r.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-r[t])!=0)return e;return 0}function hr(r){var e=1,t;return (t=r>>>16)!=0&&(r=t,e+=16),(t=r>>8)!=0&&(r=t,e+=8),(t=r>>4)!=0&&(r=t,e+=4),(t=r>>2)!=0&&(r=t,e+=2),(t=r>>1)!=0&&(r=t,e+=1),e}function Sa(){return this.t<=0?0:this.DB*(this.t-1)+hr(this[this.t-1]^this.s&this.DM)}function va(r,e){var t;for(t=this.t-1;t>=0;--t)e[t+r]=this[t];for(t=r-1;t>=0;--t)e[t]=0;e.t=this.t+r,e.s=this.s;}function Ta(r,e){for(var t=r;t<this.t;++t)e[t-r]=this[t];e.t=Math.max(this.t-r,0),e.s=this.s;}function Ra(r,e){var t=r%this.DB,n=this.DB-t,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<t&this.DM,a;for(a=this.t-1;a>=0;--a)e[a+s+1]=this[a]>>n|o,o=(this[a]&i)<<t;for(a=s-1;a>=0;--a)e[a]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp();}function Ia(r,e){e.s=this.s;var t=Math.floor(r/this.DB);if(t>=this.t){e.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;e[0]=this[t]>>n;for(var o=t+1;o<this.t;++o)e[o-t-1]|=(this[o]&s)<<i,e[o-t]=this[o]>>n;n>0&&(e[this.t-t-1]|=(this.s&s)<<i),e.t=this.t-t,e.clamp();}function Pa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]-r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n-=r[t],e[t++]=n&this.DM,n>>=this.DB;n-=r.s;}e.s=n<0?-1:0,n<-1?e[t++]=this.DV+n:n>0&&(e[t++]=n),e.t=t,e.clamp();}function xa(r,e){var t=this.abs(),n=r.abs(),i=t.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+t.t]=t.am(0,n[i],e,i,0,t.t);e.s=0,e.clamp(),this.s!=r.s&&U.ZERO.subTo(e,e);}function Ua(r){for(var e=this.abs(),t=r.t=2*e.t;--t>=0;)r[t]=0;for(t=0;t<e.t-1;++t){var n=e.am(t,e[t],r,2*t,0,1);(r[t+e.t]+=e.am(t+1,2*e[t],r,2*t+1,n,e.t-t-1))>=e.DV&&(r[t+e.t]-=e.DV,r[t+e.t+1]=1);}r.t>0&&(r[r.t-1]+=e.am(t,e[t],r,2*t,0,1)),r.s=0,r.clamp();}function Ca(r,e,t){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),t!=null&&this.copyTo(t);return}t==null&&(t=J());var s=J(),o=this.s,a=r.s,u=this.DB-hr(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,d=s[c-1];if(d!=0){var l=d*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/l,m=(1<<this.F1)/l,g=1<<this.F2,p=t.t,w=p-c,b=e??J();for(s.dlShiftTo(w,b),t.compareTo(b)>=0&&(t[t.t++]=1,t.subTo(b,t)),U.ONE.dlShiftTo(c,b),b.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--w>=0;){var R=t[--p]==d?this.DM:Math.floor(t[p]*h+(t[p-1]+g)*m);if((t[p]+=s.am(0,R,t,w,0,c))<R)for(s.dlShiftTo(w,b),t.subTo(b,t);t[p]<--R;)t.subTo(b,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&U.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&U.ZERO.subTo(t,t);}}}function Da(r){var e=J();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(U.ZERO)>0&&r.subTo(e,e),e}function ka(){if(this.t<1)return 0;var r=this[0];if((r&1)==0)return 0;var e=r&3;return e=e*(2-(r&15)*e)&15,e=e*(2-(r&255)*e)&255,e=e*(2-((r&65535)*e&65535))&65535,e=e*(2-r*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Na(r){return this.compareTo(r)==0}function Fa(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]+r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n+=r[t],e[t++]=n&this.DM,n>>=this.DB;n+=r.s;}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp();}function La(r){var e=J();return this.addTo(r,e),e}function Oa(r){var e=J();return this.subTo(r,e),e}function Ma(r){var e=J();return this.multiplyTo(r,e),e}function Va(r){var e=J();return this.divRemTo(r,e,null),e}function qe(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t;}function qa(r){var e=J();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(U.ZERO)>0&&this.m.subTo(e,e),e}function Ba(r){var e=J();return r.copyTo(e),this.reduce(e),e}function $a(r){for(;r.t<=this.mt2;)r[r.t++]=0;for(var e=0;e<this.m.t;++e){var t=r[e]&32767,n=t*this.mpl+((t*this.mph+(r[e]>>15)*this.mpl&this.um)<<15)&r.DM;for(t=e+this.m.t,r[t]+=this.m.am(0,n,r,e,0,this.m.t);r[t]>=r.DV;)r[t]-=r.DV,r[++t]++;}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r);}function ja(r,e){r.squareTo(e),this.reduce(e);}function Ka(r,e,t){r.multiplyTo(e,t),this.reduce(t);}qe.prototype.convert=qa;qe.prototype.revert=Ba;qe.prototype.reduce=$a;qe.prototype.mulTo=Ka;qe.prototype.sqrTo=ja;function Ha(r,e,t){var n=r.bitLength(),i,s=fr(1),o=new qe(e);if(n<=0)return s;n<18?i=1:n<48?i=3:n<144?i=4:n<768?i=5:i=6;var a=new Array,u=3,c=i-1,d=(1<<i)-1;if(a[1]=o.convert(this),i>1){var l=J();for(o.sqrTo(a[1],l);u<=d;)a[u]=J(),o.mulTo(l,a[u-2],a[u]),u+=2;}var h=r.t-1,m,g=true,p=J(),w;for(n=hr(r[h])-1;h>=0;){for(n>=c?m=r[h]>>n-c&d:(m=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(m|=r[h-1]>>this.DB+n-c)),u=i;(m&1)==0;)m>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[m].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,p),o.sqrTo(p,s),u-=2;u>0?o.sqrTo(s,p):(w=s,s=p,p=w),o.mulTo(p,a[m],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,p),w=s,s=p,p=w,--n<0&&(n=this.DB-1,--h);}var b=o.revert(s);return t(null,b),b}U.prototype.copyTo=pa;U.prototype.fromInt=ma;U.prototype.fromString=_a;U.prototype.clamp=ba;U.prototype.dlShiftTo=va;U.prototype.drShiftTo=Ta;U.prototype.lShiftTo=Ra;U.prototype.rShiftTo=Ia;U.prototype.subTo=Pa;U.prototype.multiplyTo=xa;U.prototype.squareTo=Ua;U.prototype.divRemTo=Ca;U.prototype.invDigit=ka;U.prototype.addTo=Fa;U.prototype.toString=ya;U.prototype.negate=wa;U.prototype.abs=Aa;U.prototype.compareTo=Ea;U.prototype.bitLength=Sa;U.prototype.mod=Da;U.prototype.equals=Na;U.prototype.add=La;U.prototype.subtract=Oa;U.prototype.multiply=Ma;U.prototype.divide=Va;U.prototype.modPow=Ha;U.ZERO=fr(0);U.ONE=fr(1);function gr(r){return be.Buffer.from(new er().random(r).toString(),"hex")}var Wa=/^[89a-f]/i,Ja="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",Ga="userAttributes.",Se=(function(){function r(t){this.N=new V(Ja,16),this.g=new V("2",16),this.k=new V(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=be.Buffer.from("Caldera Derived Key","utf8"),this.poolName=t;}var e=r.prototype;return e.getSmallAValue=function(){return this.smallAValue},e.getLargeAValue=function(n){var i=this;this.largeAValue?n(null,this.largeAValue):this.calculateA(this.smallAValue,function(s,o){s&&n(s,null),i.largeAValue=o,n(null,i.largeAValue);});},e.generateRandomSmallA=function(){var n=gr(128).toString("hex"),i=new V(n,16);return i},e.generateRandomString=function(){return gr(40).toString("base64")},e.getRandomPassword=function(){return this.randomPassword},e.getSaltDevices=function(){return this.SaltToHashDevices},e.getVerifierDevices=function(){return this.verifierDevices},e.generateHashDevice=function(n,i,s){var o=this;this.randomPassword=this.generateRandomString();var a=""+n+i+":"+this.randomPassword,u=this.hash(a),c=gr(16).toString("hex");this.SaltToHashDevices=this.padHex(new V(c,16)),this.g.modPow(new V(this.hexHash(this.SaltToHashDevices+u),16),this.N,function(d,l){d&&s(d,null),o.verifierDevices=o.padHex(l),s(null,null);});},e.calculateA=function(n,i){var s=this;this.g.modPow(n,this.N,function(o,a){o&&i(o,null),a.mod(s.N).equals(V.ZERO)&&i(new Error("Illegal paramater. A mod N cannot be 0."),null),i(null,a);});},e.calculateU=function(n,i){this.UHexHash=this.hexHash(this.padHex(n)+this.padHex(i));var s=new V(this.UHexHash,16);return s},e.hash=function(n){var i=new It.Sha256;i.update(n);var s=i.digestSync(),o=be.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(be.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=be.Buffer.concat([this.infoBits,be.Buffer.from("","utf8")]),o=new It.Sha256(i);o.update(n);var a=o.digestSync(),u=new It.Sha256(a);u.update(s);var c=u.digestSync(),d=c,l=d.slice(0,16);return l},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var u=this;if(s.mod(this.N).equals(V.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(V.ZERO))throw new Error("U cannot be zero.");var c=""+this.poolName+n+":"+i,d=this.hash(c),l=new V(this.hexHash(this.padHex(o)+d),16);this.calculateS(l,s,function(h,m){h&&a(h,null);var g=u.computehkdf(be.Buffer.from(u.padHex(m),"hex"),be.Buffer.from(u.padHex(u.UValue),"hex"));a(null,g);});},e.calculateS=function(n,i,s){var o=this;this.g.modPow(n,this.N,function(a,u){a&&s(a,null);var c=i.subtract(o.k.multiply(u));c.modPow(o.smallAValue.add(o.UValue.multiply(n)),o.N,function(d,l){d&&s(d,null),s(null,l.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return Ga},e.padHex=function(n){if(!(n instanceof V))throw new Error("Not a BigInteger");var i=n.compareTo(V.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=Wa.test(s)?"00"+s:s,i){var o=s.split("").map(function(u){var c=~parseInt(u,16)&15;return "0123456789ABCDEF".charAt(c)}).join(""),a=new V(o,16).add(V.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},r})();var kn=Le(bt());var Pt=(function(){function r(t){this.jwtToken=t||"",this.payload=this.decodePayload();}var e=r.prototype;return e.getJwtToken=function(){return this.jwtToken},e.getExpiration=function(){return this.payload.exp},e.getIssuedAt=function(){return this.payload.iat},e.decodePayload=function(){var n=this.jwtToken.split(".")[1];try{return JSON.parse(kn.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function Qa(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,pr(r,e);}function pr(r,e){return pr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},pr(r,e)}var Be=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return Qa(e,r),e})(Pt);function za(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,mr(r,e);}function mr(r,e){return mr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},mr(r,e)}var $e=(function(r){function e(t){var n=t===void 0?{}:t,i=n.IdToken;return r.call(this,i||"")||this}return za(e,r),e})(Pt);var je=(function(){function r(t){var n=t===void 0?{}:t,i=n.RefreshToken;this.token=i||"";}var e=r.prototype;return e.getToken=function(){return this.token},r})();var B=Le(bt()),br=Le(lr());var Nn="5.0.4";var Ya="aws-amplify/"+Nn,_r={userAgent:Ya,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Fn=function(){return _r.userAgent};var Ke=(function(){function r(t){var n=t===void 0?{}:t,i=n.IdToken,s=n.RefreshToken,o=n.AccessToken,a=n.ClockDrift;if(o==null||i==null)throw new Error("Id token and Access Token must be present.");this.idToken=i,this.refreshToken=s,this.accessToken=o,this.clockDrift=a===void 0?this.calculateClockDrift():a;}var e=r.prototype;return e.getIdToken=function(){return this.idToken},e.getRefreshToken=function(){return this.refreshToken},e.getAccessToken=function(){return this.accessToken},e.getClockDrift=function(){return this.clockDrift},e.calculateClockDrift=function(){var n=Math.floor(new Date/1e3),i=Math.min(this.accessToken.getIssuedAt(),this.idToken.getIssuedAt());return n-i},e.isValid=function(){var n=Math.floor(new Date/1e3),i=n-this.clockDrift;return i<this.accessToken.getExpiration()&&i<this.idToken.getExpiration()},r})();var Xa=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Za=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],xt=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=Za[n.getUTCDay()],s=Xa[n.getUTCMonth()],o=n.getUTCDate(),a=n.getUTCHours();a<10&&(a="0"+a);var u=n.getUTCMinutes();u<10&&(u="0"+u);var c=n.getUTCSeconds();c<10&&(c="0"+c);var d=n.getUTCFullYear(),l=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+d;return l},r})();var de=(function(){function r(t){var n=t===void 0?{}:t,i=n.Name,s=n.Value;this.Name=i||"",this.Value=s||"";}var e=r.prototype;return e.getValue=function(){return this.Value},e.setValue=function(n){return this.Value=n,this},e.getName=function(){return this.Name},e.setName=function(n){return this.Name=n,this},e.toString=function(){return JSON.stringify(this)},e.toJSON=function(){return {Name:this.Name,Value:this.Value}},r})();var Ce={},eu=(function(){function r(){}return r.setItem=function(t,n){return Ce[t]=n,Ce[t]},r.getItem=function(t){return Object.prototype.hasOwnProperty.call(Ce,t)?Ce[t]:void 0},r.removeItem=function(t){return delete Ce[t]},r.clear=function(){return Ce={},Ce},r})(),Ut=(function(){function r(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls");}catch{this.storageWindow=eu;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var tu=typeof navigator<"u",Ln=tu?_r.isReactNative?"react-native":navigator.userAgent:"nodejs",ye=(function(){function r(t){if(t==null||t.Username==null||t.Pool==null)throw new Error("Username and Pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||new Ut().getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData";}var e=r.prototype;return e.setSignInUserSession=function(n){this.clearCachedUserData(),this.signInUserSession=n,this.cacheTokens();},e.getSignInUserSession=function(){return this.signInUserSession},e.getUsername=function(){return this.username},e.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.setAuthenticationFlowType=function(n){this.authenticationFlowType=n;},e.initiateAuth=function(n,i){var s=this,o=n.getAuthParameters();o.USERNAME=this.username;var a=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),u={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:a};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",u,function(c,d){if(c)return i.onFailure(c);var l=d.ChallengeName,h=d.ChallengeParameters;return l==="CUSTOM_CHALLENGE"?(s.Session=d.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(d.AuthenticationResult),s.cacheTokens(),i.onSuccess(s.signInUserSession))});},e.authenticateUser=function(n,i){return this.authenticationFlowType==="USER_PASSWORD_AUTH"?this.authenticateUserPlainUsernamePassword(n,i):this.authenticationFlowType==="USER_SRP_AUTH"||this.authenticationFlowType==="CUSTOM_AUTH"?this.authenticateUserDefaultAuth(n,i):i.onFailure(new Error("Authentication flow type is invalid."))},e.authenticateUserDefaultAuth=function(n,i){var s=this,o=new Se(this.pool.getUserPoolName()),a=new xt,u,c,d={};this.deviceKey!=null&&(d.DEVICE_KEY=this.deviceKey),d.USERNAME=this.username,o.getLargeAValue(function(l,h){l&&i.onFailure(l),d.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(d.CHALLENGE_NAME="SRP_A");var m=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:d,ClientMetadata:m};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(p,w){if(p)return i.onFailure(p);var b=w.ChallengeParameters;s.username=b.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new V(b.SRP_B,16),c=new V(b.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,C){R&&i.onFailure(R);var I=a.getNowString(),D=B.Buffer.concat([B.Buffer.from(s.pool.getUserPoolName(),"utf8"),B.Buffer.from(s.username,"utf8"),B.Buffer.from(b.SECRET_BLOCK,"base64"),B.Buffer.from(I,"utf8")]),j=new br.Sha256(C);j.update(D);var re=j.digestSync(),O=B.Buffer.from(re).toString("base64"),P={};P.USERNAME=s.username,P.PASSWORD_CLAIM_SECRET_BLOCK=b.SECRET_BLOCK,P.TIMESTAMP=I,P.PASSWORD_CLAIM_SIGNATURE=O,s.deviceKey!=null&&(P.DEVICE_KEY=s.deviceKey);var k=function(ke,$r){return s.client.request("RespondToAuthChallenge",ke,function(ct,Ms){return ct&&ct.code==="ResourceNotFoundException"&&ct.message.toLowerCase().indexOf("device")!==-1?(P.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(ke,$r)):$r(ct,Ms)})},N={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:P,Session:w.Session,ClientMetadata:m};s.getUserContextData()&&(N.UserContextData=s.getUserContextData()),k(N,function(F,ke){return F?i.onFailure(F):s.authenticateUserInternal(ke,o,i)});});});});},e.authenticateUserPlainUsernamePassword=function(n,i){var s=this,o={};if(o.USERNAME=this.username,o.PASSWORD=n.getPassword(),!o.PASSWORD){i.onFailure(new Error("PASSWORD parameter is required"));return}var a=new Se(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(o.DEVICE_KEY=this.deviceKey);var u=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),c={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:u};this.getUserContextData(this.username)&&(c.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",c,function(d,l){return d?i.onFailure(d):s.authenticateUserInternal(l,a,i)});},e.authenticateUserInternal=function(n,i,s){var o=this,a=n.ChallengeName,u=n.ChallengeParameters;if(a==="SMS_MFA")return this.Session=n.Session,s.mfaRequired(a,u);if(a==="SELECT_MFA_TYPE")return this.Session=n.Session,s.selectMFAType(a,u);if(a==="MFA_SETUP")return this.Session=n.Session,s.mfaSetup(a,u);if(a==="SOFTWARE_TOKEN_MFA")return this.Session=n.Session,s.totpRequired(a,u);if(a==="CUSTOM_CHALLENGE")return this.Session=n.Session,s.customChallenge(u);if(a==="NEW_PASSWORD_REQUIRED"){this.Session=n.Session;var c=null,d=null,l=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),d=JSON.parse(n.ChallengeParameters.requiredAttributes)),d)for(var m=0;m<d.length;m++)l[m]=d[m].substr(h.length);return s.newPasswordRequired(c,l)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(p){if(p)return s.onFailure(p);var w={Salt:B.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=w.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Ln},function(b,R){return b?s.onFailure(b):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,R.UserConfirmationNecessary):s.onSuccess(o.signInUserSession))});});},e.completeNewPasswordChallenge=function(n,i,s,o){var a=this;if(!n)return s.onFailure(new Error("New password is required."));var u=new Se(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),d={};i&&Object.keys(i).forEach(function(h){d[c+h]=i[h];}),d.NEW_PASSWORD=n,d.USERNAME=this.username;var l={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:d,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(h,m){return h?s.onFailure(h):a.authenticateUserInternal(m,u,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new Se(this.deviceGroupKey),a=new xt,u={};u.USERNAME=this.username,u.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(c,d){c&&n.onFailure(c),u.SRP_A=d.toString(16);var l={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(l.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",l,function(h,m){if(h)return n.onFailure(h);var g=m.ChallengeParameters,p=new V(g.SRP_B,16),w=new V(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,p,w,function(b,R){if(b)return n.onFailure(b);var C=a.getNowString(),I=B.Buffer.concat([B.Buffer.from(s.deviceGroupKey,"utf8"),B.Buffer.from(s.deviceKey,"utf8"),B.Buffer.from(g.SECRET_BLOCK,"base64"),B.Buffer.from(C,"utf8")]),D=new br.Sha256(R);D.update(I);var j=D.digestSync(),re=B.Buffer.from(j).toString("base64"),O={};O.USERNAME=s.username,O.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,O.TIMESTAMP=C,O.PASSWORD_CLAIM_SIGNATURE=re,O.DEVICE_KEY=s.deviceKey;var P={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:O,Session:m.Session};s.getUserContextData()&&(P.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",P,function(k,N){return k?n.onFailure(k):(s.signInUserSession=s.getCognitoUserSession(N.AuthenticationResult),s.cacheTokens(),n.onSuccess(s.signInUserSession))});});});});},e.confirmRegistration=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),ConfirmationCode:n,Username:this.username,ForceAliasCreation:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmSignUp",a,function(u){return u?s(u,null):s(null,"SUCCESS")});},e.sendCustomChallengeAnswer=function(n,i,s){var o=this,a={};a.USERNAME=this.username,a.ANSWER=n;var u=new Se(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(a.DEVICE_KEY=this.deviceKey);var c={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:a,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:s};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",c,function(d,l){return d?i.onFailure(d):o.authenticateUserInternal(l,u,i)});},e.sendMFACode=function(n,i,s,o){var a=this,u={};u.USERNAME=this.username,u.SMS_MFA_CODE=n;var c=s||"SMS_MFA";c==="SOFTWARE_TOKEN_MFA"&&(u.SOFTWARE_TOKEN_MFA_CODE=n),this.deviceKey!=null&&(u.DEVICE_KEY=this.deviceKey);var d={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(l,h){if(l)return i.onFailure(l);var m=h.ChallengeName;if(m==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new Se(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(p){if(p)return i.onFailure(p);var w={Salt:B.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=w.PasswordVerifier,a.deviceGroupKey=h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,a.randomPassword=g.getRandomPassword(),a.client.request("ConfirmDevice",{DeviceKey:h.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:a.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Ln},function(b,R){return b?i.onFailure(b):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,R.UserConfirmationNecessary):i.onSuccess(a.signInUserSession))});});});},e.changePassword=function(n,i,s,o){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return s(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:n,ProposedPassword:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:o},function(a){return a?s(a,null):s(null,"SUCCESS")});},e.enableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[],s={DeliveryMedium:"SMS",AttributeName:"phone_number"};i.push(s),this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?n(o,null):n(null,"SUCCESS")});},e.setUserMfaPreference=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:n,SoftwareTokenMfaSettings:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s(o,null):s(null,"SUCCESS")});},e.disableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[];this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n(s,null):n(null,"SUCCESS")});},e.deleteUser=function(n,i){var s=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:i},function(o){return o?n(o,null):(s.clearCachedUser(),n(null,"SUCCESS"))});},e.updateAttributes=function(n,i,s){var o=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return i(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:n,ClientMetadata:s},function(a,u){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",u)},{bypassCache:true})});},e.getUserAttributes=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){if(i)return n(i,null);for(var o=[],a=0;a<s.UserAttributes.length;a++){var u={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},c=new de(u);o.push(c);}return n(null,o)});},e.getMFAOptions=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){return i?n(i,null):n(null,s.MFAOptions)});},e.createGetUserRequest=function(){return this.client.promisifyRequest("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()})},e.refreshSessionIfPossible=function(n){var i=this;return n===void 0&&(n={}),new Promise(function(s){var o=i.signInUserSession.getRefreshToken();o&&o.getToken()?i.refreshSession(o,s,n.clientMetadata):s();})},e.getUserData=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return this.clearCachedUserData(),n(new Error("User is not authenticated"),null);var o=this.getUserDataFromCache();if(!o){this.fetchUserData().then(function(a){n(null,a);}).catch(n);return}if(this.isFetchUserDataAndTokenRequired(i)){this.fetchUserData().then(function(a){return s.refreshSessionIfPossible(i).then(function(){return a})}).then(function(a){return n(null,a)}).catch(n);return}try{n(null,JSON.parse(o));return}catch(a){this.clearCachedUserData(),n(a,null);return}},e.getUserDataFromCache=function(){var n=this.storage.getItem(this.userDataKey);return n},e.isFetchUserDataAndTokenRequired=function(n){var i=n||{},s=i.bypassCache,o=s===void 0?false:s;return o},e.fetchUserData=function(){var n=this;return this.createGetUserRequest().then(function(i){return n.cacheUserData(i),i})},e.deleteAttributes=function(n,i){var s=this;if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return i(new Error("User is not authenticated"),null);this.client.request("DeleteUserAttributes",{UserAttributeNames:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?i(o,null):s.getUserData(function(){return i(null,"SUCCESS")},{bypassCache:true})});},e.resendConfirmationCode=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.client.request("ResendConfirmationCode",s,function(o,a){return o?n(o,null):n(null,a)});},e.getSession=function(n,i){if(i===void 0&&(i={}),this.username==null)return n(new Error("Username is null. Cannot retrieve a new session"),null);if(this.signInUserSession!=null&&this.signInUserSession.isValid())return n(null,this.signInUserSession);var s="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,o=s+".idToken",a=s+".accessToken",u=s+".refreshToken",c=s+".clockDrift";if(this.storage.getItem(o)){var d=new $e({IdToken:this.storage.getItem(o)}),l=new Be({AccessToken:this.storage.getItem(a)}),h=new je({RefreshToken:this.storage.getItem(u)}),m=parseInt(this.storage.getItem(c),0)||0,g={IdToken:d,AccessToken:l,RefreshToken:h,ClockDrift:m},p=new Ke(g);if(p.isValid())return this.signInUserSession=p,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),d=c+".LastAuthUser";if(this.storage.getItem(d)){this.username=this.storage.getItem(d);var l=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(l),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(m,g){if(m)return m.code==="NotAuthorizedException"&&o.clearCachedUser(),a(m,null);if(g){var p=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(p,"RefreshToken")||(p.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(p),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new $e(n),s=new Be(n),o=new je(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new Ke(a)},e.forgotPassword=function(n,i){var s={ClientId:this.pool.getClientId(),Username:this.username,ClientMetadata:i};this.getUserContextData()&&(s.UserContextData=this.getUserContextData()),this.client.request("ForgotPassword",s,function(o,a){return o?n.onFailure(o):typeof n.inputVerificationCode=="function"?n.inputVerificationCode(a):n.onSuccess(a)});},e.confirmPassword=function(n,i,s,o){var a={ClientId:this.pool.getClientId(),Username:this.username,ConfirmationCode:n,Password:i,ClientMetadata:o};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("ConfirmForgotPassword",a,function(u){return u?s.onFailure(u):s.onSuccess("SUCCESS")});},e.getAttributeVerificationCode=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("GetUserAttributeVerificationCode",{AttributeName:n,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:s},function(o,a){return o?i.onFailure(o):typeof i.inputVerificationCode=="function"?i.inputVerificationCode(a):i.onSuccess("SUCCESS")});},e.verifyAttribute=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));this.client.request("VerifyUserAttribute",{AttributeName:n,Code:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s.onFailure(o):s.onSuccess("SUCCESS")});},e.getDevice=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey},function(i,s){return i?n.onFailure(i):n.onSuccess(s)});},e.forgetSpecificDevice=function(n,i){if(this.signInUserSession==null||!this.signInUserSession.isValid())return i.onFailure(new Error("User is not authenticated"));this.client.request("ForgetDevice",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:n},function(s){return s?i.onFailure(s):i.onSuccess("SUCCESS")});},e.forgetDevice=function(n){var i=this;this.forgetSpecificDevice(this.deviceKey,{onFailure:n.onFailure,onSuccess:function(o){return i.deviceKey=null,i.deviceGroupKey=null,i.randomPassword=null,i.clearCachedDeviceKeyAndPassword(),n.onSuccess(o)}});},e.setDeviceStatusRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.setDeviceStatusNotRemembered=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("UpdateDeviceStatus",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),DeviceKey:this.deviceKey,DeviceRememberedStatus:"not_remembered"},function(i){return i?n.onFailure(i):n.onSuccess("SUCCESS")});},e.listDevices=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s.onFailure(new Error("User is not authenticated"));var o={AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),Limit:n};i&&(o.PaginationToken=i),this.client.request("ListDevices",o,function(a,u){return a?s.onFailure(a):s.onSuccess(u)});},e.globalSignOut=function(n){var i=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n.onFailure(new Error("User is not authenticated"));this.client.request("GlobalSignOut",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n.onFailure(s):(i.clearCachedUser(),n.onSuccess("SUCCESS"))});},e.signOut=function(n){var i=this;if(!n||typeof n!="function"){this.cleanClientData();return}this.getSession(function(s,o){if(s)return n(s);i.revokeTokens(function(a){i.cleanClientData(),n(a);});});},e.revokeTokens=function(n){if(n===void 0&&(n=function(){}),typeof n!="function")throw new Error("Invalid revokeTokenCallback. It should be a function.");if(!this.signInUserSession){var s=new Error("User is not authenticated");return n(s)}if(!this.signInUserSession.getAccessToken()){var o=new Error("No Access token available");return n(o)}var a=this.signInUserSession.getRefreshToken().getToken(),u=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(u)&&a)return this.revokeToken({token:a,callback:n});n();},e.isSessionRevocable=function(n){if(n&&typeof n.decodePayload=="function")try{var i=n.decodePayload(),s=i.origin_jti;return !!s}catch{}return false},e.cleanClientData=function(){this.signInUserSession=null,this.clearCachedUser();},e.revokeToken=function(n){var i=n.token,s=n.callback;this.client.requestWithRetry("RevokeToken",{Token:i,ClientId:this.pool.getClientId()},function(o){if(o)return s(o);s();});},e.sendMFASelectionAnswer=function(n,i){var s=this,o={};o.USERNAME=this.username,o.ANSWER=n;var a={ChallengeName:"SELECT_MFA_TYPE",ChallengeResponses:o,ClientId:this.pool.getClientId(),Session:this.Session};this.getUserContextData()&&(a.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",a,function(u,c){if(u)return i.onFailure(u);if(s.Session=c.Session,n==="SMS_MFA")return i.mfaRequired(c.ChallengeName,c.ChallengeParameters);if(n==="SOFTWARE_TOKEN_MFA")return i.totpRequired(c.ChallengeName,c.ChallengeParameters)});},e.getUserContextData=function(){var n=this.pool;return n.getUserContextData(this.username)},e.associateSoftwareToken=function(n){var i=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("AssociateSoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s,o){return s?n.onFailure(s):n.associateSecretCode(o.SecretCode)}):this.client.request("AssociateSoftwareToken",{Session:this.Session},function(s,o){return s?n.onFailure(s):(i.Session=o.Session,n.associateSecretCode(o.SecretCode))});},e.verifySoftwareToken=function(n,i,s){var o=this;this.signInUserSession!=null&&this.signInUserSession.isValid()?this.client.request("VerifySoftwareToken",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserCode:n,FriendlyDeviceName:i},function(a,u){return a?s.onFailure(a):s.onSuccess(u)}):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:n,FriendlyDeviceName:i},function(a,u){if(a)return s.onFailure(a);o.Session=u.Session;var c={};c.USERNAME=o.username;var d={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(d.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",d,function(l,h){return l?s.onFailure(l):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Le(Mn());function He(){}He.prototype.userAgent=Fn();var Vn=function(e){var t=He.category?" "+He.category:"",n=He.framework?" framework/"+He.framework:"",i=""+He.prototype.userAgent+t+n;return i};function nu(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ye(r,e);}function Ar(r){var e=typeof Map=="function"?new Map:void 0;return Ar=function(n){if(n===null||!su(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(n))return e.get(n);e.set(n,i);}function i(){return iu(n,arguments,Er(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),Ye(i,n)},Ar(r)}function iu(r,e,t){if(qn())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(r.bind.apply(r,n));return t&&Ye(i,t.prototype),i}function qn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (qn=function(){return !!r})()}function su(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}}function Ye(r,e){return Ye=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},Ye(r,e)}function Er(r){return Er=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Er(r)}var ou=(function(r){function e(t,n,i,s){var o;return o=r.call(this,t)||this,o.code=n,o.name=i,o.statusCode=s,o}return nu(e,r),e})(Ar(Error)),Bn=(function(){function r(t,n,i){this.endpoint=n||"https://cognito-idp."+t+".amazonaws.com/";var s=i||{},o=s.credentials;this.fetchOptions=o?{credentials:o}:{};}var e=r.prototype;return e.promisifyRequest=function(n,i){var s=this;return new Promise(function(o,a){s.request(n,i,function(u,c){u?a(new ou(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;lu(function(u){return new Promise(function(c,d){o.request(n,u,function(l,h){l?d(l):c(h);});})},[i],a).then(function(u){return s(null,u)}).catch(function(u){return s(u)});},e.request=function(n,i,s){var o={"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityProviderService."+n,"X-Amz-User-Agent":Vn(),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(i)}),u;fetch(this.endpoint,a).then(function(d){return u=d,d},function(d){throw d instanceof TypeError?new Error("Network error"):d}).then(function(d){return d.json().catch(function(){return {}})}).then(function(d){if(u.ok)return s(null,d);var l=(d.__type||d.code).split("#").pop(),h=new Error(d.message||d.Message||null);return h.name=l,h.code=l,s(h)}).catch(function(d){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var l=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=l,h.name=l,h.statusCode=u.status,s(h)}catch{return s(d)}else d instanceof Error&&d.message==="Network error"&&(d.code="NetworkError");return s(d)});},r})();var Ct={debug:function(){}};var au=function(e){var t="nonRetryable";return e&&e[t]};function $n(r,e,t,n){if(n===void 0&&(n=1),typeof r!="function")throw Error("functionToRetry must be a function");return Ct.debug(r.name+" attempt #"+n+" with args: "+JSON.stringify(e)),r.apply(void 0,e).catch(function(i){if(Ct.debug("error on "+r.name,i),au(i))throw Ct.debug(r.name+" non retryable error",i),i;var s=t(n,e,i);if(Ct.debug(r.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return $n(r,e,t,n+1)});throw i})}function uu(r){var e=100,t=100;return function(n){var i=Math.pow(2,n)*e+t*Math.random();return i>r?false:i}}function lu(r,e,t){return $n(r,e,uu(t))}var du=55,Sr=(function(){function r(t,n){var i=t||{},s=i.UserPoolId,o=i.ClientId,a=i.endpoint,u=i.fetchOptions,c=i.AdvancedSecurityDataCollectionFlag;if(!s||!o)throw new Error("Both UserPoolId and ClientId are required.");if(s.length>du||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var d=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new Bn(d,a,u),this.advancedSecurityDataCollectionFlag=c!==false,this.storage=t.Storage||new Ut().getStorage(),n&&(this.wrapRefreshSessionCallback=n);}var e=r.prototype;return e.getUserPoolId=function(){return this.userPoolId},e.getUserPoolName=function(){return this.getUserPoolId().split("_")[1]},e.getClientId=function(){return this.clientId},e.signUp=function(n,i,s,o,a,u){var c=this,d={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(d.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",d,function(l,h){if(l)return a(l,null);var m={Username:n,Pool:c,Storage:c.storage},g={user:new ye(m),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new ye(s)}return null},e.getUserContextData=function(n){if(!(typeof AmazonCognitoAdvancedSecurityData>"u")){var i=AmazonCognitoAdvancedSecurityData;if(this.advancedSecurityDataCollectionFlag){var s=i.getData(n,this.userPoolId,this.clientId);if(s){var o={EncodedData:s};return o}}return {}}},r})();function Dt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)n!=="__proto__"&&(r[n]=t[n]);}return r}var fu={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function vr(r,e){function t(i,s,o){if(!(typeof document>"u")){o=Dt({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var u in o)o[u]&&(a+="; "+u,o[u]!==true&&(a+="="+o[u].split(";")[0]));return document.cookie=i+"="+r.write(s,i)+a}}function n(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var s=document.cookie?document.cookie.split("; "):[],o={},a=0;a<s.length;a++){var u=s[a].split("="),c=u.slice(1).join("=");try{var d=decodeURIComponent(u[0]);if(d in o||(o[d]=r.read(c,d)),i===d)break}catch{}}return i?o[i]:o}}return Object.create({set:t,get:n,remove:function(i,s){t(i,"",Dt({},s,{expires:-1}));},withAttributes:function(i){return vr(this.converter,Dt({},this.attributes,i))},withConverter:function(i){return vr(Dt({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}vr(fu,{path:"/"});var f=class extends Error{constructor(e,t){if(Array.isArray(e)&&e.length<=2){let n=e[1];if(e.length>2)for(let i=2;i<e.length&&typeof e[i]=="string";i++)n+=e[i];super((n||"Something went wrong.").trim()),this.name=t?.name||"SKAPI",this.code=t?.code||e[0]||"ERROR",t?.cause&&(this.cause=t.cause);}else super((e?.message||(typeof e=="string"?e:"Something went wrong.")).trim()),typeof e=="string"?(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",t?.cause&&(this.cause=t.cause)):e instanceof Error?(this.cause=e,this.name=e.name,e.hasOwnProperty("code")&&(this.code=e.code)):typeof e=="object"&&e?.code&&e?.message&&(this.name=t?.name||"SKAPI",this.code=t?.code||"ERROR",this.cause=e?.cause);}};var we="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Tr=BigInt(we.length),gu=2*1024*1024,pu=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],jn={auth_time:"log",sub:"user_id"},mu=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Gn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Kn=typeof TextEncoder<"u"?new TextEncoder:null;function _u(){if(typeof globalThis<"u")return globalThis.Buffer}function bu(r){if(Kn)return Kn.encode(r);let e=unescape(encodeURIComponent(r)),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function yu(r){if(r instanceof Uint8Array)return r;if(typeof r=="string")return bu(r);if(typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer)return new Uint8Array(r);if(typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);if(Array.isArray(r))return Uint8Array.from(r);let e=_u();if(e)return new Uint8Array(e.from(r));throw new Error("No byte conversion available in this environment.")}var A=class A{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let t=A.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,u,c,d;for(let l=0;l<t.length;l+=16)a=n,u=i,c=s,d=o,n=A.ff(n,i,s,o,t[l],7,-680876936),o=A.ff(o,n,i,s,t[l+1],12,-389564586),s=A.ff(s,o,n,i,t[l+2],17,606105819),i=A.ff(i,s,o,n,t[l+3],22,-1044525330),n=A.ff(n,i,s,o,t[l+4],7,-176418897),o=A.ff(o,n,i,s,t[l+5],12,1200080426),s=A.ff(s,o,n,i,t[l+6],17,-1473231341),i=A.ff(i,s,o,n,t[l+7],22,-45705983),n=A.ff(n,i,s,o,t[l+8],7,1770035416),o=A.ff(o,n,i,s,t[l+9],12,-1958414417),s=A.ff(s,o,n,i,t[l+10],17,-42063),i=A.ff(i,s,o,n,t[l+11],22,-1990404162),n=A.ff(n,i,s,o,t[l+12],7,1804603682),o=A.ff(o,n,i,s,t[l+13],12,-40341101),s=A.ff(s,o,n,i,t[l+14],17,-1502002290),i=A.ff(i,s,o,n,t[l+15],22,1236535329),n=A.gg(n,i,s,o,t[l+1],5,-165796510),o=A.gg(o,n,i,s,t[l+6],9,-1069501632),s=A.gg(s,o,n,i,t[l+11],14,643717713),i=A.gg(i,s,o,n,t[l],20,-373897302),n=A.gg(n,i,s,o,t[l+5],5,-701558691),o=A.gg(o,n,i,s,t[l+10],9,38016083),s=A.gg(s,o,n,i,t[l+15],14,-660478335),i=A.gg(i,s,o,n,t[l+4],20,-405537848),n=A.gg(n,i,s,o,t[l+9],5,568446438),o=A.gg(o,n,i,s,t[l+14],9,-1019803690),s=A.gg(s,o,n,i,t[l+3],14,-187363961),i=A.gg(i,s,o,n,t[l+8],20,1163531501),n=A.gg(n,i,s,o,t[l+13],5,-1444681467),o=A.gg(o,n,i,s,t[l+2],9,-51403784),s=A.gg(s,o,n,i,t[l+7],14,1735328473),i=A.gg(i,s,o,n,t[l+12],20,-1926607734),n=A.hh(n,i,s,o,t[l+5],4,-378558),o=A.hh(o,n,i,s,t[l+8],11,-2022574463),s=A.hh(s,o,n,i,t[l+11],16,1839030562),i=A.hh(i,s,o,n,t[l+14],23,-35309556),n=A.hh(n,i,s,o,t[l+1],4,-1530992060),o=A.hh(o,n,i,s,t[l+4],11,1272893353),s=A.hh(s,o,n,i,t[l+7],16,-155497632),i=A.hh(i,s,o,n,t[l+10],23,-1094730640),n=A.hh(n,i,s,o,t[l+13],4,681279174),o=A.hh(o,n,i,s,t[l],11,-358537222),s=A.hh(s,o,n,i,t[l+3],16,-722521979),i=A.hh(i,s,o,n,t[l+6],23,76029189),n=A.hh(n,i,s,o,t[l+9],4,-640364487),o=A.hh(o,n,i,s,t[l+12],11,-421815835),s=A.hh(s,o,n,i,t[l+15],16,530742520),i=A.hh(i,s,o,n,t[l+2],23,-995338651),n=A.ii(n,i,s,o,t[l],6,-198630844),o=A.ii(o,n,i,s,t[l+7],10,1126891415),s=A.ii(s,o,n,i,t[l+14],15,-1416354905),i=A.ii(i,s,o,n,t[l+5],21,-57434055),n=A.ii(n,i,s,o,t[l+12],6,1700485571),o=A.ii(o,n,i,s,t[l+3],10,-1894986606),s=A.ii(s,o,n,i,t[l+10],15,-1051523),i=A.ii(i,s,o,n,t[l+1],21,-2054922799),n=A.ii(n,i,s,o,t[l+8],6,1873313359),o=A.ii(o,n,i,s,t[l+15],10,-30611744),s=A.ii(s,o,n,i,t[l+6],15,-1560198380),i=A.ii(i,s,o,n,t[l+13],21,1309151649),n=A.ii(n,i,s,o,t[l+4],6,-145523070),o=A.ii(o,n,i,s,t[l+11],10,-1120210379),s=A.ii(s,o,n,i,t[l+2],15,718787259),i=A.ii(i,s,o,n,t[l+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,u),s=A.ad(s,c),o=A.ad(o,d);return A.rh(n)+A.rh(i)+A.rh(s)+A.rh(o)}static rh(e){let t="";for(let n=0;n<=3;n++)t+=A.alphabet.charAt(e>>n*8+4&15)+A.alphabet.charAt(e>>n*8&15);return t}static ad(e,t){let n=(e&65535)+(t&65535);return (e>>16)+(t>>16)+(n>>16)<<16|n&65535}static rl(e,t){return e<<t|e>>>32-t}static cm(e,t,n,i,s,o){return A.ad(A.rl(A.ad(A.ad(t,e),A.ad(i,o)),s),n)}static ff(e,t,n,i,s,o,a){return A.cm(t&n|~t&i,e,t,s,o,a)}static gg(e,t,n,i,s,o,a){return A.cm(t&i|n&~i,e,t,s,o,a)}static hh(e,t,n,i,s,o,a){return A.cm(t^n^i,e,t,s,o,a)}static ii(e,t,n,i,s,o,a){return A.cm(n^(t|~i),e,t,s,o,a)}static sb(e){let t,n=(e.length+8>>6)+1,i=new Array(n*16);for(t=0;t<n*16;t++)i[t]=0;for(t=0;t<e.length;t++)i[t>>2]|=e.charCodeAt(t)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[n*16-2]=e.length*8,i}};A.alphabet="0123456789abcdef";var K=A;function Qn(r){if(r===0)return we[0];let e="";for(;r>0;)e=we[r%62]+e,r=Math.floor(r/62);return e}function ie(r){return r.split("").reverse().reduce((e,t,n)=>e+we.indexOf(t)*62**n,0)}function De(r=6){let e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=t.length,i=0;for(;i<r;)e+=t.charAt(Math.floor(Math.random()*n)),i+=1;return e}function Rr(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !Rr()&&typeof document<"u"&&typeof document.createElement=="function"}function kt(r){let e;try{e=JSON.stringify(r);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>gu)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function Hn(r){return r===""||r==="on"||r==="true"}function Wn(r){return r==="false"}function Jn(r,e,t){e.name&&t(r,e.name,e.value);}var Nt=z(),wu=typeof SubmitEvent<"u",Au=typeof HTMLFormElement<"u";function L(r,e,t){let n={},i=[];function s(u,c,d){if(e?.ignoreEmpty&&d==="")return;if(e?.nullIfEmpty&&d===""&&(d=null),typeof t=="function"){let m=t(c,d);m!==void 0&&(d=m);}let l=c.split("[").map(m=>{let g=m.replace("]",""),p=Number(g);return !isNaN(p)&&!g.includes(".")?g=p:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof l[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let m=0;m<l.length;m++){let g=l[m];m<l.length-1?(h[g]===void 0&&(typeof l[m+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=d:Array.isArray(h[g])?h[g].push(d):h[g]=[h[g],d];}}function o(u,c,d){if(d instanceof File)u.push({name:c,file:d});else if(d instanceof FileList&&d&&d.length>0)for(let l=0;l<=d.length-1;l++){let h=d.item(l);h&&u.push({name:c,file:h});}}let a=u=>{u.name&&(u.type==="number"?u.value&&s(n,u.name,Number(u.value)):u.type==="checkbox"||u.type==="radio"?u.checked?u.type==="checkbox"&&u.value===""||Hn(u.value)?s(n,u.name,true):Wn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(Hn(u.value)?s(n,u.name,false):Wn(u.value)&&s(n,u.name,true)):u.type==="file"?u.files&&u.files.length>0&&o(i,u.name,u.files):s(n,u.name,u.value));};if(Nt&&(r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement))return a(r),kt(n),{data:n,files:i};if(Nt&&r instanceof FormData){for(let u of r.entries()){let c=u[0],d=u[1];if(d instanceof File||d instanceof FileList)o(i,c,d);else if(d instanceof Blob){let l=d;if(l.type==="application/json")try{let h=JSON.parse(l.text());s(n,c,h);}catch{s(n,c,l);}}else s(n,c,d);}return kt(n),{data:n,files:i}}if(Nt&&wu&&r instanceof SubmitEvent&&(r=r.target),Nt&&Au&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),d=r.querySelectorAll("textarea");for(let l=0;l<c.length;l++)Jn(n,c[l],s);for(let l=0;l<d.length;l++)Jn(n,d[l],s);for(let l=0;l<u.length;l++)a(u[l]);return kt(n),{data:n,files:i}}return kt(r),{data:r,files:i}}function Xe(r){let e={};for(let t in r){let n=r[t];if(!pu.includes(t))if(jn[t])e[jn[t]]=n;else if(t.includes("custom:"))e[t.replace("custom:","")]=n;else if(t==="address"){let i=n;if(i&&typeof i=="object"&&Object.keys(i).length){if(i?.formatted)try{e[t]=JSON.parse(i.formatted);}catch{e[t]=i.formatted;}}else e[t]=i;}else e[t]=n;}for(let t of ["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])t.includes("_public")?e.hasOwnProperty(t.split("_")[0])?e[t]=e.hasOwnProperty(t)?!!Number(e[t]):false:delete e[t]:e[t]=e.hasOwnProperty(t)?Number(e[t]):0;for(let t of ["email","phone_number"])e.hasOwnProperty(t)?e[t+"_verified"]=e[t+"_verified"]===true:delete e[t+"_verified"];return e}function Ir(r){if(r=xu(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=Gn[ie(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid.")}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid.");return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function zn(r,e){let t=Gn.indexOf(r.slice(0,4)),n=mu[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return Pu(s)}function Eu(r){let e=0n;for(let t of r){let n=we.indexOf(t);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${t}`);e=e*Tr+BigInt(n);}return e}function Su(r,e=1){if(r<0n)throw new Error("INVALID_PARAMETER: Negative values are not supported.");if(r===0n)return "0".repeat(Math.max(1,e));let t="",n=r;for(;n>0n;){let i=Number(n%Tr);t=we[i]+t,n/=Tr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function vu(r){if(r===0n)return Uint8Array.from([0]);let e=[],t=r;for(;t>0n;)e.push(Number(t&0xffn)),t>>=8n;return e.reverse(),Uint8Array.from(e)}function Tu(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function Ru(r){let e=String(r).replace(/-/g,"");if(!/^[0-9a-fA-F]{32}$/.test(e))throw new Error("INVALID_PARAMETER: Invalid UUID format.");let t=new Uint8Array(16);for(let n=0;n<16;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}function Iu(r){let e=Array.from(yu(r),t=>t.toString(16).padStart(2,"0")).join("");return [e.slice(0,8),e.slice(8,12),e.slice(12,16),e.slice(16,20),e.slice(20)].join("-")}function Pu(r){let e=String(r);if(e.split("-").length===2)return e;let t=e.match(/^([0-9A-Za-z]+)-([0-9A-Za-z]+)-([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/);if(!t)throw new Error("INVALID_PARAMETER: Input must match <base62>-<base62>-<uuid>.");let[,n,i,s]=t;if(n.length<2)throw new Error("INVALID_PARAMETER: The first part must contain at least 2 characters.");if(i.length>=we.length)throw new Error("INVALID_PARAMETER: The middle section is too long to encode.");let o=n.slice(0,2),a=n.slice(2),u=i+o,c=we[i.length]+a+u,d=Ru(s),l=Su(Tu(d));return `${c}-${l}`}function xu(r){let e=String(r);if(e.split("-").length!==2)return e;let t=e.split("-");if(t.length!==2||!t[0]||!t[1])throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let[n,i]=t,s=we.indexOf(n[0]);if(s<0)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let o=n.slice(1),a=s+2;if(o.length<a)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let u=o.slice(0,o.length-a),c=o.slice(o.length-a),d=c.slice(s),l=c.slice(0,s),h=d+u;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(l))throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let m=Eu(i),g=vu(m);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token.");let p=new Uint8Array(16);p.set(g,16-g.length);let w=Iu(p);return `${h}-${l}-${w}`}function Ze(r,e,t=[],n=null){let i=["string","number","boolean","object","array","function","null","undefined"];function s(g){return g!==null&&typeof g=="object"&&!Array.isArray(g)}function o(g){return s(g)}function a(g){return Array.isArray(g)}function u(g){return typeof g=="string"&&i.indexOf(g)!==-1}function c(g){return Array.isArray(g)?"array":g===null?"null":typeof g}function d(g){try{return JSON.stringify(g)}catch{return String(g)}}function l(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(p,w)=>typeof w=="function"?"custom validator":w)}catch{return String(g)}}function h(g,p){return p==="array"?Array.isArray(g):p==="object"?s(g):p==="null"?g===null:p==="undefined"?typeof g>"u":typeof g===p}function m(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
207
+ `+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let p=m(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=Ze(r[g],e[g],t,p);else {if(t.indexOf(p)!==-1)throw new Error(`Key "${p}" is required.`);let w=e[g];a(w)&&w.length>1&&typeof w[w.length-1]=="function"&&(r[g]=w[w.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let p=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let w=0;w<r.length;w++){let b=r[w];if(u(p)){if(!h(b,p))throw new Error(`Type <${c(b)}> is invalid in "${n}". Expected a list of Type <${p}>.`)}else if(typeof p=="function")r[w]=p(b);else if(b!==p)throw new Error(`Value ${d(b)} is invalid in "${n}". Expected a list of ${d(p)}.`)}g=true;}else if(Array.isArray(r)&&e.every(w=>!a(w)&&w!=="array")){for(let w=0;w<r.length;w++){let b=false,R="";for(let C of e)try{r[w]=Ze(r[w],C,t,n),b=!0;break}catch(I){typeof C=="function"&&(R=I?.message||String(I));}if(!b&&R)throw new Error(R);if(!b){let C=e.map(l).join(", ");throw new Error(`${d(r[w])} is invalid in "${n}". allowed types or values are: ${C}.`)}}g=true;}else {let w="";for(let b of e)try{r=Ze(r,b,t,n),g=!0;break}catch(R){typeof b=="function"&&(w=R?.message||String(R));}if(!g&&w)throw new Error(w)}if(!g){let p=e.map(l).join(", ");throw new Error(`${d(r)} is invalid in "${n}". allowed types or values are: ${p}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${d(r)} is invalid in "${n}". allowed type or value is: ${l(e)}.`)}function Uu(r,e="User ID"){let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;if(r){if(typeof r!="string")throw new f(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!r.match(t))throw new f(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new f(`${e} is empty.`,{code:"INVALID_PARAMETER"});return r}function Cu(r){if(r&&(typeof r!="string"||r.charAt(0)!=="+"||isNaN(Number(r.substring(1)))))throw new f('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return r||""}function Du(r){if(r){if(typeof r!="string")throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"});{let e=new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);if(r.length!==10||r.split("-").length!==3||!e.test(r))throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return r||""}function ku(r){if(r){if(typeof r!="string")throw new f('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(r.length<6)throw new f('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(r.length>60)throw new f('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"})}else throw new f('"password" is required.',{code:"INVALID_PARAMETER"});return r}function Nu(r,e="email"){if(r){if(typeof r!="string")throw new f(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(r.length<5)throw new f(`"${e}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(r)&&(r=r.trim(),r.split("@")[1].split(".").length>=2))return r.toLowerCase()}else throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new f(`"${r}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function Fu(r){let e=typeof window<"u",t=(()=>{let i=e&&window.location.origin||null;return i&&i.slice(-1)==="/"&&(i=i.slice(0,-1)),i})(),n=i=>{if(typeof i=="string"){if(i==="*")return "*";{let s=i.trim();if(s[0]==="/"&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=t+s;}else if(s[0]==="."&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let a=e?window.location.href.split("?")[0]:"";a.slice(-1)!=="/"&&(a+="/"),s=a+s.slice(1);}let o;try{o=new URL(s);}catch{throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(r)?r.map(i=>n(i)):n(r)}function Lu(r,e,t=[],n){let i=L(r,n),s=i.data;e.service="string",e.owner="string";let o={};for(let a in e)if(s&&typeof s=="object"&&!Array.isArray(s)&&s.hasOwnProperty(a))if(typeof s[a]=="function")o[a]=s[a];else try{o[a]=JSON.parse(JSON.stringify(s[a]));}catch{o[a]=s[a];}n?.precall&&n.precall({data:o,files:i?.files||[]});try{return Ze(o,e,t)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var _={UserId:Uu,PhoneNumber:Cu,Birthdate:Du,Password:ku,Email:Nu,Url:Fu,Params:Lu};var M=null;function Pr(r){let e={tkid:"ticket_id",cond:"condition",stmp:"timestamp",actn:"action",cnt:"count",ttl:"time_to_live",plch:"placeholder",hash:"hash",desc:"description",pmc:"limit_per_user"},t={};for(let n in r)if(n==="tkid"){let i=r[n].split("#");if(i.length===1){t.ticket_id=i[0];continue}t.ticket_id=i[1],t.consume_id=i[2],t.user_id=i[3];let s=i[2].slice(-4);if(t.is_test=s===":CHK",!r.stmp){let o=i[2].slice(0,-4);/^[0-9]+$/.test(o)?t.timestamp=parseInt(o,10):t.timestamp=ie(i[2].slice(0,-4));}}else e[n]?t[e[n]]=r[n]:t[n]=r[n];return t}async function Xn(r){if(!r.ticket_id)throw new f("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!r.method)throw new f('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let e=r.ticket_id;await this.__connection;let t=await S.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${e}`,r?.data||{},{method:r.method,auth:!!r?.auth});return Pr(t)}async function Zn(r,e){await this.__connection;let t=await S.bind(this)("ticket",Object.assign({exec:"list"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Pr),t}async function ei(r,e){await this.__connection;let t=await S.bind(this)("ticket",Object.assign({exec:"consumed"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Pr),t}async function ti(r){return S.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function ri(r){return S.bind(this)("register-ticket",Object.assign({exec:"unreg"},r),{auth:true})}async function We(){if(await this.__connection,this.session){let r=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(t<r){this.log("request:requesting new token",null);try{await G.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session?.idToken?.payload?.exp,currentTime:r,expiresIn:t-r,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(n){throw this.log("request:new token error",n),new f("User login is required.",{code:"INVALID_REQUEST"})}}else this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:r,expiresIn:t-r,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token});return this.session?.idToken?.jwtToken}else throw this.log("request:no session",null),Ae.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function Yn(r,e){return new Promise((t,n)=>{e.refreshSession(r.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(Ae.bind(this)(),n(i)):s.isValid()?t(s):(Ae.bind(this)(),n(new f("Invalid session.",{code:"INVALID_REQUEST"})));});})}function G(){if(!this.userPool)throw new f("User pool is missing",{code:"INVALID_REQUEST"});let r=()=>{let s=M.getSignInUserSession().getIdToken().payload||null,o=Xe(s);return this.log("normalized user attribute",o),this.__user=o,o},e=async s=>new Promise((o,a)=>{this.log("getSession:option",s);let{refreshToken:u=false,skipUserUpdateEventTrigger:c=false}=s||{};if(u&&c&&(c=false),M=this.userPool.getCurrentUser(),!M){this.log("getSession:cognitoUser",M),Ae.bind(this)(),a(null);return}let d=l=>{let h=l.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),Ae.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=l,r(),c||this._runOnUserUpdateListeners(this.user),this.session};M.getSession((l,h)=>{if(this.log("getSession:getSessionCallback",{err:l,session:h}),!h){Ae.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(l){Yn.bind(this)(h,M).then(b=>o(d(b))).catch(a);return}let m=Math.floor(Date.now()/1e3),g=h.getIdToken(),p=g.getExpiration(),w=p<m;if(this.log("getSession:currentTime",m),this.log("getSession:idTokenExp",p),this.log("getSession:isExpired",w),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),w||u||!h.isValid())Yn.bind(this)(h,M).then(b=>o(d(b))).catch(a);else try{o(d(h));}catch(b){a(b);}});}),t=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+K.hash(s);return {cognitoUser:new ye({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,u=false)=>new Promise((c,d)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let l=t(s,a),h=l.cognitoUsername,m=new Wt({Username:h,Password:o});l.cognitoUser.authenticateUser(m,{newPasswordRequired:(g,p)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?l.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:w=>{M=l.cognitoUser,e().then(b=>c(this.user));},onFailure:w=>{d(new f(w.message||"Failed to authenticate user.",{code:w.code}));}}):d(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(p=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let p=[],{parsed:w,code:b}=Ft(g),R=typeof g?.message=="string"?g.message:"";if(b==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,p=["This account is disabled.","USER_IS_DISABLED"]):u?p=["The account already exists.","ACCOUNT_EXISTS"]:p=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotFoundException"?p=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,p=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(b==="TooManyRequestsException"||b==="LimitExceededException")&&(p=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),w.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),p.length){let C=p[1],I=p[0];d(new f(I,{code:C,cause:g}));}else d(w);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(d,l)=>{if(d){let{parsed:h,code:m}=Ft(d),g=[];m==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:m==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:m==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:m==="TooManyRequestsException"||m==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:m==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:m==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:d})):c(h);return}u(l);});})}}function Ft(r){let e=typeof r?.code=="string"&&r.code.trim()?r.code.trim():"ERROR",n=((typeof r?.message=="string"?r.message:typeof r=="string"?r:"An error occurred.")||"An error occurred.").trim();n||(n="An error occurred.");let i=n.match(/#([A-Za-z0-9_]+)\s*:\s*([\s\S]+)/),s=i?.[1]?.trim()||e,o=i?.[2]?.trim()||n;return {parsed:new f(o,{code:s,cause:r}),code:e}}async function ni(r){await this.__authConnection;let e=r?.refreshToken||false;if(!e)return this.user;try{return await G.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},r)),this.user}catch{return null}}async function ii(r){await this.__connection,r=_.Params(r,{token:"string",id:"string",merge:o=>{if(o===void 0)return false;if(typeof o=="string")return [o];if(Array.isArray(o)){for(let a of o)if(typeof a!="string")throw new f('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"})}if(typeof o!="boolean"&&!Array.isArray(o))throw new f('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return o},template:o=>{if(typeof o!="object"||o===null)throw new f('"template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(o.welcome!==void 0&&(typeof o.welcome!="string"||!o.welcome))throw new f('"template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return o}});let e={token:r.token,id:r.id,merge:r.merge};r.template?.welcome&&(e.template_welcome=r.template.welcome);let t=await S.bind(this)("openid-logger",e),n=t.logger.split("#"),i=this.service+"-"+n[0],s=n[1];return {userProfile:await G.bind(this)().authenticateUser(i,s,true,true),openid:t.openid}}function Ou(r){let e=typeof globalThis<"u"?globalThis:void 0;if(e?.Buffer)return e.Buffer.from(r,"base64").toString("utf8");if(typeof atob=="function"){let t=atob(r),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return typeof TextDecoder<"u"?new TextDecoder().decode(n):t}throw new Error("No base64 decoder available in this environment")}function Mu(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Ou(n);return JSON.parse(i)}async function si(r){await this.__authConnection,this.log("loginWithToken:params",r),r=_.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Mu(r.idToken);if(this.log("loginWithToken:idTokenPayload",e),e["custom:service"]!==this.service)throw new f("Token does not belong to this service.",{code:"INVALID_REQUEST"});let t=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<t)throw new f("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=Xe(e),this.session=null,r.accessToken&&r.refreshToken)try{if(this.session=new Ke({IdToken:new $e({IdToken:r.idToken}),AccessToken:new Be({AccessToken:r.accessToken}),RefreshToken:new je({RefreshToken:r.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",ye),this.log("loginWithToken:userPool",this.userPool),ye&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),M=new ye(n),M.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof M,cognitoUserKeys:Object.keys(M||{}),cognitoUser:M});}}catch(n){this.log("loginWithToken:err",n);try{this.log("loginWithToken:err:stringified",JSON.stringify(n));}catch{this.log("loginWithToken:err:stringifyFail",String(n));}try{let i=Object.keys(n||{}),s=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(n||{}):[],o=Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors(n||{}):{};this.log("loginWithToken:createSessionError:allKeys",{keys:i,symbols:s,descriptors:o});}catch(i){this.log("loginWithToken:createSessionError:allKeysFail",String(i));}}return this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),this.user}async function H(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await et.bind(this)(),false)}async function Ae(r=false){let e=null;M&&(r?e=new Promise((n,i)=>{M.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):M.signOut());let t={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};e&&(e=await e);for(let n in t)this[n]=t[n];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),e}async function et(r){await this.__connection;let{data:e}=L(r);return await Ae.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function oi(){if(!this.__request_signup_confirmation)throw new f("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await S.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function ai(r=false){if(typeof r=="string")r=_.Url(r);else if(typeof r!="boolean")throw new f("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new f("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await S.bind(this)("recover-account",{username:this.__disabledAccount,redirect:r}),"SUCCESS: Recovery e-mail has been sent."}async function xr(r){let e=_.Params(r,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,e.email)try{_.Email(e.email);}catch{e.username=e.email,delete e.email;}if(!e.username&&!e.email)throw new f('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await G.bind(this)().authenticateUser(e.username||e.email,e.password)}async function ui(r,e){await this.__authConnection;let t={username:"string",password:c=>_.Password(c),email:c=>_.Email(c),name:"string",address:c=>{if(!c)return "";if(typeof c=="string")return c;if(typeof c=="object")return JSON.stringify(c)},gender:"string",birthdate:c=>c?_.Birthdate(c):"",phone_number:c=>c?_.PhoneNumber(c):"",email_public:["boolean",()=>false],address_public:["boolean",()=>false],gender_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:"number",misc:"string",picture:c=>c?_.Url(c):"",profile:c=>c?_.Url(c):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:c=>c?_.Url(c):""},n=_.Params(r||{},t,["email","password"]);await et.bind(this)(),e=_.Params(e||{},{email_subscription:c=>{if(typeof c!="boolean")throw new f('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return c},signup_confirmation:c=>{let d=c;if(typeof c=="string")d=_.Url(c);else if(typeof c=="boolean")d=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(d&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return d},login:c=>{if(typeof c=="boolean"){if(e.signup_confirmation&&c)throw new f('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return c}throw new f('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})},template:c=>{if(typeof c!="object"||c===null)throw new f('"option.template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(c.signup_confirmation!==void 0){if(typeof c.signup_confirmation!="string"||!c.signup_confirmation)throw new f('"option.template.signup_confirmation" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new f('"option.signup_confirmation" is required when "option.template.signup_confirmation" is set.',{code:"INVALID_PARAMETER"})}if(c.welcome!==void 0&&(typeof c.welcome!="string"||!c.welcome))throw new f('"option.template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return c}});let i=e?.login||false;if(n.signup_confirmation=e?.signup_confirmation||false,n.email_subscription=e?.email_subscription||false,n.email_public&&!n.signup_confirmation)throw new f('"option.signup_confirmation" should be true if "email_public" is set to true.',{code:"INVALID_PARAMETER"});n.service=this.service,n.owner=this.owner;let s=G.bind(this)().createCognitoUser(n.username||n.email);for(let c of ["email_public","address_public","gender_public","birthdate_public","phone_number_public"])n[c]=n[c]?"1":"0";n.access_group&&(n.access_group=n.access_group.toString());let o=(await S.bind(this)("signupkey",{username:s.cognitoUsername,signup_confirmation:typeof n.signup_confirmation=="boolean"?JSON.stringify(n.signup_confirmation):n.signup_confirmation,email_subscription:n.email_subscription,template_confirmation:e?.template?.signup_confirmation||"",template_welcome:e?.template?.welcome||""})).split(":"),a=o.slice(1).join(":"),u=[new de({Name:"custom:signup",Value:o[0]}),new de({Name:"locale",Value:a.split("#")[1]}),new de({Name:"custom:signup_ticket",Value:a})];for(let c in t){let d=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(d.includes(c)?u.push(new de({Name:"custom:"+c,Value:n[c]})):u.push(new de({Name:c,Value:n[c]}))));}return await G.bind(this)().signup(s.cognitoUsername,n.password,u),n.signup_confirmation?(M=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?xr.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function ci(){await this.__connection;let r=await S.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await et.bind(this)(),r}async function li(r){await this.__connection;let e=_.Params(r,{email:i=>_.Email(i),code:["number","string"],new_password:i=>_.Password(i)},["email","code","new_password"]),t=e.code,n=e.new_password;return typeof t=="number"&&(t=t.toString()),new Promise(async(i,s)=>{G.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(t,n,{onSuccess:a=>{i("SUCCESS: New password has been set.");},onFailure:a=>{s(new f(a?.message||"Failed to reset password.",{code:a?.code||"ERROR",cause:a}));}});})}async function di(r,e,t){await this.__connection;let n;if(!M)throw new f("The user has to be logged in.",{code:"INVALID_REQUEST"});if(r==="email"||r==="phone_number"){if(!this.__user.hasOwnProperty(r))throw new f(`No ${r==="email"?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});if(this.__user?.[`${r}_verified`])return `SUCCESS: "${r}" is verified.`;n=(e?_.Params(e,{code:"string"}):{}).code||"";}else return;let i,s=t?.template?.verification;if(s!==void 0){if(typeof s!="string"||!s)throw new f('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});i={template_verification:s};}return new Promise((o,a)=>{let u={onSuccess:c=>{n?G.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[r+"_verified"]=true),o(`SUCCESS: "${r}" is verified.`);}).catch(d=>{a(d);}):o("SUCCESS: Verification code has been sent.");},onFailure:c=>{a(new f(c.message||"Failed to request verification code.",{code:c?.code}));}};n?M?.verifyAttribute(r,n,u):(u.inputVerificationCode=null,M?.getAttributeVerificationCode(r,u,i));})}function fi(r,e){return di.bind(this)("phone_number",r,e)}function hi(r,e){return di.bind(this)("email",r,e)}async function gi(r,e){await this.__connection;let t=_.Params(r,{email:s=>_.Email(s)},["email"]),n,i=e?.template?.verification;if(i!==void 0){if(typeof i!="string"||!i)throw new f('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});n={template_verification:i};}return new Promise(async(s,o)=>{G.bind(this)().createCognitoUser(t.email).cognitoUser.forgotPassword({onSuccess:u=>{s("SUCCESS: Verification code has been sent.");},onFailure:u=>{let{parsed:c,code:d}=Ft(u),l={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[d]||c.code||d||"ERROR";o(new f(c.message,{code:l,cause:u}));}},n);})}async function pi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=_.Params(r,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new f('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new f('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return _.Password(e.current_password),_.Password(e.new_password),new Promise((t,n)=>{M.changePassword(e.current_password,e.new_password,(i,s)=>{if(i){if(i?.code==="InvalidParameterException")n(new f("Invalid password parameter.",{code:"INVALID_PARAMETER"}));else if(i?.code==="NotAuthorizedException")n(new f("Incorrect password.",{code:"INVALID_REQUEST"}));else if(i?.code==="TooManyRequestsException"||i?.code==="LimitExceededException")n(new f("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}));else {let{parsed:o}=Ft(i);n(o);}return}t("SUCCESS: Password has been changed.");});})}async function mi(r){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=_.Params(r||{},{user_id:i=>_.UserId(i),email:i=>_.Email(i),address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},name:"string",gender:"string",birthdate:i=>i?_.Birthdate(i):"",phone_number:i=>i?_.PhoneNumber(i):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:i=>i?_.Url(i):"",profile:i=>i?_.Url(i):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:i=>i?_.Url(i):""});if(e&&typeof e=="object"&&!Object.keys(e).length)return this.user;e.email&&(e.preferred_username=this.service+"-"+K.hash(e.email));let t=[["email_public","email_verified","User's e-mail should be verified to set"],["phone_number_public","phone_number_verified","User's phone number should be verified to set"]];if(this.__user){for(let i of t)if(e[i[0]]&&!this.__user[i[1]])throw new f(`${i[2]} "${i[0]}" to true.`,{code:"INVALID_REQUEST"})}let n=[];for(let i in e){if(e[i]===this.user[i]){n.push(i);continue}if(["email_public","phone_number_public","address_public","gender_public","birthdate_public","misc"].includes(i)){let o=e[i];typeof o=="boolean"&&(o=o?"1":"0"),e["custom:"+i]=o,n.push(i);}}for(let i of n)delete e[i];if(e.user_id)if(e.user_id===this.user.user_id)delete e.user_id;else return S.bind(this)("admin-edit-profile",{attributes:e},{auth:true});if(e&&typeof e=="object"&&Object.keys(e).length){let i=[];for(let s in e)i.push(new de({Name:s,Value:e[s]}));return await new Promise((s,o)=>{M?.updateAttributes(i,(a,u)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(u);});}),await G.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function _i(r,e){r=L(r).data,r||(r={searchFor:"timestamp",condition:">",value:0},e||(e={}),e.ascending=false),await this.__connection;let t={user_id:i=>Array.isArray(i)?i.map(s=>_.UserId(s)):_.UserId(i),email:"string",phone_number:"string",locale:i=>{if(typeof i!="string"||typeof i=="string"&&i.length>5)throw new f('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>_.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(r=_.Params(r,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Value does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i},range:i=>{let s=t[r.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new f(`Range does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i}},n),r?.condition&&r?.condition!=="="&&r.hasOwnProperty("range"))throw new f("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(r.searchFor==="user_id"&&(r.condition!=="="||r.range))throw new f(`Conditions are not allowed on "${r.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof r?.value=="string"&&!r?.value)throw new f("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof r?.searchFor=="string"&&!r?.searchFor)throw new f('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return S.bind(this)("get-users",r,{auth:true,fetchOptions:e})}async function bi(r){await this.__connection;let e=await S.bind(this)("last-verified-email",r,{auth:true});return e.includes("SUCCESS")?(await G.bind(this)().getSession({refreshToken:true}),this.user):e}async function yi(r){return await this.__connection,r=_.Params(r,{username:_.Email,redirect:_.Url},["username"]),await S.bind(this)("request-username-change",r,{auth:true})}var Vu="1.2.1",qu=class{constructor(r){ue(this,"version",Vu);ue(this,"items",[]);ue(this,"nextJobId",1);ue(this,"breakWhenError",false);ue(this,"batchSize",1);ue(this,"onProgress");ue(this,"activeCount",0);ue(this,"currentCycleCompleted",[]);ue(this,"stopProcessing",false);if(this.breakWhenError=!!r?.breakWhenError,this.batchSize=r?.batchSize??1,typeof this.batchSize!="number"||this.batchSize<1)throw new Error("batchSize must be at least 1");if(r?.onProgress)if(typeof r.onProgress=="function")this.onProgress=r.onProgress;else throw new Error("onProgress must be a function")}get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}add(r){let e=Array.isArray(r)?r:[r],t=[];for(let n of e){if(typeof n!="function")throw new Error("Each job must be a function that returns a Promise");let i=String(this.nextJobId++);this.items.push({id:i,job:n}),t.push(i);}return this.processNext(),t}setBatchSize(r){if(typeof r!="number"||r<1)throw new Error("batchSize must be at least 1");this.batchSize=r;}remove(r){let e=String(r),t=this.items.findIndex(n=>n.id===e);return t===-1?false:(this.items.splice(t,1),true)}processNext(){if(this.stopProcessing||this.items.length===0||this.activeCount>0)return;let r=this.items.splice(0,this.batchSize);this.activeCount=r.length,this.currentCycleCompleted=new Array(r.length),r.forEach((e,t)=>{Promise.resolve().then(()=>e.job()).then(n=>(this.finalizeJob(t,n,false),n)).catch(n=>(this.finalizeJob(t,n,true),n));});}finalizeJob(r,e,t){if(this.currentCycleCompleted[r]=e,this.activeCount-=1,t&&this.breakWhenError&&(this.stopProcessing=true,this.items=[]),this.activeCount!==0)return;let n=this.currentCycleCompleted.slice();this.currentCycleCompleted=[],this.onProgress&&this.onProgress({batchToProcess:this.batchToProcess,itemsToProcess:this.items.length,completed:n}),this.processNext();}terminate(){this.items=[];}},tt=qu;var Je=null,Ai=typeof SubmitEvent<"u",Bu=typeof HTMLFormElement<"u",nt=z(),Ur=0;function Ei(r){if(!r)return null;let e=Number(r);if(Number.isFinite(e))return Math.max(0,e*1e3);let t=Date.parse(r);return Number.isNaN(t)?null:Math.max(0,t-Date.now())}function Cr(r,e){return e>0?r/e*100:0}var wi=r=>{let{auth:e,type:t,endpoints:n}=r,i=n[0],s=n[1];if(Ur++,t==="admin"){let o=Object.entries(i).filter(([a,u])=>a.includes(e?"_private":"_public")&&a!=="get_users_private"&&a!=="service_public"&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available admin gateways.",{code:"INVALID_REQUEST"});return o[Ur%o.length]}if(t==="record"){let o=Object.entries(s).filter(([a,u])=>a.includes(e?"record_private":"record_public")&&typeof u=="string").map(([,a])=>a);if(!o.length)throw new f("No available record gateways.",{code:"INVALID_REQUEST"});return o[Ur%o.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function $u(r,e){let t=await Promise.all([this.admin_endpoint,this.record_endpoint]),n=t[0],i=t[1],s=r.split("?"),o=s.length>1?"?"+s[1]:"";switch(r=s[0],r){case "get-users":return n.get_users_private+r+o;case "service":return n.service_public+r+o;case "get-newsletters":case "get-public-newsletters":case "subscribe-newsletter":case "subscribe-public-newsletter":case "signupkey":case "admin-newsletter-request":case "admin-signup":case "confirm-signup":case "openid-logger":case "block-account":case "admin-edit-profile":case "remove-account":case "post-secure":case "recover-account":case "mock":case "grant-access":case "last-verified-email":case "ticket":case "register-ticket":case "get-newsletter-subscription":case "request-username-change":case "send-inquiry":case "register-newsletter-group":case "newsletter-group-endpoint":case "invitation-list":case "csr":case "csr-poll":case "csr-cancel":return wi.bind(this)({auth:e,type:"admin",endpoints:t})+r+o;case "post-record":return (e?i.post_private:i.post_public)+r+o;case "get-records":return (e?i.get_private:i.get_public)+r+o;case "del-files":case "del-records":return i.del_private+r+o;case "store-subscription":case "get-vapid-public-key":case "push-notification":case "delete-subscription":case "subscription":case "get-subscription":case "get-table":case "get-tag":case "get-uniqueid":case "get-index":case "get-signed-url":case "extract-file-text":case "grant-private-access":case "request-private-access-key":case "get-ws-group":case "check-schema":case "get-feed":case "castspell":case "dopamine":case "getspell":return wi.bind(this)({auth:e,type:"record",endpoints:t})+r+o;default:return _.Url(r)+o}}var rt={};function Si(){Je&&(Je.terminate(),Je=null);}async function S(r,e=null,t,n){this.log("request",{url:r,data:e,options:t,_etc:n||{}}),t=t||{};let{auth:i=false,method:s="post",bypassAwaitConnection:o=false}=t;s=s.toUpperCase();let a=null,u=e?.service||this.service,c=e?.owner||this.owner,d=null,l=await $u.bind(this)(r,!!i);if(!o&&(a=await this.__connection,!a))throw new f("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});let h=t?.tokenHeaders?.idToken===true;(i||h)&&(d=await We.bind(this)());let m={},{fetchMore:g=false,progress:p}=t?.fetchOptions||{};if(t?.fetchOptions&&Object.keys(t.fetchOptions).length){for(let P of ["limit","startKey","ascending"])if(t.fetchOptions.hasOwnProperty(P)){if(P==="startKey"&&t.fetchOptions[P]===null)continue;m[P]=t.fetchOptions[P];}m=_.Params(m,{limit:P=>{if(typeof P!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(P>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return P},startKey:P=>P,ascending:"boolean"});}let w=n?.ignoreService?{}:{service:u,owner:c};Object.assign(w,m),e=L(e).data,e?e&&typeof e=="object"&&(e=Object.assign(w,e)):e=w;let b=`${s}:${i?"auth":"public"}:${r}`,R=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(nt&&e instanceof FormData)){let P=function(k){return typeof k=="object"&&k!==null?Object.keys(k).sort().reduce((N,F)=>(typeof k[F]=="object"&&k[F]!==null?N[F]=P(k[F]):N[F]=k[F],N),{}):k};return K.hash(b+"/"+JSON.stringify(P(e)))}return K.hash(b+"/"+u)})(),{requestKey:C,requestKeyWithStartKey:I}=ju.bind(this)({params:e,url:r,fetchMore:g,hashedParams:R});if(!C||C&&typeof C=="object")return C;if(this.log("requestKey",I),typeof I=="string"&&rt[I]instanceof Promise)return this.log("request:returning pending",I),rt[I];let D={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(t,"contentType")&&t.contentType!==void 0){let P=t.contentType===null?"application/x-www-form-urlencoded":t.contentType;P&&(D["Content-Type"]=P);}else D["Content-Type"]="application/json";if(d&&(D.Authorization=d),t?.tokenHeaders){let P=(F,ke)=>typeof F=="string"?F:F===true?ke:null,k=P(t.tokenHeaders.accessToken,this.session?.accessToken?.jwtToken||null),N=P(t.tokenHeaders.idToken,this.bearerToken||this.session?.idToken?.jwtToken||d||null);k&&(D["X-Access-Token"]=k),N&&(D["X-Id-Token"]=N);}let re={public_identifier:this.__public_identifier,service:u,owner:c};D["Content-Meta"]=JSON.stringify(re);let O={headers:D};if(t?.responseType&&(O.responseType=t.responseType),s==="GET"){if(e){let P=[];if(nt&&e instanceof FormData?P=Array.from(e.entries()).map(([k,N])=>{let F=typeof N=="string"?N:N.name;return encodeURIComponent(k)+"="+encodeURIComponent(F)}):P=Object.keys(e).map(k=>{let N=e[k];return typeof N!="string"&&(N=JSON.stringify(N)),encodeURIComponent(k)+"="+encodeURIComponent(N)}),P.length){let k=l.includes("?")?l.endsWith("?")||l.endsWith("&")?"":"&":"?";l+=k+P.join("&");}}O.body=null;}else if(nt&&e instanceof FormData)O.body=e;else if(D["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let P=new URLSearchParams;for(let k of Object.keys(e)){let N=e[k];P.append(k,typeof N=="string"?N:JSON.stringify(N));}O.body=P.toString();}else typeof e=="string"?O.body=e:O.body=e?JSON.stringify(e):null;if(O.method=s,Je===null){let P={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:k=>{this.onBatchProcess.forEach(N=>N(k));}};Je=new tt(P);}return this.log("request-opt",O),new Promise((P,k)=>{Je.add([async()=>{let N=vi.bind(this)(l,O,p);rt[I]=N;try{let F=Ku.bind(this)({hashedParam:C,requestKeyWithStartKey:I,url:r,fetched:await N});return delete rt[I],this.log("request:end",F),P(F),F}catch(F){throw delete rt[I],this.log("request:err",F),k(F),F}}]);})}function ju(r){let{params:e={},url:t,fetchMore:n=false,hashedParams:i}=r||{};if(e.startKey){if(!(typeof e.startKey=="object"&&Object.keys(e.startKey).length)&&e.startKey!=="start"&&e.startKey!=="end")throw new f(`"${e.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});e.startKey==="start"&&(n=false,delete e.startKey);}if(!n){if(this.__cached_requests?.[t]?.[i]&&delete this.__cached_requests[t][i],this.__startKeyHistory?.[t]?.[i]){if(Array.isArray(this.__startKeyHistory[t][i])&&this.__startKeyHistory[t][i].length)for(let u of this.__startKeyHistory[t][i]){let c=i+K.hash(u);this.__cached_requests?.[t]&&this.__cached_requests?.[t]?.[c]&&delete this.__cached_requests[t][c];}delete this.__startKeyHistory[t][i];}return {requestKeyWithStartKey:i,requestKey:i}}if(!Array.isArray(this.__startKeyHistory?.[t]?.[i]))return {requestKeyWithStartKey:i,requestKey:i};let s=this.__startKeyHistory[t][i],o=s[s.length-1],a=i;if(o){if(o==="end")return {requestKey:{list:[],startKey:"end",endOfList:true,startKeyHistory:s},requestKeyWithStartKey:a};a+=K.hash(o),e.startKey=JSON.parse(o);}return this.__cached_requests?.[t]?.[a]?{requestKey:this.__cached_requests[t][a],requestKeyWithStartKey:a}:{requestKeyWithStartKey:a,requestKey:i}}function vi(r,e,t){return new Promise((n,i)=>{let s=new XMLHttpRequest;s.open(e.method||"GET",r);for(var o in e.headers||{})s.setRequestHeader(o,e.headers[o]);e.responseType&&(s.responseType=e.responseType),s.onload=()=>{if(s.status<400)if(e.responseType=="json"||e.responseType=="blob")n(s.response);else {let a=s.responseText;try{a=JSON.parse(a);}catch{}n(a);}else if(s.status===429){let a=s.getResponseHeader("Retry-After"),u=Ei(a);u!==null?setTimeout(()=>{vi(r,e,t).then(n,i);},u):i("Too many requests");}else {let a=s.status,u=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],c=e.responseType=="blob"?s.response:s.responseText;try{c=JSON.parse(c);}catch{}if(typeof c=="string"){let d=c.split(":"),l=d.splice(0,1)[0].trim(),h=d.join(":").trim();i(new f(h||c,{code:u.includes(l)?l:"ERROR"}));}else if(typeof c=="object"&&c?.message){let d=c?.code||(a?a.toString():null)||"ERROR",l=c.message,h=c?.cause;typeof l=="string"&&(l=l.trim()),i(new f(l,{cause:h,code:d}));}else i(c);}},s.onerror=()=>i("Network error"),s.onabort=()=>i("Aborted"),s.ontimeout=()=>i("Timeout"),typeof t=="function"&&(s.onprogress=a=>{t({status:"download",progress:Cr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Cr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Ku(r){let{hashedParam:e,requestKeyWithStartKey:t,url:n,fetched:i}=r;if(!i?.startKey)return i;this.__startKeyHistory.hasOwnProperty(n)||(this.__startKeyHistory[n]={}),this.__startKeyHistory[n].hasOwnProperty(e)||(this.__startKeyHistory[n][e]=[]);let s=i.startKey==="end"?"end":JSON.stringify(i.startKey);return this.__startKeyHistory[n][e].includes(s)||this.__startKeyHistory[n][e].push(s),this.__cached_requests?.[n]||(this.__cached_requests[n]={}),this.__cached_requests[n][t]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][e]},i)}async function Ot(r,e){await this.__connection;let{record_id:t,service:n=this.service,progress:i}=e;if(!t)throw new f('"record_id" is required.',{code:"INVALID_PARAMETER"});if(Ai&&r instanceof SubmitEvent&&(r=r.target),Bu&&r instanceof HTMLFormElement&&(r=new FormData(r)),!nt||!(r instanceof FormData))throw new f('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:De(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,u=(m,g,p)=>new Promise((w,b)=>{a=new XMLHttpRequest,a.open("POST",m),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)w(R);else if(a.status===429){let C=a.getResponseHeader("Retry-After"),I=Ei(C);I!==null?setTimeout(()=>{u(m,g,p).then(w,b);},I):b("Too many requests");}else b(R);},a.onerror=()=>b("Network error"),a.onabort=()=>b("Aborted"),a.ontimeout=()=>b("Timeout"),a.upload&&typeof p=="function"&&(a.upload.onprogress=p),a.send(g);});function c(m){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(m===0)return g[0];let p="";for(;m>0;)p=g[m%62]+p,m=Math.floor(m/62);return p}let d=[],l=[],h=[];for(let[m,g]of r.entries()){if(!(g instanceof File))continue;let p=Object.assign({key:m+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:w=null,url:b,cdn:R}=await S.bind(this)("get-signed-url",p,{auth:!!this.__user});h.push(R);let C=new FormData;for(let I in w)C.append(I,w[I]);C.append("file",g);try{await u(b,C,typeof i=="function"?I=>i({status:"upload",progress:Cr(I.loaded,I.total),currentFile:g,completed:d,failed:l,loaded:I.loaded,total:I.total,abort:()=>a.abort()}):null),d.push(g);}catch{l.push(g);}}return {completed:d,failed:l,bin_endpoints:h}}var Lt={};function T(r){let{preventMultipleCalls:e=false}=r||{};return function(t,n,i){let s=i.value;i.value=function(...o){let a=o[0],u=true,c=null,d="",l={},h=false;if(Ai&&a instanceof SubmitEvent){a.preventDefault();let b=window.location.href;c=a.target;let R=new URL(c.action);d=R.href;let C=d?d.match(/(?<=\{).*?(?=\})/g):"";if(C)for(let I of C){if(!I)continue;let D=c.querySelector(`[name="${I}"]`);if(D)if(D.type==="file")for(let j=0;j<=D.files.length-1;j++)D.files[j]&&(l[I]||(l[I]=[]),l[I].push(new Promise((re,O)=>{let P=new FileReader;P.onload=function(){re(P.result);},P.readAsDataURL(D.files[j]),P.onerror=O;})));else d=d.replace(`{${I}}`,D.value);}c.getAttribute("action")===null?u=false:h=R.href===b;}let m=async b=>{if(d)for(let R in l)l[R].length&&(d=d.replace(`{${R}}`,(await Promise.all(l[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${K.hash(d)}`,JSON.stringify(b)),h?window.location.replace(d):window.location.href=d),b},g,p=b=>{throw b instanceof f?b.name=n+"()":b=b instanceof Error?b:new f(b,{name:n+"()"}),b},w=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let b=await g;return m(b)}return m(g)}catch(b){throw p(b)}};if(e){let b=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Lt?.[b]||(Lt[b]=w().finally(()=>{delete Lt[b];})),Lt[b]}return w()};}}async function Ti(){await this.__connection;let r=`${this.service}:${K.hash(window.location.href.split("?")[0])}`,e=window.sessionStorage.getItem(r);if(window.sessionStorage.removeItem(r),e!==null){try{e=JSON.parse(e);}catch{}return e}return null}var Hu=128,Wu=64,Ju=128,Gu=256,Qu="\u{10FFFF}",zu=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,Yu=/[\/!*#]/,Xu={"/":"%2F","!":"%21","*":"%2A","#":"%23"},Zu={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function ec(r){return r.replace(/%/g,"%25").replace(/[\/!*#]/g,t=>Xu[t]||t)}function se(r){return typeof r!="string"?r:r.replace(/%(2F|21|2A|23)/gi,t=>{let n=t.toUpperCase();return Zu[n]||t}).replace(/%25/gi,"%")}function ve(r,e,t={}){let{allowEmpty:n=false,maxLength:i,blockKeyDelimiters:s=false,disallowLeadingDollar:o=false,onlyAlphanumeric:a=false}=t;if(typeof r!="string")throw new f(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(r))throw new f(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&r.length===0)throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&r.length>i)throw new f(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(zu.test(r)||r.includes(Qu))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&Yu.test(r)&&(r=ec(r)),o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function Dr(r,e="table.name"){return ve(r,e,{allowEmpty:false,maxLength:Hu,blockKeyDelimiters:true})}function kr(r,e="tag"){return ve(r,e,{allowEmpty:false,maxLength:Wu,blockKeyDelimiters:true})}function it(r,e="index.name"){return ve(r,e,{allowEmpty:false,maxLength:Ju,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Ri(r,e="index.value"){return ve(r,e,{allowEmpty:true,maxLength:Gu})}function Ii(r){if(!r.record_id&&!r.unique_id)return null;let e={};return r?.service&&(e.service=r.service),r?.owner&&(e.owner=r.owner),r?.record_id?e.record_id=ve(r.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):r?.unique_id&&(e.unique_id=r.unique_id),e}function Nr(r){if(r===void 0)return 0;if(typeof r=="number"){if(r>99||r<0)throw new f('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else if(typeof r=="string"){if(r={private:"private",public:0,authorized:1,admin:99}[r],r===void 0)throw new f('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}else throw new f('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(!this.__user&&r)throw new f("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return r}var Mt=4503599627370496;function Vt(r){if(typeof r=="number"){if(r>Mt||r<-Mt)throw new f(`Number value should be within range -${Mt} ~ +${Mt}`,{code:"INVALID_PARAMETER"});return r}if(typeof r=="boolean")return r;if(typeof r=="string")return Ri(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function Pi(r,e){if(!e.index||!("value"in e.index))throw new f('"index.value" is required.',{code:"INVALID_PARAMETER"});if(e.index.name==="$record_id")throw new f(`Cannot do "index.range" on ${e.index.name}`,{code:"INVALID_PARAMETER"});if(typeof e.index.value!=typeof r)throw new f('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof r=="string"?Ri(r,"index.range"):r}var qt={};async function tc(r){return typeof r=="string"?r:r&&typeof r.text=="function"?await r.text():await new Promise((e,t)=>{try{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=()=>t(n.error||new Error("Failed to read blob")),n.readAsText(r);}catch(n){t(n);}})}async function Ge(r,e,t=false){let n={user_id:"",record_id:"",updated:0,uploaded:0,readonly:false,table:{name:"",access_group:0,subscription:{is_subscription_record:false,upload_to_feed:false,notify_subscribers:false,feed_referencing_records:false,notify_referencing_records:false}},referenced_count:0,source:{referencing_limit:null,prevent_multiple_referencing:false,can_remove_referencing_records:false,only_granted_can_reference:false},ip:"",bin:{}},i=false,s=[];function o(c){let d=c=="**"?"private":parseInt(c);return d=d==0?"public":d==1?"authorized":d==99?"admin":d,d}let a={ip:c=>{let d=c.split("#"),l=d[0];d.length>1&&(n.unique_id=d.slice(1).join("#")),l.slice(-1)==="R"?(n.readonly=true,l=l.slice(0,-1)):n.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(l)&&(l=l.split("-").join("."),i=true),n.ip=l;},rec:c=>{if(!c)return;n.record_id=c;let d=c.substring(0,c.length-9),l=ie(d);n.uploaded=l;},usr:c=>{n.user_id=c;},tbl:c=>{if(c&&!n.table.name){let d=c.split("/");n.table.name=se(d[0]),n.table.access_group=o(d[2]),d?.[3]&&(n.table.subscription.is_subscription_record=true);}},usr_tbl:c=>{let d=c.split("/");n.user_id||(n.user_id=d[0]),n.table.name||(n.table.name=se(d[1]),n.table.access_group=o(d[3]),d?.[4]&&(n.table.subscription.is_subscription_record=true));},idx:c=>{if(!c)return;let d=c.split("!"),l=se(d.splice(0,1)[0]),h=rc("!"+d.join("!"));typeof h=="string"&&(h=se(h)),n.index={name:l,value:h};},ref:c=>{c&&(n.reference=c.split("/")[0]);},tags:c=>{n.tags=Array.isArray(c)?c.map(d=>se(d)):c;},upd:c=>{n.updated=c;},acpt_mrf:c=>{n.source.prevent_multiple_referencing=!c;},ref_limt:c=>{n.source.referencing_limit=c;},rfd:c=>{n.referenced_count=c;},bin:async c=>{let d={},l=n?.reference||null;if(Array.isArray(c)){let h=await Promise.all(c.map(async m=>{try{let g=m.split("/").slice(3).join("/"),p=g.split("/");if(p.length<12)return null;let w=decodeURIComponent(p[p.length-1]),b=decodeURIComponent(p[10]);if(b==="__data__"&&w==="__json__.json")return {isDataFile:!0,rawUrl:m};let R=p[9],C=p[8],I=o(p[6]),D=m;if(I!=="public")try{D=await st.bind(this)(m,{dataType:"endpoint",_ref:l});}catch(re){console.error("Error getting signed url for private file:",re),D=m;}let j={access_group:I,filename:w,url:D,path:g,size:ie(R),uploaded:ie(C),getFile:(re,O)=>{let P={dataType:re||"download",progress:O,_ref:l,_update:j};return st.bind(this)(D,P)}};return {pathKey:b,obj:j}}catch{return null}}));for(let m of h)if(m&&!m.isDataFile){if(d[m.pathKey]){d[m.pathKey].push(m.obj);continue}d[m.pathKey]=[m.obj];}}n.bin=d;},prv_acs:c=>{for(let d in c)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(d)?n.table.subscription[d]=c[d]:n.source[d]=c[d];},data:async c=>{if(c==="!D%{}"){n.data={};return}if(c==="!L%[]"){n.data=[];return}if(c&&typeof c=="object"&&!Array.isArray(c)&&typeof c.__data__=="string"&&Object.keys(c).length===1&&c.__data__.endsWith("/__data__/__json__.json")){let d=c.__data__,l=s.find(h=>h.endsWith(d))||null;if(l){if(t){n.data=c;return}try{let h=await st.bind(this)(l,{dataType:"blob",_ref:n.reference||null}),m=await tc(h);n.data=JSON.parse(m);}catch(h){console.error("Failed to fetch offloaded record data:",h),n.data=null;}return}}n.data=c;}};if(r.record_id)return r;if(Array.isArray(r.bin))for(let c of r.bin)try{if(typeof c!="string")continue;let d=c.split("/").slice(3);d.length>=12&&decodeURIComponent(d[10])==="__data__"&&decodeURIComponent(d[d.length-1])==="__json__.json"&&s.push(c);}catch{}let u=[];for(let c in a)if(r.hasOwnProperty(c)){let d=a[c](r[c]);d instanceof Promise&&u.push(d);}return i&&(n.user_id="anonymous:"+n.user_id),await Promise.all(u),n}function rc(r){let e=r.substring(3);switch(r.substring(0,3)){case "!S%":return e;case "!N%":let n=e.split("."),i=Number(n[0])-4503599627370496;return n.length===1?i:parseFloat(i.toString()+"."+n[1]);case "!B%":return e==="1";case "!L%":case "!D%":try{return JSON.parse(e)}catch{throw new f("Value parse error.",{code:"PARSE_ERROR"})}default:return r}}async function xi(r){let{endpoints:e}=r;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new f('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let t=await S.bind(this)("del-files",{endpoints:e,storage:"records"},{auth:true,method:"post"}),n=[];for(let i in t)n.push(Ge.bind(this)(t[i]));return Promise.all(n)}async function st(r,e){if(typeof r!="string")throw new f('"url" should be type: string.',{code:"INVALID_PARAMETER"});let t=r.split("?"),n=t.shift()||"",i=t.length?"?"+t.join("?"):"",s=_.Url(n);r=s+i;let o=false,a=s.split("/"),c=a[2].split("."),d=null;c.length===3&&c[1]==="skapi"&&(d=c[0],o=true);let l=a.slice(3),h=false;if(!o&&(l[0]==="auth"||l[0]==="publ"))try{_.UserId(l[2]),_.UserId(l[3]),h=l[0]=="auth",o=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let m=d?null:l[1];if(e=_.Params(e,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:["function","undefined",null],_ref:[null,"string"],_update:b=>b}),e?.dataType==="info")return {url:r,filename:l[l.length-1],fileKey:l[l.length-2],access_group:l[6]==="**"?"private":l[6]==="01"?"authorized":l[6]==="00"?"public":parseInt(l[6]),uploader:l[3],record_id:l[4]==="records"?l[5]:"N/A",filesize:ie(l[9]),uploaded:ie(l[8])};let g=r.split("/").slice(-1)[0],p=e.expires;if(p){if(!o)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(p<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let b={request:d?"get-host":"get",id:d||l[5],key:r,expires:p};m&&(b.service=m),r=(await S.bind(this)("get-signed-url",b,{auth:true})).url;}else if(h){let b=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<b)){this.log("getFile:requesting new token",null);try{await G.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:b,expiresIn:this.session?.idToken?.payload?.exp-b,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(D){throw this.log("getFile:new token error",D),new f("User login is required.",{code:"INVALID_REQUEST"})}}let R=this.bearerToken||this.session?.idToken?.jwtToken;if(!R||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(R)}`;let C=l[6]==="**"?"**":parseInt(l[6]),I=this.user?.access_group??-1;if(this.user.user_id!==l[3]&&(C==="**"||I<C)){let D=l[5];if(this.__private_access_key[D]&&typeof this.__private_access_key[D]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[D])}`;else if(this.owner!==this.host)try{let j=await this.requestPrivateRecordAccessKey({record_id:D,reference_id:e?._ref});r+=`&p=${encodeURIComponent(j)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let b=document.createElement("a");return b.href=r,document.body.appendChild(b),b.setAttribute("download",g),b.target="_blank",b.click(),document.body.removeChild(b),null}return new Promise(async(b,R)=>{try{let C=await S.bind(this)(r,null,{method:"get",contentType:null,responseType:e?.dataType==="text"?"text":"blob",fetchOptions:{progress:e?.progress}},{ignoreService:!0});if(e?.dataType==="base64"){let I=new FileReader;I.onloadend=()=>b(I.result),I.readAsDataURL(C);}else b(C);}catch(C){R(C);}})}async function Ui(r,e=false){r=L(r,{ignoreEmpty:true}).data||{};let t="",n=Ii(r);if(n)r=n,t=r.record_id||r.unique_id,typeof t=="string"&&(typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),this.__my_unique_ids[t]&&(e?delete this.__my_unique_ids[t]:r.record_id=this.__my_unique_ids[t]));else {let i=await H.bind(this)(),s=r?.reference,o=false;typeof s=="object"&&Object.keys(s).length&&(s?.record_id||s?.unique_id?(t=s.record_id||s.unique_id,t&&typeof this.__private_access_key?.[t]=="string"&&(r.private_key=this.__private_access_key?.[t]||void 0),r.reference=t):s?.user_id&&(o=s.user_id===this.user?.user_id,r.reference=s.user_id)),typeof r?.table=="string"&&(r.table={name:r.table,access_group:0}),r.index&&r.index.hasOwnProperty("range")&&r.index.hasOwnProperty("condition")&&delete r.index.range;let a=u=>({table:{name:c=>Dr(c,"table.name"),access_group:Nr.bind(this),subscription:c=>_.UserId(c,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",c=>it(c,"index.name")],value:c=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:_.UserId};if(d.hasOwnProperty(u.index.name)){let l=d[u.index.name];if(typeof l=="function")return l(c);if(l!==typeof c)throw new f(`"index.value" should be type: ${l}.`,{code:"INVALID_PARAMETER"});return c}return typeof c=="string"&&!c?"":Vt(c)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:c=>Pi(c,u)},tag:c=>{if(c==null)return c;if(typeof c=="string")return kr(c,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=_.Params(r||{},a(r),o||i?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:t}}async function Ci(r,e){await this.__connection;let t=await Ui.bind(this)(r),n=t.is_reference_fetch,i=await S.bind(this)("get-records",t.query,{fetchOptions:e,auth:!!this.__user,method:this.__user?"post":"get"});n&&i?.reference_private_key&&typeof i.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key);let s=[];for(let o in i.list)s.push(Ge.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function Di(r){let e="",t=[],n=_.Params(r||{},{record_id:s=>typeof s=="string"&&this.__my_unique_ids[s]?this.__my_unique_ids[s]:ve(s,"record_id",{allowEmpty:false}),unique_id:["string",null],readonly:"boolean",table:{name:s=>Dr(s,"table.name"),subscription:[null,{is_subscription_record:"boolean",upload_to_feed:"boolean",notify_subscribers:"boolean",feed_referencing_records:"boolean",notify_referencing_records:"boolean"}],access_group:Nr.bind(this)},source:{referencing_limit:s=>{if(s===null)return null;if(typeof s=="number"){if(0>s)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(s>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return s}throw new f('"reference_limit" should be type: <number | null>',{code:"INVALID_PARAMETER"})},prevent_multiple_referencing:"boolean",can_remove_referencing_records:"boolean",only_granted_can_reference:"boolean",allow_granted_to_grant_others:"boolean",referencing_index_restrictions:s=>{if(s===void 0)return;if(!s||Array.isArray(s)&&!s.length)return null;let o={name:u=>it(u,'"name" in "index_restrictions"'),value:u=>Vt(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof s.value!=typeof u)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!s.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return u}};Array.isArray(s)||(s=[s]);let a=s.map(u=>_.Params(u,o,["name"]));if(a.length)for(let u of a)u.condition&&u.hasOwnProperty("range")&&delete u.range;return a}},reference:s=>{if(s===null)return {record_id:null};if(s){if(typeof s=="string")return e=s,this.__my_unique_ids[s]?this.__my_unique_ids[s]:s;if(typeof s!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return _.Params(s,{unique_id:"string",record_id:o=>o==null?o:(e=o,typeof this.__private_access_key?.[o]=="string"&&(r.reference_private_key=this.__private_access_key[o]||void 0),ve(o,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:s=>it(s,"index.name"),value:s=>Vt(s)}],tags:s=>{if(s==null)return s;if(typeof s=="string"&&(s=s.split(",").map(o=>o.trim())),!Array.isArray(s))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return s.map(o=>kr(o,"tag"))},remove_bin:s=>{if(!s)return null;let o=[];if(Array.isArray(s))for(let a of s)if(typeof a=="string")o.push(decodeURIComponent(a.split("?")[0]));else if(a.url&&a.size&&a.filename){let c=a.url.split("/").slice(0,3).join("/")+"/"+a.path;o.push(c);}else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});else throw new f('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});return o},progress:"function",data:s=>s},[],{precall:s=>{let o=s?.data||{};if(!o?.record_id&&!o.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof o.table=="string"&&(o.table={name:o.table,access_group:0}),s.files&&(t=s.files);}}),i=r.progress||null;if(delete n.progress,!this.__user){let s=!!(n.table?.subscription?.is_subscription_record||n.table?.subscription?.upload_to_feed||n.table?.subscription?.notify_subscribers||n.table?.subscription?.feed_referencing_records||n.table?.subscription?.notify_referencing_records);if(n.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(n.table.access_group!=="public"&&n.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(s)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(n.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(n.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:n,progress:i,is_reference_post:e,files:t}}async function ki(r){if(await this.__connection,!Array.isArray(r)||!r.length)throw new f('"params" should be a non-empty array.',{code:"INVALID_PARAMETER"});let e=[],t,n,i=null,o={_is_bulk_:r.map((l,h)=>{if(!l||typeof l!="object"||Array.isArray(l))throw new f(`"params[${h}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let m=Di.bind(this)(l),g=m.config;if(m.is_reference_post&&e.push(m.is_reference_post),typeof g.progress=="function"&&i===null&&(i=g.progress),g.service!==void 0){if(t===void 0)t=g.service;else if(t!==g.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(g.owner!==void 0){if(n===void 0)n=g.owner;else if(n!==g.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete g.progress,delete g.service,delete g.owner,g}),service:"",owner:""};t!==void 0&&(o.service=t),n!==void 0&&(o.owner=n);let a={auth:!!this.__user,method:"post"},u={};Object.keys(u).length&&Object.assign(a,{fetchOptions:u});let c=await S.bind(this)("post-record",o,a),d=await Promise.all(c.map(l=>Ge.bind(this)(l,"called from postRecord")));for(let l=0;l<c.length;l++){let h=c[l],m=d[l];if(typeof h?.reference_private_key=="string")for(let g of e)this.__private_access_key[g]=h.reference_private_key;m?.unique_id&&(this.__my_unique_ids[m.unique_id]=m.record_id);}return d}async function Ni(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Di.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},u=[],c=L(r);t&&Array.isArray(t)&&t.length&&(u=u.concat(t)),c.files&&Array.isArray(c.files)&&c.files.length&&(u=u.concat(c.files));let d=null;d=Object.assign({data:c.data},i);let l={};typeof s=="function"&&(l.progress=s),Object.keys(l).length&&Object.assign(a,{fetchOptions:l});let h=await S.bind(this)("post-record",d,a);if(z()&&u.length){let p=new FormData;for(let R of u)p.append(R.name,R.file,R.file.name);let w={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(w.service=i.service);let{bin_endpoints:b}=await Ot.bind(this)(p,w);h.bin?h.bin.push(...b):h.bin=b;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let m=!!h&&h.data&&typeof h.data=="object"&&!Array.isArray(h.data)&&typeof h.data.__data__=="string"&&h.data.__data__.endsWith("/__data__/__json__.json"),g=await Ge.bind(this)(h,"called from postRecord",true);return m&&(g.data=c.data),g.unique_id&&(this.__my_unique_ids[g.unique_id]=g.record_id,z()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${this.service}:uniqueids`,JSON.stringify(this.__my_unique_ids));}catch{}},500))),g}async function Fi(r,e){let t=await S.bind(this)("get-table",_.Params(r||{},{table:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e})),n={cnt_rec:"number_of_records",tbl:"table",srvc:"service",grp_:"number_of_records_in_access_group_"};if(Array.isArray(t?.list))for(let i of t.list){for(let s in n){if(s==="grp_"){for(let o in i)if(o.startsWith("grp_")){let a=o.substring(4);a==="pv"?a="private":a==="00"?a="public":a==="01"?a="authorized":a==="99"&&(a="admin"),i[`number_of_records_in_access_group_${a}`]=i[o],delete i[o];}}i.hasOwnProperty(s)&&(i[n[s]]=i[s],delete i[s]);}typeof i.table=="string"&&(i.table=se(i.table));}return t}async function Li(r,e){if(!r?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let t=_.Params(r||{},{table:"string",index:s=>it(s,"index.name"),order:{by:["average_number","total_number","number_count","average_bool","total_bool","bool_count","string_count","index_name","number_of_records"],value:["string","number","boolean"],condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}},["table"]);if(t.hasOwnProperty("order")){if(!t.order?.by)throw new f('"order.by" is required.',{code:"INVALID_PARAMETER"});if(t.order.hasOwnProperty("condition")&&!t.order.hasOwnProperty("value"))throw new f('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("index")&&t.index.substring(t.index.length-1)!==".")throw new f('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let n=await S.bind(this)("get-index",t,Object.assign({auth:!!this.__user},{fetchOptions:e})),i={cnt_bool:"boolean_count",cnt_numb:"number_count",totl_numb:"total_number",totl_bool:"total_bool",avrg_numb:"average_number",avrg_bool:"average_bool",cnt_str:"string_count"};return Array.isArray(n?.list)&&(n.list=n.list.map(s=>{let o=s.idx.split("/"),a={table:se(o[1]),index:se(o[2]),number_of_records:s.cnt_rec};for(let u in i)Object.prototype.hasOwnProperty.call(s,u)&&(a[i[u]]=s[u]);return a})),n}async function Oi(r,e){let t=await S.bind(this)("get-tag",_.Params(r||{},{table:"string",tag:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));return Array.isArray(t?.list)&&(t.list=t.list.map(n=>{let i=n.tag.split("/");return {table:se(i[1]),tag:se(i[0]),number_of_records:n.cnt_rec}})),t}async function Mi(r,e){let t=await S.bind(this)("get-uniqueid",_.Params(r||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));if(Array.isArray(t?.list))for(let n in t.list){let i=t.list[n];t.list[n]={unique_id:i.unq,record_id:i.rec};}return t}async function Vi(r,e){await this.__connection;let t=await Ui.bind(this)(r,true),n=t.is_reference_fetch,i=await S.bind(this)("del-records",t.query,{auth:true,fetchOptions:e});return n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),i?.message||i}function qi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function Bi(r){return Ki.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function $i(r,e){let t={record_id:r.record_id||void 0,user_id:r.user_id||void 0,execute:"list"};if(!t.record_id&&!t.user_id)throw new f("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(t.user_id)if(typeof t.user_id=="string")_.UserId(t.user_id),t.user_id=[t.user_id];else if(Array.isArray(t.user_id))for(let s of t.user_id)_.UserId(s);else throw new f("user_id should be type: <string | string[]>",{code:"INVALID_PARAMETER"});let n=s=>(s.rec_usr?(s.record_id=s.rec_usr.split("/")[0],s.user_id=s.rec_usr.split("/")[1]):s.usr_rec&&(s.user_id=s.usr_rec.split("/")[0],s.record_id=s.usr_rec.split("/")[1]),s),i=await S.bind(this)("grant-private-access",t,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function ji(r){let e=r.record_id,t=r.reference_id||void 0;if(!e)throw new f("Record ID is required.",{code:"INVALID_PARAMETER"});if(typeof e!="string")throw new f("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(t&&typeof t!="string")throw new f("Reference ID should be type: <string>",{code:"INVALID_PARAMETER"});if(typeof this.__private_access_key[e]=="string")return Promise.resolve(this.__private_access_key[e]);if(qt[e])return qt[e];let n=S.bind(this)("request-private-access-key",{record_id:e,reference_id:t},{auth:true}).then(i=>{let s=typeof i=="string"?i:i?.private_key;if(typeof s!="string")throw new f("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete qt[e];});return qt[e]=n,n}function Ki(r){r.execute;let t=_.Params(r,{record_id:"string",user_id:n=>{if(!n)throw new f("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new f("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)_.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return t.user_id||(t.user_id=null),S.bind(this)("grant-private-access",t,{auth:true})}var x={},$={},oe={},he={},fe={},Bt={},$t={};function Hi(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function jt(r,e,t){let n=[];if(r[e]){for(let i of r[e])if(i){let s=t(i);s instanceof Promise&&(s=await s),n.push(s);}delete r[e];}return n}async function Lr(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let t=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await x[s].setRemoteDescription(new RTCSessionDescription(i));let a=await x[s].createAnswer();await x[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}x?.[e]?r?(await jt($t,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await jt($t,e,i=>n.bind(this)(i,e,t)):r&&Hi($t,e,r);}async function Or(r,e){if(this.log("receiveIceCandidate",r),x?.[e]&&x[e]?.remoteDescription&&x[e]?.remoteDescription?.type){if(!r)return jt(Bt,e,t=>x[e].addIceCandidate(t));await jt(Bt,e,t=>x[e].addIceCandidate(t)),await x[e].addIceCandidate(r);}else Hi(Bt,e,r);}async function ae(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});_.Params(r,{cid:s=>{if(typeof s!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(s&&s.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return s},close:"boolean"});let e=await this.__socket,{cid:t,close_all:n=false}=r||{};if(!n&&!t)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});let i=s=>{if(!s)throw new f('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete $t[s],delete Bt[s],$[s]&&Object.values($[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete $[s],x?.[s]){x[s].connectionState!=="closed"&&(x[s].close(),e.send(JSON.stringify({action:"rtc",uid:s,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let o={type:"connectionstatechange",target:x[s],timestamp:new Date().toISOString(),state:x[s].connectionState,iceState:x[s].iceConnectionState,signalingState:x[s].signalingState};fe[s]&&fe[s](o),this.log("closeRTC",o);}delete fe[s],delete he[s],delete oe[s],delete x[s];};if(n)for(let s in x)i(s);else i(t);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function Wi(r){if(r instanceof MediaStream)return r;if(!r.video&&!r.audio){let e=new MediaStream,t=document.createElement("canvas");t.width=1,t.height=1;let i=t.captureStream().getVideoTracks()[0];return e.addTrack(i),e}return window.navigator.mediaDevices.getUserMedia(r)}async function Ji(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof e!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});r=_.Params(r,{cid:o=>{if(typeof o!="string")throw new f('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&o.slice(0,4)!=="cid:")throw new f('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return o},ice:["string",()=>"stun:stun.skapi.com:3468"],media:o=>o,channels:["text-chat","file-transfer","video-chat","voice-chat","gaming",{ordered:"boolean",maxPacketLifeTime:"number",maxRetransmits:"number",protocol:"string"},()=>[{ordered:true,maxPacketLifeTime:10,protocol:"default"}]]},["cid"]);let{cid:t,ice:n}=r;if(!(r?.media instanceof MediaStream)&&(r?.media?.video||r?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let i=this.__socket?await this.__socket:this.__socket;if(!i)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(i.readyState!==1)throw new f("Realtime connection is not ready.",{code:"INVALID_REQUEST"});let s={iceServers:[{urls:n}]};x?.[t]||(x[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Wi(r.media),this.__mediaStream.getTracks().forEach(o=>{x[t].addTrack(o,this.__mediaStream);})),fe[t]=e,$[t]||($[t]={});for(let o=0;o<r.channels.length;o++){let a=r.channels[o];if(typeof a=="string")switch(a){case "text-chat":a={ordered:true,maxRetransmits:10,protocol:"text-chat"};break;case "file-transfer":a={ordered:false,maxPacketLifeTime:3e3,protocol:"file-transfer"};break;case "video-chat":a={ordered:true,maxRetransmits:10,protocol:"video-chat"};break;case "voice-chat":a={ordered:true,maxRetransmits:10,protocol:"voice-chat"};break;case "gaming":a={ordered:false,maxPacketLifeTime:100,protocol:"gaming"};break;default:a={ordered:true,maxRetransmits:10,protocol:"default"};break}let u=a.protocol||"default";if(Object.keys($[t]).includes(u))throw new f(`Data channel with the protocol "${u}" already exists.`,{code:"INVALID_REQUEST"});let c=x[t].createDataChannel(u,a);$[t][u]=c;}for(let o in $[t]){let a=$[t][o];zi.bind(this)(t,a);}return Qi.bind(this)(t,["onnegotiationneeded"]),await Fr.bind(this)(t),{hangup:()=>oe[t]&&oe[t](false),connection:new Promise(o=>{oe[t]=(a=>{if(this.log("receiver picked up the call",t),!a)return ae.bind(this)({cid:t}),null;x[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),Fr.bind(this)(t),fe[t]&&fe[t]({type:"negotiationneeded",target:x[t],timestamp:new Date().toISOString(),signalingState:x[t].signalingState,connectionState:x[t].iceConnectionState,gatheringState:x[t].iceGatheringState});},o({target:x[t],channels:$[t],hangup:()=>ae.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function Gi(r){return async(e,t)=>{e=e||{},e=L(e).data;let n=r.sender_cid,i=await this.__socket;if(!he[n])return null;if(typeof t!="function")throw new f("Callback is required.",{code:"INVALID_PARAMETER"});if(!(e?.media instanceof MediaStream)&&(e?.media?.video||e?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new f("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=e;return x?.[n]||(x[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Wi(e.media),this.__mediaStream.getTracks().forEach(o=>{x[n].addTrack(o,this.__mediaStream);})),delete he[n],fe[n]=t,$[n]||($[n]={}),x[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;$[n][a.label]=a,zi.bind(this)(n,a);},Qi.bind(this)(n,["onnegotiationneeded"]),await Lr.bind(this)(null,n),await Or.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:x[n],channels:$[n],hangup:()=>ae.bind(this)({cid:n}),media:this.__mediaStream}}}async function Fr(r){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",r);let e=await this.__socket,t=await x[r].createOffer();await x[r].setLocalDescription(t);let n=x[r].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:r,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function nc(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",e);let t=await this.__socket;if(!r.candidate){this.log("candidate-end","all ice candidates have been sent");return}let n=fe[e]||(()=>{}),i=r.candidate;this.log("ice gathering state set to",x[e].iceGatheringState),n({type:"icecandidate",target:x[e],timestamp:new Date().toISOString(),candidate:r.candidate.candidate,sdpMid:r.candidate.sdpMid,sdpMLineIndex:r.candidate.sdpMLineIndex,usernameFragment:r.candidate.usernameFragment,protocol:r.candidate.protocol,gatheringState:x[e].iceGatheringState,connectionState:x[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Qi(r,e){let t=new Set(e),n=fe[r]||(o=>{}),i=x[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{nc.bind(this)(o,r),o.candidate?n({type:"icecandidate",target:i,timestamp:new Date().toISOString(),candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex,usernameFragment:o.candidate.usernameFragment,protocol:o.candidate.protocol,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState}):n({type:"icecandidateend",target:i,timestamp:new Date().toISOString()});},onicecandidateerror:o=>{n({type:"icecandidateerror",target:i,timestamp:new Date().toISOString(),errorCode:o.errorCode,errorText:o.errorText,url:o.url,hostCandidate:o.hostCandidate,gatheringState:i.iceGatheringState,connectionState:i.iceConnectionState});},oniceconnectionstatechange:()=>{n({type:"iceconnectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceConnectionState,gatheringState:i.iceGatheringState,signalingState:i.signalingState});},onicegatheringstatechange:()=>{n({type:"icegatheringstatechange",target:i,timestamp:new Date().toISOString(),state:i.iceGatheringState,connectionState:i.iceConnectionState,signalingState:i.signalingState});},onsignalingstatechange:()=>{n({type:"signalingstatechange",target:i,timestamp:new Date().toISOString(),state:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onnegotiationneeded:()=>{Fr.bind(this)(r),n({type:"negotiationneeded",target:i,timestamp:new Date().toISOString(),signalingState:i.signalingState,connectionState:i.iceConnectionState,gatheringState:i.iceGatheringState});},onconnectionstatechange:()=>{n({type:"connectionstatechange",target:i,timestamp:new Date().toISOString(),state:i.connectionState,iceState:i.iceConnectionState,signalingState:i.signalingState});let o=i.connectionState;(o==="disconnected"||o==="failed"||o==="closed")&&ae.bind(this)({cid:r});}};for(let[o,a]of Object.entries(s))t.has(o)||(i[o]=a);}function zi(r,e,t){let n=new Set(t),i=fe[r]||(o=>{}),s={onmessage:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,data:o.data,lastEventId:o.lastEventId,origin:o.origin,readyState:e.readyState,bufferedAmount:e.bufferedAmount};this.log(`${e.label}: message`,o.data),i(a);},onerror:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,error:o.error.message,errorCode:o.error.errorDetail,readyState:e.readyState,label:e.label};this.log(`${e.label}: error`,o.error.message),i(a);},onclose:o=>{let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id};this.log(`${e.label}: closed`,null),i(a),$[r]&&(delete $[r][e.label],Object.keys($[r]).length===0&&ae.bind(this)({cid:r}));},onbufferedamountlow:o=>{let a={target:e,bufferedAmount:e.bufferedAmount,bufferedAmountLowThreshold:e.bufferedAmountLowThreshold,type:o.type,timeStamp:o.timeStamp};this.log(`${e.label}: bufferedamountlow`,e.bufferedAmount),i(a);},onopen:o=>{this.log("dataChannel",`data channel: "${e.label}" is open and ready to send messages.`);let a={type:o.type,target:e,timeStamp:o.timeStamp,readyState:e.readyState,label:e.label,id:e.id,ordered:e.ordered,maxRetransmits:e.maxRetransmits,protocol:e.protocol};i(a);}};for(let[o,a]of Object.entries(s))n.has(o)||(e[o]=a);}var Re,Te=null,ot=true,Qe=0;async function ic(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.getProfile(),!this.session)throw new f("No access.",{code:"INVALID_REQUEST"});let r=await this.record_endpoint;return new WebSocket(r.websocket_private+"?token="+this.session.accessToken.jwtToken)}var Mr=null;async function Yi(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});ot=true;let r=this.__socket?await this.__socket:this.__socket;ae.bind(this)({close_all:true}),Re&&Vr.bind(this)({group:null}),Qe=0,Te&&(Te.terminate(),Te=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",Mr),this.__socket=null,null}async function Kt(r,e=50,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof r!="function")throw new f("Callback must be a function.",{code:"INVALID_REQUEST"});if(t==="reconnect"){if(this.__socket instanceof Promise){let n=await this.__socket;if(n.readyState!==WebSocket.CLOSED&&n.readyState!==WebSocket.CLOSING)return this.__socket}}else if(ot&&(Mr=()=>{!document.hidden&&!ot&&Kt.bind(this)(r,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;Te&&(Te.terminate(),Te=null),this.__socket=new Promise(async n=>{await We.bind(this)(),setTimeout(async()=>{let i=await ic.bind(this)();i.onopen=()=>{ot=false,Qe=0,t!=="reconnect"&&window.addEventListener("visibilitychange",Mr),this.log("realtime onopen","Connected to WebSocket server."),r({type:"success",message:"Connected to WebSocket server."}),Re&&i.send(JSON.stringify({action:"joinRoom",rid:Re,token:this.session.accessToken.jwtToken}));let s=`
208
208
  let interval = 15000; // Set interval time 15 seconds
209
209
 
210
210
  function runInterval() {
@@ -213,9 +213,9 @@ var Vs=Object.create;var Ne=Object.defineProperty;var jr=Object.getOwnPropertyDe
213
213
  }
214
214
 
215
215
  runInterval(); // Start interval
216
- `,o=new Blob([s],{type:"application/javascript"});ve=new Worker(URL.createObjectURL(o)),ve.onmessage=a=>{i.readyState===1&&i.send(JSON.stringify({action:"keepAlive"}));},n(i);},i.onmessage=async s=>{let o="";try{o=JSON.parse(decodeURI(s.data)),this.log("socket onmessage",o);}catch{return}let a;switch(true){case !!o?.["#message"]:a="message";break;case !!o?.["#private"]:a="private";break;case !!o?.["#notice"]:a="notice";break;case !!o?.["#rtc"]:a="rtc";break;case !!o?.["#error"]:a="error";break}if(!a)return;let u={type:a,message:o?.["#rtc"]||o?.["#message"]||o?.["#private"]||o?.["#notice"]||o?.["#error"]||null,sender:o?.["#user_id"]||null,sender_cid:o?.["#scid"]?"cid:"+o["#scid"]:null,sender_rid:o?.["#srid"]||null,code:o?.["#code"]||null};if(a==="notice")r(u);else if(a==="rtc"){if(u.sender!==this.user.user_id){let c=u.message;if(c.hungup){se[u.sender_cid]&&(se[u.sender_cid](false),delete se[u.sender_cid]),fe[u.sender_cid]&&delete fe[u.sender_cid],x?.[u.sender_cid]&&oe.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Or.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Lr.bind(this)(c.sdpoffer,u.sender_cid),fe[u.sender_cid]||(fe[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=Gi.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{x[u.sender_cid]?oe.bind(this)({cid:u.sender_cid}):fe[u.sender_cid]&&(delete fe[u.sender_cid],i.send(JSON.stringify({action:"rtc",uid:u.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));}).bind(this),r(u))),c.pickup&&se[u.sender_cid]&&(se[u.sender_cid](true),delete se[u.sender_cid]),c.sdpanswer&&x[u.sender_cid])if(x[u.sender_cid].signalingState==="have-local-offer")await x[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{st?(this.log("realtime onclose","WebSocket connection closed."),r({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),r({type:"error",message:"Skapi: WebSocket unexpected close."}),Qe++,Qe<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+Qe),r({type:"reconnect",message:"Reconnecting to WebSocket server..."+Qe}),Kt.bind(this)(r,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),r({type:"error",message:"Skapi: Max reconnection attempts reached."})));},i.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),r({type:"error",message:"Skapi: WebSocket connection error."});};},e);});}async function Xi(r,e,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!e)throw new f("No recipient.",{code:"INVALID_REQUEST"});await We.bind(this)(),r=L(r).data;let i="";if(t&&(t=m.Params(t,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),i=JSON.stringify({title:t.title,body:t.body}),new Blob([i]).size>3072))throw new f("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(n.readyState===1){try{m.UserId(e),n.send(JSON.stringify({action:"sendMessage",uid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}catch(s){if(this.log("postRealtime:err",{err:s}),Te!==e)throw new f(`User has not joined to the recipient group. Run joinRealtime({ group: "${e}" })`,{code:"INVALID_REQUEST"});n.send(JSON.stringify({action:"broadcast",rid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}return {type:"success",message:"Message sent."}}throw new f("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function Vr(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await We.bind(this)(),r=L(r,{nullIfEmpty:true}).data;let{group:t=null}=r;if(!t&&!Te)return {type:"success",message:"Left realtime message group."};if(t!==null&&typeof t!="string")throw new f('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:t,token:this.session.accessToken.jwtToken})),Te=t,{type:"success",message:t?`Joined realtime message group: "${t}".`:"Left realtime message group."}}async function Zi(r,e){r=m.Params(r,{user_id:n=>m.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!Te)throw new f('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Te}]});let t=await S.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({user_id:n.uid.split("#")[1],cid:"cid:"+n.cid})),t}async function es(r,e){if(await this.__connection,r||(r={searchFor:"group",value:" ",condition:">"}),r=m.Params(r,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>r?.searchFor&&r?.searchFor==="number_of_users"?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]}),r.condition||(r.value===" "||!r.value?r.condition=">":r.condition="="),r.range&&r.condition&&delete r.condition,r.searchFor==="number_of_users"&&typeof r.value!="number")throw new f('"value" must be a number.',{code:"INVALID_PARAMETER"});if(r.searchFor==="group"&&typeof r.value!="string")throw new f('"value" must be a string.',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("range")&&typeof r.range!=typeof r.value)throw new f(`"range" must be a ${typeof r.value}.`,{code:"INVALID_PARAMETER"});let t=await S.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({group:n.rid.split("#")[1],number_of_users:n.cnt})),t}var ic=typeof FormData<"u",sc=typeof HTMLFormElement<"u",oc=typeof SubmitEvent<"u",he={},ot={},ge={};function qr(r){return Object.freeze({id:r,status:"stopped"})}function ts(r){return !!r&&typeof r=="object"&&r.status==="stopped"}function rs({id:r,auth:e,service:t,owner:n,latency:i=1e3,queue:s,onResponse:o,onError:a}){if(typeof i!="number")throw new f('"latency" should be a number.',{code:"INVALID_PARAMETER"});if(i<0)throw new f('"latency" should be a non-negative number.',{code:"INVALID_PARAMETER"});s&&!he?.[s]&&(he[s]=new tt({breakWhenError:false,batchSize:1}));let u={stop:null,aborted:false,queue:s};ge[r]=u;let c=()=>{ge[r]===u&&delete ge[r];},d=()=>new Promise((h,_)=>{let g=false;if(u.aborted){c(),h(qr(r));return}let p=setInterval(async()=>{try{let w=await S.bind(this)("csr-poll",{id:r,service:t,owner:n},{auth:e});if(w.status==="running"||w.status==="pending"||g)return;g=!0,o&&o(w),clearInterval(p),c(),h(w);}catch(w){if(g)return;g=true,a&&a(w),clearInterval(p),c(),_(w);}},i);u.stop=()=>{g||(g=true,clearInterval(p),c(),h(qr(r)));};}),l=()=>{let h=ge[r];h&&(h.stop?h.stop():(h.aborted=true,delete ge[r]));};if(s){let h=new Promise((_,g)=>{let p=false,w=he[s].add([async()=>{try{let b=await d();return p||(p=!0,_(b)),b}catch(b){throw p||(p=true,g(b)),b}}])[0];ot[r]=w,u.stop=()=>{if(!p){u.aborted=true;try{he[s]&&he[s].remove(ot[r]);}catch{}delete ot[r],c(),p=true,_(qr(r));}};});return Object.assign(h,{stop:l})}else return Object.assign(d(),{stop:l})}function ns(r){let e=0,t=[];if(r?.id){if(r.url&&r.method){let n=r.service||this.service;t.push(`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${n}:${r.id}`);}t.push(r.id);}else if(r?.queue)for(let n in ge)ge[n]?.queue===r.queue&&t.push(n);else for(let n in ge)t.push(n);for(let n of t){let i=ge[n];i&&(i.stop?i.stop():(i.aborted=true,delete ge[n]),e+=1);}return e}function is(r,e){if(!r.queue)throw new f('"queue" is required.',{code:"INVALID_PARAMETER"});let t={service:r.service||this.service,owner:r.owner||this.owner,queue:r.queue+":"};return S.bind(this)("csr-poll",t,{auth:true})}async function ss(r){let e=false;if(typeof r.poll=="number"&&r.poll<0)throw new f('"poll" should be a non-negative number.',{code:"INVALID_PARAMETER"});let t=r?.onResponse,n=r?.onError,i=typeof r.poll=="number"?r.poll:r.poll?1e3:0;delete r.poll,i&&!r.queue&&(r.queue=(this.__user?.user_id||"anonymous")+"-"+De());let s=u=>{for(let c in u)if(typeof u[c]=="string"&&u[c].includes("$CLIENT_SECRET")){e=true;break}};if(r=m.Params(r,{url:u=>{if(!u||typeof u!="string")throw new f('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return m.Url(u),u.includes("$CLIENT_SECRET")&&(e=true),u},clientSecretName:"string",method:u=>{if(u&&typeof u!="string")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let c=u.toLowerCase();if(c!=="get"&&c!=="post"&&c!=="delete"&&c!=="put")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return c},headers:u=>{if(u&&typeof u!="object")throw new f('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},data:u=>{if(u&&typeof u!="object")throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},params:u=>{if(u&&typeof u!="object")throw new f('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},expires:"number",queue:"string"},["clientSecretName","method","url"]),!e)throw new f(`At least one parameter value should include "$CLIENT_SECRET" in ${r.method.toLowerCase()==="post"?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let o=!!this.__user,a=()=>S.bind(this)("csr",r,{auth:o,tokenHeaders:{accessToken:!!o}}).then(u=>{if(u.status==="running"||u.status==="pending"){let c=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}`,d=r.service||this.service,l=r.owner||this.owner,h=`${c}#${d}:${u.id}`;Object.assign(u,{poll:_=>rs.call(this,{id:h,auth:o,service:d,owner:l,latency:_?.latency||1e3,queue:r?.queue,onResponse:t,onError:n})});}return t?t(u):u}).catch(u=>{if(n)return n(u);throw u});if(r?.queue){let u="base:"+r.queue;return he?.[u]||(he[u]=new tt({breakWhenError:false,batchSize:1})),new Promise((c,d)=>{he[u].add([async()=>{try{let l=await a();if(i>0){let h=l.poll({latency:i});return c(h),h}return c(l),l}catch(l){throw d(l),l}}]);})}else return a()}async function os(r,e){await this.__connection;let t=r.service||this.service,n=r.owner||this.owner;r=m.Params(r,{url:"string",method:["GET","POST","DELETE","PUT"],queue:"string",status:["pending","running","resolved","failed"]},["url","method"]);let i=!!this.__user,s=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${t}:`,o={id:s,queue:r?.queue,status:r?.status,service:t,owner:n};Object.keys(o).forEach(u=>{o[u]||delete o[u];}),o.queue&&delete o.id;let a=await S.bind(this)("csr-poll",o,{auth:i,fetchOptions:e});return a.list=a.list.map(u=>{let c={id:u.id,status_code:u.rslv?.status_code||null,response_body:u.rslv?.body||u.rslv?.truncated||null,error:u?.err,updated:u?.utmp,request_body:u?.reqbdy,expires:u?.expt,status:u.stts,queue_name:u?.qid};for(let d in c)c[d]===void 0&&delete c[d];return (c.status==="running"||c.status==="pending")&&(c.poll=d=>rs.call(this,{id:s+c.id,auth:i,service:t,owner:n,latency:d?.latency||1e3,queue:u?.qid,onResponse:d?.onResponse,onError:d?.onError})),c}),a}async function as(r){await this.__connection,r=m.Params(r,{url:"string",method:["GET","POST","DELETE","PUT"],id:"string",queue:"string"},["url","method","id"]);let e=r?.service||this.service,t=r?.owner||this.owner,n=!!this.__user,i=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${e}`,s=r.id,o=`${i}:${s}`,a=r?.queue;return a&&he?.[a]&&(he[a].remove(ot[o]),delete ot[o]),S.bind(this)("csr-cancel",{id:o,service:e,owner:t},{auth:n})}async function us(r){await this.__connection;let e={name:"string",email:t=>(m.Email(t),t),subject:"string",message:"string"};return r=m.Params(r,e,["name","email","subject","message"]),await S.bind(this)("send-inquiry",r),"SUCCESS: Inquiry has been sent."}async function cs(r,e){if(await this.__connection,ic&&r instanceof FormData||sc&&r instanceof HTMLFormElement||oc&&r instanceof SubmitEvent){if(!e)throw new f("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=L(r);r={url:e,data:n.data,sync:true};}let t={url:n=>m.Url(n),data:n=>n,sync:["boolean",()=>true]};if(Array.isArray(r))for(let n of r)n=m.Params(n,t);else r=m.Params(r,t);return S.bind(this)("post-secure",r,{auth:true})}async function ls(r,e){await this.__connection;let{auth:t=false,method:n="POST",bypassAwaitConnection:i=false,responseType:s,contentType:o,tokenHeaders:a,progress:u}=e||{};if(e=Object.assign({auth:t,method:n,bypassAwaitConnection:i,responseType:s,contentType:o,tokenHeaders:a},{fetchOptions:{progress:u}}),typeof r!="object"&&(o==="application/json"||o===void 0))throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return S.bind(this)("mock",r,e)}async function ds(r,e){await this.__connection,r=m.Params(r||{},{access_group:n=>{if(n==="authorized"&&(n=1),n==="public"&&(n=0),typeof n!="number")throw new f('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(n<0)throw new f('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(n>this.__user.access_group)throw new f("User has no access.",{code:"INVALID_REQUEST"});return n}});let t=await S.bind(this)("get-feed",r,{auth:true,fetchOptions:e});for(let n in t.list)t.list[n]=await Ge.bind(this)(t.list[n]);return t}function at(r){if(r===this.__user.user_id)throw new f(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return m.UserId(r,'"user_id"')}async function fs(r,e){if(r=L(r,{ignoreEmpty:true}).data,r=m.Params(r,{subscriber:n=>m.UserId(n,'User ID in "subscriber"'),subscription:at.bind(this),blocked:"boolean"}),!r.subscriber&&!r.subscription)throw new f('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let t=await S.bind(this)("get-subscription",r,Object.assign({auth:true},{fetchOptions:e}));return t.list=t.list.map((n=>{let i={};if(n.sub){let s=n.sub.split("#");i.subscriber=s[2],i.subscription=s[0];}else i.subscriber=n.subscriber,i.subscription=n.subscription;return i.timestamp=n?.timestamp||n.stmp,i.blocked=n?.blocked||n.grp.substring(0,1)==="N",Object.assign(i,n.opt),i})),t}async function hs(r){await this.__connection,r=m.Params(r,{user_id:at.bind(this),get_feed:["boolean",()=>false],get_notified:["boolean",()=>false],get_email:n=>{if(n&&!this.__user.email||!this.__user.email_verified)throw new f("User has no verified email address.",{code:"INVALID_REQUEST"});return !!n}},["user_id"]);let e=await S.bind(this)("subscription",{subscribe:r.user_id,option:{get_feed:r.get_feed,get_notified:r.get_notified,get_email:r.get_email||false}},{auth:true}),t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0];}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||e.grp.substring(0,1)==="N",Object.assign(t,e.opt),t}async function gs(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:at.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function ps(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:at.bind(this)},["user_id"]);return await S.bind(this)("subscription",{block:e},{auth:true})}async function ms(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:at.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unblock:e},{auth:true})}async function _s(r,e){await this.__connection;let t=await K.bind(this)();r=m.Params(r,{user_id:o=>{if(o!==this.__user.user_id&&!t)throw new f("No access.",{code:"INVALID_REQUEST"});return o},group:o=>{if(o==="public"&&(o=0),o==="authorized"&&(o=1),typeof o!="number")throw new f('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return o}});let n=await S.bind(this)("get-newsletter-subscription",r,{auth:true,fetchOptions:e||null}),i=n?.list||n,s=[];Array.isArray(i)||(i=[]);for(let o of i){let a=o.subt.split("#"),u=true;a[0].charAt(0)==="@"&&(u=false,a[0]=a[0].substring(1));let c=parseInt(a[0]);s.push({timestamp:o.stmp,group:c,subscribed_email:a[1],active:u});}return n?.list?(n.list=s,n):s}async function bs(r){await this.__connection;let e=m.Params(r||{},{email:t=>Array.isArray(t)&&t.length>0?t.length===1?m.Email(t[0]):t.map(n=>m.Email(n)):m.Email(t),group:["number","public","authorized","admin",t=>{if(typeof t!="string"||t.length>20||!/^[a-zA-Z0-9]+$/.test(t))throw new f('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return t}],redirect:t=>m.Url(t)},this.__user?["group"]:["email","group"]);return S.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,e,{auth:!!this.__user})}async function ys(r){await this.__connection,r=m.Params(r,{group:["number","public","authorized","admin"]},["group"]);let e=Object.assign({action:"unsubscribe"},r);return S.bind(this)("subscribe-newsletter",e,{auth:true})}async function ws(r,e){let t=await K.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};r||(e=Object.assign({ascending:false},e||{})),r=L(r).data,r=r||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"},r=m.Params(r,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:u=>{if(typeof u!==n[r.searchFor])throw new f(`"value" type does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof u=="string"&&!u)throw new f('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return u},range:u=>{if(!r.hasOwnProperty("value")||typeof u!=typeof r.value)throw new f('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return u},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:u=>{if(u==="public")return 0;if(!this.session)throw new f("User should be logged in.",{code:"INVALID_REQUEST"});if(u==="authorized")return 1;if(typeof u=="number"){if(!t&&u>parseInt(this.user?.access_group||this.session?.idToken?.payload?.access_group))throw new f("User has no access.",{code:"INVALID_REQUEST"});return u}throw new f('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"]);let i=r.group===0?"get-public-newsletters":"get-newsletters",s=await S.bind(this)(i,r,Object.assign({method:"get",auth:i==="get-public-newsletters"?!!this.__user:true},{fetchOptions:e})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:"",url:"",delivered:0};return s.list=s.list.map(u=>{let c={};for(let d in o)c[d]=u[o[d]]||a[d];return c.bounced=String(c.bounced),c}),s}async function As(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,block:e.user_id}:e={block:e.user_id},!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("block-account",e,{auth:true})}async function Es(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,unblock:e.user_id}:e={unblock:e.user_id},!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("block-account",e,{auth:true})}async function Ss(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,delete:e.user_id}:e={delete:e.user_id},!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("remove-account",e,{auth:true})}async function vs(r,e){let t={email:s=>m.Email(s),password:s=>m.Password(s),name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>m.Birthdate(s),phone_number:s=>m.PhoneNumber(s),picture:s=>{if(s)return m.Url(s)},profile:s=>{if(s)return m.Url(s)},website:s=>{if(s)return m.Url(s)},nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],openid_id:"string",access_group:s=>{try{typeof s=="string"&&(s=s==="admin"?99:parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=m.Params(r,t,["email"]);if(e=m.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=m.Url(s);else throw new f('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new f('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new f('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return s},template:s=>{if(typeof s!="object"||!s.url||!s.subject)throw new f('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:m.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("admin-signup",n,{auth:true})}async function Ts(r){let e={email:s=>m.Email(s),password:s=>m.Password(s),openid_id:"string",name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>m.Birthdate(s),phone_number:s=>m.PhoneNumber(s),picture:s=>s?m.Url(s):"",profile:s=>s?m.Url(s):"",website:s=>s?m.Url(s):"",nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:s=>{try{typeof s=="string"&&(s=parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},t=["email","password"],n=m.Params(r,e,t);if(!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("admin-signup",n,{auth:true})}async function Rs(r){if(r=m.Params(r,{user_id:t=>m.UserId(t,'"user_id"'),access_group:t=>{try{typeof t=="string"&&(t=parseInt(t));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof t=="number"&&t>0&&t<100)return t;throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("grant-access",r,{auth:true})}async function Is(r,e){if(r=m.Params(r,{email:"string"}),!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}let n=await S.bind(this)("invitation-list",Object.assign({mode:"search"},r),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>Xe(i.user)),n}async function Ps(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("invitation-list",Object.assign({mode:"cancel"},r),{auth:true})}async function xs(r){if(r=m.Params(r,{email:t=>m.Email(t)},["email"]),!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("invitation-list",Object.assign({mode:"resend"},r),{auth:true})}async function Us(r){let e=m.Params(r,{user_id:o=>m.UserId(o,'"user_id"'),email:o=>m.Email(o),address:o=>{if(!o)return "";if(typeof o=="string")return o;if(typeof o=="object")return JSON.stringify(o)},name:"string",gender:"string",birthdate:o=>o?m.Birthdate(o):"",phone_number:o=>o?m.PhoneNumber(o):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:o=>o?m.Url(o):"",profile:o=>o?m.Url(o):"",nickname:"string",website:o=>o?m.Url(o):""},["user_id"]),t=e.service,n=e.owner;if(delete e.service,delete e.owner,Object.keys(e).filter(o=>o!=="user_id"&&e[o]!==void 0).length===0)throw new f("At least one attribute to update is required.",{code:"INVALID_PARAMETER"});if(!await K.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}e.email&&(e.preferred_username=(t||this.service)+"-"+j.hash(e.email));let s={attributes:e};return t&&n&&(s.service=t,s.owner=n),await S.bind(this)("admin-edit-profile",s,{auth:true})}async function Cs(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await S.bind(this)("store-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Subscribed to receive notifications."}async function Ds(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await S.bind(this)("delete-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function ks(){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});return await this.__connection,{VAPIDPublicKey:await S.bind(this)("get-vapid-public-key",null,{auth:true})}}async function Ns(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});await this.__connection;let{title:t,body:n}=L(r||{},{nullIfEmpty:true}).data;if(!t)throw new f("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!n)throw new f("Missing parameter: message body",{code:"INVALID_PARAMETER"});let i={title:t,body:n};return e?(typeof e=="string"&&(e=[e]),i.user_ids=e):i.user_ids="all_users",await S.bind(this)("push-notification",i,{auth:true}),"SUCCESS: Notification sent."}async function Fs(r){await this.__connection,r=m.Params(r,{spell:"string",name:"string",magic:t=>t},["spell","name"]);await S.bind(this)("castspell",r);return `The spell "${r.spell}" has been cast.`}async function Ls(r){return await this.__connection,r=m.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await S.bind(this)("getspell",r)}async function Os(r){await this.__connection,r=m.Params(r,{message:"string",name:"string"},["message","name"]);let e=await S.bind(this)("dopamine",r,{auth:true}),t=e?.previous_message?.message,n=e?.previous_message?.name;if(z())t&&n&&window.alert(`${n} said: ${t}`),window.location.href=e.video;else return t&&n?`${n} said: ${t}
216
+ `,o=new Blob([s],{type:"application/javascript"});Te=new Worker(URL.createObjectURL(o)),Te.onmessage=a=>{i.readyState===1&&i.send(JSON.stringify({action:"keepAlive"}));},n(i);},i.onmessage=async s=>{let o="";try{o=JSON.parse(decodeURI(s.data)),this.log("socket onmessage",o);}catch{return}let a;switch(true){case !!o?.["#message"]:a="message";break;case !!o?.["#private"]:a="private";break;case !!o?.["#notice"]:a="notice";break;case !!o?.["#rtc"]:a="rtc";break;case !!o?.["#error"]:a="error";break}if(!a)return;let u={type:a,message:o?.["#rtc"]||o?.["#message"]||o?.["#private"]||o?.["#notice"]||o?.["#error"]||null,sender:o?.["#user_id"]||null,sender_cid:o?.["#scid"]?"cid:"+o["#scid"]:null,sender_rid:o?.["#srid"]||null,code:o?.["#code"]||null};if(a==="notice")r(u);else if(a==="rtc"){if(u.sender!==this.user.user_id){let c=u.message;if(c.hungup){oe[u.sender_cid]&&(oe[u.sender_cid](false),delete oe[u.sender_cid]),he[u.sender_cid]&&delete he[u.sender_cid],x?.[u.sender_cid]&&ae.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Or.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Lr.bind(this)(c.sdpoffer,u.sender_cid),he[u.sender_cid]||(he[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=Gi.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{x[u.sender_cid]?ae.bind(this)({cid:u.sender_cid}):he[u.sender_cid]&&(delete he[u.sender_cid],i.send(JSON.stringify({action:"rtc",uid:u.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));}).bind(this),r(u))),c.pickup&&oe[u.sender_cid]&&(oe[u.sender_cid](true),delete oe[u.sender_cid]),c.sdpanswer&&x[u.sender_cid])if(x[u.sender_cid].signalingState==="have-local-offer")await x[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{ot?(this.log("realtime onclose","WebSocket connection closed."),r({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),r({type:"error",message:"Skapi: WebSocket unexpected close."}),Qe++,Qe<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+Qe),r({type:"reconnect",message:"Reconnecting to WebSocket server..."+Qe}),Kt.bind(this)(r,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),r({type:"error",message:"Skapi: Max reconnection attempts reached."})));},i.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),r({type:"error",message:"Skapi: WebSocket connection error."});};},e);});}async function Xi(r,e,t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!e)throw new f("No recipient.",{code:"INVALID_REQUEST"});await We.bind(this)(),r=L(r).data;let i="";if(t&&(t=_.Params(t,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),i=JSON.stringify({title:t.title,body:t.body}),new Blob([i]).size>3072))throw new f("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(n.readyState===1){try{_.UserId(e),n.send(JSON.stringify({action:"sendMessage",uid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}catch(s){if(this.log("postRealtime:err",{err:s}),Re!==e)throw new f(`User has not joined to the recipient group. Run joinRealtime({ group: "${e}" })`,{code:"INVALID_REQUEST"});n.send(JSON.stringify({action:"broadcast",rid:e,content:r,notification:i,notificationConfig:t?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}return {type:"success",message:"Message sent."}}throw new f("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function Vr(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await We.bind(this)(),r=L(r,{nullIfEmpty:true}).data;let{group:t=null}=r;if(!t&&!Re)return {type:"success",message:"Left realtime message group."};if(t!==null&&typeof t!="string")throw new f('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:t,token:this.session.accessToken.jwtToken})),Re=t,{type:"success",message:t?`Joined realtime message group: "${t}".`:"Left realtime message group."}}async function Zi(r,e){r=_.Params(r,{user_id:n=>_.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!Re)throw new f('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return Re}]});let t=await S.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({user_id:n.uid.split("#")[1],cid:"cid:"+n.cid})),t}async function es(r,e){if(await this.__connection,r||(r={searchFor:"group",value:" ",condition:">"}),r=_.Params(r,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>r?.searchFor&&r?.searchFor==="number_of_users"?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]}),r.condition||(r.value===" "||!r.value?r.condition=">":r.condition="="),r.range&&r.condition&&delete r.condition,r.searchFor==="number_of_users"&&typeof r.value!="number")throw new f('"value" must be a number.',{code:"INVALID_PARAMETER"});if(r.searchFor==="group"&&typeof r.value!="string")throw new f('"value" must be a string.',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("range")&&typeof r.range!=typeof r.value)throw new f(`"range" must be a ${typeof r.value}.`,{code:"INVALID_PARAMETER"});let t=await S.bind(this)("get-ws-group",r,{fetchOptions:e,auth:true,method:"post"});return t.list=t.list.map(n=>({group:n.rid.split("#")[1],number_of_users:n.cnt})),t}var sc=typeof FormData<"u",oc=typeof HTMLFormElement<"u",ac=typeof SubmitEvent<"u",ge={},at={},pe={};function qr(r){return Object.freeze({id:r,status:"stopped"})}function ts(r){return !!r&&typeof r=="object"&&r.status==="stopped"}function rs({id:r,auth:e,service:t,owner:n,latency:i=1e3,queue:s,onResponse:o,onError:a}){if(typeof i!="number")throw new f('"latency" should be a number.',{code:"INVALID_PARAMETER"});if(i<0)throw new f('"latency" should be a non-negative number.',{code:"INVALID_PARAMETER"});s&&!ge?.[s]&&(ge[s]=new tt({breakWhenError:false,batchSize:1}));let u={stop:null,aborted:false,queue:s};pe[r]=u;let c=()=>{pe[r]===u&&delete pe[r];},d=()=>new Promise((h,m)=>{let g=false;if(u.aborted){c(),h(qr(r));return}let p=setInterval(async()=>{try{let w=await S.bind(this)("csr-poll",{id:r,service:t,owner:n},{auth:e});if(w.status==="running"||w.status==="pending"||g)return;g=!0,o&&o(w),clearInterval(p),c(),h(w);}catch(w){if(g)return;g=true,a&&a(w),clearInterval(p),c(),m(w);}},i);u.stop=()=>{g||(g=true,clearInterval(p),c(),h(qr(r)));};}),l=()=>{let h=pe[r];h&&(h.stop?h.stop():(h.aborted=true,delete pe[r]));};if(s){let h=new Promise((m,g)=>{let p=false,w=ge[s].add([async()=>{try{let b=await d();return p||(p=!0,m(b)),b}catch(b){throw p||(p=true,g(b)),b}}])[0];at[r]=w,u.stop=()=>{if(!p){u.aborted=true;try{ge[s]&&ge[s].remove(at[r]);}catch{}delete at[r],c(),p=true,m(qr(r));}};});return Object.assign(h,{stop:l})}else return Object.assign(d(),{stop:l})}function ns(r){let e=0,t=[];if(r?.id){if(r.url&&r.method){let n=r.service||this.service;t.push(`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${n}:${r.id}`);}t.push(r.id);}else if(r?.queue)for(let n in pe)pe[n]?.queue===r.queue&&t.push(n);else for(let n in pe)t.push(n);for(let n of t){let i=pe[n];i&&(i.stop?i.stop():(i.aborted=true,delete pe[n]),e+=1);}return e}function is(r,e){if(!r.queue)throw new f('"queue" is required.',{code:"INVALID_PARAMETER"});let t={service:r.service||this.service,owner:r.owner||this.owner,queue:r.queue+":"};return S.bind(this)("csr-poll",t,{auth:true})}async function ss(r){let e=false;if(typeof r.poll=="number"&&r.poll<0)throw new f('"poll" should be a non-negative number.',{code:"INVALID_PARAMETER"});let t=r?.onResponse,n=r?.onError,i=typeof r.poll=="number"?r.poll:r.poll?1e3:0;delete r.poll,i&&!r.queue&&(r.queue=(this.__user?.user_id||"anonymous")+"-"+De());let s=u=>{for(let c in u)if(typeof u[c]=="string"&&u[c].includes("$CLIENT_SECRET")){e=true;break}};if(r=_.Params(r,{url:u=>{if(!u||typeof u!="string")throw new f('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return _.Url(u),u.includes("$CLIENT_SECRET")&&(e=true),u},clientSecretName:"string",method:u=>{if(u&&typeof u!="string")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let c=u.toLowerCase();if(c!=="get"&&c!=="post"&&c!=="delete"&&c!=="put")throw new f('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return c},headers:u=>{if(u&&typeof u!="object")throw new f('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},data:u=>{if(u&&typeof u!="object")throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},params:u=>{if(u&&typeof u!="object")throw new f('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(u),u},expires:"number",queue:"string"},["clientSecretName","method","url"]),!e)throw new f(`At least one parameter value should include "$CLIENT_SECRET" in ${r.method.toLowerCase()==="post"?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let o=!!this.__user,a=()=>S.bind(this)("csr",r,{auth:o,tokenHeaders:{accessToken:!!o}}).then(u=>{if(u.status==="running"||u.status==="pending"){let c=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}`,d=r.service||this.service,l=r.owner||this.owner,h=`${c}#${d}:${u.id}`;Object.assign(u,{poll:m=>rs.call(this,{id:h,auth:o,service:d,owner:l,latency:m?.latency||1e3,queue:r?.queue,onResponse:t,onError:n})});}return t?t(u):u}).catch(u=>{if(n)return n(u);throw u});if(r?.queue){let u="base:"+r.queue;return ge?.[u]||(ge[u]=new tt({breakWhenError:false,batchSize:1})),new Promise((c,d)=>{ge[u].add([async()=>{try{let l=await a();if(i>0){let h=l.poll({latency:i});return c(h),h}return c(l),l}catch(l){throw d(l),l}}]);})}else return a()}async function os(r,e){await this.__connection;let t=r.service||this.service,n=r.owner||this.owner;r=_.Params(r,{url:"string",method:["GET","POST","DELETE","PUT"],queue:"string",status:["pending","running","resolved","failed"]},["url","method"]);let i=!!this.__user,s=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${t}:`,o={id:s,queue:r?.queue,status:r?.status,service:t,owner:n};Object.keys(o).forEach(u=>{o[u]||delete o[u];}),o.queue&&delete o.id;let a=await S.bind(this)("csr-poll",o,{auth:i,fetchOptions:e});return a.list=a.list.map(u=>{let c={id:u.id,status_code:u.rslv?.status_code||null,response_body:u.rslv?.body||u.rslv?.truncated||null,error:u?.err,created:u?.stmp,updated:u?.utmp,request_body:u?.reqbdy,expires:u?.expt,status:u.stts,queue_name:u?.qid};for(let d in c)c[d]===void 0&&delete c[d];return (c.status==="running"||c.status==="pending")&&(c.poll=d=>rs.call(this,{id:s+c.id,auth:i,service:t,owner:n,latency:d?.latency||1e3,queue:u?.qid,onResponse:d?.onResponse,onError:d?.onError})),c}),a}async function as(r){await this.__connection,r=_.Params(r,{url:"string",method:["GET","POST","DELETE","PUT"],id:"string",queue:"string"},["url","method","id"]);let e=r?.service||this.service,t=r?.owner||this.owner,n=!!this.__user,i=`[${r.method.toUpperCase()}]${r.url.toLowerCase()}#${e}`,s=r.id,o=`${i}:${s}`,a=r?.queue;return a&&ge?.[a]&&(ge[a].remove(at[o]),delete at[o]),S.bind(this)("csr-cancel",{id:o,service:e,owner:t},{auth:n})}async function us(r){await this.__connection;let e={name:"string",email:t=>(_.Email(t),t),subject:"string",message:"string"};return r=_.Params(r,e,["name","email","subject","message"]),await S.bind(this)("send-inquiry",r),"SUCCESS: Inquiry has been sent."}async function cs(r,e){if(await this.__connection,sc&&r instanceof FormData||oc&&r instanceof HTMLFormElement||ac&&r instanceof SubmitEvent){if(!e)throw new f("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=L(r);r={url:e,data:n.data,sync:true};}let t={url:n=>_.Url(n),data:n=>n,sync:["boolean",()=>true]};if(Array.isArray(r))for(let n of r)n=_.Params(n,t);else r=_.Params(r,t);return S.bind(this)("post-secure",r,{auth:true})}async function ls(r,e){await this.__connection;let{auth:t=false,method:n="POST",bypassAwaitConnection:i=false,responseType:s,contentType:o,tokenHeaders:a,progress:u}=e||{};if(e=Object.assign({auth:t,method:n,bypassAwaitConnection:i,responseType:s,contentType:o,tokenHeaders:a},{fetchOptions:{progress:u}}),typeof r!="object"&&(o==="application/json"||o===void 0))throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return S.bind(this)("mock",r,e)}async function ds(r,e){await this.__connection,r=_.Params(r||{},{access_group:n=>{if(n==="authorized"&&(n=1),n==="public"&&(n=0),typeof n!="number")throw new f('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(n<0)throw new f('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(n>this.__user.access_group)throw new f("User has no access.",{code:"INVALID_REQUEST"});return n}});let t=await S.bind(this)("get-feed",r,{auth:true,fetchOptions:e});for(let n in t.list)t.list[n]=await Ge.bind(this)(t.list[n]);return t}function ut(r){if(r===this.__user.user_id)throw new f(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return _.UserId(r,'"user_id"')}async function fs(r,e){if(r=L(r,{ignoreEmpty:true}).data,r=_.Params(r,{subscriber:n=>_.UserId(n,'User ID in "subscriber"'),subscription:ut.bind(this),blocked:"boolean"}),!r.subscriber&&!r.subscription)throw new f('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let t=await S.bind(this)("get-subscription",r,Object.assign({auth:true},{fetchOptions:e}));return t.list=t.list.map((n=>{let i={};if(n.sub){let s=n.sub.split("#");i.subscriber=s[2],i.subscription=s[0];}else i.subscriber=n.subscriber,i.subscription=n.subscription;return i.timestamp=n?.timestamp||n.stmp,i.blocked=n?.blocked||n.grp.substring(0,1)==="N",Object.assign(i,n.opt),i})),t}async function hs(r){await this.__connection,r=_.Params(r,{user_id:ut.bind(this),get_feed:["boolean",()=>false],get_notified:["boolean",()=>false],get_email:n=>{if(n&&!this.__user.email||!this.__user.email_verified)throw new f("User has no verified email address.",{code:"INVALID_REQUEST"});return !!n}},["user_id"]);let e=await S.bind(this)("subscription",{subscribe:r.user_id,option:{get_feed:r.get_feed,get_notified:r.get_notified,get_email:r.get_email||false}},{auth:true}),t={};if(e.sub){let n=e.sub.split("#");t.subscriber=n[2],t.subscription=n[0];}else t.subscriber=e.subscriber,t.subscription=e.subscription;return t.timestamp=e?.timestamp||e.stmp,t.blocked=e?.blocked||e.grp.substring(0,1)==="N",Object.assign(t,e.opt),t}async function gs(r){await this.__connection;let{user_id:e}=_.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function ps(r){await this.__connection;let{user_id:e}=_.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{block:e},{auth:true})}async function ms(r){await this.__connection;let{user_id:e}=_.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unblock:e},{auth:true})}async function _s(r,e){await this.__connection;let t=await H.bind(this)();r=_.Params(r,{user_id:o=>{if(o!==this.__user.user_id&&!t)throw new f("No access.",{code:"INVALID_REQUEST"});return o},group:o=>{if(o==="public"&&(o=0),o==="authorized"&&(o=1),typeof o!="number")throw new f('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return o}});let n=await S.bind(this)("get-newsletter-subscription",r,{auth:true,fetchOptions:e||null}),i=n?.list||n,s=[];Array.isArray(i)||(i=[]);for(let o of i){let a=o.subt.split("#"),u=true;a[0].charAt(0)==="@"&&(u=false,a[0]=a[0].substring(1));let c=parseInt(a[0]);s.push({timestamp:o.stmp,group:c,subscribed_email:a[1],active:u});}return n?.list?(n.list=s,n):s}async function bs(r){await this.__connection;let e=_.Params(r||{},{email:t=>Array.isArray(t)&&t.length>0?t.length===1?_.Email(t[0]):t.map(n=>_.Email(n)):_.Email(t),group:["number","public","authorized","admin",t=>{if(typeof t!="string"||t.length>20||!/^[a-zA-Z0-9]+$/.test(t))throw new f('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return t}],redirect:t=>_.Url(t)},this.__user?["group"]:["email","group"]);return S.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,e,{auth:!!this.__user})}async function ys(r){await this.__connection,r=_.Params(r,{group:["number","public","authorized","admin"]},["group"]);let e=Object.assign({action:"unsubscribe"},r);return S.bind(this)("subscribe-newsletter",e,{auth:true})}async function ws(r,e){let t=await H.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};r||(e=Object.assign({ascending:false},e||{})),r=L(r).data,r=r||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"},r=_.Params(r,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:u=>{if(typeof u!==n[r.searchFor])throw new f(`"value" type does not match the type of "${r.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof u=="string"&&!u)throw new f('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return u},range:u=>{if(!r.hasOwnProperty("value")||typeof u!=typeof r.value)throw new f('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return u},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:u=>{if(u==="public")return 0;if(!this.session)throw new f("User should be logged in.",{code:"INVALID_REQUEST"});if(u==="authorized")return 1;if(typeof u=="number"){if(!t&&u>parseInt(this.user?.access_group||this.session?.idToken?.payload?.access_group))throw new f("User has no access.",{code:"INVALID_REQUEST"});return u}throw new f('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"]);let i=r.group===0?"get-public-newsletters":"get-newsletters",s=await S.bind(this)(i,r,Object.assign({method:"get",auth:i==="get-public-newsletters"?!!this.__user:true},{fetchOptions:e})),o={message_id:"mid",timestamp:"stmp",complaint:"cmpl",read:"read",subject:"subj",bounced:"bnce",url:"url",delivered:"delv"},a={message_id:"",timestamp:0,complaint:0,read:0,subject:"",bounced:"",url:"",delivered:0};return s.list=s.list.map(u=>{let c={};for(let d in o)c[d]=u[o[d]]||a[d];return c.bounced=String(c.bounced),c}),s}async function As(r){let e=_.Params(r,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,block:e.user_id}:e={block:e.user_id},!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("block-account",e,{auth:true})}async function Es(r){let e=_.Params(r,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,unblock:e.user_id}:e={unblock:e.user_id},!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("block-account",e,{auth:true})}async function Ss(r){let e=_.Params(r,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,delete:e.user_id}:e={delete:e.user_id},!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("remove-account",e,{auth:true})}async function vs(r,e){let t={email:s=>_.Email(s),password:s=>_.Password(s),name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>_.Birthdate(s),phone_number:s=>_.PhoneNumber(s),picture:s=>{if(s)return _.Url(s)},profile:s=>{if(s)return _.Url(s)},website:s=>{if(s)return _.Url(s)},nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],openid_id:"string",access_group:s=>{try{typeof s=="string"&&(s=s==="admin"?99:parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=_.Params(r,t,["email"]);if(e=_.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=_.Url(s);else throw new f('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new f('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new f('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return s},template:s=>{if(typeof s!="object"||!s.url||!s.subject)throw new f('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:_.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("admin-signup",n,{auth:true})}async function Ts(r){let e={email:s=>_.Email(s),password:s=>_.Password(s),openid_id:"string",name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>_.Birthdate(s),phone_number:s=>_.PhoneNumber(s),picture:s=>s?_.Url(s):"",profile:s=>s?_.Url(s):"",website:s=>s?_.Url(s):"",nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:s=>{try{typeof s=="string"&&(s=parseInt(s));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},t=["email","password"],n=_.Params(r,e,t);if(!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("admin-signup",n,{auth:true})}async function Rs(r){if(r=_.Params(r,{user_id:t=>_.UserId(t,'"user_id"'),access_group:t=>{try{typeof t=="string"&&(t=parseInt(t));}catch{throw new f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof t=="number"&&t>0&&t<100)return t;throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("grant-access",r,{auth:true})}async function Is(r,e){if(r=_.Params(r,{email:"string"}),!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}let n=await S.bind(this)("invitation-list",Object.assign({mode:"search"},r),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>Xe(i.user)),n}async function Ps(r){if(r=_.Params(r,{email:t=>_.Email(t)},["email"]),!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("invitation-list",Object.assign({mode:"cancel"},r),{auth:true})}async function xs(r){if(r=_.Params(r,{email:t=>_.Email(t)},["email"]),!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}return await S.bind(this)("invitation-list",Object.assign({mode:"resend"},r),{auth:true})}async function Us(r){let e=_.Params(r,{user_id:o=>_.UserId(o,'"user_id"'),email:o=>_.Email(o),address:o=>{if(!o)return "";if(typeof o=="string")return o;if(typeof o=="object")return JSON.stringify(o)},name:"string",gender:"string",birthdate:o=>o?_.Birthdate(o):"",phone_number:o=>o?_.PhoneNumber(o):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:o=>o?_.Url(o):"",profile:o=>o?_.Url(o):"",nickname:"string",website:o=>o?_.Url(o):""},["user_id"]),t=e.service,n=e.owner;if(delete e.service,delete e.owner,Object.keys(e).filter(o=>o!=="user_id"&&e[o]!==void 0).length===0)throw new f("At least one attribute to update is required.",{code:"INVALID_PARAMETER"});if(!await H.bind(this)()){if(!this.__user)throw new f("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new f("Invalid access.",{code:"INVALID_REQUEST"})}e.email&&(e.preferred_username=(t||this.service)+"-"+K.hash(e.email));let s={attributes:e};return t&&n&&(s.service=t,s.owner=n),await S.bind(this)("admin-edit-profile",s,{auth:true})}async function Cs(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await S.bind(this)("store-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Subscribed to receive notifications."}async function Ds(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!r.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!r.keys||!r.keys.p256dh||!r.keys.auth)throw new f("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await S.bind(this)("delete-subscription",{endpoint:r.endpoint,keys:r.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function ks(){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});return await this.__connection,{VAPIDPublicKey:await S.bind(this)("get-vapid-public-key",null,{auth:true})}}async function Ns(r,e){if(typeof window>"u"||window._runningInNodeJS)throw new f("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});await this.__connection;let{title:t,body:n}=L(r||{},{nullIfEmpty:true}).data;if(!t)throw new f("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!n)throw new f("Missing parameter: message body",{code:"INVALID_PARAMETER"});let i={title:t,body:n};return e?(typeof e=="string"&&(e=[e]),i.user_ids=e):i.user_ids="all_users",await S.bind(this)("push-notification",i,{auth:true}),"SUCCESS: Notification sent."}async function Fs(r){await this.__connection,r=_.Params(r,{spell:"string",name:"string",magic:t=>t},["spell","name"]);await S.bind(this)("castspell",r);return `The spell "${r.spell}" has been cast.`}async function Ls(r){return await this.__connection,r=_.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await S.bind(this)("getspell",r)}async function Os(r){await this.__connection,r=_.Params(r,{message:"string",name:"string"},["message","name"]);let e=await S.bind(this)("dopamine",r,{auth:true}),t=e?.previous_message?.message,n=e?.previous_message?.name;if(z())t&&n&&window.alert(`${n} said: ${t}`),window.location.href=e.video;else return t&&n?`${n} said: ${t}
217
217
  Watch the video here: ${e.video}`:`Your message has been uploaded for future generations to receive.
218
- Watch the video here: ${e.video}`}var E=class{constructor(e,t,n,i){this.__version="1.7.7";this.session=null;this.connection=null;this.__my_unique_ids={};this.__uniqueIdsPersistTimer=null;this.userPool=null;this.__socket=null;this.__mediaStream=null;this.host="skapi";this.hostDomain="skapi.com";this.target_cdn="d3e9syvbtso631";this.customApiDomain="skapi.dev";this.requestBatchSize=30;this.__disabledAccount=null;this.__cached_requests={};this.__startKeyHistory={};this.__request_signup_confirmation=null;this.__private_access_key={};this.__class_properties_has_been_cached=false;this.__user=null;this._userProfileListeners=[];this._onLoginListeners=[];this._onBatchProcessListeners=[];this.validate={userId(e){try{return m.UserId(e),!0}catch{return false}},url(e){try{return m.Url(e),!0}catch{return false}},phoneNumber(e){try{return m.PhoneNumber(e),!0}catch{return false}},birthdate(e){try{return m.Birthdate(e),!0}catch{return false}},email(e){try{return m.Email(e),!0}catch{return false}},params(e,t,n){return m.Params(e,t,n)}};this.util={MD5:j,generateRandom:De,toBase62:Qn,fromBase62:ne,decodeServiceId:Ir,formatServiceId:zn,extractFormData:L,terminatePendingRequests:Si,request:(e,t,n)=>S.bind(this)(e,t,n,{ignoreService:true})};this.__network_logs=false;this.__endpoint_version="v1";this.__public_identifier="";this.bearerToken="";this.registerTicket=ti.bind(this);this.unregisterTicket=ri.bind(this);if(!e||typeof e!="string")throw this._alert("Service ID is required."),new f("Service ID is required.",{code:"INVALID_PARAMETER"});let s=e.split("-").length;if(s===2||s===7)try{let p=Ir(e);n&&typeof n=="object"&&(i=n),t&&typeof t=="object"&&(n=t),t=p.owner,e=p.service;}catch{throw this._alert("Service ID is invalid."),new f("Service ID is invalid.",{code:"INVALID_PARAMETER"})}if(!t||typeof t!="string")throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(e.toLowerCase()==="service_id")throw this._alert('Replace "service_id" with your actual Service ID.'),new f("Service ID is required.",{code:"INVALID_PARAMETER"});if(t!==this.host)try{m.UserId(t,'"owner"');}catch{throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"})}this.service=e,this.owner=t;let u=true,c=false;if(n&&(typeof n.refetchServiceInfo=="boolean"&&(c=n.refetchServiceInfo),typeof n.autoLogin=="boolean"&&(u=n.autoLogin),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new f('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize;}n?.eventListener&&typeof n.eventListener=="object"&&(n.eventListener?.onLogin&&typeof n.eventListener.onLogin=="function"&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&typeof n.eventListener.onUserUpdate=="function"&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&typeof n.eventListener.onBatchProcess=="function"&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;let d=`https://${this.target_cdn}.cloudfront.net`,l=e.substring(0,4);this.admin_endpoint=fetch(`${d}/${l}/admin-${this.__endpoint_version}.json`).then(p=>p.blob()).then(p=>new Promise((w,b)=>{let R=new FileReader;R.onloadend=()=>w(R.result),R.onerror=b,R.readAsDataURL(p);})).then(p=>{try{return typeof p=="string"?JSON.parse(atob(p.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${d}/${l}/record-${this.__endpoint_version}.json`).then(p=>p.blob()).then(p=>new Promise((w,b)=>{let R=new FileReader;R.onloadend=()=>w(R.result),R.onerror=b,R.readAsDataURL(p);})).then(p=>{try{return typeof p=="string"?JSON.parse(atob(p.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}});let h=z();if(h&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let _=h?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",_),_?.connection){for(let p in _)this[p]=_[p];_.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${De(16)}`);}this.__authConnection=(async()=>{let p=await this.admin_endpoint,w={UserPoolId:p.userpool_id,ClientId:p.userpool_client};Rr()&&(w.Storage=window.localStorage),this.userPool=new Sr(w);try{this.user||await G.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!_?.connection&&!u?we.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let g=h?window.sessionStorage.getItem(`${this.service}:uniqueids`):null;if(g)try{this.__my_unique_ids=JSON.parse(g);}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let p=null;await this.record_endpoint,_?.connection||(p=this._updateConnection({refresh:c}));let w=()=>{if(this.__class_properties_has_been_cached)return;let b=()=>{let R={},C=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let I of C)R[I]=this[I];h&&window.sessionStorage.setItem(`${e}#${t}`,JSON.stringify(R)),this.__class_properties_has_been_cached=true;}};return p instanceof Promise?p.then(()=>b()):b()};return h&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),w();}),window.addEventListener("visibilitychange",()=>{w();})),await p,await this.__authConnection,this.connection})(),this.__connection.then(p=>{((p?.group||0)<3||this.__network_logs)&&this.version();});}get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){typeof e=="function"&&this._onLoginListeners.push(e);}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){typeof e=="function"&&this._userProfileListeners.push(e);}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)typeof t=="function"&&t(e);}_runOnLoginListeners(e){for(let t of this._onLoginListeners)typeof t=="function"&&t(e);}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){typeof e=="function"&&this._onBatchProcessListeners.push(e);}_alert(e){z()&&typeof window.alert=="function"&&window.alert(e);}async getConnectionInfo(e){e?.refresh&&(this.__connection instanceof Promise&&await this.__connection,this.__connection=this._updateConnection({refresh:true}));let n=await this.__connection,i=n?.user_agent||(z()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {user_ip:n.ip,user_agent:i,user_location:n.locale,service_name:n.service_name,version:this.__version,service_description:n?.service_description||"",ai_agent:n?.ai_agent||"",conf:n?.opt}}async _updateConnection(e){let t=e?.refresh||false;try{this.connection=await S.bind(this)("service",{service:this.service,owner:this.owner,refresh:t},{bypassAwaitConnection:!0,method:"get"});}catch(n){throw this.log("connection fail",n),this._alert("Service is not available: "+(n.message||n.toString())),this.connection=null,n}return this.connection}async version(){if(await this.__connection,z()){let t=`Built with:
218
+ Watch the video here: ${e.video}`}var E=class{constructor(e,t,n,i){this.__version="1.8.0";this.session=null;this.connection=null;this.__my_unique_ids={};this.__uniqueIdsPersistTimer=null;this.userPool=null;this.__socket=null;this.__mediaStream=null;this.host="skapi";this.hostDomain="skapi.com";this.target_cdn="d3e9syvbtso631";this.customApiDomain="skapi.dev";this.requestBatchSize=30;this.__disabledAccount=null;this.__cached_requests={};this.__startKeyHistory={};this.__request_signup_confirmation=null;this.__private_access_key={};this.__class_properties_has_been_cached=false;this.__user=null;this._userProfileListeners=[];this._onLoginListeners=[];this._onBatchProcessListeners=[];this.validate={userId(e){try{return _.UserId(e),!0}catch{return false}},url(e){try{return _.Url(e),!0}catch{return false}},phoneNumber(e){try{return _.PhoneNumber(e),!0}catch{return false}},birthdate(e){try{return _.Birthdate(e),!0}catch{return false}},email(e){try{return _.Email(e),!0}catch{return false}},params(e,t,n){return _.Params(e,t,n)}};this.util={MD5:K,generateRandom:De,toBase62:Qn,fromBase62:ie,decodeServiceId:Ir,formatServiceId:zn,extractFormData:L,terminatePendingRequests:Si,request:(e,t,n)=>S.bind(this)(e,t,n,{ignoreService:true})};this.__network_logs=false;this.__endpoint_version="v1";this.__public_identifier="";this.bearerToken="";this.registerTicket=ti.bind(this);this.unregisterTicket=ri.bind(this);if(!e||typeof e!="string")throw this._alert("Service ID is required."),new f("Service ID is required.",{code:"INVALID_PARAMETER"});let s=e.split("-").length;if(s===2||s===7)try{let p=Ir(e);n&&typeof n=="object"&&(i=n),t&&typeof t=="object"&&(n=t),t=p.owner,e=p.service;}catch{throw this._alert("Service ID is invalid."),new f("Service ID is invalid.",{code:"INVALID_PARAMETER"})}if(!t||typeof t!="string")throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(e.toLowerCase()==="service_id")throw this._alert('Replace "service_id" with your actual Service ID.'),new f("Service ID is required.",{code:"INVALID_PARAMETER"});if(t!==this.host)try{_.UserId(t,'"owner"');}catch{throw this._alert("Owner ID is invalid."),new f("Owner ID is invalid.",{code:"INVALID_PARAMETER"})}this.service=e,this.owner=t;let u=true,c=false;if(n&&(typeof n.refetchServiceInfo=="boolean"&&(c=n.refetchServiceInfo),typeof n.autoLogin=="boolean"&&(u=n.autoLogin),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new f('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize;}n?.eventListener&&typeof n.eventListener=="object"&&(n.eventListener?.onLogin&&typeof n.eventListener.onLogin=="function"&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&typeof n.eventListener.onUserUpdate=="function"&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&typeof n.eventListener.onBatchProcess=="function"&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;let d=`https://${this.target_cdn}.cloudfront.net`,l=e.substring(0,4);this.admin_endpoint=fetch(`${d}/${l}/admin-${this.__endpoint_version}.json`).then(p=>p.blob()).then(p=>new Promise((w,b)=>{let R=new FileReader;R.onloadend=()=>w(R.result),R.onerror=b,R.readAsDataURL(p);})).then(p=>{try{return typeof p=="string"?JSON.parse(atob(p.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${d}/${l}/record-${this.__endpoint_version}.json`).then(p=>p.blob()).then(p=>new Promise((w,b)=>{let R=new FileReader;R.onloadend=()=>w(R.result),R.onerror=b,R.readAsDataURL(p);})).then(p=>{try{return typeof p=="string"?JSON.parse(atob(p.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}});let h=z();if(h&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let m=h?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",m),m?.connection){for(let p in m)this[p]=m[p];m.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${De(16)}`);}this.__authConnection=(async()=>{let p=await this.admin_endpoint,w={UserPoolId:p.userpool_id,ClientId:p.userpool_client};Rr()&&(w.Storage=window.localStorage),this.userPool=new Sr(w);try{this.user||await G.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!m?.connection&&!u?Ae.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let g=h?window.sessionStorage.getItem(`${this.service}:uniqueids`):null;if(g)try{this.__my_unique_ids=JSON.parse(g);}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let p=null;await this.record_endpoint,m?.connection||(p=this._updateConnection({refresh:c}));let w=()=>{if(this.__class_properties_has_been_cached)return;let b=()=>{let R={},C=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let I of C)R[I]=this[I];h&&window.sessionStorage.setItem(`${e}#${t}`,JSON.stringify(R)),this.__class_properties_has_been_cached=true;}};return p instanceof Promise?p.then(()=>b()):b()};return h&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),w();}),window.addEventListener("visibilitychange",()=>{w();})),await p,await this.__authConnection,this.connection})(),this.__connection.then(p=>{((p?.group||0)<3||this.__network_logs)&&this.version();});}get user(){return this.__user&&Object.keys(this.__user).length?JSON.parse(JSON.stringify(this.__user)):null}set user(e){}get onLogin(){return this._onLoginListeners}set onLogin(e){typeof e=="function"&&this._onLoginListeners.push(e);}get onUserUpdate(){return this._userProfileListeners}set onUserUpdate(e){typeof e=="function"&&this._userProfileListeners.push(e);}_runOnUserUpdateListeners(e){for(let t of this._userProfileListeners)typeof t=="function"&&t(e);}_runOnLoginListeners(e){for(let t of this._onLoginListeners)typeof t=="function"&&t(e);}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){typeof e=="function"&&this._onBatchProcessListeners.push(e);}_alert(e){z()&&typeof window.alert=="function"&&window.alert(e);}async getConnectionInfo(e){e?.refresh&&(this.__connection instanceof Promise&&await this.__connection,this.__connection=this._updateConnection({refresh:true}));let n=await this.__connection,i=n?.user_agent||(z()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {user_ip:n.ip,user_agent:i,user_location:n.locale,service_name:n.service_name,version:this.__version,service_description:n?.service_description||"",ai_agent:n?.ai_agent||"",conf:n?.opt}}async _updateConnection(e){let t=e?.refresh||false;try{this.connection=await S.bind(this)("service",{service:this.service,owner:this.owner,refresh:t},{bypassAwaitConnection:!0,method:"get"});}catch(n){throw this.log("connection fail",n),this._alert("Service is not available: "+(n.message||n.toString())),this.connection=null,n}return this.connection}async version(){if(await this.__connection,z()){let t=`Built with:
219
219
  %c\r
220
220
  $$\\ $$\\ \r
221
221
  $$ | \\__|\r
@@ -230,7 +230,7 @@ $$$$$$$ |$$ | \\$$\\\\$$$$$$$ |$$$$$$$ |$$ |\r
230
230
  \\__| \r
231
231
  Version: ${this.__version}
232
232
 
233
- Full Documentation: https://docs.skapi.com/skapi.md`;console.log(t,"font-family: monospace; color:blue;"),this.connection.group===1&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE.","font-family: monospace; color:red;");}return this.__version}log(e,t){if(this.__network_logs){if(t!==null&&typeof t=="object")try{z()?t=JSON.parse(JSON.stringify(t)):t=JSON.stringify(t,null,2);}catch{t=String(t);}else typeof t=="string"&&t.length>100&&(t=t.substring(0,100)+"...");console.log(`%c${e}:`,"color: blue;",t);}}getFeed(e,t){return ds.bind(this)(e,t)}closeRTC(e){return oe.bind(this)(e)}connectRTC(e,t){return Ji.bind(this)(e,t)}connectRealtime(e){return Kt.bind(this)(e)}spellcast(e){return Fs.bind(this)(e)}getspell(e){return Ls.bind(this)(e)}dopamine(e){return Os.bind(this)(e)}getUniqueId(e,t){return Mi.bind(this)(e,t)}resendInvitation(e){return xs.bind(this)(e)}cancelInvitation(e){return Ps.bind(this)(e)}getInvitations(e,t){return Is.bind(this)(e,t)}openIdLogin(e){return ii.bind(this)(e)}loginWithToken(e){return si.bind(this)(e)}clientSecretRequest(e){return ss.bind(this)(e)}clientSecretRequestHistory(e,t){return os.bind(this)(e,t)}cancelClientSecretRequest(e){return as.bind(this)(e)}stopClientSecretPolling(e){return ns.bind(this)(e||{})}isPollStopped(e){return ts(e)}clientSecretRequestQueueCount(e){return is.bind(this)(e)}consumeTicket(e){return Xn.bind(this)(e)}getConsumedTickets(e,t){return ei.bind(this)(e,t)}getTickets(e,t){return Zn.bind(this)(e,t)}closeRealtime(){return Yi.bind(this)()}getRealtimeUsers(e,t){return Zi.bind(this)(e,t)}sendInquiry(e){return us.bind(this)(e)}blockAccount(e){return As.bind(this)(e)}unblockAccount(e){return Es.bind(this)(e)}deleteAccount(e){return Ss.bind(this)(e)}inviteUser(e,t){return vs.bind(this)(e,t)}createAccount(e){return Ts.bind(this)(e)}grantAccess(e){return Rs.bind(this)(e)}updateUserAttributes(e){return Us.bind(this)(e)}getRealtimeGroups(e,t){return es.bind(this)(e,t)}postRealtime(e,t,n){return Xi.bind(this)(e,t,n)}joinRealtime(e){return Vr.bind(this)(e)}getProfile(e){return ni.bind(this)(e)}getFile(e,t){return qt.bind(this)(e,t)}secureRequest(e,t){return cs.bind(this)(e,t)}getFormResponse(){return Ti.bind(this)()}getRecords(e,t){return Ci.bind(this)(e,t)}getTables(e,t){return Fi.bind(this)(e,t)}getIndexes(e,t){return Li.bind(this)(e,t)}getTags(e,t){return Oi.bind(this)(e,t)}deleteRecords(e,t){return Vi.bind(this)(e,t)}resendSignupConfirmation(){return oi.bind(this)()}recoverAccount(e=false){return ai.bind(this)(e)}getUsers(e,t){return _i.bind(this)(e,t)}disableAccount(){return ci.bind(this)()}lastVerifiedEmail(e){return bi.bind(this)(e)}unsubscribeNewsletter(e){return ys.bind(this)(e)}subscribeNotification(e,t){return Cs.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Ds.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return ks.bind(this)()}pushNotification(e,t){return Ns.bind(this)(e,t)}getNewsletters(e,t){return ws.bind(this)(e,t)}getNewsletterSubscription(e,t){return _s.bind(this)(e,t)}requestUsernameChange(e){return yi.bind(this)(e)}grantPrivateRecordAccess(e){return qi.bind(this)(e)}removePrivateRecordAccess(e){return Bi.bind(this)(e)}listPrivateRecordAccess(e,t){return $i.bind(this)(e,t)}requestPrivateRecordAccessKey(e){return ji.bind(this)(e)}deleteFiles(e){return xi.bind(this)(e)}uploadFiles(e,t){return Lt.bind(this)(e,t)}mock(e,t){return ls.bind(this)(e,t)}login(e){return xr.bind(this)(e)}logout(e){return et.bind(this)(e)}signup(e,t){return ui.bind(this)(e,t)}resetPassword(e){return li.bind(this)(e)}verifyEmail(e,t){return hi.bind(this)(e,t)}verifyPhoneNumber(e,t){return fi.bind(this)(e,t)}forgotPassword(e,t){return gi.bind(this)(e,t)}changePassword(e){return pi.bind(this)(e)}updateProfile(e){return mi.bind(this)(e)}postRecord(e,t,n){return Ni.bind(this)(e,t,n)}getSubscriptions(e,t){return fs.bind(this)(e,t)}subscribe(e){return hs.bind(this)(e)}unsubscribe(e){return gs.bind(this)(e)}blockSubscriber(e){return ps.bind(this)(e)}unblockSubscriber(e){return ms.bind(this)(e)}subscribeNewsletter(e){return bs.bind(this)(e)}bulkPostRecords(e){return ki.bind(this)(e)}};v([T()],E.prototype,"getFeed"),v([T()],E.prototype,"closeRTC"),v([T()],E.prototype,"connectRTC"),v([T()],E.prototype,"spellcast"),v([T()],E.prototype,"getspell"),v([T()],E.prototype,"dopamine"),v([T()],E.prototype,"getUniqueId"),v([T()],E.prototype,"resendInvitation"),v([T()],E.prototype,"cancelInvitation"),v([T()],E.prototype,"getInvitations"),v([T()],E.prototype,"openIdLogin"),v([T()],E.prototype,"loginWithToken"),v([T()],E.prototype,"clientSecretRequest"),v([T()],E.prototype,"clientSecretRequestHistory"),v([T()],E.prototype,"cancelClientSecretRequest"),v([T()],E.prototype,"consumeTicket"),v([T()],E.prototype,"getConsumedTickets"),v([T()],E.prototype,"getTickets"),v([T()],E.prototype,"getRealtimeUsers"),v([T()],E.prototype,"sendInquiry"),v([T()],E.prototype,"blockAccount"),v([T()],E.prototype,"unblockAccount"),v([T()],E.prototype,"deleteAccount"),v([T()],E.prototype,"inviteUser"),v([T()],E.prototype,"createAccount"),v([T()],E.prototype,"grantAccess"),v([T()],E.prototype,"updateUserAttributes"),v([T()],E.prototype,"getRealtimeGroups"),v([T()],E.prototype,"postRealtime"),v([T()],E.prototype,"joinRealtime"),v([T()],E.prototype,"getProfile"),v([T()],E.prototype,"getFile"),v([T()],E.prototype,"secureRequest"),v([T()],E.prototype,"getFormResponse"),v([T()],E.prototype,"getRecords"),v([T()],E.prototype,"getTables"),v([T()],E.prototype,"getIndexes"),v([T()],E.prototype,"getTags"),v([T()],E.prototype,"deleteRecords"),v([T()],E.prototype,"resendSignupConfirmation"),v([T()],E.prototype,"recoverAccount"),v([T()],E.prototype,"getUsers"),v([T()],E.prototype,"disableAccount"),v([T()],E.prototype,"lastVerifiedEmail"),v([T()],E.prototype,"unsubscribeNewsletter"),v([T()],E.prototype,"subscribeNotification"),v([T()],E.prototype,"unsubscribeNotification"),v([T()],E.prototype,"vapidPublicKey"),v([T()],E.prototype,"pushNotification"),v([T()],E.prototype,"getNewsletters"),v([T()],E.prototype,"getNewsletterSubscription"),v([T()],E.prototype,"requestUsernameChange"),v([T()],E.prototype,"grantPrivateRecordAccess"),v([T()],E.prototype,"removePrivateRecordAccess"),v([T()],E.prototype,"listPrivateRecordAccess"),v([T()],E.prototype,"requestPrivateRecordAccessKey"),v([T()],E.prototype,"deleteFiles"),v([T()],E.prototype,"uploadFiles"),v([T()],E.prototype,"mock"),v([T({preventMultipleCalls:true})],E.prototype,"login"),v([T()],E.prototype,"logout"),v([T({preventMultipleCalls:true})],E.prototype,"signup"),v([T({preventMultipleCalls:true})],E.prototype,"resetPassword"),v([T({preventMultipleCalls:true})],E.prototype,"verifyEmail"),v([T({preventMultipleCalls:true})],E.prototype,"verifyPhoneNumber"),v([T({preventMultipleCalls:true})],E.prototype,"forgotPassword"),v([T({preventMultipleCalls:true})],E.prototype,"changePassword"),v([T({preventMultipleCalls:true})],E.prototype,"updateProfile"),v([T()],E.prototype,"postRecord"),v([T()],E.prototype,"getSubscriptions"),v([T()],E.prototype,"subscribe"),v([T()],E.prototype,"unsubscribe"),v([T()],E.prototype,"blockSubscriber"),v([T()],E.prototype,"unblockSubscriber"),v([T()],E.prototype,"subscribeNewsletter");var Br={};var Ht=typeof globalThis<"u"?globalThis:void 0;Ht&&(Ht.Skapi=E,Ht.SkapiError=f,Ht.SkapiTypes=Br);/*! Bundled license information:
233
+ Full Documentation: https://docs.skapi.com/skapi.md`;console.log(t,"font-family: monospace; color:blue;"),this.connection.group===1&&console.log("%cSKAPI: THE SERVICE IS IN TRIAL MODE.","font-family: monospace; color:red;");}return this.__version}log(e,t){if(this.__network_logs){if(t!==null&&typeof t=="object")try{z()?t=JSON.parse(JSON.stringify(t)):t=JSON.stringify(t,null,2);}catch{t=String(t);}else typeof t=="string"&&t.length>100&&(t=t.substring(0,100)+"...");console.log(`%c${e}:`,"color: blue;",t);}}getFeed(e,t){return ds.bind(this)(e,t)}closeRTC(e){return ae.bind(this)(e)}connectRTC(e,t){return Ji.bind(this)(e,t)}connectRealtime(e){return Kt.bind(this)(e)}spellcast(e){return Fs.bind(this)(e)}getspell(e){return Ls.bind(this)(e)}dopamine(e){return Os.bind(this)(e)}getUniqueId(e,t){return Mi.bind(this)(e,t)}resendInvitation(e){return xs.bind(this)(e)}cancelInvitation(e){return Ps.bind(this)(e)}getInvitations(e,t){return Is.bind(this)(e,t)}openIdLogin(e){return ii.bind(this)(e)}loginWithToken(e){return si.bind(this)(e)}clientSecretRequest(e){return ss.bind(this)(e)}clientSecretRequestHistory(e,t){return os.bind(this)(e,t)}cancelClientSecretRequest(e){return as.bind(this)(e)}stopClientSecretPolling(e){return ns.bind(this)(e||{})}isPollStopped(e){return ts(e)}clientSecretRequestQueueCount(e){return is.bind(this)(e)}consumeTicket(e){return Xn.bind(this)(e)}getConsumedTickets(e,t){return ei.bind(this)(e,t)}getTickets(e,t){return Zn.bind(this)(e,t)}closeRealtime(){return Yi.bind(this)()}getRealtimeUsers(e,t){return Zi.bind(this)(e,t)}sendInquiry(e){return us.bind(this)(e)}blockAccount(e){return As.bind(this)(e)}unblockAccount(e){return Es.bind(this)(e)}deleteAccount(e){return Ss.bind(this)(e)}inviteUser(e,t){return vs.bind(this)(e,t)}createAccount(e){return Ts.bind(this)(e)}grantAccess(e){return Rs.bind(this)(e)}updateUserAttributes(e){return Us.bind(this)(e)}getRealtimeGroups(e,t){return es.bind(this)(e,t)}postRealtime(e,t,n){return Xi.bind(this)(e,t,n)}joinRealtime(e){return Vr.bind(this)(e)}getProfile(e){return ni.bind(this)(e)}getFile(e,t){return st.bind(this)(e,t)}secureRequest(e,t){return cs.bind(this)(e,t)}getFormResponse(){return Ti.bind(this)()}getRecords(e,t){return Ci.bind(this)(e,t)}getTables(e,t){return Fi.bind(this)(e,t)}getIndexes(e,t){return Li.bind(this)(e,t)}getTags(e,t){return Oi.bind(this)(e,t)}deleteRecords(e,t){return Vi.bind(this)(e,t)}resendSignupConfirmation(){return oi.bind(this)()}recoverAccount(e=false){return ai.bind(this)(e)}getUsers(e,t){return _i.bind(this)(e,t)}disableAccount(){return ci.bind(this)()}lastVerifiedEmail(e){return bi.bind(this)(e)}unsubscribeNewsletter(e){return ys.bind(this)(e)}subscribeNotification(e,t){return Cs.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Ds.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return ks.bind(this)()}pushNotification(e,t){return Ns.bind(this)(e,t)}getNewsletters(e,t){return ws.bind(this)(e,t)}getNewsletterSubscription(e,t){return _s.bind(this)(e,t)}requestUsernameChange(e){return yi.bind(this)(e)}grantPrivateRecordAccess(e){return qi.bind(this)(e)}removePrivateRecordAccess(e){return Bi.bind(this)(e)}listPrivateRecordAccess(e,t){return $i.bind(this)(e,t)}requestPrivateRecordAccessKey(e){return ji.bind(this)(e)}deleteFiles(e){return xi.bind(this)(e)}uploadFiles(e,t){return Ot.bind(this)(e,t)}mock(e,t){return ls.bind(this)(e,t)}login(e){return xr.bind(this)(e)}logout(e){return et.bind(this)(e)}signup(e,t){return ui.bind(this)(e,t)}resetPassword(e){return li.bind(this)(e)}verifyEmail(e,t){return hi.bind(this)(e,t)}verifyPhoneNumber(e,t){return fi.bind(this)(e,t)}forgotPassword(e,t){return gi.bind(this)(e,t)}changePassword(e){return pi.bind(this)(e)}updateProfile(e){return mi.bind(this)(e)}postRecord(e,t,n){return Ni.bind(this)(e,t,n)}getSubscriptions(e,t){return fs.bind(this)(e,t)}subscribe(e){return hs.bind(this)(e)}unsubscribe(e){return gs.bind(this)(e)}blockSubscriber(e){return ps.bind(this)(e)}unblockSubscriber(e){return ms.bind(this)(e)}subscribeNewsletter(e){return bs.bind(this)(e)}bulkPostRecords(e){return ki.bind(this)(e)}};v([T()],E.prototype,"getFeed"),v([T()],E.prototype,"closeRTC"),v([T()],E.prototype,"connectRTC"),v([T()],E.prototype,"spellcast"),v([T()],E.prototype,"getspell"),v([T()],E.prototype,"dopamine"),v([T()],E.prototype,"getUniqueId"),v([T()],E.prototype,"resendInvitation"),v([T()],E.prototype,"cancelInvitation"),v([T()],E.prototype,"getInvitations"),v([T()],E.prototype,"openIdLogin"),v([T()],E.prototype,"loginWithToken"),v([T()],E.prototype,"clientSecretRequest"),v([T()],E.prototype,"clientSecretRequestHistory"),v([T()],E.prototype,"cancelClientSecretRequest"),v([T()],E.prototype,"consumeTicket"),v([T()],E.prototype,"getConsumedTickets"),v([T()],E.prototype,"getTickets"),v([T()],E.prototype,"getRealtimeUsers"),v([T()],E.prototype,"sendInquiry"),v([T()],E.prototype,"blockAccount"),v([T()],E.prototype,"unblockAccount"),v([T()],E.prototype,"deleteAccount"),v([T()],E.prototype,"inviteUser"),v([T()],E.prototype,"createAccount"),v([T()],E.prototype,"grantAccess"),v([T()],E.prototype,"updateUserAttributes"),v([T()],E.prototype,"getRealtimeGroups"),v([T()],E.prototype,"postRealtime"),v([T()],E.prototype,"joinRealtime"),v([T()],E.prototype,"getProfile"),v([T()],E.prototype,"getFile"),v([T()],E.prototype,"secureRequest"),v([T()],E.prototype,"getFormResponse"),v([T()],E.prototype,"getRecords"),v([T()],E.prototype,"getTables"),v([T()],E.prototype,"getIndexes"),v([T()],E.prototype,"getTags"),v([T()],E.prototype,"deleteRecords"),v([T()],E.prototype,"resendSignupConfirmation"),v([T()],E.prototype,"recoverAccount"),v([T()],E.prototype,"getUsers"),v([T()],E.prototype,"disableAccount"),v([T()],E.prototype,"lastVerifiedEmail"),v([T()],E.prototype,"unsubscribeNewsletter"),v([T()],E.prototype,"subscribeNotification"),v([T()],E.prototype,"unsubscribeNotification"),v([T()],E.prototype,"vapidPublicKey"),v([T()],E.prototype,"pushNotification"),v([T()],E.prototype,"getNewsletters"),v([T()],E.prototype,"getNewsletterSubscription"),v([T()],E.prototype,"requestUsernameChange"),v([T()],E.prototype,"grantPrivateRecordAccess"),v([T()],E.prototype,"removePrivateRecordAccess"),v([T()],E.prototype,"listPrivateRecordAccess"),v([T()],E.prototype,"requestPrivateRecordAccessKey"),v([T()],E.prototype,"deleteFiles"),v([T()],E.prototype,"uploadFiles"),v([T()],E.prototype,"mock"),v([T({preventMultipleCalls:true})],E.prototype,"login"),v([T()],E.prototype,"logout"),v([T({preventMultipleCalls:true})],E.prototype,"signup"),v([T({preventMultipleCalls:true})],E.prototype,"resetPassword"),v([T({preventMultipleCalls:true})],E.prototype,"verifyEmail"),v([T({preventMultipleCalls:true})],E.prototype,"verifyPhoneNumber"),v([T({preventMultipleCalls:true})],E.prototype,"forgotPassword"),v([T({preventMultipleCalls:true})],E.prototype,"changePassword"),v([T({preventMultipleCalls:true})],E.prototype,"updateProfile"),v([T()],E.prototype,"postRecord"),v([T()],E.prototype,"getSubscriptions"),v([T()],E.prototype,"subscribe"),v([T()],E.prototype,"unsubscribe"),v([T()],E.prototype,"blockSubscriber"),v([T()],E.prototype,"unblockSubscriber"),v([T()],E.prototype,"subscribeNewsletter");var Br={};var Ht=typeof globalThis<"u"?globalThis:void 0;Ht&&(Ht.Skapi=E,Ht.SkapiError=f,Ht.SkapiTypes=Br);/*! Bundled license information:
234
234
 
235
235
  ieee754/index.js:
236
236
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)