skapi-js 1.8.2 → 1.8.3
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.browser.mjs +6 -6
- package/dist/skapi.browser.mjs.map +1 -1
- package/dist/skapi.cjs +6 -6
- package/dist/skapi.cjs.map +1 -1
- package/dist/skapi.d.mts +10 -6
- package/dist/skapi.d.ts +10 -6
- package/dist/skapi.js +6 -6
- package/dist/skapi.js.map +1 -1
- package/dist/skapi.mjs +6 -6
- package/dist/skapi.mjs.map +1 -1
- package/package.json +1 -1
package/dist/skapi.browser.mjs
CHANGED
|
@@ -203,8 +203,8 @@
|
|
|
203
203
|
limitations under the License.
|
|
204
204
|
|
|
205
205
|
*/
|
|
206
|
-
var $s=Object.create;var Ne=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var js=Object.getOwnPropertyNames;var Ks=Object.getPrototypeOf,Hs=Object.prototype.hasOwnProperty;var Ws=(r,e,t)=>e in r?Ne(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Wr=(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});},Jr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of js(e))!Hs.call(r,i)&&i!==t&&Ne(r,i,{get:()=>e[i],enumerable:!(n=Hr(e,i))||n.enumerable});return r};var Le=(r,e,t)=>(t=r!=null?$s(Ks(r)):{},Jr(!r||!r.__esModule?Ne(t,"default",{value:r,enumerable:true}):t,r)),ne=r=>Jr(Ne({},"__esModule",{value:true}),r),v=(r,e,t,n)=>{for(var i=Hr(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)=>Ws(r,typeof e!="symbol"?e+"":e,t);var Ie={};lt(Ie,{default:()=>Gs});var Js,Gs,Pe=Fe(()=>{Js={},Gs=Js;});var zr=W(ft=>{ft.byteLength=Ys;ft.toByteArray=Zs;ft.fromByteArray=ro;var ce=[],Y=[],zs=typeof Uint8Array<"u"?Uint8Array:Array,Gt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(xe=0,Gr=Gt.length;xe<Gr;++xe)ce[xe]=Gt[xe],Y[Gt.charCodeAt(xe)]=xe;var xe,Gr;Y[45]=62;Y[95]=63;function Qr(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 Ys(r){var e=Qr(r),t=e[0],n=e[1];return (t+n)*3/4-n}function Xs(r,e,t){return (e+t)*3/4-t}function Zs(r){var e,t=Qr(r),n=t[0],i=t[1],s=new zs(Xs(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 eo(r){return ce[r>>18&63]+ce[r>>12&63]+ce[r>>6&63]+ce[r&63]}function to(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(eo(n));return i.join("")}function ro(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(to(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 Yr=W(Qt=>{Qt.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,l=-7,d=t?i-1:0,h=t?-1:1,p=r[e+d];for(d+=h,s=p&(1<<-l)-1,p>>=-l,l+=a;l>0;s=s*256+r[e+d],d+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=n;l>0;o=o*256+r[e+d],d+=h,l-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (p?-1:1)*o*Math.pow(2,s-n)};Qt.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,l=(1<<c)-1,d=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,g=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?e+=h/u:e+=h*Math.pow(2,1-d),e*u>=2&&(o++,u/=2),o+d>=l?(a=0,o=l):o+d>=1?(a=(e*u-1)*Math.pow(2,i),o=o+d):(a=e*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;r[t+p]=a&255,p+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+p]=o&255,p+=g,o/=256,c-=8);r[t+p-g]|=_*128;};});var Zr=W((mc,Xr)=>{var no={}.toString;Xr.exports=Array.isArray||function(r){return no.call(r)=="[object Array]"};});var bt=W(Me=>{var zt=zr(),Oe=Yr(),rn=Zr();Me.Buffer=w;Me.SlowBuffer=co;Me.INSPECT_MAX_BYTES=50;w.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:io();Me.kMaxLength=ht();function io(){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 w.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function _e(r,e){if(ht()<e)throw new RangeError("Invalid typed array length");return w.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(e),r.__proto__=w.prototype):(r===null&&(r=new w(e)),r.length=e),r}function w(r,e,t){if(!w.TYPED_ARRAY_SUPPORT&&!(this instanceof w))return new w(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 Xt(this,r)}return nn(this,r,e,t)}w.poolSize=8192;w._augment=function(r){return r.__proto__=w.prototype,r};function nn(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?ao(r,e,t,n):typeof e=="string"?oo(r,e,t):uo(r,e)}w.from=function(r,e,t){return nn(null,r,e,t)};w.TYPED_ARRAY_SUPPORT&&(w.prototype.__proto__=Uint8Array.prototype,w.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&w[Symbol.species]===w&&Object.defineProperty(w,Symbol.species,{value:null,configurable:true}));function sn(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 so(r,e,t,n){return sn(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)}w.alloc=function(r,e,t){return so(null,r,e,t)};function Xt(r,e){if(sn(e),r=_e(r,e<0?0:Zt(e)|0),!w.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}w.allocUnsafe=function(r){return Xt(null,r)};w.allocUnsafeSlow=function(r){return Xt(null,r)};function oo(r,e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!w.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=on(e,t)|0;r=_e(r,n);var i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function Yt(r,e){var t=e.length<0?0:Zt(e.length)|0;r=_e(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function ao(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),w.TYPED_ARRAY_SUPPORT?(r=e,r.__proto__=w.prototype):r=Yt(r,e),r}function uo(r,e){if(w.isBuffer(e)){var t=Zt(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"||xo(e.length)?_e(r,0):Yt(r,e);if(e.type==="Buffer"&&rn(e.data))return Yt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Zt(r){if(r>=ht())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ht().toString(16)+" bytes");return r|0}function co(r){return +r!=r&&(r=0),w.alloc(+r)}w.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};w.compare=function(e,t){if(!w.isBuffer(e)||!w.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};w.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}};w.concat=function(e,t){if(!rn(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return w.alloc(0);var n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var i=w.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!w.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function on(r,e){if(w.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 hn(r).length;default:if(n)return gt(r).length;e=(""+e).toLowerCase(),n=true;}}w.byteLength=on;function lo(r,e,t){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return "";for(r||(r="utf8");;)switch(r){case "hex":return Ao(this,e,t);case "utf8":case "utf-8":return cn(this,e,t);case "ascii":return yo(this,e,t);case "latin1":case "binary":return wo(this,e,t);case "base64":return _o(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Eo(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=true;}}w.prototype._isBuffer=true;function Ue(r,e,t){var n=r[e];r[e]=r[t],r[t]=n;}w.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};w.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};w.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};w.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?cn(this,0,e):lo.apply(this,arguments)};w.prototype.equals=function(e){if(!w.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:w.compare(this,e)===0};w.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+">"};w.prototype.compare=function(e,t,n,i,s){if(!w.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),l=e.slice(t,n),d=0;d<u;++d)if(c[d]!==l[d]){o=c[d],a=l[d];break}return o<a?-1:a<o?1:0};function an(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=w.from(e,n)),w.isBuffer(e))return e.length===0?-1:en(r,e,t,n,i);if(typeof e=="number")return e=e&255,w.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):en(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function en(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(p,g){return s===1?p[g]:p.readUInt16BE(g*s)}var c;if(i){var l=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===a)return l*s}else l!==-1&&(c-=c-l),l=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var d=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){d=false;break}if(d)return c}return -1}w.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1};w.prototype.indexOf=function(e,t,n){return an(this,e,t,n,true)};w.prototype.lastIndexOf=function(e,t,n){return an(this,e,t,n,false)};function fo(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 ho(r,e,t,n){return _t(gt(e,r.length-t),r,t,n)}function un(r,e,t,n){return _t(Io(e),r,t,n)}function go(r,e,t,n){return un(r,e,t,n)}function po(r,e,t,n){return _t(hn(e),r,t,n)}function mo(r,e,t,n){return _t(Po(e,r.length-t),r,t,n)}w.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 fo(this,e,t,n);case "utf8":case "utf-8":return ho(this,e,t,n);case "ascii":return un(this,e,t,n);case "latin1":case "binary":return go(this,e,t,n);case "base64":return po(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return mo(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};w.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function _o(r,e,t){return e===0&&t===r.length?zt.fromByteArray(r):zt.fromByteArray(r.slice(e,t))}function cn(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,l,d;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(d=(s&31)<<6|u&63,d>127&&(o=d));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(d=(s&15)<<12|(u&63)<<6|c&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=r[i+1],c=r[i+2],l=r[i+3],(u&192)===128&&(c&192)===128&&(l&192)===128&&(d=(s&15)<<18|(u&63)<<12|(c&63)<<6|l&63,d>65535&&d<1114112&&(o=d));}}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 bo(n)}var tn=4096;function bo(r){var e=r.length;if(e<=tn)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=tn));return t}function yo(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 wo(r,e,t){var n="";t=Math.min(r.length,t);for(var i=e;i<t;++i)n+=String.fromCharCode(r[i]);return n}function Ao(r,e,t){var n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);for(var i="",s=e;s<t;++s)i+=Ro(r[s]);return i}function Eo(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}w.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(w.TYPED_ARRAY_SUPPORT)i=this.subarray(e,t),i.__proto__=w.prototype;else {var s=t-e;i=new w(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")}w.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};w.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};w.prototype.readUInt8=function(e,t){return t||q(e,1,this.length),this[e]};w.prototype.readUInt16LE=function(e,t){return t||q(e,2,this.length),this[e]|this[e+1]<<8};w.prototype.readUInt16BE=function(e,t){return t||q(e,2,this.length),this[e]<<8|this[e+1]};w.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};w.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])};w.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};w.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};w.prototype.readInt8=function(e,t){return t||q(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};w.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};w.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};w.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};w.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]};w.prototype.readFloatLE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,true,23,4)};w.prototype.readFloatBE=function(e,t){return t||q(e,4,this.length),Oe.read(this,e,false,23,4)};w.prototype.readDoubleLE=function(e,t){return t||q(e,8,this.length),Oe.read(this,e,true,52,8)};w.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(!w.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")}w.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};w.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};w.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,255,0),w.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;}w.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),w.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):pt(this,e,t,true),t+2};w.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,65535,0),w.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;}w.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),w.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};w.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,4294967295,0),w.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};w.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};w.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};w.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,1,127,-128),w.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};w.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),w.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):pt(this,e,t,true),t+2};w.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,2,32767,-32768),w.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):pt(this,e,t,false),t+2};w.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||Q(this,e,t,4,2147483647,-2147483648),w.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};w.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),w.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 ln(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 dn(r,e,t,n,i){return i||ln(r,e,t,4),Oe.write(r,e,t,n,23,4),t+4}w.prototype.writeFloatLE=function(e,t,n){return dn(this,e,t,true,n)};w.prototype.writeFloatBE=function(e,t,n){return dn(this,e,t,false,n)};function fn(r,e,t,n,i){return i||ln(r,e,t,8),Oe.write(r,e,t,n,52,8),t+8}w.prototype.writeDoubleLE=function(e,t,n){return fn(this,e,t,true,n)};w.prototype.writeDoubleBE=function(e,t,n){return fn(this,e,t,false,n)};w.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||!w.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};w.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"&&!w.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=w.isBuffer(e)?e:gt(new w(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var So=/[^+\/0-9A-Za-z-_]/g;function vo(r){if(r=To(r).replace(So,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function To(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function Ro(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 Io(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function Po(r,e){for(var t,n,i,s=[],o=0;o<r.length&&!((e-=2)<0);++o)t=r.charCodeAt(o),n=t>>8,i=t%256,s.push(i),s.push(n);return s}function hn(r){return zt.toByteArray(vo(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 xo(r){return r!==r}});var gn=W(()=>{});var sr={};lt(sr,{__assign:()=>nr,__asyncDelegator:()=>jo,__asyncGenerator:()=>$o,__asyncValues:()=>Ko,__await:()=>ze,__awaiter:()=>Lo,__classPrivateFieldGet:()=>Go,__classPrivateFieldSet:()=>Qo,__createBinding:()=>Mo,__decorate:()=>ko,__exportStar:()=>Vo,__extends:()=>Co,__generator:()=>Oo,__importDefault:()=>Jo,__importStar:()=>Wo,__makeTemplateObject:()=>Ho,__metadata:()=>Fo,__param:()=>No,__read:()=>pn,__rest:()=>Do,__spread:()=>qo,__spreadArrays:()=>Bo,__values:()=>ir});function Co(r,e){rr(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function Do(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 ko(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 No(r,e){return function(t,n){e(t,n,r);}}function Fo(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Lo(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(l){try{c(n.next(l));}catch(d){o(d);}}function u(l){try{c(n.throw(l));}catch(d){o(d);}}function c(l){l.done?s(l.value):i(l.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function Oo(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(l){return u([c,l])}}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(l){c=[6,l],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function Mo(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function Vo(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function ir(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 pn(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 qo(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(pn(arguments[e]));return r}function Bo(){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 $o(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(p){return new Promise(function(g,_){s.push([h,p,g,_])>1||a(h,p);})});}function a(h,p){try{u(n[h](p));}catch(g){d(s[0][3],g);}}function u(h){h.value instanceof ze?Promise.resolve(h.value.v).then(c,l):d(s[0][2],h);}function c(h){a("next",h);}function l(h){a("throw",h);}function d(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function jo(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 Ko(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 ir=="function"?ir(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 Ho(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function Wo(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 Jo(r){return r&&r.__esModule?r:{default:r}}function Go(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Qo(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 rr,nr,or=Fe(()=>{rr=function(r,e){return rr=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]);},rr(r,e)};nr=function(){return nr=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},nr.apply(this,arguments)};});var ar=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 mn=W(yt=>{Object.defineProperty(yt,"__esModule",{value:true});yt.RawSha256=void 0;var ee=ar(),zo=(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],l=n[6],d=n[7],h=0;h<ee.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var p=this.temp[h-2],g=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10;p=this.temp[h-15];var _=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(_+this.temp[h-16]|0);}var b=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(d+(ee.KEY[h]+this.temp[h]|0)|0)|0,y=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;d=l,l=c,c=u,u=a+b|0,a=o,o=s,s=i,i=b+y|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=l,n[7]+=d;},r})();yt.RawSha256=zo;});var _n,bn,yn=Fe(()=>{_n=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)},bn=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 wn(r){return new TextEncoder().encode(r)}function An(r){return new TextDecoder("utf-8").decode(r)}var En=Fe(()=>{});var Sn={};lt(Sn,{fromUtf8:()=>Yo,toUtf8:()=>Xo});var Yo,Xo,vn=Fe(()=>{yn();En();Yo=r=>typeof TextEncoder=="function"?wn(r):_n(r),Xo=r=>typeof TextDecoder=="function"?An(r):bn(r);});var Tn=W(wt=>{Object.defineProperty(wt,"__esModule",{value:true});wt.convertToBuffer=void 0;var Zo=(vn(),ne(Sn)),ea=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:Zo.fromUtf8;function ta(r){return r instanceof Uint8Array?r:typeof r=="string"?ea(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}wt.convertToBuffer=ta;});var Rn=W(At=>{Object.defineProperty(At,"__esModule",{value:true});At.isEmptyData=void 0;function ra(r){return typeof r=="string"?r.length===0:r.byteLength===0}At.isEmptyData=ra;});var In=W(Et=>{Object.defineProperty(Et,"__esModule",{value:true});Et.numToUint8=void 0;function na(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}Et.numToUint8=na;});var Pn=W(St=>{Object.defineProperty(St,"__esModule",{value:true});St.uint32ArrayFrom=void 0;function ia(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=ia;});var xn=W(le=>{Object.defineProperty(le,"__esModule",{value:true});le.uint32ArrayFrom=le.numToUint8=le.isEmptyData=le.convertToBuffer=void 0;var sa=Tn();Object.defineProperty(le,"convertToBuffer",{enumerable:true,get:function(){return sa.convertToBuffer}});var oa=Rn();Object.defineProperty(le,"isEmptyData",{enumerable:true,get:function(){return oa.isEmptyData}});var aa=In();Object.defineProperty(le,"numToUint8",{enumerable:true,get:function(){return aa.numToUint8}});var ua=Pn();Object.defineProperty(le,"uint32ArrayFrom",{enumerable:true,get:function(){return ua.uint32ArrayFrom}});});var Cn=W(Tt=>{Object.defineProperty(Tt,"__esModule",{value:true});Tt.Sha256=void 0;var Un=(or(),ne(sr)),vt=ar(),ur=mn(),cr=xn(),ca=(function(){function r(e){if(this.hash=new ur.RawSha256,e){this.outer=new ur.RawSha256;var t=la(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, cr.isEmptyData)(e)||this.error))try{this.hash.update((0,cr.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, Un.__awaiter)(this,void 0,void 0,function(){return (0, Un.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();Tt.Sha256=ca;function la(r){var e=(0, cr.convertToBuffer)(r);if(e.byteLength>vt.BLOCK_SIZE){var t=new ur.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(vt.BLOCK_SIZE);return n.set(e),n}});var dr=W(lr=>{Object.defineProperty(lr,"__esModule",{value:true});var da=(or(),ne(sr));(0, da.__exportStar)(Cn(),lr);});var wr={};lt(wr,{default:()=>su});function su(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(l){return a[l.toLowerCase()]},has:function(l){return l.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(l,d,h){s.push(d=d.toLowerCase()),o.push([d,h]),a[d]=a[d]?a[d]+","+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 Ar=Fe(()=>{});var qn=W((dl,Vn)=>{Vn.exports=self.fetch||(self.fetch=(Ar(),ne(wr)).default||(Ar(),ne(wr)));});var me=typeof globalThis<"u"?globalThis:void 0,dt=me?.window;function Qs(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=Qs(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 Jt=(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 Wr=="function")try{X=gn();}catch{}function er(){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 Uo(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 tr=(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(er());return new r(i,n)},e.toString=function(){return Uo(this)},r})();var It=Le(dr());var V=C;function C(r,e){r!=null&&this.fromString(r,e);}function J(){return new C(null)}var Ee,fa=0xdeadbeefcafe,Dn=(fa&16777215)==15715070;function ha(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 ga(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,l=a*u+c*o;u=o*u+((l&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(l>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function pa(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,l=a*u+c*o;u=o*u+((l&16383)<<14)+t[n]+i,i=(u>>28)+(l>>14)+a*c,t[n++]=u&268435455;}return i}var kn=typeof navigator<"u";kn&&Dn&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=ga,Ee=30):kn&&Dn&&navigator.appName!="Netscape"?(C.prototype.am=ha,Ee=26):(C.prototype.am=pa,Ee=28);C.prototype.DB=Ee;C.prototype.DM=(1<<Ee)-1;C.prototype.DV=1<<Ee;var fr=52;C.prototype.FV=Math.pow(2,fr);C.prototype.F1=fr-Ee;C.prototype.F2=2*Ee-fr;var ma="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 Nn(r){return ma.charAt(r)}function _a(r,e){var t=Rt[r.charCodeAt(e)];return t??-1}function ba(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function ya(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 hr(r){var e=J();return e.fromInt(r),e}function wa(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=_a(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&&C.ZERO.subTo(this,this);}function Aa(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function Ea(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=Nn(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+=Nn(n));return i?s:"0"}function Sa(){var r=J();return C.ZERO.subTo(this,r),r}function va(){return this.s<0?this.negate():this}function Ta(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 gr(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 Ra(){return this.t<=0?0:this.DB*(this.t-1)+gr(this[this.t-1]^this.s&this.DM)}function Ia(r,e){var t;for(t=this.t-1;t>=0;--t)e[t+r]=this[t];for(t=r-1;t>=0;--t)e[t]=0;e.t=this.t+r,e.s=this.s;}function Pa(r,e){for(var t=r;t<this.t;++t)e[t-r]=this[t];e.t=Math.max(this.t-r,0),e.s=this.s;}function xa(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 Ua(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 Ca(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 Da(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&&C.ZERO.subTo(e,e);}function ka(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 Na(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-gr(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,l=s[c-1];if(l!=0){var d=l*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/d,p=(1<<this.F1)/d,g=1<<this.F2,_=t.t,b=_-c,y=e??J();for(s.dlShiftTo(b,y),t.compareTo(y)>=0&&(t[t.t++]=1,t.subTo(y,t)),C.ONE.dlShiftTo(c,y),y.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--b>=0;){var R=t[--_]==l?this.DM:Math.floor(t[_]*h+(t[_-1]+g)*p);if((t[_]+=s.am(0,R,t,b,0,c))<R)for(s.dlShiftTo(b,y),t.subTo(y,t);t[_]<--R;)t.subTo(y,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&C.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&C.ZERO.subTo(t,t);}}}function Fa(r){var e=J();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(C.ZERO)>0&&r.subTo(e,e),e}function La(){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 Oa(r){return this.compareTo(r)==0}function Ma(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 Va(r){var e=J();return this.addTo(r,e),e}function qa(r){var e=J();return this.subTo(r,e),e}function Ba(r){var e=J();return this.multiplyTo(r,e),e}function $a(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 ja(r){var e=J();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(C.ZERO)>0&&this.m.subTo(e,e),e}function Ka(r){var e=J();return r.copyTo(e),this.reduce(e),e}function Ha(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 Wa(r,e){r.squareTo(e),this.reduce(e);}function Ja(r,e,t){r.multiplyTo(e,t),this.reduce(t);}qe.prototype.convert=ja;qe.prototype.revert=Ka;qe.prototype.reduce=Ha;qe.prototype.mulTo=Ja;qe.prototype.sqrTo=Wa;function Ga(r,e,t){var n=r.bitLength(),i,s=hr(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,l=(1<<i)-1;if(a[1]=o.convert(this),i>1){var d=J();for(o.sqrTo(a[1],d);u<=l;)a[u]=J(),o.mulTo(d,a[u-2],a[u]),u+=2;}var h=r.t-1,p,g=true,_=J(),b;for(n=gr(r[h])-1;h>=0;){for(n>=c?p=r[h]>>n-c&l:(p=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(p|=r[h-1]>>this.DB+n-c)),u=i;(p&1)==0;)p>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[p].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,_),o.sqrTo(_,s),u-=2;u>0?o.sqrTo(s,_):(b=s,s=_,_=b),o.mulTo(_,a[p],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,_),b=s,s=_,_=b,--n<0&&(n=this.DB-1,--h);}var y=o.revert(s);return t(null,y),y}C.prototype.copyTo=ba;C.prototype.fromInt=ya;C.prototype.fromString=wa;C.prototype.clamp=Aa;C.prototype.dlShiftTo=Ia;C.prototype.drShiftTo=Pa;C.prototype.lShiftTo=xa;C.prototype.rShiftTo=Ua;C.prototype.subTo=Ca;C.prototype.multiplyTo=Da;C.prototype.squareTo=ka;C.prototype.divRemTo=Na;C.prototype.invDigit=La;C.prototype.addTo=Ma;C.prototype.toString=Ea;C.prototype.negate=Sa;C.prototype.abs=va;C.prototype.compareTo=Ta;C.prototype.bitLength=Ra;C.prototype.mod=Fa;C.prototype.equals=Oa;C.prototype.add=Va;C.prototype.subtract=qa;C.prototype.multiply=Ba;C.prototype.divide=$a;C.prototype.modPow=Ga;C.ZERO=hr(0);C.ONE=hr(1);function pr(r){return be.Buffer.from(new tr().random(r).toString(),"hex")}var Qa=/^[89a-f]/i,za="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",Ya="userAttributes.",Se=(function(){function r(t){this.N=new V(za,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=pr(128).toString("hex"),i=new V(n,16);return i},e.generateRandomString=function(){return pr(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=pr(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(l,d){l&&s(l,null),o.verifierDevices=o.padHex(d),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(),l=c,d=l.slice(0,16);return d},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,l=this.hash(c),d=new V(this.hexHash(this.padHex(o)+l),16);this.calculateS(d,s,function(h,p){h&&a(h,null);var g=u.computehkdf(be.Buffer.from(u.padHex(p),"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(l,d){l&&s(l,null),s(null,d.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return Ya},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=Qa.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 Fn=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(Fn.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function Xa(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 Be=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return Xa(e,r),e})(Pt);function Za(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,_r(r,e);}function _r(r,e){return _r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},_r(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()),yr=Le(dr());var Ln="5.0.4";var eu="aws-amplify/"+Ln,br={userAgent:eu,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},On=function(){return br.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 tu=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ru=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],xt=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=ru[n.getUTCDay()],s=tu[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 l=n.getUTCFullYear(),d=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+l;return d},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={},nu=(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=nu;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var iu=typeof navigator<"u",Mn=iu?br.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,l){if(c)return i.onFailure(c);var d=l.ChallengeName,h=l.ChallengeParameters;return d==="CUSTOM_CHALLENGE"?(s.Session=l.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(l.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,l={};this.deviceKey!=null&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,o.getLargeAValue(function(d,h){d&&i.onFailure(d),l.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(l.CHALLENGE_NAME="SRP_A");var p=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:l,ClientMetadata:p};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(_,b){if(_)return i.onFailure(_);var y=b.ChallengeParameters;s.username=y.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new V(y.SRP_B,16),c=new V(y.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,I){R&&i.onFailure(R);var x=a.getNowString(),D=B.Buffer.concat([B.Buffer.from(s.pool.getUserPoolName(),"utf8"),B.Buffer.from(s.username,"utf8"),B.Buffer.from(y.SECRET_BLOCK,"base64"),B.Buffer.from(x,"utf8")]),j=new yr.Sha256(I);j.update(D);var re=j.digestSync(),O=B.Buffer.from(re).toString("base64"),P={};P.USERNAME=s.username,P.PASSWORD_CLAIM_SECRET_BLOCK=y.SECRET_BLOCK,P.TIMESTAMP=x,P.PASSWORD_CLAIM_SIGNATURE=O,s.deviceKey!=null&&(P.DEVICE_KEY=s.deviceKey);var k=function(ke,Kr){return s.client.request("RespondToAuthChallenge",ke,function(ct,Bs){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,Kr)):Kr(ct,Bs)})},N={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:P,Session:b.Session,ClientMetadata:p};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(l,d){return l?i.onFailure(l):s.authenticateUserInternal(d,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,l=null,d=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),l=JSON.parse(n.ChallengeParameters.requiredAttributes)),l)for(var p=0;p<l.length;p++)d[p]=l[p].substr(h.length);return s.newPasswordRequired(c,d)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return s.onFailure(_);var b={Salt:B.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=b.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:b,DeviceName:Mn},function(y,R){return y?s.onFailure(y):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,R.UserConfirmationNecessary):s.onSuccess(o.signInUserSession))});});},e.completeNewPasswordChallenge=function(n,i,s,o){var a=this;if(!n)return s.onFailure(new Error("New password is required."));var u=new Se(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),l={};i&&Object.keys(i).forEach(function(h){l[c+h]=i[h];}),l.NEW_PASSWORD=n,l.USERNAME=this.username;var d={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:l,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(h,p){return h?s.onFailure(h):a.authenticateUserInternal(p,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,l){c&&n.onFailure(c),u.SRP_A=l.toString(16);var d={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(d.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",d,function(h,p){if(h)return n.onFailure(h);var g=p.ChallengeParameters,_=new V(g.SRP_B,16),b=new V(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,_,b,function(y,R){if(y)return n.onFailure(y);var I=a.getNowString(),x=B.Buffer.concat([B.Buffer.from(s.deviceGroupKey,"utf8"),B.Buffer.from(s.deviceKey,"utf8"),B.Buffer.from(g.SECRET_BLOCK,"base64"),B.Buffer.from(I,"utf8")]),D=new yr.Sha256(R);D.update(x);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=I,O.PASSWORD_CLAIM_SIGNATURE=re,O.DEVICE_KEY=s.deviceKey;var P={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:O,Session:p.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(l,d){return l?i.onFailure(l):o.authenticateUserInternal(d,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 l={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(d,h){if(d)return i.onFailure(d);var p=h.ChallengeName;if(p==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new Se(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return i.onFailure(_);var b={Salt:B.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:B.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=b.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:b,DeviceName:Mn},function(y,R){return y?i.onFailure(y):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),R.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,R.UserConfirmationNecessary):i.onSuccess(a.signInUserSession))});});});},e.changePassword=function(n,i,s,o){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return s(new Error("User is not authenticated"),null);this.client.request("ChangePassword",{PreviousPassword:n,ProposedPassword:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:o},function(a){return a?s(a,null):s(null,"SUCCESS")});},e.enableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[],s={DeliveryMedium:"SMS",AttributeName:"phone_number"};i.push(s),this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?n(o,null):n(null,"SUCCESS")});},e.setUserMfaPreference=function(n,i,s){if(this.signInUserSession==null||!this.signInUserSession.isValid())return s(new Error("User is not authenticated"),null);this.client.request("SetUserMFAPreference",{SMSMfaSettings:n,SoftwareTokenMfaSettings:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(o){return o?s(o,null):s(null,"SUCCESS")});},e.disableMFA=function(n){if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);var i=[];this.client.request("SetUserSettings",{MFAOptions:i,AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(s){return s?n(s,null):n(null,"SUCCESS")});},e.deleteUser=function(n,i){var s=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return n(new Error("User is not authenticated"),null);this.client.request("DeleteUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),ClientMetadata:i},function(o){return o?n(o,null):(s.clearCachedUser(),n(null,"SUCCESS"))});},e.updateAttributes=function(n,i,s){var o=this;if(this.signInUserSession==null||!this.signInUserSession.isValid())return i(new Error("User is not authenticated"),null);this.client.request("UpdateUserAttributes",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken(),UserAttributes:n,ClientMetadata:s},function(a,u){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",u)},{bypassCache:true})});},e.getUserAttributes=function(n){if(!(this.signInUserSession!=null&&this.signInUserSession.isValid()))return n(new Error("User is not authenticated"),null);this.client.request("GetUser",{AccessToken:this.signInUserSession.getAccessToken().getJwtToken()},function(i,s){if(i)return n(i,null);for(var o=[],a=0;a<s.UserAttributes.length;a++){var u={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},c=new 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 l=new $e({IdToken:this.storage.getItem(o)}),d=new Be({AccessToken:this.storage.getItem(a)}),h=new je({RefreshToken:this.storage.getItem(u)}),p=parseInt(this.storage.getItem(c),0)||0,g={IdToken:l,AccessToken:d,RefreshToken:h,ClockDrift:p},_=new Ke(g);if(_.isValid())return this.signInUserSession=_,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),l=c+".LastAuthUser";if(this.storage.getItem(l)){this.username=this.storage.getItem(l);var d=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(d),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(p,g){if(p)return p.code==="NotAuthorizedException"&&o.clearCachedUser(),a(p,null);if(g){var _=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(_,"RefreshToken")||(_.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(_),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new $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 l={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(l.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",l,function(d,h){return d?s.onFailure(d):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Le(qn());function He(){}He.prototype.userAgent=On();var Bn=function(e){var t=He.category?" "+He.category:"",n=He.framework?" framework/"+He.framework:"",i=""+He.prototype.userAgent+t+n;return i};function ou(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ye(r,e);}function Er(r){var e=typeof Map=="function"?new Map:void 0;return Er=function(n){if(n===null||!uu(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 au(n,arguments,Sr(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),Ye(i,n)},Er(r)}function au(r,e,t){if($n())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 $n(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return ($n=function(){return !!r})()}function uu(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 Sr(r){return Sr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Sr(r)}var cu=(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 ou(e,r),e})(Er(Error)),jn=(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 cu(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;hu(function(u){return new Promise(function(c,l){o.request(n,u,function(d,h){d?l(d):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":Bn(),"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(l){return u=l,l},function(l){throw l instanceof TypeError?new Error("Network error"):l}).then(function(l){return l.json().catch(function(){return {}})}).then(function(l){if(u.ok)return s(null,l);var d=(l.__type||l.code).split("#").pop(),h=new Error(l.message||l.Message||null);return h.name=d,h.code=d,s(h)}).catch(function(l){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var d=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=d,h.name=d,h.statusCode=u.status,s(h)}catch{return s(l)}else l instanceof Error&&l.message==="Network error"&&(l.code="NetworkError");return s(l)});},r})();var Ct={debug:function(){}};var lu=function(e){var t="nonRetryable";return e&&e[t]};function Kn(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),lu(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 Kn(r,e,t,n+1)});throw i})}function du(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 hu(r,e,t){return Kn(r,e,du(t))}var gu=55,vr=(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>gu||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var l=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new jn(l,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,l={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(l.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",l,function(d,h){if(d)return a(d,null);var p={Username:n,Pool:c,Storage:c.storage},g={user:new ye(p),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new 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 pu={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 Tr(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 l=decodeURIComponent(u[0]);if(l in o||(o[l]=r.read(c,l)),i===l)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 Tr(this.converter,Dt({},this.attributes,i))},withConverter:function(i){return Tr(Dt({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}Tr(pu,{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",Rr=BigInt(we.length),_u=2*1024*1024,bu=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],Hn={auth_time:"log",sub:"user_id"},yu=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],zn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Wn=typeof TextEncoder<"u"?new TextEncoder:null;function wu(){if(typeof globalThis<"u")return globalThis.Buffer}function Au(r){if(Wn)return Wn.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 Eu(r){if(r instanceof Uint8Array)return r;if(typeof r=="string")return Au(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=wu();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,l;for(let d=0;d<t.length;d+=16)a=n,u=i,c=s,l=o,n=A.ff(n,i,s,o,t[d],7,-680876936),o=A.ff(o,n,i,s,t[d+1],12,-389564586),s=A.ff(s,o,n,i,t[d+2],17,606105819),i=A.ff(i,s,o,n,t[d+3],22,-1044525330),n=A.ff(n,i,s,o,t[d+4],7,-176418897),o=A.ff(o,n,i,s,t[d+5],12,1200080426),s=A.ff(s,o,n,i,t[d+6],17,-1473231341),i=A.ff(i,s,o,n,t[d+7],22,-45705983),n=A.ff(n,i,s,o,t[d+8],7,1770035416),o=A.ff(o,n,i,s,t[d+9],12,-1958414417),s=A.ff(s,o,n,i,t[d+10],17,-42063),i=A.ff(i,s,o,n,t[d+11],22,-1990404162),n=A.ff(n,i,s,o,t[d+12],7,1804603682),o=A.ff(o,n,i,s,t[d+13],12,-40341101),s=A.ff(s,o,n,i,t[d+14],17,-1502002290),i=A.ff(i,s,o,n,t[d+15],22,1236535329),n=A.gg(n,i,s,o,t[d+1],5,-165796510),o=A.gg(o,n,i,s,t[d+6],9,-1069501632),s=A.gg(s,o,n,i,t[d+11],14,643717713),i=A.gg(i,s,o,n,t[d],20,-373897302),n=A.gg(n,i,s,o,t[d+5],5,-701558691),o=A.gg(o,n,i,s,t[d+10],9,38016083),s=A.gg(s,o,n,i,t[d+15],14,-660478335),i=A.gg(i,s,o,n,t[d+4],20,-405537848),n=A.gg(n,i,s,o,t[d+9],5,568446438),o=A.gg(o,n,i,s,t[d+14],9,-1019803690),s=A.gg(s,o,n,i,t[d+3],14,-187363961),i=A.gg(i,s,o,n,t[d+8],20,1163531501),n=A.gg(n,i,s,o,t[d+13],5,-1444681467),o=A.gg(o,n,i,s,t[d+2],9,-51403784),s=A.gg(s,o,n,i,t[d+7],14,1735328473),i=A.gg(i,s,o,n,t[d+12],20,-1926607734),n=A.hh(n,i,s,o,t[d+5],4,-378558),o=A.hh(o,n,i,s,t[d+8],11,-2022574463),s=A.hh(s,o,n,i,t[d+11],16,1839030562),i=A.hh(i,s,o,n,t[d+14],23,-35309556),n=A.hh(n,i,s,o,t[d+1],4,-1530992060),o=A.hh(o,n,i,s,t[d+4],11,1272893353),s=A.hh(s,o,n,i,t[d+7],16,-155497632),i=A.hh(i,s,o,n,t[d+10],23,-1094730640),n=A.hh(n,i,s,o,t[d+13],4,681279174),o=A.hh(o,n,i,s,t[d],11,-358537222),s=A.hh(s,o,n,i,t[d+3],16,-722521979),i=A.hh(i,s,o,n,t[d+6],23,76029189),n=A.hh(n,i,s,o,t[d+9],4,-640364487),o=A.hh(o,n,i,s,t[d+12],11,-421815835),s=A.hh(s,o,n,i,t[d+15],16,530742520),i=A.hh(i,s,o,n,t[d+2],23,-995338651),n=A.ii(n,i,s,o,t[d],6,-198630844),o=A.ii(o,n,i,s,t[d+7],10,1126891415),s=A.ii(s,o,n,i,t[d+14],15,-1416354905),i=A.ii(i,s,o,n,t[d+5],21,-57434055),n=A.ii(n,i,s,o,t[d+12],6,1700485571),o=A.ii(o,n,i,s,t[d+3],10,-1894986606),s=A.ii(s,o,n,i,t[d+10],15,-1051523),i=A.ii(i,s,o,n,t[d+1],21,-2054922799),n=A.ii(n,i,s,o,t[d+8],6,1873313359),o=A.ii(o,n,i,s,t[d+15],10,-30611744),s=A.ii(s,o,n,i,t[d+6],15,-1560198380),i=A.ii(i,s,o,n,t[d+13],21,1309151649),n=A.ii(n,i,s,o,t[d+4],6,-145523070),o=A.ii(o,n,i,s,t[d+11],10,-1120210379),s=A.ii(s,o,n,i,t[d+2],15,718787259),i=A.ii(i,s,o,n,t[d+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,u),s=A.ad(s,c),o=A.ad(o,l);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 Yn(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 Ir(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !Ir()&&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>_u)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function Jn(r){return r===""||r==="on"||r==="true"}function Gn(r){return r==="false"}function Qn(r,e,t){e.name&&t(r,e.name,e.value);}var Nt=z(),Su=typeof SubmitEvent<"u",vu=typeof HTMLFormElement<"u";function L(r,e,t){let n={},i=[];function s(u,c,l){if(e?.ignoreEmpty&&l==="")return;if(e?.nullIfEmpty&&l===""&&(l=null),typeof t=="function"){let p=t(c,l);p!==void 0&&(l=p);}let d=c.split("[").map(p=>{let g=p.replace("]",""),_=Number(g);return !isNaN(_)&&!g.includes(".")?g=_:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof d[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let p=0;p<d.length;p++){let g=d[p];p<d.length-1?(h[g]===void 0&&(typeof d[p+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=l:Array.isArray(h[g])?h[g].push(l):h[g]=[h[g],l];}}function o(u,c,l){if(l instanceof File)u.push({name:c,file:l});else if(l instanceof FileList&&l&&l.length>0)for(let d=0;d<=l.length-1;d++){let h=l.item(d);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===""||Jn(u.value)?s(n,u.name,true):Gn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(Jn(u.value)?s(n,u.name,false):Gn(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],l=u[1];if(l instanceof File||l instanceof FileList)o(i,c,l);else if(l instanceof Blob){let d=l;if(d.type==="application/json")try{let h=JSON.parse(d.text());s(n,c,h);}catch{s(n,c,d);}}else s(n,c,l);}return kt(n),{data:n,files:i}}if(Nt&&Su&&r instanceof SubmitEvent&&(r=r.target),Nt&&vu&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),l=r.querySelectorAll("textarea");for(let d=0;d<c.length;d++)Qn(n,c[d],s);for(let d=0;d<l.length;d++)Qn(n,l[d],s);for(let d=0;d<u.length;d++)a(u[d]);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(!bu.includes(t))if(Hn[t])e[Hn[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 Pr(r){if(r=Du(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=zn[ie(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid: "+r)}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid: "+r);return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function Xn(r,e){let t=zn.indexOf(r.slice(0,4)),n=yu[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return Cu(s)}function Tu(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*Rr+BigInt(n);}return e}function Ru(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%Rr);t=we[i]+t,n/=Rr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function Iu(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 Pu(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function xu(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 Uu(r){let e=Array.from(Eu(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 Cu(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,l=xu(s),d=Ru(Pu(l));return `${c}-${d}`}function Du(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: "+e);let[n,i]=t,s=we.indexOf(n[0]);if(s<0)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let o=n.slice(1),a=s+2;if(o.length<a)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let u=o.slice(0,o.length-a),c=o.slice(o.length-a),l=c.slice(s),d=c.slice(0,s),h=l+u;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(d))throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let p=Tu(i),g=Iu(p);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let _=new Uint8Array(16);_.set(g,16-g.length);let b=Uu(_);return `${h}-${d}-${b}`}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 l(g){try{return JSON.stringify(g)}catch{return String(g)}}function d(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(_,b)=>typeof b=="function"?"custom validator":b)}catch{return String(g)}}function h(g,_){return _==="array"?Array.isArray(g):_==="object"?s(g):_==="null"?g===null:_==="undefined"?typeof g>"u":typeof g===_}function p(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
|
|
207
|
-
`+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let _=p(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=Ze(r[g],e[g],t,_);else {if(t.indexOf(_)!==-1)throw new Error(`Key "${_}" is required.`);let b=e[g];a(b)&&b.length>1&&typeof b[b.length-1]=="function"&&(r[g]=b[b.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let _=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let b=0;b<r.length;b++){let y=r[b];if(u(_)){if(!h(y,_))throw new Error(`Type <${c(y)}> is invalid in "${n}". Expected a list of Type <${_}>.`)}else if(typeof _=="function")r[b]=_(y);else if(y!==_)throw new Error(`Value ${l(y)} is invalid in "${n}". Expected a list of ${l(_)}.`)}g=true;}else if(Array.isArray(r)&&e.every(b=>!a(b)&&b!=="array")){for(let b=0;b<r.length;b++){let y=false,R="";for(let I of e)try{r[b]=Ze(r[b],I,t,n),y=!0;break}catch(x){typeof I=="function"&&(R=x?.message||String(x));}if(!y&&R)throw new Error(R);if(!y){let I=e.map(d).join(", ");throw new Error(`${l(r[b])} is invalid in "${n}". allowed types or values are: ${I}.`)}}g=true;}else {let b="";for(let y of e)try{r=Ze(r,y,t,n),g=!0;break}catch(R){typeof y=="function"&&(b=R?.message||String(R));}if(!g&&b)throw new Error(b)}if(!g){let _=e.map(d).join(", ");throw new Error(`${l(r)} is invalid in "${n}". allowed types or values are: ${_}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${l(r)} is invalid in "${n}". allowed type or value is: ${d(e)}.`)}function ku(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 Nu(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 Fu(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 Lu(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 Ou(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 Mu(r){let e=typeof window<"u",t=(()=>{let i=e&&window.location.origin||null;return i&&i.slice(-1)==="/"&&(i=i.slice(0,-1)),i})(),n=i=>{if(typeof i=="string"){if(i==="*")return "*";{let s=i.trim();if(s[0]==="/"&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=t+s;}else if(s[0]==="."&&t){if(t.slice(0,5)==="file:")throw new f(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});let a=e?window.location.href.split("?")[0]:"";a.slice(-1)!=="/"&&(a+="/"),s=a+s.slice(1);}let o;try{o=new URL(s);}catch{throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new f(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(r)?r.map(i=>n(i)):n(r)}function Vu(r,e,t=[],n){let i=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:ku,PhoneNumber:Nu,Birthdate:Fu,Password:Lu,Email:Ou,Url:Mu,Params:Vu};var M=null;function xr(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 ei(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 xr(t)}async function ti(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(xr),t}async function ri(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(xr),t}async function ni(r){return S.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function ii(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 Zn(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 l=d=>{let h=d.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=d,r(),c||this._runOnUserUpdateListeners(this.user),this.session};M.getSession((d,h)=>{if(this.log("getSession:getSessionCallback",{err:d,session:h}),!h){Ae.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(d){Zn.bind(this)(h,M).then(y=>o(l(y))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),_=g.getExpiration(),b=_<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",_),this.log("getSession:isExpired",b),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),b||u||!h.isValid())Zn.bind(this)(h,M).then(y=>o(l(y))).catch(a);else try{o(l(h));}catch(y){a(y);}});}),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,l)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let d=t(s,a),h=d.cognitoUsername,p=new Jt({Username:h,Password:o});d.cognitoUser.authenticateUser(p,{newPasswordRequired:(g,_)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?d.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:b=>{M=d.cognitoUser,e().then(y=>c(this.user));},onFailure:b=>{l(new f(b.message||"Failed to authenticate user.",{code:b.code}));}}):l(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(_=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let _=[],{parsed:b,code:y}=Ft(g),R=typeof g?.message=="string"?g.message:"";if(y==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,_=["This account is disabled.","USER_IS_DISABLED"]):u?_=["The account already exists.","ACCOUNT_EXISTS"]:_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:y==="UserNotFoundException"?_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:y==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,_=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(y==="TooManyRequestsException"||y==="LimitExceededException")&&(_=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),b.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),_.length){let I=_[1],x=_[0];l(new f(x,{code:I,cause:g}));}else l(b);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(l,d)=>{if(l){let{parsed:h,code:p}=Ft(l),g=[];p==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:p==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:p==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:p==="TooManyRequestsException"||p==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:p==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:p==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:l})):c(h);return}u(d);});})}}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 si(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 oi(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 qu(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 Bu(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=qu(n);return JSON.parse(i)}async function ai(r){await this.__authConnection,this.log("loginWithToken:params",r),r=m.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Bu(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 ui(){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 ci(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 Ur(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 li(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 l=c;if(typeof c=="string")l=m.Url(c);else if(typeof c=="boolean")l=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(l&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return l},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 l=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(l.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?Ur.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function di(){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 fi(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 hi(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?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(l=>{a(l);}):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 gi(r,e){return hi.bind(this)("phone_number",r,e)}function pi(r,e){return hi.bind(this)("email",r,e)}async function mi(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:l}=Ft(u),d={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[l]||c.code||l||"ERROR";o(new f(c.message,{code:d,cause:u}));}},n);})}async function _i(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)=>{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 bi(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+"-"+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 yi(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 wi(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 Ai(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 $u="1.2.1",ju=class{constructor(r){ue(this,"version",$u);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=ju;var Je=null,Si=typeof SubmitEvent<"u",Ku=typeof HTMLFormElement<"u",nt=z(),Cr=0;function vi(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 Dr(r,e){return e>0?r/e*100:0}var Ei=r=>{let{auth:e,type:t,endpoints:n}=r,i=n[0],s=n[1];if(Cr++,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[Cr%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[Cr%o.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Hu(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 Ei.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 Ei.bind(this)({auth:e,type:"record",endpoints:t})+r+o;default:return m.Url(r)+o}}var rt={};function Ti(){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,l=null,d=await Hu.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)&&(l=await We.bind(this)());let p={},{fetchMore:g=false,progress:_}=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[P]=t.fetchOptions[P];}p=m.Params(p,{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 b=n?.ignoreService?{}:{service:u,owner:c};Object.assign(b,p),e=L(e).data,e?e&&typeof e=="object"&&(e=Object.assign(b,e)):e=b;let y=`${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(y+"/"+JSON.stringify(P(e)))}return K.hash(y+"/"+u)})(),{requestKey:I,requestKeyWithStartKey:x}=Wu.bind(this)({params:e,url:r,fetchMore:g,hashedParams:R});if(!I||I&&typeof I=="object")return I;if(this.log("requestKey",x),typeof x=="string"&&rt[x]instanceof Promise)return this.log("request:returning pending",x),rt[x];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(l&&(D.Authorization=l),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||l||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=d.includes("?")?d.endsWith("?")||d.endsWith("&")?"":"&":"?";d+=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=Ri.bind(this)(d,O,_);rt[x]=N;try{let F=Ju.bind(this)({hashedParam:I,requestKeyWithStartKey:x,url:r,fetched:await N});return delete rt[x],this.log("request:end",F),P(F),F}catch(F){throw delete rt[x],this.log("request:err",F),k(F),F}}]);})}function Wu(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 Ri(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=vi(a);u!==null?setTimeout(()=>{Ri(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 l=c.split(":"),d=l.splice(0,1)[0].trim(),h=l.join(":").trim();i(new f(h||c,{code:u.includes(d)?d:"ERROR"}));}else if(typeof c=="object"&&c?.message){let l=c?.code||(a?a.toString():null)||"ERROR",d=c.message,h=c?.cause;typeof d=="string"&&(d=d.trim()),i(new f(d,{cause:h,code:l}));}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:Dr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Dr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Ju(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(Si&&r instanceof SubmitEvent&&(r=r.target),Ku&&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=(p,g,_)=>new Promise((b,y)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)b(R);else if(a.status===429){let I=a.getResponseHeader("Retry-After"),x=vi(I);x!==null?setTimeout(()=>{u(p,g,_).then(b,y);},x):y("Too many requests");}else y(R);},a.onerror=()=>y("Network error"),a.onabort=()=>y("Aborted"),a.ontimeout=()=>y("Timeout"),a.upload&&typeof _=="function"&&(a.upload.onprogress=_),a.send(g);});function c(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let _="";for(;p>0;)_=g[p%62]+_,p=Math.floor(p/62);return _}let l=[],d=[],h=[];for(let[p,g]of r.entries()){if(!(g instanceof File))continue;let _=Object.assign({key:p+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:b=null,url:y,cdn:R}=await S.bind(this)("get-signed-url",_,{auth:!!this.__user});h.push(R);let I=new FormData;for(let x in b)I.append(x,b[x]);I.append("file",g);try{await u(y,I,typeof i=="function"?x=>i({status:"upload",progress:Dr(x.loaded,x.total),currentFile:g,completed:l,failed:d,loaded:x.loaded,total:x.total,abort:()=>a.abort()}):null),l.push(g);}catch{d.push(g);}}return {completed:l,failed:d,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,l="",d={},h=false;if(Si&&a instanceof SubmitEvent){a.preventDefault();let y=window.location.href;c=a.target;let R=new URL(c.action);l=R.href;let I=l?l.match(/(?<=\{).*?(?=\})/g):"";if(I)for(let x of I){if(!x)continue;let D=c.querySelector(`[name="${x}"]`);if(D)if(D.type==="file")for(let j=0;j<=D.files.length-1;j++)D.files[j]&&(d[x]||(d[x]=[]),d[x].push(new Promise((re,O)=>{let P=new FileReader;P.onload=function(){re(P.result);},P.readAsDataURL(D.files[j]),P.onerror=O;})));else l=l.replace(`{${x}}`,D.value);}c.getAttribute("action")===null?u=false:h=R.href===y;}let p=async y=>{if(l)for(let R in d)d[R].length&&(l=l.replace(`{${R}}`,(await Promise.all(d[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${K.hash(l)}`,JSON.stringify(y)),h?window.location.replace(l):window.location.href=l),y},g,_=y=>{throw y instanceof f?y.name=n+"()":y=y instanceof Error?y:new f(y,{name:n+"()"}),y},b=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let y=await g;return p(y)}return p(g)}catch(y){throw _(y)}};if(e){let y=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Lt?.[y]||(Lt[y]=b().finally(()=>{delete Lt[y];})),Lt[y]}return b()};}}async function Ii(){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 Gu=128,Qu=64,zu=128,Yu=256,Xu="\u{10FFFF}",Zu=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,ec=/[\/!*#]/,tc={"/":"%2F","!":"%21","*":"%2A","#":"%23"},rc={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function nc(r){return r.replace(/%/g,"%25").replace(/[\/!*#]/g,t=>tc[t]||t)}function se(r){return typeof r!="string"?r:r.replace(/%(2F|21|2A|23)/gi,t=>{let n=t.toUpperCase();return rc[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(Xu))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&ec.test(r)&&(r=nc(r)),o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function kr(r,e="table.name"){return ve(r,e,{allowEmpty:false,maxLength:Gu,blockKeyDelimiters:true})}function Nr(r,e="tag"){return ve(r,e,{allowEmpty:false,maxLength:Qu,blockKeyDelimiters:true})}function it(r,e="index.name"){return ve(r,e,{allowEmpty:false,maxLength:zu,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Pi(r,e="index.value"){return ve(r,e,{allowEmpty:true,maxLength:Yu})}function xi(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 Fr(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 Pi(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function Ui(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"?Pi(r,"index.range"):r}var qt={};async function ic(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 l=c=="**"?"private":parseInt(c);return l=l==0?"public":l==1?"authorized":l==99?"admin":l,l}let a={ip:c=>{let l=c.split("#"),d=l[0];l.length>1&&(n.unique_id=l.slice(1).join("#")),d.slice(-1)==="R"?(n.readonly=true,d=d.slice(0,-1)):n.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(d)&&(d=d.split("-").join("."),i=true),n.ip=d;},rec:c=>{if(!c)return;n.record_id=c;let l=c.substring(0,c.length-9),d=ie(l);n.uploaded=d;},usr:c=>{n.user_id=c;},tbl:c=>{if(c&&!n.table.name){let l=c.split("/");n.table.name=se(l[0]),n.table.access_group=o(l[2]),l?.[3]&&(n.table.subscription.is_subscription_record=true);}},usr_tbl:c=>{let l=c.split("/");n.user_id||(n.user_id=l[0]),n.table.name||(n.table.name=se(l[1]),n.table.access_group=o(l[3]),l?.[4]&&(n.table.subscription.is_subscription_record=true));},idx:c=>{if(!c)return;let l=c.split("!"),d=se(l.splice(0,1)[0]),h=sc("!"+l.join("!"));typeof h=="string"&&(h=se(h)),n.index={name:d,value:h};},ref:c=>{c&&(n.reference=c.split("/")[0]);},tags:c=>{n.tags=Array.isArray(c)?c.map(l=>se(l)):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 l={},d=n?.reference||null;if(Array.isArray(c)){let h=await Promise.all(c.map(async p=>{try{let g=p.split("/").slice(3).join("/"),_=g.split("/");if(_.length<12)return null;let b=decodeURIComponent(_[_.length-1]),y=decodeURIComponent(_[10]);if(y==="__data__"&&b==="__json__.json")return {isDataFile:!0,rawUrl:p};let R=_[9],I=_[8],x=o(_[6]),D=p;if(x!=="public")try{D=await st.bind(this)(p,{dataType:"endpoint",_ref:d});}catch(re){console.error("Error getting signed url for private file:",re),D=p;}let j={access_group:x,filename:b,url:D,path:g,size:ie(R),uploaded:ie(I),getFile:(re,O)=>{let P={dataType:re||"download",progress:O,_ref:d,_update:j};return st.bind(this)(D,P)}};return {pathKey:y,obj:j}}catch{return null}}));for(let p of h)if(p&&!p.isDataFile){if(l[p.pathKey]){l[p.pathKey].push(p.obj);continue}l[p.pathKey]=[p.obj];}}n.bin=l;},prv_acs:c=>{for(let l in c)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(l)?n.table.subscription[l]=c[l]:n.source[l]=c[l];},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 l=c.__data__,d=s.find(h=>h.endsWith(l))||null;if(d){if(t){n.data=c;return}try{let h=await st.bind(this)(d,{dataType:"blob",_ref:n.reference||null}),p=await ic(h);n.data=JSON.parse(p);}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 l=c.split("/").slice(3);l.length>=12&&decodeURIComponent(l[10])==="__data__"&&decodeURIComponent(l[l.length-1])==="__json__.json"&&s.push(c);}catch{}let u=[];for(let c in a)if(r.hasOwnProperty(c)){let l=a[c](r[c]);l instanceof Promise&&u.push(l);}return i&&(n.user_id="anonymous:"+n.user_id),await Promise.all(u),n}function sc(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 Ci(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=m.Url(n);r=s+i;let o=false,a=s.split("/"),c=a[2].split("."),l=null;c.length===3&&c[1]==="skapi"&&(l=c[0],o=true);let d=a.slice(3),h=false;if(!o&&(d[0]==="auth"||d[0]==="publ"))try{m.UserId(d[2]),m.UserId(d[3]),h=d[0]=="auth",o=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let p=l?null:d[1];if(e=m.Params(e,{expires:["number",()=>0],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:["function","undefined",null],_ref:[null,"string"],_update:y=>y}),e?.dataType==="info")return {url:r,filename:d[d.length-1],fileKey:d[d.length-2],access_group:d[6]==="**"?"private":d[6]==="01"?"authorized":d[6]==="00"?"public":parseInt(d[6]),uploader:d[3],record_id:d[4]==="records"?d[5]:"N/A",filesize:ie(d[9]),uploaded:ie(d[8])};let g=r.split("/").slice(-1)[0],_=e.expires;if(_){if(!o)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(_<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let y={request:l?"get-host":"get",id:l||d[5],key:r,expires:_};p&&(y.service=p),r=(await S.bind(this)("get-signed-url",y,{auth:true})).url;}else if(h){let y=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<y)){this.log("getFile:requesting new token",null);try{await G.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:y,expiresIn:this.session?.idToken?.payload?.exp-y,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(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 I=d[6]==="**"?"**":parseInt(d[6]),x=this.user?.access_group??-1;if(this.user.user_id!==d[3]&&(I==="**"||x<I)){let D=d[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 y=document.createElement("a");return y.href=r,document.body.appendChild(y),y.setAttribute("download",g),y.target="_blank",y.click(),document.body.removeChild(y),null}return new Promise(async(y,R)=>{try{let I=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 x=new FileReader;x.onloadend=()=>y(x.result),x.readAsDataURL(I);}else y(I);}catch(I){R(I);}})}function Bt(r,e){return `${r||this.service}/${e||this.owner}`}function Lr(r,e){let t=this.__my_unique_ids[r];return t?t[e]:void 0}function Di(r,e,t){this.__my_unique_ids[r]||(this.__my_unique_ids[r]={}),this.__my_unique_ids[r][e]=t;}function oc(r,e){this.__my_unique_ids[r]&&delete this.__my_unique_ids[r][e];}async function ki(r,e=false){r=L(r,{ignoreEmpty:true}).data||{};let t=Bt.bind(this)(r?.service,r?.owner),n="",i=xi(r);if(i){if(r=i,n=r.record_id||r.unique_id,typeof n=="string"){typeof this.__private_access_key?.[n]=="string"&&(r.private_key=this.__private_access_key?.[n]||void 0);let s=Lr.bind(this)(t,n);s&&(e?oc.bind(this)(t,n):r.record_id=s);}}else {let s=await H.bind(this)(),o=r?.reference,a=false;typeof o=="object"&&Object.keys(o).length&&(o?.record_id||o?.unique_id?(n=o.record_id||o.unique_id,n&&typeof this.__private_access_key?.[n]=="string"&&(r.private_key=this.__private_access_key?.[n]||void 0),r.reference=n):o?.user_id&&(a=o.user_id===this.user?.user_id,r.reference=o.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 u=c=>({table:{name:l=>kr(l,"table.name"),access_group:Fr.bind(this),subscription:l=>m.UserId(l,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",l=>it(l,"index.name")],value:l=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:m.UserId};if(d.hasOwnProperty(c.index.name)){let h=d[c.index.name];if(typeof h=="function")return h(l);if(h!==typeof l)throw new f(`"index.value" should be type: ${h}.`,{code:"INVALID_PARAMETER"});return l}return typeof l=="string"&&!l?"":Vt(l)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:l=>Ui(l,c)},tag:l=>{if(l==null)return l;if(typeof l=="string")return Nr(l,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=m.Params(r||{},u(r),a||s?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:n}}async function Ni(r,e){await this.__connection;let t=await ki.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 Fi(r){let e="",t=[],n=Bt.bind(this)(r?.service,r?.owner),i=m.Params(r||{},{record_id:o=>{let a=typeof o=="string"?Lr.bind(this)(n,o):void 0;return a||ve(o,"record_id",{allowEmpty:false})},unique_id:["string",null],readonly:"boolean",table:{name:o=>kr(o,"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:Fr.bind(this)},source:{referencing_limit:o=>{if(o===null)return null;if(typeof o=="number"){if(0>o)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(o>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return o}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:o=>{if(o===void 0)return;if(!o||Array.isArray(o)&&!o.length)return null;let a={name:c=>it(c,'"name" in "index_restrictions"'),value:c=>Vt(c),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:c=>{if(c!==null&&typeof o.value!=typeof c)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!o.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return c}};Array.isArray(o)||(o=[o]);let u=o.map(c=>m.Params(c,a,["name"]));if(u.length)for(let c of u)c.condition&&c.hasOwnProperty("range")&&delete c.range;return u}},reference:o=>{if(o===null)return {record_id:null};if(o){if(typeof o=="string"){e=o;let a=Lr.bind(this)(n,o);return a||o}if(typeof o!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return m.Params(o,{unique_id:"string",record_id:a=>a==null?a:(e=a,typeof this.__private_access_key?.[a]=="string"&&(r.reference_private_key=this.__private_access_key[a]||void 0),ve(a,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:o=>it(o,"index.name"),value:o=>Vt(o)}],tags:o=>{if(o==null)return o;if(typeof o=="string"&&(o=o.split(",").map(a=>a.trim())),!Array.isArray(o))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return o.map(a=>Nr(a,"tag"))},remove_bin:o=>{if(!o)return null;let a=[];if(Array.isArray(o))for(let u of o)if(typeof u=="string")a.push(decodeURIComponent(u.split("?")[0]));else if(u.url&&u.size&&u.filename){let l=u.url.split("/").slice(0,3).join("/")+"/"+u.path;a.push(l);}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 a},progress:"function",data:o=>o},[],{precall:o=>{let a=o?.data||{};if(!a?.record_id&&!a.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof a.table=="string"&&(a.table={name:a.table,access_group:0}),o.files&&(t=o.files);}}),s=r.progress||null;if(delete i.progress,!this.__user){let o=!!(i.table?.subscription?.is_subscription_record||i.table?.subscription?.upload_to_feed||i.table?.subscription?.notify_subscribers||i.table?.subscription?.feed_referencing_records||i.table?.subscription?.notify_referencing_records);if(i.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(i.table.access_group!=="public"&&i.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(o)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(i.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(i.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:i,progress:s,is_reference_post:e,files:t}}async function Li(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((h,p)=>{if(!h||typeof h!="object"||Array.isArray(h))throw new f(`"params[${p}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let g=Fi.bind(this)(h),_=g.config;if(g.is_reference_post&&e.push(g.is_reference_post),typeof _.progress=="function"&&i===null&&(i=_.progress),_.service!==void 0){if(t===void 0)t=_.service;else if(t!==_.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(_.owner!==void 0){if(n===void 0)n=_.owner;else if(n!==_.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete _.progress,delete _.service,delete _.owner,_}),service:"",owner:""};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),l=await Promise.all(c.map(h=>Ge.bind(this)(h,"called from postRecord"))),d=Bt.bind(this)(t,n);for(let h=0;h<c.length;h++){let p=c[h],g=l[h];if(p&&typeof p=="object"&&p.error&&g&&!g.record_id&&(g.error=p.error),typeof p?.reference_private_key=="string")for(let _ of e)this.__private_access_key[_]=p.reference_private_key;g?.unique_id&&Di.bind(this)(d,g.unique_id,g.record_id);}return l}async function Oi(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Fi.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 l=null;l=Object.assign({data:c.data},i);let d={};typeof s=="function"&&(d.progress=s),Object.keys(d).length&&Object.assign(a,{fetchOptions:d});let h=await S.bind(this)("post-record",l,a);if(z()&&u.length){let _=new FormData;for(let R of u)_.append(R.name,R.file,R.file.name);let b={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(b.service=i.service);let{bin_endpoints:y}=await Ot.bind(this)(_,b);h.bin?h.bin.push(...y):h.bin=y;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let p=!!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);if(p&&(g.data=c.data),g.unique_id){let _=Bt.bind(this)(i?.service,i?.owner);Di.bind(this)(_,g.unique_id,g.record_id),z()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${_}:uniqueids`,JSON.stringify(this.__my_unique_ids[_]||{}));}catch{}},500));}return g}async function Mi(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=se(i.table));}return t}async function Vi(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: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 qi(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:se(i[1]),tag:se(i[0]),number_of_records:n.cnt_rec}})),t}async function Bi(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 $i(r,e){await this.__connection;let t=await ki.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 ji(r){return Ji.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function Ki(r){return Ji.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function Hi(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 Wi(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 Ji(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 U={},$={},oe={},he={},fe={},$t={},jt={};function Gi(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function Kt(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 Mr(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 U[s].setRemoteDescription(new RTCSessionDescription(i));let a=await U[s].createAnswer();await U[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}U?.[e]?r?(await Kt(jt,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await Kt(jt,e,i=>n.bind(this)(i,e,t)):r&&Gi(jt,e,r);}async function Vr(r,e){if(this.log("receiveIceCandidate",r),U?.[e]&&U[e]?.remoteDescription&&U[e]?.remoteDescription?.type){if(!r)return Kt($t,e,t=>U[e].addIceCandidate(t));await Kt($t,e,t=>U[e].addIceCandidate(t)),await U[e].addIceCandidate(r);}else Gi($t,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"});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 jt[s],delete $t[s],$[s]&&Object.values($[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete $[s],U?.[s]){U[s].connectionState!=="closed"&&(U[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:U[s],timestamp:new Date().toISOString(),state:U[s].connectionState,iceState:U[s].iceConnectionState,signalingState:U[s].signalingState};fe[s]&&fe[s](o),this.log("closeRTC",o);}delete fe[s],delete he[s],delete oe[s],delete U[s];};if(n)for(let s in U)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 Qi(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 zi(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}]};U?.[t]||(U[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Qi(r.media),this.__mediaStream.getTracks().forEach(o=>{U[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=U[t].createDataChannel(u,a);$[t][u]=c;}for(let o in $[t]){let a=$[t][o];Zi.bind(this)(t,a);}return Xi.bind(this)(t,["onnegotiationneeded"]),await Or.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;U[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),Or.bind(this)(t),fe[t]&&fe[t]({type:"negotiationneeded",target:U[t],timestamp:new Date().toISOString(),signalingState:U[t].signalingState,connectionState:U[t].iceConnectionState,gatheringState:U[t].iceGatheringState});},o({target:U[t],channels:$[t],hangup:()=>ae.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function Yi(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 U?.[n]||(U[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Qi(e.media),this.__mediaStream.getTracks().forEach(o=>{U[n].addTrack(o,this.__mediaStream);})),delete he[n],fe[n]=t,$[n]||($[n]={}),U[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);},Xi.bind(this)(n,["onnegotiationneeded"]),await Mr.bind(this)(null,n),await Vr.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:U[n],channels:$[n],hangup:()=>ae.bind(this)({cid:n}),media:this.__mediaStream}}}async function Or(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 U[r].createOffer();await U[r].setLocalDescription(t);let n=U[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 ac(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",U[e].iceGatheringState),n({type:"icecandidate",target:U[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:U[e].iceGatheringState,connectionState:U[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Xi(r,e){let t=new Set(e),n=fe[r]||(o=>{}),i=U[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{ac.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:()=>{Or.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 uc(){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 qr=null;async function es(){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&&Br.bind(this)({group:null}),Qe=0,Te&&(Te.terminate(),Te=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",qr),this.__socket=null,null}async function Ht(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&&(qr=()=>{!document.hidden&&!ot&&Ht.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 uc.bind(this)();i.onopen=()=>{ot=false,Qe=0,t!=="reconnect"&&window.addEventListener("visibilitychange",qr),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=`
|
|
206
|
+
var Hs=Object.create;var Fe=Object.defineProperty;var Jr=Object.getOwnPropertyDescriptor;var Ws=Object.getOwnPropertyNames;var Js=Object.getPrototypeOf,Gs=Object.prototype.hasOwnProperty;var Qs=(r,e,t)=>e in r?Fe(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t;var Gr=(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 Le=(r,e)=>()=>(r&&(e=r(r=0)),e);var W=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),dt=(r,e)=>{for(var t in e)Fe(r,t,{get:e[t],enumerable:true});},Qr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ws(e))!Gs.call(r,i)&&i!==t&&Fe(r,i,{get:()=>e[i],enumerable:!(n=Jr(e,i))||n.enumerable});return r};var Oe=(r,e,t)=>(t=r!=null?Hs(Js(r)):{},Qr(!r||!r.__esModule?Fe(t,"default",{value:r,enumerable:true}):t,r)),ne=r=>Qr(Fe({},"__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&&Fe(e,t,i),i};var ue=(r,e,t)=>Qs(r,typeof e!="symbol"?e+"":e,t);var Ie={};dt(Ie,{default:()=>Ys});var zs,Ys,Pe=Le(()=>{zs={},Ys=zs;});var Xr=W(ht=>{ht.byteLength=eo;ht.toByteArray=ro;ht.fromByteArray=so;var ce=[],X=[],Zs=typeof Uint8Array<"u"?Uint8Array:Array,zt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(xe=0,zr=zt.length;xe<zr;++xe)ce[xe]=zt[xe],X[zt.charCodeAt(xe)]=xe;var xe,zr;X[45]=62;X[95]=63;function Yr(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 eo(r){var e=Yr(r),t=e[0],n=e[1];return (t+n)*3/4-n}function to(r,e,t){return (e+t)*3/4-t}function ro(r){var e,t=Yr(r),n=t[0],i=t[1],s=new Zs(to(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=X[r.charCodeAt(u)]<<18|X[r.charCodeAt(u+1)]<<12|X[r.charCodeAt(u+2)]<<6|X[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=X[r.charCodeAt(u)]<<2|X[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=X[r.charCodeAt(u)]<<10|X[r.charCodeAt(u+1)]<<4|X[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function no(r){return ce[r>>18&63]+ce[r>>12&63]+ce[r>>6&63]+ce[r&63]}function io(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(no(n));return i.join("")}function so(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(io(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 Zr=W(Yt=>{Yt.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,c=u>>1,l=-7,d=t?i-1:0,h=t?-1:1,p=r[e+d];for(d+=h,s=p&(1<<-l)-1,p>>=-l,l+=a;l>0;s=s*256+r[e+d],d+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=n;l>0;o=o*256+r[e+d],d+=h,l-=8);if(s===0)s=1-c;else {if(s===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-c;}return (p?-1:1)*o*Math.pow(2,s-n)};Yt.write=function(r,e,t,n,i,s){var o,a,u,c=s*8-i-1,l=(1<<c)-1,d=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,g=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+d>=1?e+=h/u:e+=h*Math.pow(2,1-d),e*u>=2&&(o++,u/=2),o+d>=l?(a=0,o=l):o+d>=1?(a=(e*u-1)*Math.pow(2,i),o=o+d):(a=e*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;r[t+p]=a&255,p+=g,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;r[t+p]=o&255,p+=g,o/=256,c-=8);r[t+p-g]|=_*128;};});var tn=W((Ac,en)=>{var oo={}.toString;en.exports=Array.isArray||function(r){return oo.call(r)=="[object Array]"};});var yt=W(Ve=>{var Xt=Xr(),Me=Zr(),sn=tn();Ve.Buffer=y;Ve.SlowBuffer=ho;Ve.INSPECT_MAX_BYTES=50;y.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:ao();Ve.kMaxLength=gt();function ao(){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 gt(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function be(r,e){if(gt()<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 er(this,r)}return on(this,r,e,t)}y.poolSize=8192;y._augment=function(r){return r.__proto__=y.prototype,r};function on(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?lo(r,e,t,n):typeof e=="string"?co(r,e,t):fo(r,e)}y.from=function(r,e,t){return on(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 an(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 uo(r,e,t,n){return an(e),e<=0?be(r,e):t!==void 0?typeof n=="string"?be(r,e).fill(t,n):be(r,e).fill(t):be(r,e)}y.alloc=function(r,e,t){return uo(null,r,e,t)};function er(r,e){if(an(e),r=be(r,e<0?0:tr(e)|0),!y.TYPED_ARRAY_SUPPORT)for(var t=0;t<e;++t)r[t]=0;return r}y.allocUnsafe=function(r){return er(null,r)};y.allocUnsafeSlow=function(r){return er(null,r)};function co(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=un(e,t)|0;r=be(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:tr(e.length)|0;r=be(r,t);for(var n=0;n<t;n+=1)r[n]=e[n]&255;return r}function lo(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 fo(r,e){if(y.isBuffer(e)){var t=tr(e.length)|0;return r=be(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"||Do(e.length)?be(r,0):Zt(r,e);if(e.type==="Buffer"&&sn(e.data))return Zt(r,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function tr(r){if(r>=gt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+gt().toString(16)+" bytes");return r|0}function ho(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(!sn(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 un(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 pt(r).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return t*2;case "hex":return t>>>1;case "base64":return pn(r).length;default:if(n)return pt(r).length;e=(""+e).toLowerCase(),n=true;}}y.byteLength=un;function go(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 vo(this,e,t);case "utf8":case "utf-8":return dn(this,e,t);case "ascii":return Eo(this,e,t);case "latin1":case "binary":return So(this,e,t);case "base64":return wo(this,e,t);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return To(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?dn(this,0,e):go.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=Ve.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),l=e.slice(t,n),d=0;d<u;++d)if(c[d]!==l[d]){o=c[d],a=l[d];break}return o<a?-1:a<o?1:0};function cn(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:rn(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):rn(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function rn(r,e,t,n,i){var s=1,o=r.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return -1;s=2,o/=2,a/=2,t/=2;}function u(p,g){return s===1?p[g]:p.readUInt16BE(g*s)}var c;if(i){var l=-1;for(c=t;c<o;c++)if(u(r,c)===u(e,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===a)return l*s}else l!==-1&&(c-=c-l),l=-1;}else for(t+a>o&&(t=o-a),c=t;c>=0;c--){for(var d=true,h=0;h<a;h++)if(u(r,c+h)!==u(e,h)){d=false;break}if(d)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 cn(this,e,t,n,true)};y.prototype.lastIndexOf=function(e,t,n){return cn(this,e,t,n,false)};function po(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 mo(r,e,t,n){return bt(pt(e,r.length-t),r,t,n)}function ln(r,e,t,n){return bt(Uo(e),r,t,n)}function _o(r,e,t,n){return ln(r,e,t,n)}function bo(r,e,t,n){return bt(pn(e),r,t,n)}function yo(r,e,t,n){return bt(Co(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 po(this,e,t,n);case "utf8":case "utf-8":return mo(this,e,t,n);case "ascii":return ln(this,e,t,n);case "latin1":case "binary":return _o(this,e,t,n);case "base64":return bo(this,e,t,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return yo(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 wo(r,e,t){return e===0&&t===r.length?Xt.fromByteArray(r):Xt.fromByteArray(r.slice(e,t))}function dn(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,l,d;switch(a){case 1:s<128&&(o=s);break;case 2:u=r[i+1],(u&192)===128&&(d=(s&31)<<6|u&63,d>127&&(o=d));break;case 3:u=r[i+1],c=r[i+2],(u&192)===128&&(c&192)===128&&(d=(s&15)<<12|(u&63)<<6|c&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:u=r[i+1],c=r[i+2],l=r[i+3],(u&192)===128&&(c&192)===128&&(l&192)===128&&(d=(s&15)<<18|(u&63)<<12|(c&63)<<6|l&63,d>65535&&d<1114112&&(o=d));}}o===null?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=a;}return Ao(n)}var nn=4096;function Ao(r){var e=r.length;if(e<=nn)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=nn));return t}function Eo(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 So(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 vo(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+=xo(r[s]);return i}function To(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 B(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||B(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||B(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||B(e,1,this.length),this[e]};y.prototype.readUInt16LE=function(e,t){return t||B(e,2,this.length),this[e]|this[e+1]<<8};y.prototype.readUInt16BE=function(e,t){return t||B(e,2,this.length),this[e]<<8|this[e+1]};y.prototype.readUInt32LE=function(e,t){return t||B(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||B(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||B(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||B(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||B(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};y.prototype.readInt16LE=function(e,t){t||B(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||B(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||B(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||B(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||B(e,4,this.length),Me.read(this,e,true,23,4)};y.prototype.readFloatBE=function(e,t){return t||B(e,4,this.length),Me.read(this,e,false,23,4)};y.prototype.readDoubleLE=function(e,t){return t||B(e,8,this.length),Me.read(this,e,true,52,8)};y.prototype.readDoubleBE=function(e,t){return t||B(e,8,this.length),Me.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 mt(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):mt(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):mt(this,e,t,false),t+2};function _t(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):_t(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):_t(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):mt(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):mt(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):_t(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):_t(this,e,t,false),t+4};function fn(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 hn(r,e,t,n,i){return i||fn(r,e,t,4),Me.write(r,e,t,n,23,4),t+4}y.prototype.writeFloatLE=function(e,t,n){return hn(this,e,t,true,n)};y.prototype.writeFloatBE=function(e,t,n){return hn(this,e,t,false,n)};function gn(r,e,t,n,i){return i||fn(r,e,t,8),Me.write(r,e,t,n,52,8),t+8}y.prototype.writeDoubleLE=function(e,t,n){return gn(this,e,t,true,n)};y.prototype.writeDoubleBE=function(e,t,n){return gn(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:pt(new y(e,i).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u];}return this};var Ro=/[^+\/0-9A-Za-z-_]/g;function Io(r){if(r=Po(r).replace(Ro,""),r.length<2)return "";for(;r.length%4!==0;)r=r+"=";return r}function Po(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}function xo(r){return r<16?"0"+r.toString(16):r.toString(16)}function pt(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 Uo(r){for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function Co(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 pn(r){return Xt.toByteArray(Io(r))}function bt(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 Do(r){return r!==r}});var mn=W(()=>{});var ar={};dt(ar,{__assign:()=>sr,__asyncDelegator:()=>Wo,__asyncGenerator:()=>Ho,__asyncValues:()=>Jo,__await:()=>Xe,__awaiter:()=>Vo,__classPrivateFieldGet:()=>Yo,__classPrivateFieldSet:()=>Xo,__createBinding:()=>Bo,__decorate:()=>Lo,__exportStar:()=>$o,__extends:()=>No,__generator:()=>qo,__importDefault:()=>zo,__importStar:()=>Qo,__makeTemplateObject:()=>Go,__metadata:()=>Mo,__param:()=>Oo,__read:()=>_n,__rest:()=>Fo,__spread:()=>jo,__spreadArrays:()=>Ko,__values:()=>or});function No(r,e){ir(r,e);function t(){this.constructor=r;}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t);}function Fo(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 Lo(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 Oo(r,e){return function(t,n){e(t,n,r);}}function Mo(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Vo(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(l){try{c(n.next(l));}catch(d){o(d);}}function u(l){try{c(n.throw(l));}catch(d){o(d);}}function c(l){l.done?s(l.value):i(l.value).then(a,u);}c((n=n.apply(r,e||[])).next());})}function qo(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(l){return u([c,l])}}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(l){c=[6,l],i=0;}finally{n=s=0;}if(c[0]&5)throw c[1];return {value:c[0]?c[1]:void 0,done:true}}}function Bo(r,e,t,n){n===void 0&&(n=t),r[n]=e[t];}function $o(r,e){for(var t in r)t!=="default"&&!e.hasOwnProperty(t)&&(e[t]=r[t]);}function or(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 _n(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 jo(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(_n(arguments[e]));return r}function Ko(){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 Xe(r){return this instanceof Xe?(this.v=r,this):new Xe(r)}function Ho(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(h){n[h]&&(i[h]=function(p){return new Promise(function(g,_){s.push([h,p,g,_])>1||a(h,p);})});}function a(h,p){try{u(n[h](p));}catch(g){d(s[0][3],g);}}function u(h){h.value instanceof Xe?Promise.resolve(h.value.v).then(c,l):d(s[0][2],h);}function c(h){a("next",h);}function l(h){a("throw",h);}function d(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function Wo(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:Xe(r[i](o)),done:i==="return"}:s?s(o):o}:s;}}function Jo(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 or=="function"?or(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 Go(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function Qo(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 zo(r){return r&&r.__esModule?r:{default:r}}function Yo(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Xo(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 ir,sr,ur=Le(()=>{ir=function(r,e){return ir=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]);},ir(r,e)};sr=function(){return sr=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},sr.apply(this,arguments)};});var cr=W(ee=>{Object.defineProperty(ee,"__esModule",{value:true});ee.MAX_HASHABLE_LENGTH=ee.INIT=ee.KEY=ee.DIGEST_LENGTH=ee.BLOCK_SIZE=void 0;ee.BLOCK_SIZE=64;ee.DIGEST_LENGTH=32;ee.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]);ee.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];ee.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var bn=W(wt=>{Object.defineProperty(wt,"__esModule",{value:true});wt.RawSha256=void 0;var te=cr(),Zo=(function(){function r(){this.state=Int32Array.from(te.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>te.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===te.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%te.BLOCK_SIZE>=te.BLOCK_SIZE-8){for(var i=this.bufferLength;i<te.BLOCK_SIZE;i++)t.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<te.BLOCK_SIZE-8;i++)t.setUint8(i,0);t.setUint32(te.BLOCK_SIZE-8,Math.floor(e/4294967296),true),t.setUint32(te.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(te.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],l=n[6],d=n[7],h=0;h<te.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(t[h*4]&255)<<24|(t[h*4+1]&255)<<16|(t[h*4+2]&255)<<8|t[h*4+3]&255;else {var p=this.temp[h-2],g=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10;p=this.temp[h-15];var _=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(_+this.temp[h-16]|0);}var b=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&c^~u&l)|0)+(d+(te.KEY[h]+this.temp[h]|0)|0)|0,w=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&s^i&o^s&o)|0;d=l,l=c,c=u,u=a+b|0,a=o,o=s,s=i,i=b+w|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=l,n[7]+=d;},r})();wt.RawSha256=Zo;});var yn,wn,An=Le(()=>{yn=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)},wn=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 En(r){return new TextEncoder().encode(r)}function Sn(r){return new TextDecoder("utf-8").decode(r)}var vn=Le(()=>{});var Tn={};dt(Tn,{fromUtf8:()=>ea,toUtf8:()=>ta});var ea,ta,Rn=Le(()=>{An();vn();ea=r=>typeof TextEncoder=="function"?En(r):yn(r),ta=r=>typeof TextDecoder=="function"?Sn(r):wn(r);});var In=W(At=>{Object.defineProperty(At,"__esModule",{value:true});At.convertToBuffer=void 0;var ra=(Rn(),ne(Tn)),na=typeof Buffer<"u"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:ra.fromUtf8;function ia(r){return r instanceof Uint8Array?r:typeof r=="string"?na(r):ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(r)}At.convertToBuffer=ia;});var Pn=W(Et=>{Object.defineProperty(Et,"__esModule",{value:true});Et.isEmptyData=void 0;function sa(r){return typeof r=="string"?r.length===0:r.byteLength===0}Et.isEmptyData=sa;});var xn=W(St=>{Object.defineProperty(St,"__esModule",{value:true});St.numToUint8=void 0;function oa(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}St.numToUint8=oa;});var Un=W(vt=>{Object.defineProperty(vt,"__esModule",{value:true});vt.uint32ArrayFrom=void 0;function aa(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)}vt.uint32ArrayFrom=aa;});var Cn=W(le=>{Object.defineProperty(le,"__esModule",{value:true});le.uint32ArrayFrom=le.numToUint8=le.isEmptyData=le.convertToBuffer=void 0;var ua=In();Object.defineProperty(le,"convertToBuffer",{enumerable:true,get:function(){return ua.convertToBuffer}});var ca=Pn();Object.defineProperty(le,"isEmptyData",{enumerable:true,get:function(){return ca.isEmptyData}});var la=xn();Object.defineProperty(le,"numToUint8",{enumerable:true,get:function(){return la.numToUint8}});var da=Un();Object.defineProperty(le,"uint32ArrayFrom",{enumerable:true,get:function(){return da.uint32ArrayFrom}});});var kn=W(Rt=>{Object.defineProperty(Rt,"__esModule",{value:true});Rt.Sha256=void 0;var Dn=(ur(),ne(ar)),Tt=cr(),lr=bn(),dr=Cn(),fa=(function(){function r(e){if(this.hash=new lr.RawSha256,e){this.outer=new lr.RawSha256;var t=ha(e),n=new Uint8Array(Tt.BLOCK_SIZE);n.set(t);for(var i=0;i<Tt.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, dr.isEmptyData)(e)||this.error))try{this.hash.update((0,dr.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, Dn.__awaiter)(this,void 0,void 0,function(){return (0, Dn.__generator)(this,function(e){return [2,this.digestSync()]})})},r})();Rt.Sha256=fa;function ha(r){var e=(0, dr.convertToBuffer)(r);if(e.byteLength>Tt.BLOCK_SIZE){var t=new lr.RawSha256;t.update(e),e=t.digest();}var n=new Uint8Array(Tt.BLOCK_SIZE);return n.set(e),n}});var hr=W(fr=>{Object.defineProperty(fr,"__esModule",{value:true});var ga=(ur(),ne(ar));(0, ga.__exportStar)(kn(),fr);});var Er={};dt(Er,{default:()=>uu});function uu(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(l){return a[l.toLowerCase()]},has:function(l){return l.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(l,d,h){s.push(d=d.toLowerCase()),o.push([d,h]),a[d]=a[d]?a[d]+","+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 Sr=Le(()=>{});var $n=W((ml,Bn)=>{Bn.exports=self.fetch||(self.fetch=(Sr(),ne(Er)).default||(Sr(),ne(Er)));});var _e=typeof globalThis<"u"?globalThis:void 0,ft=_e?.window;function Xs(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(ft)ft.global=ft,ft.global._runningInNodeJS=false;else if(_e&&(_e.global=_e,typeof _e.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=Xs(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});});}}_e.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);});}}_e.XMLHttpRequest=e,_e.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/${_e?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async t=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var Qt=(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 ye=Oe(yt());var Z;typeof window<"u"&&window.crypto&&(Z=window.crypto);!Z&&typeof window<"u"&&window.msCrypto&&(Z=window.msCrypto);!Z&&typeof globalThis<"u"&&globalThis.crypto&&(Z=globalThis.crypto);if(!Z&&typeof Gr=="function")try{Z=mn();}catch{}function rr(){if(Z){if(typeof Z.getRandomValues=="function")try{return Z.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof Z.randomBytes=="function")try{return Z.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function ko(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 nr=(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(rr());return new r(i,n)},e.toString=function(){return ko(this)},r})();var Pt=Oe(hr());var V=C;function C(r,e){r!=null&&this.fromString(r,e);}function J(){return new C(null)}var Se,pa=0xdeadbeefcafe,Nn=(pa&16777215)==15715070;function ma(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 _a(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,l=a*u+c*o;u=o*u+((l&32767)<<15)+t[n]+(i&1073741823),i=(u>>>30)+(l>>>15)+a*c+(i>>>30),t[n++]=u&1073741823;}return i}function ba(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,l=a*u+c*o;u=o*u+((l&16383)<<14)+t[n]+i,i=(u>>28)+(l>>14)+a*c,t[n++]=u&268435455;}return i}var Fn=typeof navigator<"u";Fn&&Nn&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=_a,Se=30):Fn&&Nn&&navigator.appName!="Netscape"?(C.prototype.am=ma,Se=26):(C.prototype.am=ba,Se=28);C.prototype.DB=Se;C.prototype.DM=(1<<Se)-1;C.prototype.DV=1<<Se;var gr=52;C.prototype.FV=Math.pow(2,gr);C.prototype.F1=gr-Se;C.prototype.F2=2*Se-gr;var ya="0123456789abcdefghijklmnopqrstuvwxyz",It=new Array,qe,re;qe=48;for(re=0;re<=9;++re)It[qe++]=re;qe=97;for(re=10;re<36;++re)It[qe++]=re;qe=65;for(re=10;re<36;++re)It[qe++]=re;function Ln(r){return ya.charAt(r)}function wa(r,e){var t=It[r.charCodeAt(e)];return t??-1}function Aa(r){for(var e=this.t-1;e>=0;--e)r[e]=this[e];r.t=this.t,r.s=this.s;}function Ea(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 pr(r){var e=J();return e.fromInt(r),e}function Sa(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=wa(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&&C.ZERO.subTo(this,this);}function va(){for(var r=this.s&this.DM;this.t>0&&this[this.t-1]==r;)--this.t;}function Ta(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=Ln(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+=Ln(n));return i?s:"0"}function Ra(){var r=J();return C.ZERO.subTo(this,r),r}function Ia(){return this.s<0?this.negate():this}function Pa(r){var e=this.s-r.s;if(e!=0)return e;var t=this.t;if(e=t-r.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-r[t])!=0)return e;return 0}function mr(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 xa(){return this.t<=0?0:this.DB*(this.t-1)+mr(this[this.t-1]^this.s&this.DM)}function Ua(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 Ca(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 Da(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 ka(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 Na(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 Fa(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&&C.ZERO.subTo(e,e);}function La(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 Oa(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-mr(n[n.t-1]);u>0?(n.lShiftTo(u,s),i.lShiftTo(u,t)):(n.copyTo(s),i.copyTo(t));var c=s.t,l=s[c-1];if(l!=0){var d=l*(1<<this.F1)+(c>1?s[c-2]>>this.F2:0),h=this.FV/d,p=(1<<this.F1)/d,g=1<<this.F2,_=t.t,b=_-c,w=e??J();for(s.dlShiftTo(b,w),t.compareTo(w)>=0&&(t[t.t++]=1,t.subTo(w,t)),C.ONE.dlShiftTo(c,w),w.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--b>=0;){var R=t[--_]==l?this.DM:Math.floor(t[_]*h+(t[_-1]+g)*p);if((t[_]+=s.am(0,R,t,b,0,c))<R)for(s.dlShiftTo(b,w),t.subTo(w,t);t[_]<--R;)t.subTo(w,t);}e!=null&&(t.drShiftTo(c,e),o!=a&&C.ZERO.subTo(e,e)),t.t=c,t.clamp(),u>0&&t.rShiftTo(u,t),o<0&&C.ZERO.subTo(t,t);}}}function Ma(r){var e=J();return this.abs().divRemTo(r,null,e),this.s<0&&e.compareTo(C.ZERO)>0&&r.subTo(e,e),e}function Va(){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 qa(r){return this.compareTo(r)==0}function Ba(r,e){for(var t=0,n=0,i=Math.min(r.t,this.t);t<i;)n+=this[t]+r[t],e[t++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;t<r.t;)n+=r[t],e[t++]=n&this.DM,n>>=this.DB;n+=r.s;}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp();}function $a(r){var e=J();return this.addTo(r,e),e}function ja(r){var e=J();return this.subTo(r,e),e}function Ka(r){var e=J();return this.multiplyTo(r,e),e}function Ha(r){var e=J();return this.divRemTo(r,e,null),e}function Be(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 Wa(r){var e=J();return r.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),r.s<0&&e.compareTo(C.ZERO)>0&&this.m.subTo(e,e),e}function Ja(r){var e=J();return r.copyTo(e),this.reduce(e),e}function Ga(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 Qa(r,e){r.squareTo(e),this.reduce(e);}function za(r,e,t){r.multiplyTo(e,t),this.reduce(t);}Be.prototype.convert=Wa;Be.prototype.revert=Ja;Be.prototype.reduce=Ga;Be.prototype.mulTo=za;Be.prototype.sqrTo=Qa;function Ya(r,e,t){var n=r.bitLength(),i,s=pr(1),o=new Be(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,l=(1<<i)-1;if(a[1]=o.convert(this),i>1){var d=J();for(o.sqrTo(a[1],d);u<=l;)a[u]=J(),o.mulTo(d,a[u-2],a[u]),u+=2;}var h=r.t-1,p,g=true,_=J(),b;for(n=mr(r[h])-1;h>=0;){for(n>=c?p=r[h]>>n-c&l:(p=(r[h]&(1<<n+1)-1)<<c-n,h>0&&(p|=r[h-1]>>this.DB+n-c)),u=i;(p&1)==0;)p>>=1,--u;if((n-=u)<0&&(n+=this.DB,--h),g)a[p].copyTo(s),g=false;else {for(;u>1;)o.sqrTo(s,_),o.sqrTo(_,s),u-=2;u>0?o.sqrTo(s,_):(b=s,s=_,_=b),o.mulTo(_,a[p],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,_),b=s,s=_,_=b,--n<0&&(n=this.DB-1,--h);}var w=o.revert(s);return t(null,w),w}C.prototype.copyTo=Aa;C.prototype.fromInt=Ea;C.prototype.fromString=Sa;C.prototype.clamp=va;C.prototype.dlShiftTo=Ua;C.prototype.drShiftTo=Ca;C.prototype.lShiftTo=Da;C.prototype.rShiftTo=ka;C.prototype.subTo=Na;C.prototype.multiplyTo=Fa;C.prototype.squareTo=La;C.prototype.divRemTo=Oa;C.prototype.invDigit=Va;C.prototype.addTo=Ba;C.prototype.toString=Ta;C.prototype.negate=Ra;C.prototype.abs=Ia;C.prototype.compareTo=Pa;C.prototype.bitLength=xa;C.prototype.mod=Ma;C.prototype.equals=qa;C.prototype.add=$a;C.prototype.subtract=ja;C.prototype.multiply=Ka;C.prototype.divide=Ha;C.prototype.modPow=Ya;C.ZERO=pr(0);C.ONE=pr(1);function _r(r){return ye.Buffer.from(new nr().random(r).toString(),"hex")}var Xa=/^[89a-f]/i,Za="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",eu="userAttributes.",ve=(function(){function r(t){this.N=new V(Za,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=ye.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=_r(128).toString("hex"),i=new V(n,16);return i},e.generateRandomString=function(){return _r(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=_r(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(l,d){l&&s(l,null),o.verifierDevices=o.padHex(d),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 Pt.Sha256;i.update(n);var s=i.digestSync(),o=ye.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(ye.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=ye.Buffer.concat([this.infoBits,ye.Buffer.from("","utf8")]),o=new Pt.Sha256(i);o.update(n);var a=o.digestSync(),u=new Pt.Sha256(a);u.update(s);var c=u.digestSync(),l=c,d=l.slice(0,16);return d},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,l=this.hash(c),d=new V(this.hexHash(this.padHex(o)+l),16);this.calculateS(d,s,function(h,p){h&&a(h,null);var g=u.computehkdf(ye.Buffer.from(u.padHex(p),"hex"),ye.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(l,d){l&&s(l,null),s(null,d.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return eu},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=Xa.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 On=Oe(yt());var xt=(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(On.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},r})();function tu(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,br(r,e);}function br(r,e){return br=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},br(r,e)}var $e=(function(r){function e(t){var n=t===void 0?{}:t,i=n.AccessToken;return r.call(this,i||"")||this}return tu(e,r),e})(xt);function ru(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,yr(r,e);}function yr(r,e){return yr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},yr(r,e)}var je=(function(r){function e(t){var n=t===void 0?{}:t,i=n.IdToken;return r.call(this,i||"")||this}return ru(e,r),e})(xt);var Ke=(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 $=Oe(yt()),Ar=Oe(hr());var Mn="5.0.4";var nu="aws-amplify/"+Mn,wr={userAgent:nu,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Vn=function(){return wr.userAgent};var He=(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 iu=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],su=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Ut=(function(){function r(){}var e=r.prototype;return e.getNowString=function(){var n=new Date,i=su[n.getUTCDay()],s=iu[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 l=n.getUTCFullYear(),d=i+" "+s+" "+o+" "+a+":"+u+":"+c+" UTC "+l;return d},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={},ou=(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})(),Ct=(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=ou;}}var e=r.prototype;return e.getStorage=function(){return this.storageWindow},r})();var au=typeof navigator<"u",qn=au?wr.isReactNative?"react-native":navigator.userAgent:"nodejs",we=(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 Ct().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,l){if(c)return i.onFailure(c);var d=l.ChallengeName,h=l.ChallengeParameters;return d==="CUSTOM_CHALLENGE"?(s.Session=l.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(l.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 ve(this.pool.getUserPoolName()),a=new Ut,u,c,l={};this.deviceKey!=null&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,o.getLargeAValue(function(d,h){d&&i.onFailure(d),l.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(l.CHALLENGE_NAME="SRP_A");var p=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:l,ClientMetadata:p};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(_,b){if(_)return i.onFailure(_);var w=b.ChallengeParameters;s.username=w.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new V(w.SRP_B,16),c=new V(w.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(R,P){R&&i.onFailure(R);var I=a.getNowString(),D=$.Buffer.concat([$.Buffer.from(s.pool.getUserPoolName(),"utf8"),$.Buffer.from(s.username,"utf8"),$.Buffer.from(w.SECRET_BLOCK,"base64"),$.Buffer.from(I,"utf8")]),q=new Ar.Sha256(P);q.update(D);var Y=q.digestSync(),F=$.Buffer.from(Y).toString("base64"),x={};x.USERNAME=s.username,x.PASSWORD_CLAIM_SECRET_BLOCK=w.SECRET_BLOCK,x.TIMESTAMP=I,x.PASSWORD_CLAIM_SIGNATURE=F,s.deviceKey!=null&&(x.DEVICE_KEY=s.deviceKey);var k=function(Ne,Wr){return s.client.request("RespondToAuthChallenge",Ne,function(lt,Ks){return lt&<.code==="ResourceNotFoundException"&<.message.toLowerCase().indexOf("device")!==-1?(x.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(Ne,Wr)):Wr(lt,Ks)})},N={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:x,Session:b.Session,ClientMetadata:p};s.getUserContextData()&&(N.UserContextData=s.getUserContextData()),k(N,function(L,Ne){return L?i.onFailure(L):s.authenticateUserInternal(Ne,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 ve(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(l,d){return l?i.onFailure(l):s.authenticateUserInternal(d,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,l=null,d=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(u&&(c=JSON.parse(n.ChallengeParameters.userAttributes),l=JSON.parse(n.ChallengeParameters.requiredAttributes)),l)for(var p=0;p<l.length;p++)d[p]=l[p].substr(h.length);return s.newPasswordRequired(c,d)}if(a==="DEVICE_SRP_AUTH"){this.Session=n.Session,this.getDeviceResponse(s);return}this.signInUserSession=this.getCognitoUserSession(n.AuthenticationResult),this.challengeName=a,this.cacheTokens();var g=n.AuthenticationResult.NewDeviceMetadata;if(g==null)return s.onSuccess(this.signInUserSession);i.generateHashDevice(n.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,n.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return s.onFailure(_);var b={Salt:$.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:$.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=b.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:b,DeviceName:qn},function(w,R){return w?s.onFailure(w):(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 ve(this.pool.getUserPoolName()),c=u.getNewPasswordRequiredChallengeUserAttributePrefix(),l={};i&&Object.keys(i).forEach(function(h){l[c+h]=i[h];}),l.NEW_PASSWORD=n,l.USERNAME=this.username;var d={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:l,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(h,p){return h?s.onFailure(h):a.authenticateUserInternal(p,u,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new ve(this.deviceGroupKey),a=new Ut,u={};u.USERNAME=this.username,u.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(c,l){c&&n.onFailure(c),u.SRP_A=l.toString(16);var d={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:u,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(d.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",d,function(h,p){if(h)return n.onFailure(h);var g=p.ChallengeParameters,_=new V(g.SRP_B,16),b=new V(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,_,b,function(w,R){if(w)return n.onFailure(w);var P=a.getNowString(),I=$.Buffer.concat([$.Buffer.from(s.deviceGroupKey,"utf8"),$.Buffer.from(s.deviceKey,"utf8"),$.Buffer.from(g.SECRET_BLOCK,"base64"),$.Buffer.from(P,"utf8")]),D=new Ar.Sha256(R);D.update(I);var q=D.digestSync(),Y=$.Buffer.from(q).toString("base64"),F={};F.USERNAME=s.username,F.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,F.TIMESTAMP=P,F.PASSWORD_CLAIM_SIGNATURE=Y,F.DEVICE_KEY=s.deviceKey;var x={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:F,Session:p.Session};s.getUserContextData()&&(x.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",x,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 ve(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(l,d){return l?i.onFailure(l):o.authenticateUserInternal(d,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 l={ChallengeName:c,ChallengeResponses:u,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(l.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",l,function(d,h){if(d)return i.onFailure(d);var p=h.ChallengeName;if(p==="DEVICE_SRP_AUTH"){a.getDeviceResponse(i);return}if(a.signInUserSession=a.getCognitoUserSession(h.AuthenticationResult),a.cacheTokens(),h.AuthenticationResult.NewDeviceMetadata==null)return i.onSuccess(a.signInUserSession);var g=new ve(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(_){if(_)return i.onFailure(_);var b={Salt:$.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:$.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=b.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:b,DeviceName:qn},function(w,R){return w?i.onFailure(w):(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 l=new je({IdToken:this.storage.getItem(o)}),d=new $e({AccessToken:this.storage.getItem(a)}),h=new Ke({RefreshToken:this.storage.getItem(u)}),p=parseInt(this.storage.getItem(c),0)||0,g={IdToken:l,AccessToken:d,RefreshToken:h,ClockDrift:p},_=new He(g);if(_.isValid())return this.signInUserSession=_,n(null,this.signInUserSession);if(!h.getToken())return n(new Error("Cannot retrieve a new session. Please authenticate."),null);this.refreshSession(h,n,i.clientMetadata);}else n(new Error("Local storage is missing an ID Token, Please authenticate"),null);},e.refreshSession=function(n,i,s){var o=this,a=this.pool.wrapRefreshSessionCallback?this.pool.wrapRefreshSessionCallback(i):i,u={};u.REFRESH_TOKEN=n.getToken();var c="CognitoIdentityServiceProvider."+this.pool.getClientId(),l=c+".LastAuthUser";if(this.storage.getItem(l)){this.username=this.storage.getItem(l);var d=c+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(d),u.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:u,ClientMetadata:s};this.getUserContextData()&&(h.UserContextData=this.getUserContextData()),this.client.requestWithRetry("InitiateAuth",h,function(p,g){if(p)return p.code==="NotAuthorizedException"&&o.clearCachedUser(),a(p,null);if(g){var _=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(_,"RefreshToken")||(_.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(_),o.cacheTokens(),a(null,o.signInUserSession)}});},e.cacheTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+"."+this.username+".clockDrift",u=n+".LastAuthUser";this.storage.setItem(i,this.signInUserSession.getIdToken().getJwtToken()),this.storage.setItem(s,this.signInUserSession.getAccessToken().getJwtToken()),this.storage.setItem(o,this.signInUserSession.getRefreshToken().getToken()),this.storage.setItem(a,""+this.signInUserSession.getClockDrift()),this.storage.setItem(u,this.username);},e.cacheUserData=function(n){this.storage.setItem(this.userDataKey,JSON.stringify(n));},e.clearCachedUserData=function(){this.storage.removeItem(this.userDataKey);},e.clearCachedUser=function(){this.clearCachedTokens(),this.clearCachedUserData();},e.cacheDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.setItem(i,this.deviceKey),this.storage.setItem(s,this.randomPassword),this.storage.setItem(o,this.deviceGroupKey);},e.getCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.getItem(i)&&(this.deviceKey=this.storage.getItem(i),this.randomPassword=this.storage.getItem(s),this.deviceGroupKey=this.storage.getItem(o));},e.clearCachedDeviceKeyAndPassword=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId()+"."+this.username,i=n+".deviceKey",s=n+".randomPasswordKey",o=n+".deviceGroupKey";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o);},e.clearCachedTokens=function(){var n="CognitoIdentityServiceProvider."+this.pool.getClientId(),i=n+"."+this.username+".idToken",s=n+"."+this.username+".accessToken",o=n+"."+this.username+".refreshToken",a=n+".LastAuthUser",u=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(u);},e.getCognitoUserSession=function(n){var i=new je(n),s=new $e(n),o=new Ke(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new He(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 l={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:c,Session:o.Session};o.getUserContextData()&&(l.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",l,function(d,h){return d?s.onFailure(d):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},r})();Oe($n());function We(){}We.prototype.userAgent=Vn();var jn=function(e){var t=We.category?" "+We.category:"",n=We.framework?" framework/"+We.framework:"",i=""+We.prototype.userAgent+t+n;return i};function cu(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ze(r,e);}function vr(r){var e=typeof Map=="function"?new Map:void 0;return vr=function(n){if(n===null||!du(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 lu(n,arguments,Tr(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),Ze(i,n)},vr(r)}function lu(r,e,t){if(Kn())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(r.bind.apply(r,n));return t&&Ze(i,t.prototype),i}function Kn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (Kn=function(){return !!r})()}function du(r){try{return Function.toString.call(r).indexOf("[native code]")!==-1}catch{return typeof r=="function"}}function Ze(r,e){return Ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},Ze(r,e)}function Tr(r){return Tr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Tr(r)}var fu=(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 cu(e,r),e})(vr(Error)),Hn=(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 fu(u.message,u.code,u.name,u.statusCode)):o(c);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;mu(function(u){return new Promise(function(c,l){o.request(n,u,function(d,h){d?l(d):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":jn(),"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(l){return u=l,l},function(l){throw l instanceof TypeError?new Error("Network error"):l}).then(function(l){return l.json().catch(function(){return {}})}).then(function(l){if(u.ok)return s(null,l);var d=(l.__type||l.code).split("#").pop(),h=new Error(l.message||l.Message||null);return h.name=d,h.code=d,s(h)}).catch(function(l){if(u&&u.headers&&u.headers.get("x-amzn-errortype"))try{var d=u.headers.get("x-amzn-errortype").split(":")[0],h=new Error(u.status?u.status.toString():null);return h.code=d,h.name=d,h.statusCode=u.status,s(h)}catch{return s(l)}else l instanceof Error&&l.message==="Network error"&&(l.code="NetworkError");return s(l)});},r})();var Dt={debug:function(){}};var hu=function(e){var t="nonRetryable";return e&&e[t]};function Wn(r,e,t,n){if(n===void 0&&(n=1),typeof r!="function")throw Error("functionToRetry must be a function");return Dt.debug(r.name+" attempt #"+n+" with args: "+JSON.stringify(e)),r.apply(void 0,e).catch(function(i){if(Dt.debug("error on "+r.name,i),hu(i))throw Dt.debug(r.name+" non retryable error",i),i;var s=t(n,e,i);if(Dt.debug(r.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return Wn(r,e,t,n+1)});throw i})}function gu(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 mu(r,e,t){return Wn(r,e,gu(t))}var _u=55,Rr=(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>_u||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var l=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new Hn(l,a,u),this.advancedSecurityDataCollectionFlag=c!==false,this.storage=t.Storage||new Ct().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,l={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:u};this.getUserContextData(n)&&(l.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",l,function(d,h){if(d)return a(d,null);var p={Username:n,Pool:c,Storage:c.storage},g={user:new we(p),userConfirmed:h.UserConfirmed,userSub:h.UserSub,codeDeliveryDetails:h.CodeDeliveryDetails};return a(null,g)});},e.getCurrentUser=function(){var n="CognitoIdentityServiceProvider."+this.clientId+".LastAuthUser",i=this.storage.getItem(n);if(i){var s={Username:i,Pool:this,Storage:this.storage};return new we(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 kt(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 bu={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 Ir(r,e){function t(i,s,o){if(!(typeof document>"u")){o=kt({},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 l=decodeURIComponent(u[0]);if(l in o||(o[l]=r.read(c,l)),i===l)break}catch{}}return i?o[i]:o}}return Object.create({set:t,get:n,remove:function(i,s){t(i,"",kt({},s,{expires:-1}));},withAttributes:function(i){return Ir(this.converter,kt({},this.attributes,i))},withConverter:function(i){return Ir(kt({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}Ir(bu,{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 Ae="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Pr=BigInt(Ae.length),wu=2*1024*1024,Au=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],Jn={auth_time:"log",sub:"user_id"},Eu=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Xn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Gn=typeof TextEncoder<"u"?new TextEncoder:null;function Su(){if(typeof globalThis<"u")return globalThis.Buffer}function vu(r){if(Gn)return Gn.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 Tu(r){if(r instanceof Uint8Array)return r;if(typeof r=="string")return vu(r);if(typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer)return new Uint8Array(r);if(typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);if(Array.isArray(r))return Uint8Array.from(r);let e=Su();if(e)return new Uint8Array(e.from(r));throw new Error("No byte conversion available in this environment.")}var A=class A{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let t=A.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,u,c,l;for(let d=0;d<t.length;d+=16)a=n,u=i,c=s,l=o,n=A.ff(n,i,s,o,t[d],7,-680876936),o=A.ff(o,n,i,s,t[d+1],12,-389564586),s=A.ff(s,o,n,i,t[d+2],17,606105819),i=A.ff(i,s,o,n,t[d+3],22,-1044525330),n=A.ff(n,i,s,o,t[d+4],7,-176418897),o=A.ff(o,n,i,s,t[d+5],12,1200080426),s=A.ff(s,o,n,i,t[d+6],17,-1473231341),i=A.ff(i,s,o,n,t[d+7],22,-45705983),n=A.ff(n,i,s,o,t[d+8],7,1770035416),o=A.ff(o,n,i,s,t[d+9],12,-1958414417),s=A.ff(s,o,n,i,t[d+10],17,-42063),i=A.ff(i,s,o,n,t[d+11],22,-1990404162),n=A.ff(n,i,s,o,t[d+12],7,1804603682),o=A.ff(o,n,i,s,t[d+13],12,-40341101),s=A.ff(s,o,n,i,t[d+14],17,-1502002290),i=A.ff(i,s,o,n,t[d+15],22,1236535329),n=A.gg(n,i,s,o,t[d+1],5,-165796510),o=A.gg(o,n,i,s,t[d+6],9,-1069501632),s=A.gg(s,o,n,i,t[d+11],14,643717713),i=A.gg(i,s,o,n,t[d],20,-373897302),n=A.gg(n,i,s,o,t[d+5],5,-701558691),o=A.gg(o,n,i,s,t[d+10],9,38016083),s=A.gg(s,o,n,i,t[d+15],14,-660478335),i=A.gg(i,s,o,n,t[d+4],20,-405537848),n=A.gg(n,i,s,o,t[d+9],5,568446438),o=A.gg(o,n,i,s,t[d+14],9,-1019803690),s=A.gg(s,o,n,i,t[d+3],14,-187363961),i=A.gg(i,s,o,n,t[d+8],20,1163531501),n=A.gg(n,i,s,o,t[d+13],5,-1444681467),o=A.gg(o,n,i,s,t[d+2],9,-51403784),s=A.gg(s,o,n,i,t[d+7],14,1735328473),i=A.gg(i,s,o,n,t[d+12],20,-1926607734),n=A.hh(n,i,s,o,t[d+5],4,-378558),o=A.hh(o,n,i,s,t[d+8],11,-2022574463),s=A.hh(s,o,n,i,t[d+11],16,1839030562),i=A.hh(i,s,o,n,t[d+14],23,-35309556),n=A.hh(n,i,s,o,t[d+1],4,-1530992060),o=A.hh(o,n,i,s,t[d+4],11,1272893353),s=A.hh(s,o,n,i,t[d+7],16,-155497632),i=A.hh(i,s,o,n,t[d+10],23,-1094730640),n=A.hh(n,i,s,o,t[d+13],4,681279174),o=A.hh(o,n,i,s,t[d],11,-358537222),s=A.hh(s,o,n,i,t[d+3],16,-722521979),i=A.hh(i,s,o,n,t[d+6],23,76029189),n=A.hh(n,i,s,o,t[d+9],4,-640364487),o=A.hh(o,n,i,s,t[d+12],11,-421815835),s=A.hh(s,o,n,i,t[d+15],16,530742520),i=A.hh(i,s,o,n,t[d+2],23,-995338651),n=A.ii(n,i,s,o,t[d],6,-198630844),o=A.ii(o,n,i,s,t[d+7],10,1126891415),s=A.ii(s,o,n,i,t[d+14],15,-1416354905),i=A.ii(i,s,o,n,t[d+5],21,-57434055),n=A.ii(n,i,s,o,t[d+12],6,1700485571),o=A.ii(o,n,i,s,t[d+3],10,-1894986606),s=A.ii(s,o,n,i,t[d+10],15,-1051523),i=A.ii(i,s,o,n,t[d+1],21,-2054922799),n=A.ii(n,i,s,o,t[d+8],6,1873313359),o=A.ii(o,n,i,s,t[d+15],10,-30611744),s=A.ii(s,o,n,i,t[d+6],15,-1560198380),i=A.ii(i,s,o,n,t[d+13],21,1309151649),n=A.ii(n,i,s,o,t[d+4],6,-145523070),o=A.ii(o,n,i,s,t[d+11],10,-1120210379),s=A.ii(s,o,n,i,t[d+2],15,718787259),i=A.ii(i,s,o,n,t[d+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,u),s=A.ad(s,c),o=A.ad(o,l);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 Zn(r){if(r===0)return Ae[0];let e="";for(;r>0;)e=Ae[r%62]+e,r=Math.floor(r/62);return e}function ie(r){return r.split("").reverse().reduce((e,t,n)=>e+Ae.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 xr(){return typeof window>"u"||!!window?._runningInNodeJS}function z(){return !xr()&&typeof document<"u"&&typeof document.createElement=="function"}function Nt(r){let e;try{e=JSON.stringify(r);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>wu)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function Qn(r){return r===""||r==="on"||r==="true"}function zn(r){return r==="false"}function Yn(r,e,t){e.name&&t(r,e.name,e.value);}var Ft=z(),Ru=typeof SubmitEvent<"u",Iu=typeof HTMLFormElement<"u";function O(r,e,t){let n={},i=[];function s(u,c,l){if(e?.ignoreEmpty&&l==="")return;if(e?.nullIfEmpty&&l===""&&(l=null),typeof t=="function"){let p=t(c,l);p!==void 0&&(l=p);}let d=c.split("[").map(p=>{let g=p.replace("]",""),_=Number(g);return !isNaN(_)&&!g.includes(".")?g=_:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=u;if(typeof d[0]=="number")throw new f("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let p=0;p<d.length;p++){let g=d[p];p<d.length-1?(h[g]===void 0&&(typeof d[p+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=l:Array.isArray(h[g])?h[g].push(l):h[g]=[h[g],l];}}function o(u,c,l){if(l instanceof File)u.push({name:c,file:l});else if(l instanceof FileList&&l&&l.length>0)for(let d=0;d<=l.length-1;d++){let h=l.item(d);h&&u.push({name:c,file:h});}}let a=u=>{u.name&&(u.type==="number"?u.value&&s(n,u.name,Number(u.value)):u.type==="checkbox"||u.type==="radio"?u.checked?u.type==="checkbox"&&u.value===""||Qn(u.value)?s(n,u.name,true):zn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(Qn(u.value)?s(n,u.name,false):zn(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(Ft&&(r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement))return a(r),Nt(n),{data:n,files:i};if(Ft&&r instanceof FormData){for(let u of r.entries()){let c=u[0],l=u[1];if(l instanceof File||l instanceof FileList)o(i,c,l);else if(l instanceof Blob){let d=l;if(d.type==="application/json")try{let h=JSON.parse(d.text());s(n,c,h);}catch{s(n,c,d);}}else s(n,c,l);}return Nt(n),{data:n,files:i}}if(Ft&&Ru&&r instanceof SubmitEvent&&(r=r.target),Ft&&Iu&&r instanceof HTMLFormElement){let u=r.querySelectorAll("input"),c=r.querySelectorAll("select"),l=r.querySelectorAll("textarea");for(let d=0;d<c.length;d++)Yn(n,c[d],s);for(let d=0;d<l.length;d++)Yn(n,l[d],s);for(let d=0;d<u.length;d++)a(u[d]);return Nt(n),{data:n,files:i}}return Nt(r),{data:r,files:i}}function et(r){let e={};for(let t in r){let n=r[t];if(!Au.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 Ur(r){if(r=Fu(r),r.split("-").length===7){let e=r.split("-"),t,n;try{t=Xn[ie(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid: "+r)}if(!t)throw new Error("INVALID_PARAMETER: Service ID is invalid: "+r);return {service:t+e[0]+e[1].slice(1),owner:n}}return {service:r,owner:""}}function ei(r,e){let t=Xn.indexOf(r.slice(0,4)),n=Eu[t],s=`${r.slice(4,-4)}-${n}${r.slice(-4)}-${e}`;return Nu(s)}function Pu(r){let e=0n;for(let t of r){let n=Ae.indexOf(t);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${t}`);e=e*Pr+BigInt(n);}return e}function xu(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%Pr);t=Ae[i]+t,n/=Pr;}return t.length<e&&(t="0".repeat(e-t.length)+t),t}function Uu(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 Cu(r){let e=0n;for(let t of r)e=(e<<8n)+BigInt(t);return e}function Du(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 ku(r){let e=Array.from(Tu(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 Nu(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>=Ae.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=Ae[i.length]+a+u,l=Du(s),d=xu(Cu(l));return `${c}-${d}`}function Fu(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: "+e);let[n,i]=t,s=Ae.indexOf(n[0]);if(s<0)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let o=n.slice(1),a=s+2;if(o.length<a)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let u=o.slice(0,o.length-a),c=o.slice(o.length-a),l=c.slice(s),d=c.slice(0,s),h=l+u;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(d))throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let p=Pu(i),g=Uu(p);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let _=new Uint8Array(16);_.set(g,16-g.length);let b=ku(_);return `${h}-${d}-${b}`}function tt(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 l(g){try{return JSON.stringify(g)}catch{return String(g)}}function d(g){if(u(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(_,b)=>typeof b=="function"?"custom validator":b)}catch{return String(g)}}function h(g,_){return _==="array"?Array.isArray(g):_==="object"?s(g):_==="null"?g===null:_==="undefined"?typeof g>"u":typeof g===_}function p(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
|
|
207
|
+
`+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let _=p(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=tt(r[g],e[g],t,_);else {if(t.indexOf(_)!==-1)throw new Error(`Key "${_}" is required.`);let b=e[g];a(b)&&b.length>1&&typeof b[b.length-1]=="function"&&(r[g]=b[b.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let _=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let b=0;b<r.length;b++){let w=r[b];if(u(_)){if(!h(w,_))throw new Error(`Type <${c(w)}> is invalid in "${n}". Expected a list of Type <${_}>.`)}else if(typeof _=="function")r[b]=_(w);else if(w!==_)throw new Error(`Value ${l(w)} is invalid in "${n}". Expected a list of ${l(_)}.`)}g=true;}else if(Array.isArray(r)&&e.every(b=>!a(b)&&b!=="array")){for(let b=0;b<r.length;b++){let w=false,R="";for(let P of e)try{r[b]=tt(r[b],P,t,n),w=!0;break}catch(I){typeof P=="function"&&(R=I?.message||String(I));}if(!w&&R)throw new Error(R);if(!w){let P=e.map(d).join(", ");throw new Error(`${l(r[b])} is invalid in "${n}". allowed types or values are: ${P}.`)}}g=true;}else {let b="";for(let w of e)try{r=tt(r,w,t,n),g=!0;break}catch(R){typeof w=="function"&&(b=R?.message||String(R));}if(!g&&b)throw new Error(b)}if(!g){let _=e.map(d).join(", ");throw new Error(`${l(r)} is invalid in "${n}". allowed types or values are: ${_}.`)}return r}if(u(e)&&h(r,e)||r===e)return r;throw new Error(`${l(r)} is invalid in "${n}". allowed type or value is: ${d(e)}.`)}function Lu(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 Ou(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 Mu(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 Vu(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 qu(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 Bu(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 $u(r,e,t=[],n){let i=O(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 tt(o,e,t)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var m={UserId:Lu,PhoneNumber:Ou,Birthdate:Mu,Password:Vu,Email:qu,Url:Bu,Params:$u};var M=null;function Cr(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 ri(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 Cr(t)}async function ni(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(Cr),t}async function ii(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(Cr),t}async function si(r){return S.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function oi(r){return S.bind(this)("register-ticket",Object.assign({exec:"unreg"},r),{auth:true})}var ju=3600;async function Je(){if(await this.__connection,this.session){let r=Math.floor(Date.now()/1e3),t=this.session.getIdToken().getExpiration();if(t<r+ju){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),Ee.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function ti(r,e){return new Promise((t,n)=>{e.refreshSession(r.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(Ee.bind(this)(),n(i)):s.isValid()?t(s):(Ee.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=et(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),Ee.bind(this)(),a(null);return}let l=d=>{let h=d.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),Ee.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=d,r(),c||this._runOnUserUpdateListeners(this.user),this.session};M.getSession((d,h)=>{if(this.log("getSession:getSessionCallback",{err:d,session:h}),!h){Ee.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(d){ti.bind(this)(h,M).then(w=>o(l(w))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),_=g.getExpiration(),b=_<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",_),this.log("getSession:isExpired",b),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),b||u||!h.isValid())ti.bind(this)(h,M).then(w=>o(l(w))).catch(a);else try{o(l(h));}catch(w){a(w);}});}),t=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+K.hash(s);return {cognitoUser:new we({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,u=false)=>new Promise((c,l)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let d=t(s,a),h=d.cognitoUsername,p=new Qt({Username:h,Password:o});d.cognitoUser.authenticateUser(p,{newPasswordRequired:(g,_)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?d.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:b=>{M=d.cognitoUser,e().then(w=>c(this.user));},onFailure:b=>{l(new f(b.message||"Failed to authenticate user.",{code:b.code}));}}):l(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(_=>{this.__disabledAccount=null,this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),c(this.user);}),onFailure:g=>{let _=[],{parsed:b,code:w}=Lt(g),R=typeof g?.message=="string"?g.message:"";if(w==="NotAuthorizedException"?R.includes("User is disabled.")?(this.__disabledAccount=h,_=["This account is disabled.","USER_IS_DISABLED"]):u?_=["The account already exists.","ACCOUNT_EXISTS"]:_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:w==="UserNotFoundException"?_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:w==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,_=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(w==="TooManyRequestsException"||w==="LimitExceededException")&&(_=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),b.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),_.length){let P=_[1],I=_[0];l(new f(I,{code:P,cause:g}));}else l(b);}});}),createCognitoUser:t,signup:(s,o,a)=>new Promise((u,c)=>{this.userPool.signUp(s,o,a,null,(l,d)=>{if(l){let{parsed:h,code:p}=Lt(l),g=[];p==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:p==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:p==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:p==="TooManyRequestsException"||p==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:p==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:p==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?c(new f(g[0],{code:g[1],cause:l})):c(h);return}u(d);});})}}function Lt(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 ai(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 ui(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 Ku(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 Hu(r){let e=r.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Ku(n);return JSON.parse(i)}async function ci(r){await this.__authConnection,this.log("loginWithToken:params",r),r=m.Params(r,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Hu(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=et(e),this.session=null,r.accessToken&&r.refreshToken)try{if(this.session=new He({IdToken:new je({IdToken:r.idToken}),AccessToken:new $e({AccessToken:r.accessToken}),RefreshToken:new Ke({RefreshToken:r.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",we),this.log("loginWithToken:userPool",this.userPool),we&&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 we(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 rt.bind(this)(),false)}async function Ee(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 rt(r){await this.__connection;let{data:e}=O(r);return await Ee.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function li(){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 di(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 Dr(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 fi(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 rt.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 l=c;if(typeof c=="string")l=m.Url(c);else if(typeof c=="boolean")l=c;else throw new f('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(l&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return l},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 l=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[c]!==""&&(c==="username"||c==="password"||c==="access_group"||(l.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?Dr.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function hi(){await this.__connection;let r=await S.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await rt.bind(this)(),r}async function gi(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 pi(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?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(l=>{a(l);}):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 mi(r,e){return pi.bind(this)("phone_number",r,e)}function _i(r,e){return pi.bind(this)("email",r,e)}async function bi(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:l}=Lt(u),d={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[l]||c.code||l||"ERROR";o(new f(c.message,{code:d,cause:u}));}},n);})}async function yi(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)=>{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}=Lt(i);n(o);}return}t("SUCCESS: Password has been changed.");});})}async function wi(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+"-"+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 Ai(r,e){r=O(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 Ei(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 Si(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 Wu="1.2.1",Ju=class{constructor(r){ue(this,"version",Wu);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=[];}},nt=Ju;var Ge=null,Ti=typeof SubmitEvent<"u",Gu=typeof HTMLFormElement<"u",st=z(),kr=0;function Ri(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 Nr(r,e){return e>0?r/e*100:0}var vi=r=>{let{auth:e,type:t,endpoints:n,stable:i}=r,s=n[0],o=n[1];if(kr++,t==="admin"){let a=Object.entries(s).filter(([u,c])=>u.includes(e?"_private":"_public")&&u!=="get_users_private"&&u!=="service_public"&&typeof c=="string").map(([,u])=>u);if(!a.length)throw new f("No available admin gateways.",{code:"INVALID_REQUEST"});return a[kr%a.length]}if(t==="record"){let a=Object.entries(o).filter(([u,c])=>u.includes(e?"record_private":"record_public")&&typeof c=="string").map(([,u])=>u);if(!a.length)throw new f("No available record gateways.",{code:"INVALID_REQUEST"});return i?a[0]:a[kr%a.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Qu(r,e,t){let n=await Promise.all([this.admin_endpoint,this.record_endpoint]),i=n[0],s=n[1],o=r.split("?"),a=o.length>1?"?"+o[1]:"";switch(r=o[0],r){case "get-users":return i.get_users_private+r+a;case "service":return i.service_public+r+a;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 vi.bind(this)({auth:e,type:"admin",endpoints:n})+r+a;case "post-record":return (e?s.post_private:s.post_public)+r+a;case "get-records":return (e?s.get_private:s.get_public)+r+a;case "del-files":case "del-records":return s.del_private+r+a;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 vi.bind(this)({auth:e,type:"record",endpoints:n,stable:t})+r+a;default:return m.Url(r)+a}}var it={};function Ii(){Ge&&(Ge.terminate(),Ge=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,l=null,d=await Qu.bind(this)(r,!!i,!!t.stableGateway);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)&&(l=await Je.bind(this)());let p={},{fetchMore:g=false,progress:_}=t?.fetchOptions||{};if(t?.fetchOptions&&Object.keys(t.fetchOptions).length){for(let x of ["limit","startKey","ascending"])if(t.fetchOptions.hasOwnProperty(x)){if(x==="startKey"&&t.fetchOptions[x]===null)continue;p[x]=t.fetchOptions[x];}p=m.Params(p,{limit:x=>{if(typeof x!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(x>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return x},startKey:x=>x,ascending:"boolean"});}let b=n?.ignoreService?{}:{service:u,owner:c};Object.assign(b,p),e=O(e).data,e?e&&typeof e=="object"&&(e=Object.assign(b,e)):e=b;let w=`${s}:${i?"auth":"public"}:${r}`,R=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(st&&e instanceof FormData)){let x=function(k){return typeof k=="object"&&k!==null?Object.keys(k).sort().reduce((N,L)=>(typeof k[L]=="object"&&k[L]!==null?N[L]=x(k[L]):N[L]=k[L],N),{}):k};return K.hash(w+"/"+JSON.stringify(x(e)))}return K.hash(w+"/"+u)})(),{requestKey:P,requestKeyWithStartKey:I}=zu.bind(this)({params:e,url:r,fetchMore:g,hashedParams:R});if(!P||P&&typeof P=="object")return P;if(this.log("requestKey",I),typeof I=="string"&&it[I]instanceof Promise)return this.log("request:returning pending",I),it[I];let D={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(t,"contentType")&&t.contentType!==void 0){let x=t.contentType===null?"application/x-www-form-urlencoded":t.contentType;x&&(D["Content-Type"]=x);}else D["Content-Type"]="application/json";if(l&&(D.Authorization=l),t?.tokenHeaders){let x=(L,Ne)=>typeof L=="string"?L:L===true?Ne:null,k=x(t.tokenHeaders.accessToken,this.session?.accessToken?.jwtToken||null),N=x(t.tokenHeaders.idToken,this.bearerToken||this.session?.idToken?.jwtToken||l||null);k&&(D["X-Access-Token"]=k),N&&(D["X-Id-Token"]=N);}let Y={public_identifier:this.__public_identifier,service:u,owner:c};D["Content-Meta"]=JSON.stringify(Y),t.revalidate&&(D["Cache-Control"]="no-cache",D.Pragma="no-cache");let F={headers:D};if(t?.responseType&&(F.responseType=t.responseType),s==="GET"){if(e){let x=[];if(st&&e instanceof FormData?x=Array.from(e.entries()).map(([k,N])=>{let L=typeof N=="string"?N:N.name;return encodeURIComponent(k)+"="+encodeURIComponent(L)}):x=Object.keys(e).map(k=>{let N=e[k];return typeof N!="string"&&(N=JSON.stringify(N)),encodeURIComponent(k)+"="+encodeURIComponent(N)}),x.length){let k=d.includes("?")?d.endsWith("?")||d.endsWith("&")?"":"&":"?";d+=k+x.join("&");}}F.body=null;}else if(st&&e instanceof FormData)F.body=e;else if(D["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let x=new URLSearchParams;for(let k of Object.keys(e)){let N=e[k];x.append(k,typeof N=="string"?N:JSON.stringify(N));}F.body=x.toString();}else typeof e=="string"?F.body=e:F.body=e?JSON.stringify(e):null;if(F.method=s,Ge===null){let x={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:k=>{this.onBatchProcess.forEach(N=>N(k));}};Ge=new nt(x);}return this.log("request-opt",F),new Promise((x,k)=>{Ge.add([async()=>{let N=Pi.bind(this)(d,F,_);it[I]=N;try{let L=Yu.bind(this)({hashedParam:P,requestKeyWithStartKey:I,url:r,fetched:await N});return delete it[I],this.log("request:end",L),x(L),L}catch(L){throw delete it[I],this.log("request:err",L),k(L),L}}]);})}function zu(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 Pi(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=Ri(a);u!==null?setTimeout(()=>{Pi(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 l=c.split(":"),d=l.splice(0,1)[0].trim(),h=l.join(":").trim();i(new f(h||c,{code:u.includes(d)?d:"ERROR"}));}else if(typeof c=="object"&&c?.message){let l=c?.code||(a?a.toString():null)||"ERROR",d=c.message,h=c?.cause;typeof d=="string"&&(d=d.trim()),i(new f(d,{cause:h,code:l}));}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:Nr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Nr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Yu(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 Mt(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(Ti&&r instanceof SubmitEvent&&(r=r.target),Gu&&r instanceof HTMLFormElement&&(r=new FormData(r)),!st||!(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=(p,g,_)=>new Promise((b,w)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let R=a.responseText;try{R=JSON.parse(R);}catch{}if(a.status>=200&&a.status<300)b(R);else if(a.status===429){let P=a.getResponseHeader("Retry-After"),I=Ri(P);I!==null?setTimeout(()=>{u(p,g,_).then(b,w);},I):w("Too many requests");}else w(R);},a.onerror=()=>w("Network error"),a.onabort=()=>w("Aborted"),a.ontimeout=()=>w("Timeout"),a.upload&&typeof _=="function"&&(a.upload.onprogress=_),a.send(g);});function c(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let _="";for(;p>0;)_=g[p%62]+_,p=Math.floor(p/62);return _}let l=[],d=[],h=[];for(let[p,g]of r.entries()){if(!(g instanceof File))continue;let _=Object.assign({key:p+"/"+g.name,sizeKey:c(g.size),contentType:g.type||null},o),{fields:b=null,url:w,cdn:R}=await S.bind(this)("get-signed-url",_,{auth:!!this.__user});h.push(R);let P=new FormData;for(let I in b)P.append(I,b[I]);P.append("file",g);try{await u(w,P,typeof i=="function"?I=>i({status:"upload",progress:Nr(I.loaded,I.total),currentFile:g,completed:l,failed:d,loaded:I.loaded,total:I.total,abort:()=>a.abort()}):null),l.push(g);}catch{d.push(g);}}return {completed:l,failed:d,bin_endpoints:h}}var Ot={};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,l="",d={},h=false;if(Ti&&a instanceof SubmitEvent){a.preventDefault();let w=window.location.href;c=a.target;let R=new URL(c.action);l=R.href;let P=l?l.match(/(?<=\{).*?(?=\})/g):"";if(P)for(let I of P){if(!I)continue;let D=c.querySelector(`[name="${I}"]`);if(D)if(D.type==="file")for(let q=0;q<=D.files.length-1;q++)D.files[q]&&(d[I]||(d[I]=[]),d[I].push(new Promise((Y,F)=>{let x=new FileReader;x.onload=function(){Y(x.result);},x.readAsDataURL(D.files[q]),x.onerror=F;})));else l=l.replace(`{${I}}`,D.value);}c.getAttribute("action")===null?u=false:h=R.href===w;}let p=async w=>{if(l)for(let R in d)d[R].length&&(l=l.replace(`{${R}}`,(await Promise.all(d[R])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${K.hash(l)}`,JSON.stringify(w)),h?window.location.replace(l):window.location.href=l),w},g,_=w=>{throw w instanceof f?w.name=n+"()":w=w instanceof Error?w:new f(w,{name:n+"()"}),w},b=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let w=await g;return p(w)}return p(g)}catch(w){throw _(w)}};if(e){let w=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Ot?.[w]||(Ot[w]=b().finally(()=>{delete Ot[w];})),Ot[w]}return b()};}}async function xi(){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 Xu=256,Zu=256,ec=256,Ui=256,tc="\u{10FFFF}",rc=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,nc={"/":"%2F","!":"%21","*":"%2A","#":"%23"},ic={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function sc(r){return r.replace(/%/g,"%25").replace(/[\/!*#]/g,t=>nc[t]||t)}function se(r){return typeof r!="string"?r:r.replace(/%(2F|21|2A|23)/gi,t=>{let n=t.toUpperCase();return ic[n]||t}).replace(/%25/gi,"%")}function fe(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(rc.test(r)||r.includes(tc))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&(r=sc(r),i&&r.length>i))throw new f(`"${e}" should be <= ${i} characters. "/", "!", "*", "#" and "%" count as 3 characters each.`,{code:"INVALID_PARAMETER"});if(o&&r.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return r}function Qe(r,e="table.name",t={}){return fe(r,e,{allowEmpty:t.allowEmpty===true,maxLength:Xu,blockKeyDelimiters:true})}function qt(r,e="tag",t={}){return fe(r,e,{allowEmpty:t.allowEmpty===true,maxLength:Zu,blockKeyDelimiters:true})}function ot(r,e="index.name",t={}){return fe(r,e,{allowEmpty:t.allowEmpty===true,maxLength:ec,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Ci(r,e="index.value"){return fe(r,e,{allowEmpty:true,maxLength:Ui})}function Fr(r){return typeof r=="string"&&r.slice(-1)==="."}function Lr(r,e){return fe(r,e,{allowEmpty:true,maxLength:Ui,blockKeyDelimiters:true})}function Di(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=fe(r.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):r?.unique_id&&(e.unique_id=r.unique_id),e}function Or(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 Vt=4503599627370496;function Bt(r){if(typeof r=="number"){if(r>Vt||r<-Vt)throw new f(`Number value should be within range -${Vt} ~ +${Vt}`,{code:"INVALID_PARAMETER"});return r}if(typeof r=="boolean")return r;if(typeof r=="string")return Ci(r,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function ki(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"?Fr(e.index.name)?Lr(r,"index.range"):Ci(r,"index.range"):r}var $t={},oc=10080*60,ac=1200;function uc(r){if(!this.user?.user_id)return false;let e=r[6]==="**"?"**":parseInt(r[6]),t=this.user?.access_group??-1;return !(this.user.user_id!==r[3]&&(e==="**"||t<e))}async function cc(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 ze(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 l=c=="**"?"private":parseInt(c);return l=l==0?"public":l==1?"authorized":l==99?"admin":l,l}let a={ip:c=>{let l=c.split("#"),d=l[0];l.length>1&&(n.unique_id=l.slice(1).join("#")),d.slice(-1)==="R"?(n.readonly=true,d=d.slice(0,-1)):n.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(d)&&(d=d.split("-").join("."),i=true),n.ip=d;},rec:c=>{if(!c)return;n.record_id=c;let l=c.substring(0,c.length-9),d=ie(l);n.uploaded=d;},usr:c=>{n.user_id=c;},tbl:c=>{if(c&&!n.table.name){let l=c.split("/");n.table.name=se(l[0]),n.table.access_group=o(l[2]),l?.[3]&&(n.table.subscription.is_subscription_record=true);}},usr_tbl:c=>{let l=c.split("/");n.user_id||(n.user_id=l[0]),n.table.name||(n.table.name=se(l[1]),n.table.access_group=o(l[3]),l?.[4]&&(n.table.subscription.is_subscription_record=true));},idx:c=>{if(!c)return;let l=c.split("!"),d=se(l.splice(0,1)[0]),h=lc("!"+l.join("!"));n.index={name:d,value:h};},ref:c=>{c&&(n.reference=c.split("/")[0]);},tags:c=>{n.tags=Array.isArray(c)?c.map(l=>se(l)):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 l={},d=n?.reference||null;if(Array.isArray(c)){let h=await Promise.all(c.map(async p=>{try{let g=p.split("/").slice(3).join("/"),_=g.split("/");if(_.length<12)return null;let b=_[_.length-1],w=_[10];if(w==="__data__"&&b==="__json__.json")return {isDataFile:!0,rawUrl:p};let R=_[9],P=_[8],I=o(_[6]),D=p,q=I!=="public"&&uc.call(this,_)?{expires:ac,browserCache:oc}:null;if(I!=="public")try{D=await ke.bind(this)(p,{dataType:"endpoint",_ref:d});}catch(F){console.error("Error getting signed url for private file:",F),D=p;}let Y={access_group:I,filename:b,url:D,path:g,size:ie(R),uploaded:ie(P),getFile:(F,x)=>{let k={dataType:F||"download",progress:x,_ref:d},N=()=>ke.bind(this)(D,Object.assign({},k,{_update:Y}));return q?ke.bind(this)(p,Object.assign({},k,q)).catch(()=>N()):N()}};return {pathKey:w,obj:Y}}catch{return null}}));for(let p of h)if(p&&!p.isDataFile){if(l[p.pathKey]){l[p.pathKey].push(p.obj);continue}l[p.pathKey]=[p.obj];}}n.bin=l;},prv_acs:c=>{for(let l in c)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(l)?n.table.subscription[l]=c[l]:l==="referencing_index_restrictions"&&Array.isArray(c[l])?n.source[l]=c[l].map(h=>h&&typeof h=="object"&&typeof h.name=="string"?Object.assign({},h,{name:se(h.name)}):h):n.source[l]=c[l];},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 l=c.__data__,d=s.find(h=>h.endsWith(l))||null;if(d){if(t){n.data=c;return}try{let h=await ke.bind(this)(d,{dataType:"blob",_ref:n.reference||null}),p=await cc(h);n.data=JSON.parse(p);}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 l=c.split("/").slice(3);l.length>=12&&l[10]==="__data__"&&l[l.length-1]==="__json__.json"&&s.push(c);}catch{}let u=[];for(let c in a)if(r.hasOwnProperty(c)){let l=a[c](r[c]);l instanceof Promise&&u.push(l);}return i&&(n.user_id="anonymous:"+n.user_id),await Promise.all(u),n}function lc(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 Ni(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(ze.bind(this)(t[i]));return Promise.all(n)}async function ke(r,e){if(typeof r!="string")throw new f('"url" should be type: string.',{code:"INVALID_PARAMETER"});let t=r,n=r.split("?"),i=n.shift()||"",s=n.length?"?"+n.join("?"):"",o=m.Url(i);r=o+s;let a=false,u=o.split("/"),l=u[2].split("."),d=null;l.length===3&&l[1]==="skapi"&&(d=l[0],a=true);let h=u.slice(3),p=false;if(!a&&(h[0]==="auth"||h[0]==="publ"))try{m.UserId(h[2]),m.UserId(h[3]),p=h[0]=="auth",a=!0;}catch{throw new f("Invalid file url.",{code:"INVALID_PARAMETER"})}let g=d?null:h[1];if(e=m.Params(e,{expires:["number",()=>0],browserCache:["number",()=>0],refresh:["boolean",()=>false],dataType:["base64","blob","endpoint","text","info",()=>"download"],progress:["function","undefined",null],_ref:[null,"string"],_update:R=>R}),e?.dataType==="info")return {url:r,filename:h[h.length-1],fileKey:h[h.length-2],access_group:h[6]==="**"?"private":h[6]==="01"?"authorized":h[6]==="00"?"public":parseInt(h[6]),uploader:h[3],record_id:h[4]==="records"?h[5]:"N/A",filesize:ie(h[9]),uploaded:ie(h[8])};let _=r.split("/").slice(-1)[0],b=e.expires;if(b){if(!a)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(b<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let R={request:d?"get-host":"get",id:d||h[5],key:t.split("?")[0],expires:b};g&&(R.service=g);let P=e.browserCache,I={auth:true};if(P){if(P<0)throw new f('"config.browserCache" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});I.method="get",I.stableGateway=true,R.browser_cache=P;let D=this.session?.idToken?.payload?.sub||this.user?.user_id;D&&(R.uid=D),e.refresh&&(I.revalidate=true);}r=(await S.bind(this)("get-signed-url",R,I)).url;}else if(p){let R=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<R)){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:R,expiresIn:this.session?.idToken?.payload?.exp-R,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(q){throw this.log("getFile:new token error",q),new f("User login is required.",{code:"INVALID_REQUEST"})}}let P=this.bearerToken||this.session?.idToken?.jwtToken;if(!P||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(P)}`;let I=h[6]==="**"?"**":parseInt(h[6]),D=this.user?.access_group??-1;if(this.user.user_id!==h[3]&&(I==="**"||D<I)){let q=h[5];if(this.__private_access_key[q]&&typeof this.__private_access_key[q]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[q])}`;else if(this.owner!==this.host)try{let Y=await this.requestPrivateRecordAccessKey({record_id:q,reference_id:e?._ref});r+=`&p=${encodeURIComponent(Y)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let R=document.createElement("a");return R.href=r,document.body.appendChild(R),R.setAttribute("download",_),R.target="_blank",R.click(),document.body.removeChild(R),null}return new Promise(async(R,P)=>{try{let I=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 D=new FileReader;D.onloadend=()=>R(D.result),D.readAsDataURL(I);}else R(I);}catch(I){if(e?.browserCache&&!e?.refresh)try{R(await ke.bind(this)(t,Object.assign({},e,{refresh:!0})));return}catch(D){P(D);return}P(I);}})}function jt(r,e){return `${r||this.service}/${e||this.owner}`}function Mr(r,e){let t=this.__my_unique_ids[r];return t?t[e]:void 0}function Fi(r,e,t){this.__my_unique_ids[r]||(this.__my_unique_ids[r]={}),this.__my_unique_ids[r][e]=t;}function dc(r,e){this.__my_unique_ids[r]&&delete this.__my_unique_ids[r][e];}async function Li(r,e=false){r=O(r,{ignoreEmpty:true}).data||{};let t=jt.bind(this)(r?.service,r?.owner),n="",i=Di(r);if(i){if(r=i,n=r.record_id||r.unique_id,typeof n=="string"){typeof this.__private_access_key?.[n]=="string"&&(r.private_key=this.__private_access_key?.[n]||void 0);let s=Mr.bind(this)(t,n);s&&(e?dc.bind(this)(t,n):r.record_id=s);}}else {let s=await H.bind(this)(),o=r?.reference,a=false;typeof o=="object"&&Object.keys(o).length&&(o?.record_id||o?.unique_id?(n=o.record_id||o.unique_id,n&&typeof this.__private_access_key?.[n]=="string"&&(r.private_key=this.__private_access_key?.[n]||void 0),r.reference=n):o?.user_id&&(a=o.user_id===this.user?.user_id,r.reference=o.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 u=c=>({table:{name:l=>Qe(l,"table.name"),access_group:Or.bind(this),subscription:l=>m.UserId(l,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",l=>ot(l,"index.name")],value:l=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:m.UserId};if(d.hasOwnProperty(c.index.name)){let h=d[c.index.name];if(typeof h=="function")return h(l);if(h!==typeof l)throw new f(`"index.value" should be type: ${h}.`,{code:"INVALID_PARAMETER"});return l}return typeof l=="string"&&!l?"":typeof l=="string"&&Fr(c.index.name)?Lr(l,"index.value"):Bt(l)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:l=>ki(l,c)},tag:l=>{if(l==null)return l;if(typeof l=="string")return qt(l,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});r=m.Params(r||{},u(r),a||s?[]:["table"],{ignoreEmpty:true});}return {query:r,is_reference_fetch:n}}async function Oi(r,e){await this.__connection;let t=await Li.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(ze.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function Mi(r){let e="",t=[],n=jt.bind(this)(r?.service,r?.owner),i=m.Params(r||{},{record_id:o=>{let a=typeof o=="string"?Mr.bind(this)(n,o):void 0;return a||fe(o,"record_id",{allowEmpty:false})},unique_id:["string",null],readonly:"boolean",table:{name:o=>Qe(o,"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:Or.bind(this)},source:{referencing_limit:o=>{if(o===null)return null;if(typeof o=="number"){if(0>o)throw new f('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(o>4503599627370546)throw new f('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return o}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:o=>{if(o===void 0)return;if(!o||Array.isArray(o)&&!o.length)return null;let a={name:c=>ot(c,'"name" in "index_restrictions"'),value:c=>Bt(c),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:c=>{if(c!==null&&typeof o.value!=typeof c)throw new f('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!o.hasOwnProperty("value"))throw new f('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return c}};Array.isArray(o)||(o=[o]);let u=o.map(c=>m.Params(c,a,["name"]));if(u.length)for(let c of u)c.condition&&c.hasOwnProperty("range")&&delete c.range;return u}},reference:o=>{if(o===null)return {record_id:null};if(o){if(typeof o=="string"){e=o;let a=Mr.bind(this)(n,o);return a||o}if(typeof o!="object")throw new f('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return m.Params(o,{unique_id:"string",record_id:a=>a==null?a:(e=a,typeof this.__private_access_key?.[a]=="string"&&(r.reference_private_key=this.__private_access_key[a]||void 0),fe(a,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:o=>ot(o,"index.name"),value:o=>Bt(o)}],tags:o=>{if(o==null)return o;if(typeof o=="string"&&(o=o.split(",").map(a=>a.trim())),!Array.isArray(o))throw new f('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return o.map(a=>qt(a,"tag"))},remove_bin:o=>{if(!o)return null;let a=[];if(Array.isArray(o))for(let u of o)if(typeof u=="string")a.push(u.split("?")[0]);else if(u.url&&u.size&&u.filename){let l=u.url.split("/").slice(0,3).join("/")+"/"+u.path;a.push(l);}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 a},progress:"function",data:o=>o},[],{precall:o=>{let a=o?.data||{};if(!a?.record_id&&!a.table)throw new f('"table.name" is required.',{code:"INVALID_PARAMETER"});typeof a.table=="string"&&(a.table={name:a.table,access_group:0}),o.files&&(t=o.files);}}),s=r.progress||null;if(delete i.progress,!this.__user){let o=!!(i.table?.subscription?.is_subscription_record||i.table?.subscription?.upload_to_feed||i.table?.subscription?.notify_subscribers||i.table?.subscription?.feed_referencing_records||i.table?.subscription?.notify_referencing_records);if(i.record_id)throw new f("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(i.table.access_group!=="public"&&i.table.access_group!==0)throw new f("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(o)throw new f("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(i.remove_bin)throw new f("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(i.unique_id)throw new f("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:i,progress:s,is_reference_post:e,files:t}}async function Vi(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((h,p)=>{if(!h||typeof h!="object"||Array.isArray(h))throw new f(`"params[${p}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let g=Mi.bind(this)(h),_=g.config;if(g.is_reference_post&&e.push(g.is_reference_post),typeof _.progress=="function"&&i===null&&(i=_.progress),_.service!==void 0){if(t===void 0)t=_.service;else if(t!==_.service)throw new f('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(_.owner!==void 0){if(n===void 0)n=_.owner;else if(n!==_.owner)throw new f('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete _.progress,delete _.service,delete _.owner,_}),service:"",owner:""};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),l=await Promise.all(c.map(h=>ze.bind(this)(h,"called from postRecord"))),d=jt.bind(this)(t,n);for(let h=0;h<c.length;h++){let p=c[h],g=l[h];if(p&&typeof p=="object"&&p.error&&g&&!g.record_id&&(g.error=p.error),typeof p?.reference_private_key=="string")for(let _ of e)this.__private_access_key[_]=p.reference_private_key;g?.unique_id&&Fi.bind(this)(d,g.unique_id,g.record_id);}return l}async function qi(r,e,t){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Mi.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},u=[],c=O(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 l=null;l=Object.assign({data:c.data},i);let d={};typeof s=="function"&&(d.progress=s),Object.keys(d).length&&Object.assign(a,{fetchOptions:d});let h=await S.bind(this)("post-record",l,a);if(z()&&u.length){let _=new FormData;for(let R of u)_.append(R.name,R.file,R.file.name);let b={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(b.service=i.service);let{bin_endpoints:w}=await Mt.bind(this)(_,b);h.bin?h.bin.push(...w):h.bin=w;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let p=!!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 ze.bind(this)(h,"called from postRecord",true);if(p&&(g.data=c.data),g.unique_id){let _=jt.bind(this)(i?.service,i?.owner);Fi.bind(this)(_,g.unique_id,g.record_id),z()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${_}:uniqueids`,JSON.stringify(this.__my_unique_ids[_]||{}));}catch{}},500));}return g}async function Bi(r,e){let t=await S.bind(this)("get-table",m.Params(r||{},{table:i=>Qe(i,"table",{allowEmpty:true}),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 $i(r,e){if(!r?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let t=m.Params(r||{},{table:s=>Qe(s,"table",{allowEmpty:true}),index:s=>ot(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:s=>{if(r?.order?.by==="index_name"&&typeof s=="string")return fe(s,"order.value",{allowEmpty:true,maxLength:256,blockKeyDelimiters:true});if(typeof s!="string"&&typeof s!="number"&&typeof s!="boolean")throw new f('"order.value" should be type: <string | number | boolean>.',{code:"INVALID_PARAMETER"});return s},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 ji(r,e){let t=await S.bind(this)("get-tag",m.Params(r||{},{table:n=>Qe(n,"table",{allowEmpty:true}),tag:n=>qt(n,"tag",{allowEmpty:true}),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 Ki(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 Hi(r,e){await this.__connection;let t=await Li.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 Wi(r){return zi.bind(this)({record_id:r.record_id,user_id:r.user_id,execute:"add"})}function Ji(r){return zi.bind(this)({record_id:r.record_id,user_id:r.user_id||null,execute:"remove"})}async function Gi(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 Qi(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($t[e])return $t[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 $t[e];});return $t[e]=n,n}function zi(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 U={},j={},oe={},ge={},he={},Kt={},Ht={};function Yi(r,e,t){r[e]||(r[e]=[]),r[e].push(t);}async function Wt(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 qr(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 U[s].setRemoteDescription(new RTCSessionDescription(i));let a=await U[s].createAnswer();await U[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}U?.[e]?r?(await Wt(Ht,e,i=>n.bind(this)(i,e,t)),await n.bind(this)(r,e,t)):await Wt(Ht,e,i=>n.bind(this)(i,e,t)):r&&Yi(Ht,e,r);}async function Br(r,e){if(this.log("receiveIceCandidate",r),U?.[e]&&U[e]?.remoteDescription&&U[e]?.remoteDescription?.type){if(!r)return Wt(Kt,e,t=>U[e].addIceCandidate(t));await Wt(Kt,e,t=>U[e].addIceCandidate(t)),await U[e].addIceCandidate(r);}else Yi(Kt,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"});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 Ht[s],delete Kt[s],j[s]&&Object.values(j[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete j[s],U?.[s]){U[s].connectionState!=="closed"&&(U[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:U[s],timestamp:new Date().toISOString(),state:U[s].connectionState,iceState:U[s].iceConnectionState,signalingState:U[s].signalingState};he[s]&&he[s](o),this.log("closeRTC",o);}delete he[s],delete ge[s],delete oe[s],delete U[s];};if(n)for(let s in U)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 Xi(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 Zi(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}]};U?.[t]||(U[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Xi(r.media),this.__mediaStream.getTracks().forEach(o=>{U[t].addTrack(o,this.__mediaStream);})),he[t]=e,j[t]||(j[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(j[t]).includes(u))throw new f(`Data channel with the protocol "${u}" already exists.`,{code:"INVALID_REQUEST"});let c=U[t].createDataChannel(u,a);j[t][u]=c;}for(let o in j[t]){let a=j[t][o];rs.bind(this)(t,a);}return ts.bind(this)(t,["onnegotiationneeded"]),await Vr.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;U[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),Vr.bind(this)(t),he[t]&&he[t]({type:"negotiationneeded",target:U[t],timestamp:new Date().toISOString(),signalingState:U[t].signalingState,connectionState:U[t].iceConnectionState,gatheringState:U[t].iceGatheringState});},o({target:U[t],channels:j[t],hangup:()=>ae.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function es(r){return async(e,t)=>{e=e||{},e=O(e).data;let n=r.sender_cid,i=await this.__socket;if(!ge[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 U?.[n]||(U[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Xi(e.media),this.__mediaStream.getTracks().forEach(o=>{U[n].addTrack(o,this.__mediaStream);})),delete ge[n],he[n]=t,j[n]||(j[n]={}),U[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;j[n][a.label]=a,rs.bind(this)(n,a);},ts.bind(this)(n,["onnegotiationneeded"]),await qr.bind(this)(null,n),await Br.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:U[n],channels:j[n],hangup:()=>ae.bind(this)({cid:n}),media:this.__mediaStream}}}async function Vr(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 U[r].createOffer();await U[r].setLocalDescription(t);let n=U[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 fc(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=he[e]||(()=>{}),i=r.candidate;this.log("ice gathering state set to",U[e].iceGatheringState),n({type:"icecandidate",target:U[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:U[e].iceGatheringState,connectionState:U[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function ts(r,e){let t=new Set(e),n=he[r]||(o=>{}),i=U[r],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{fc.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:()=>{Vr.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 rs(r,e,t){let n=new Set(t),i=he[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),j[r]&&(delete j[r][e.label],Object.keys(j[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,at=true,Ye=0;async function hc(){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 $r=null;async function ns(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});at=true;let r=this.__socket?await this.__socket:this.__socket;ae.bind(this)({close_all:true}),Re&&jr.bind(this)({group:null}),Ye=0,Te&&(Te.terminate(),Te=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",$r),this.__socket=null,null}async function Jt(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(at&&($r=()=>{!document.hidden&&!at&&Jt.bind(this)(r,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;Te&&(Te.terminate(),Te=null),this.__socket=new Promise(async n=>{await Je.bind(this)(),setTimeout(async()=>{let i=await hc.bind(this)();i.onopen=()=>{at=false,Ye=0,t!=="reconnect"&&window.addEventListener("visibilitychange",$r),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 $s=Object.create;var Ne=Object.defineProperty;var Hr=Object.getOwnPropertyDe
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
runInterval(); // Start interval
|
|
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],U?.[u.sender_cid]&&ae.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Vr.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Mr.bind(this)(c.sdpoffer,u.sender_cid),he[u.sender_cid]||(he[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=Yi.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{U[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&&U[u.sender_cid])if(U[u.sender_cid].signalingState==="have-local-offer")await U[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}),Ht.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 ts(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}),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 Br(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 rs(r,e){r=m.Params(r,{user_id:n=>m.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 ns(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 cc=typeof FormData<"u",lc=typeof HTMLFormElement<"u",dc=typeof SubmitEvent<"u",ge={},at={},pe={};function $r(r){return Object.freeze({id:r,status:"stopped"})}function is(r){return !!r&&typeof r=="object"&&r.status==="stopped"}function ss({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];},l=()=>new Promise((h,p)=>{let g=false;if(u.aborted){c(),h($r(r));return}let _=setInterval(async()=>{try{let b=await S.bind(this)("csr-poll",{id:r,service:t,owner:n},{auth:e});if(b.status==="running"||b.status==="pending"||g)return;g=!0,o&&o(b),clearInterval(_),c(),h(b);}catch(b){if(g)return;g=true,a&&a(b),clearInterval(_),c(),p(b);}},i);u.stop=()=>{g||(g=true,clearInterval(_),c(),h($r(r)));};}),d=()=>{let h=pe[r];h&&(h.stop?h.stop():(h.aborted=true,delete pe[r]));};if(s){let h=new Promise((p,g)=>{let _=false,b=ge[s].add([async()=>{try{let y=await l();return _||(_=!0,p(y)),y}catch(y){throw _||(_=true,g(y)),y}}])[0];at[r]=b,u.stop=()=>{if(!_){u.aborted=true;try{ge[s]&&ge[s].remove(at[r]);}catch{}delete at[r],c(),_=true,p($r(r));}};});return Object.assign(h,{stop:d})}else return Object.assign(l(),{stop:d})}function os(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 as(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 us(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()}`,l=r.service||this.service,d=r.owner||this.owner,h=`${c}#${l}:${u.id}`;Object.assign(u,{poll:p=>ss.call(this,{id:h,auth:o,service:l,owner:d,latency:p?.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,l)=>{ge[u].add([async()=>{try{let d=await a();if(i>0){let h=d.poll({latency:i});return c(h),h}return c(d),d}catch(d){throw l(d),d}}]);})}else return a()}async function cs(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,created:u?.stmp,updated:u?.utmp,request_body:u?.reqbdy,expires:u?.expt,status:u.stts,queue_name:u?.qid};for(let l in c)c[l]===void 0&&delete c[l];return (c.status==="running"||c.status==="pending")&&(c.poll=l=>ss.call(this,{id:s+c.id,auth:i,service:t,owner:n,latency:l?.latency||1e3,queue:u?.qid,onResponse:l?.onResponse,onError:l?.onError})),c}),a}async function ls(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&&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 ds(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 fs(r,e){if(await this.__connection,cc&&r instanceof FormData||lc&&r instanceof HTMLFormElement||dc&&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 hs(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 gs(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 ut(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 ps(r,e){if(r=L(r,{ignoreEmpty:true}).data,r=m.Params(r,{subscriber:n=>m.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 ms(r){await this.__connection,r=m.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 _s(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function bs(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{block:e},{auth:true})}async function ys(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ut.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unblock:e},{auth:true})}async function ws(r,e){await this.__connection;let t=await H.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 As(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 Es(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 Ss(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=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 l in o)c[l]=u[o[l]]||a[l];return c.bounced=String(c.bounced),c}),s}async function vs(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 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 Ts(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 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 Rs(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 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 Is(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 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 Ps(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 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 xs(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 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 Us(r,e){if(r=m.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 Cs(r){if(r=m.Params(r,{email:t=>m.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 Ds(r){if(r=m.Params(r,{email:t=>m.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 ks(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 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 Ns(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 Fs(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 Ls(){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 Os(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 Ms(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 Vs(r){return await this.__connection,r=m.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await S.bind(this)("getspell",r)}async function qs(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]),ge[u.sender_cid]&&delete ge[u.sender_cid],U?.[u.sender_cid]&&ae.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&Br.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(qr.bind(this)(c.sdpoffer,u.sender_cid),ge[u.sender_cid]||(ge[u.sender_cid]=u.sender_cid,delete u.message,u.connectRTC=es.bind(this)(u),u.type="rtc:incoming",u.hangup=(()=>{U[u.sender_cid]?ae.bind(this)({cid:u.sender_cid}):ge[u.sender_cid]&&(delete ge[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&&U[u.sender_cid])if(U[u.sender_cid].signalingState==="have-local-offer")await U[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{at?(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."}),Ye++,Ye<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+Ye),r({type:"reconnect",message:"Reconnecting to WebSocket server..."+Ye}),Jt.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 is(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 Je.bind(this)(),r=O(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}),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 jr(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 Je.bind(this)(),r=O(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 ss(r,e){r=m.Params(r,{user_id:n=>m.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 os(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 gc=typeof FormData<"u",pc=typeof HTMLFormElement<"u",mc=typeof SubmitEvent<"u",pe={},ut={},me={};function Kr(r){return Object.freeze({id:r,status:"stopped"})}function as(r){return !!r&&typeof r=="object"&&r.status==="stopped"}function us({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&&!pe?.[s]&&(pe[s]=new nt({breakWhenError:false,batchSize:1}));let u={stop:null,aborted:false,queue:s};me[r]=u;let c=()=>{me[r]===u&&delete me[r];},l=()=>new Promise((h,p)=>{let g=false;if(u.aborted){c(),h(Kr(r));return}let _=setInterval(async()=>{try{let b=await S.bind(this)("csr-poll",{id:r,service:t,owner:n},{auth:e});if(b.status==="running"||b.status==="pending"||g)return;g=!0,o&&o(b),clearInterval(_),c(),h(b);}catch(b){if(g)return;g=true,a&&a(b),clearInterval(_),c(),p(b);}},i);u.stop=()=>{g||(g=true,clearInterval(_),c(),h(Kr(r)));};}),d=()=>{let h=me[r];h&&(h.stop?h.stop():(h.aborted=true,delete me[r]));};if(s){let h=new Promise((p,g)=>{let _=false,b=pe[s].add([async()=>{try{let w=await l();return _||(_=!0,p(w)),w}catch(w){throw _||(_=true,g(w)),w}}])[0];ut[r]=b,u.stop=()=>{if(!_){u.aborted=true;try{pe[s]&&pe[s].remove(ut[r]);}catch{}delete ut[r],c(),_=true,p(Kr(r));}};});return Object.assign(h,{stop:d})}else return Object.assign(l(),{stop:d})}function cs(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 me)me[n]?.queue===r.queue&&t.push(n);else for(let n in me)t.push(n);for(let n of t){let i=me[n];i&&(i.stop?i.stop():(i.aborted=true,delete me[n]),e+=1);}return e}function ls(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 ds(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()}`,l=r.service||this.service,d=r.owner||this.owner,h=`${c}#${l}:${u.id}`;Object.assign(u,{poll:p=>us.call(this,{id:h,auth:o,service:l,owner:d,latency:p?.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 pe?.[u]||(pe[u]=new nt({breakWhenError:false,batchSize:1})),new Promise((c,l)=>{pe[u].add([async()=>{try{let d=await a();if(i>0){let h=d.poll({latency:i});return c(h),h}return c(d),d}catch(d){throw l(d),d}}]);})}else return a()}async function fs(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,created:u?.stmp,updated:u?.utmp,request_body:u?.reqbdy,expires:u?.expt,status:u.stts,queue_name:u?.qid};for(let l in c)c[l]===void 0&&delete c[l];return (c.status==="running"||c.status==="pending")&&(c.poll=l=>us.call(this,{id:s+c.id,auth:i,service:t,owner:n,latency:l?.latency||1e3,queue:u?.qid,onResponse:l?.onResponse,onError:l?.onError})),c}),a}async function hs(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&&pe?.[a]&&(pe[a].remove(ut[o]),delete ut[o]),S.bind(this)("csr-cancel",{id:o,service:e,owner:t},{auth:n})}async function gs(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 ps(r,e){if(await this.__connection,gc&&r instanceof FormData||pc&&r instanceof HTMLFormElement||mc&&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=O(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 ms(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 _s(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 ze.bind(this)(t.list[n]);return t}function ct(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 bs(r,e){if(r=O(r,{ignoreEmpty:true}).data,r=m.Params(r,{subscriber:n=>m.UserId(n,'User ID in "subscriber"'),subscription:ct.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 ys(r){await this.__connection,r=m.Params(r,{user_id:ct.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 ws(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ct.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function As(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ct.bind(this)},["user_id"]);return await S.bind(this)("subscription",{block:e},{auth:true})}async function Es(r){await this.__connection;let{user_id:e}=m.Params(r,{user_id:ct.bind(this)},["user_id"]);return await S.bind(this)("subscription",{unblock:e},{auth:true})}async function Ss(r,e){await this.__connection;let t=await H.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 vs(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 Ts(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 Rs(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=O(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 l in o)c[l]=u[o[l]]||a[l];return c.bounced=String(c.bounced),c}),s}async function Is(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 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 Ps(r){let e=m.Params(r,{user_id:n=>m.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,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 xs(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 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 Us(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 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 Cs(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 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 Ds(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 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 ks(r,e){if(r=m.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=>et(i.user)),n}async function Ns(r){if(r=m.Params(r,{email:t=>m.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 Fs(r){if(r=m.Params(r,{email:t=>m.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 Ls(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 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 Os(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 Ms(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 Vs(){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 qs(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}=O(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 Bs(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 $s(r){return await this.__connection,r=m.Params(r||{},{search:["spell","name",()=>"spell"],value:"string"}),await S.bind(this)("getspell",r)}async function js(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}
|
|
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.8.
|
|
218
|
+
Watch the video here: ${e.video}`}var E=class{constructor(e,t,n,i){this.__version="1.8.3";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:K,generateRandom:De,toBase62:Zn,fromBase62:ie,decodeServiceId:Ur,formatServiceId:ei,extractFormData:O,terminatePendingRequests:Ii,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=si.bind(this);this.unregisterTicket=oi.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 b=Ur(e);n&&typeof n=="object"&&(i=n),t&&typeof t=="object"&&(n=t),t=b.owner,e=b.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 l=`https://${this.target_cdn}.cloudfront.net`,d=e.substring(0,4);this.admin_endpoint=fetch(`${l}/${d}/admin-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((w,R)=>{let P=new FileReader;P.onloadend=()=>w(P.result),P.onerror=R,P.readAsDataURL(b);})).then(b=>{try{return typeof b=="string"?JSON.parse(atob(b.split(",")[1])):null}catch{throw new f("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${l}/${d}/record-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((w,R)=>{let P=new FileReader;P.onloadend=()=>w(P.result),P.onerror=R,P.readAsDataURL(b);})).then(b=>{try{return typeof b=="string"?JSON.parse(atob(b.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 p=h?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",p),p?.connection){for(let b in p)this[b]=p[b];p.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${De(16)}`);}this.__authConnection=(async()=>{let b=await this.admin_endpoint,w={UserPoolId:b.userpool_id,ClientId:b.userpool_client};xr()&&(w.Storage=window.localStorage),this.userPool=new Rr(w);try{this.user||await G.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!p?.connection&&!u?Ee.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let g=`${this.service}/${this.owner}`,_=h?window.sessionStorage.getItem(`${g}:uniqueids`):null;if(_)try{let b=JSON.parse(_);this.__my_unique_ids=b&&typeof b=="object"&&!Array.isArray(b)?{[g]:b}:{};}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let b=null;await this.record_endpoint,p?.connection||(b=this._updateConnection({refresh:c}));let w=()=>{if(this.__class_properties_has_been_cached)return;let R=()=>{let P={},I=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let D of I)P[D]=this[D];h&&window.sessionStorage.setItem(`${e}#${t}`,JSON.stringify(P)),this.__class_properties_has_been_cached=true;}};return b instanceof Promise?b.then(()=>R()):R()};return h&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),w();}),window.addEventListener("visibilitychange",()=>{w();})),await b,await this.__authConnection,this.connection})(),this.__connection.then(b=>{((b?.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
|
|
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 _s.bind(this)(e,t)}closeRTC(e){return ae.bind(this)(e)}connectRTC(e,t){return Zi.bind(this)(e,t)}connectRealtime(e){return Jt.bind(this)(e)}spellcast(e){return Bs.bind(this)(e)}getspell(e){return $s.bind(this)(e)}dopamine(e){return js.bind(this)(e)}getUniqueId(e,t){return Ki.bind(this)(e,t)}resendInvitation(e){return Fs.bind(this)(e)}cancelInvitation(e){return Ns.bind(this)(e)}getInvitations(e,t){return ks.bind(this)(e,t)}openIdLogin(e){return ui.bind(this)(e)}loginWithToken(e){return ci.bind(this)(e)}clientSecretRequest(e){return ds.bind(this)(e)}clientSecretRequestHistory(e,t){return fs.bind(this)(e,t)}cancelClientSecretRequest(e){return hs.bind(this)(e)}stopClientSecretPolling(e){return cs.bind(this)(e||{})}isPollStopped(e){return as(e)}clientSecretRequestQueueCount(e){return ls.bind(this)(e)}consumeTicket(e){return ri.bind(this)(e)}getConsumedTickets(e,t){return ii.bind(this)(e,t)}getTickets(e,t){return ni.bind(this)(e,t)}closeRealtime(){return ns.bind(this)()}getRealtimeUsers(e,t){return ss.bind(this)(e,t)}sendInquiry(e){return gs.bind(this)(e)}blockAccount(e){return Is.bind(this)(e)}unblockAccount(e){return Ps.bind(this)(e)}deleteAccount(e){return xs.bind(this)(e)}inviteUser(e,t){return Us.bind(this)(e,t)}createAccount(e){return Cs.bind(this)(e)}grantAccess(e){return Ds.bind(this)(e)}updateUserAttributes(e){return Ls.bind(this)(e)}getRealtimeGroups(e,t){return os.bind(this)(e,t)}postRealtime(e,t,n){return is.bind(this)(e,t,n)}joinRealtime(e){return jr.bind(this)(e)}getProfile(e){return ai.bind(this)(e)}getFile(e,t){return ke.bind(this)(e,t)}secureRequest(e,t){return ps.bind(this)(e,t)}getFormResponse(){return xi.bind(this)()}getRecords(e,t){return Oi.bind(this)(e,t)}getTables(e,t){return Bi.bind(this)(e,t)}getIndexes(e,t){return $i.bind(this)(e,t)}getTags(e,t){return ji.bind(this)(e,t)}deleteRecords(e,t){return Hi.bind(this)(e,t)}resendSignupConfirmation(){return li.bind(this)()}recoverAccount(e=false){return di.bind(this)(e)}getUsers(e,t){return Ai.bind(this)(e,t)}disableAccount(){return hi.bind(this)()}lastVerifiedEmail(e){return Ei.bind(this)(e)}unsubscribeNewsletter(e){return Ts.bind(this)(e)}subscribeNotification(e,t){return Os.bind(this)({endpoint:e,keys:t})}unsubscribeNotification(e,t){return Ms.bind(this)({endpoint:e,keys:t})}vapidPublicKey(){return Vs.bind(this)()}pushNotification(e,t){return qs.bind(this)(e,t)}getNewsletters(e,t){return Rs.bind(this)(e,t)}getNewsletterSubscription(e,t){return Ss.bind(this)(e,t)}requestUsernameChange(e){return Si.bind(this)(e)}grantPrivateRecordAccess(e){return Wi.bind(this)(e)}removePrivateRecordAccess(e){return Ji.bind(this)(e)}listPrivateRecordAccess(e,t){return Gi.bind(this)(e,t)}requestPrivateRecordAccessKey(e){return Qi.bind(this)(e)}deleteFiles(e){return Ni.bind(this)(e)}uploadFiles(e,t){return Mt.bind(this)(e,t)}mock(e,t){return ms.bind(this)(e,t)}login(e){return Dr.bind(this)(e)}logout(e){return rt.bind(this)(e)}signup(e,t){return fi.bind(this)(e,t)}resetPassword(e){return gi.bind(this)(e)}verifyEmail(e,t){return _i.bind(this)(e,t)}verifyPhoneNumber(e,t){return mi.bind(this)(e,t)}forgotPassword(e,t){return bi.bind(this)(e,t)}changePassword(e){return yi.bind(this)(e)}updateProfile(e){return wi.bind(this)(e)}postRecord(e,t,n){return qi.bind(this)(e,t,n)}getSubscriptions(e,t){return bs.bind(this)(e,t)}subscribe(e){return ys.bind(this)(e)}unsubscribe(e){return ws.bind(this)(e)}blockSubscriber(e){return As.bind(this)(e)}unblockSubscriber(e){return Es.bind(this)(e)}subscribeNewsletter(e){return vs.bind(this)(e)}bulkPostRecords(e){return Vi.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 Hr={};var Gt=typeof globalThis<"u"?globalThis:void 0;Gt&&(Gt.Skapi=E,Gt.SkapiError=f,Gt.SkapiTypes=Hr);/*! Bundled license information:
|
|
234
234
|
|
|
235
235
|
ieee754/index.js:
|
|
236
236
|
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
@@ -280,5 +280,5 @@ amazon-cognito-identity-js/es/index.js:
|
|
|
280
280
|
|
|
281
281
|
js-cookie/dist/js.cookie.mjs:
|
|
282
282
|
(*! js-cookie v3.0.8 | MIT *)
|
|
283
|
-
*/export{E as Skapi,f as SkapiError,
|
|
283
|
+
*/export{E as Skapi,f as SkapiError,Hr as Types};//# sourceMappingURL=skapi.browser.mjs.map
|
|
284
284
|
//# sourceMappingURL=skapi.browser.mjs.map
|