skapi-js 2.0.0-rc.1 → 2.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -203,8 +203,8 @@
203
203
  limitations under the License.
204
204
 
205
205
  */
206
- var Hs=Object.create;var Fe=Object.defineProperty;var Gr=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 Qr=(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});},zr=(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=Gr(e,i))||n.enumerable});return r};var Oe=(r,e,t)=>(t=r!=null?Hs(Js(r)):{},zr(!r||!r.__esModule?Fe(t,"default",{value:r,enumerable:true}):t,r)),ne=r=>zr(Fe({},"__esModule",{value:true}),r),T=(r,e,t,n)=>{for(var i=Gr(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 Zr=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,Yr=zt.length;xe<Yr;++xe)ce[xe]=zt[xe],X[zt.charCodeAt(xe)]=xe;var xe,Yr;X[45]=62;X[95]=63;function Xr(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=Xr(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=Xr(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 en=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 rn=W((Ac,tn)=>{var oo={}.toString;tn.exports=Array.isArray||function(r){return oo.call(r)=="[object Array]"};});var yt=W(Ve=>{var Xt=Zr(),Me=en(),on=rn();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 an(this,r,e,t)}y.poolSize=8192;y._augment=function(r){return r.__proto__=y.prototype,r};function an(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 an(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 un(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 un(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(un(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=cn(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"&&on(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(!on(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 cn(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 mn(r).length;default:if(n)return pt(r).length;e=(""+e).toLowerCase(),n=true;}}y.byteLength=cn;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 fn(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?fn(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 ln(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:nn(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):nn(r,[e],t,n,i);throw new TypeError("val must be string, number or Buffer")}function nn(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 ln(this,e,t,n,true)};y.prototype.lastIndexOf=function(e,t,n){return ln(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 dn(r,e,t,n){return bt(Uo(e),r,t,n)}function _o(r,e,t,n){return dn(r,e,t,n)}function bo(r,e,t,n){return bt(mn(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 dn(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 fn(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 sn=4096;function Ao(r){var e=r.length;if(e<=sn)return String.fromCharCode.apply(String,r);for(var t="",n=0;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=sn));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 z(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;z(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;z(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||z(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||z(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||z(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||z(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||z(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);z(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);z(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||z(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||z(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||z(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||z(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||z(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 hn(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 gn(r,e,t,n,i){return i||hn(r,e,t,4),Me.write(r,e,t,n,23,4),t+4}y.prototype.writeFloatLE=function(e,t,n){return gn(this,e,t,true,n)};y.prototype.writeFloatBE=function(e,t,n){return gn(this,e,t,false,n)};function pn(r,e,t,n,i){return i||hn(r,e,t,8),Me.write(r,e,t,n,52,8),t+8}y.prototype.writeDoubleLE=function(e,t,n){return pn(this,e,t,true,n)};y.prototype.writeDoubleBE=function(e,t,n){return pn(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 mn(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 _n=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:()=>bn,__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 bn(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(bn(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 yn=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 w=(((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,b=((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+w|0,a=o,o=s,s=i,i=w+b|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=u,n[5]+=c,n[6]+=l,n[7]+=d;},r})();wt.RawSha256=Zo;});var wn,An,En=Le(()=>{wn=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)},An=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 Sn(r){return new TextEncoder().encode(r)}function vn(r){return new TextDecoder("utf-8").decode(r)}var Tn=Le(()=>{});var Rn={};dt(Rn,{fromUtf8:()=>ea,toUtf8:()=>ta});var ea,ta,In=Le(()=>{En();Tn();ea=r=>typeof TextEncoder=="function"?Sn(r):wn(r),ta=r=>typeof TextDecoder=="function"?vn(r):An(r);});var Pn=W(At=>{Object.defineProperty(At,"__esModule",{value:true});At.convertToBuffer=void 0;var ra=(In(),ne(Rn)),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 xn=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 Un=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 Cn=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 Dn=W(le=>{Object.defineProperty(le,"__esModule",{value:true});le.uint32ArrayFrom=le.numToUint8=le.isEmptyData=le.convertToBuffer=void 0;var ua=Pn();Object.defineProperty(le,"convertToBuffer",{enumerable:true,get:function(){return ua.convertToBuffer}});var ca=xn();Object.defineProperty(le,"isEmptyData",{enumerable:true,get:function(){return ca.isEmptyData}});var la=Un();Object.defineProperty(le,"numToUint8",{enumerable:true,get:function(){return la.numToUint8}});var da=Cn();Object.defineProperty(le,"uint32ArrayFrom",{enumerable:true,get:function(){return da.uint32ArrayFrom}});});var Nn=W(Rt=>{Object.defineProperty(Rt,"__esModule",{value:true});Rt.Sha256=void 0;var kn=(ur(),ne(ar)),Tt=cr(),lr=yn(),dr=Dn(),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, kn.__awaiter)(this,void 0,void 0,function(){return (0, kn.__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)(Nn(),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 jn=W((ml,$n)=>{$n.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 Qr=="function")try{Z=_n();}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 q=C;function C(r,e){r!=null&&this.fromString(r,e);}function J(){return new C(null)}var Se,pa=0xdeadbeefcafe,Fn=(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 Ln=typeof navigator<"u";Ln&&Fn&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=_a,Se=30):Ln&&Fn&&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 On(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=On(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+=On(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,w=_-c,b=e??J();for(s.dlShiftTo(w,b),t.compareTo(b)>=0&&(t[t.t++]=1,t.subTo(b,t)),C.ONE.dlShiftTo(c,b),b.subTo(s,s);s.t<c;)s[s.t++]=0;for(;--w>=0;){var S=t[--_]==l?this.DM:Math.floor(t[_]*h+(t[_-1]+g)*p);if((t[_]+=s.am(0,S,t,w,0,c))<S)for(s.dlShiftTo(w,b),t.subTo(b,t);t[_]<--S;)t.subTo(b,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(),w;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,_):(w=s,s=_,_=w),o.mulTo(_,a[p],s);}for(;h>=0&&(r[h]&1<<n)==0;)o.sqrTo(s,_),w=s,s=_,_=w,--n<0&&(n=this.DB-1,--h);}var b=o.revert(s);return t(null,b),b}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 q(Za,16),this.g=new q("2",16),this.k=new q(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 q(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 q(c,16)),this.g.modPow(new q(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(q.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 q(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(q.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(q.ZERO))throw new Error("U cannot be zero.");var c=""+this.poolName+n+":"+i,l=this.hash(c),d=new q(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 q))throw new Error("Not a BigInteger");var i=n.compareTo(q.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 q(o,16).add(q.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},r})();var Mn=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(Mn.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 Vn="5.0.4";var nu="aws-amplify/"+Vn,wr={userAgent:nu,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},qn=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",Bn=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(_,w){if(_)return i.onFailure(_);var b=w.ChallengeParameters;s.username=b.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",u=new q(b.SRP_B,16),c=new q(b.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),u,c,function(S,U){S&&i.onFailure(S);var I=a.getNowString(),D=$.Buffer.concat([$.Buffer.from(s.pool.getUserPoolName(),"utf8"),$.Buffer.from(s.username,"utf8"),$.Buffer.from(b.SECRET_BLOCK,"base64"),$.Buffer.from(I,"utf8")]),F=new Ar.Sha256(U);F.update(D);var Q=F.digestSync(),L=$.Buffer.from(Q).toString("base64"),P={};P.USERNAME=s.username,P.PASSWORD_CLAIM_SECRET_BLOCK=b.SECRET_BLOCK,P.TIMESTAMP=I,P.PASSWORD_CLAIM_SIGNATURE=L,s.deviceKey!=null&&(P.DEVICE_KEY=s.deviceKey);var k=function(Ne,Jr){return s.client.request("RespondToAuthChallenge",Ne,function(lt,Ks){return lt&&lt.code==="ResourceNotFoundException"&&lt.message.toLowerCase().indexOf("device")!==-1?(P.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(Ne,Jr)):Jr(lt,Ks)})},N={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:P,Session:w.Session,ClientMetadata:p};s.getUserContextData()&&(N.UserContextData=s.getUserContextData()),k(N,function(O,Ne){return O?i.onFailure(O):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 w={Salt:$.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:$.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=w.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Bn},function(b,S){return b?s.onFailure(b):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),S.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,S.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 q(g.SRP_B,16),w=new q(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,_,w,function(b,S){if(b)return n.onFailure(b);var U=a.getNowString(),I=$.Buffer.concat([$.Buffer.from(s.deviceGroupKey,"utf8"),$.Buffer.from(s.deviceKey,"utf8"),$.Buffer.from(g.SECRET_BLOCK,"base64"),$.Buffer.from(U,"utf8")]),D=new Ar.Sha256(S);D.update(I);var F=D.digestSync(),Q=$.Buffer.from(F).toString("base64"),L={};L.USERNAME=s.username,L.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,L.TIMESTAMP=U,L.PASSWORD_CLAIM_SIGNATURE=Q,L.DEVICE_KEY=s.deviceKey;var P={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:L,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 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 w={Salt:$.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:$.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=w.PasswordVerifier,a.deviceGroupKey=h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,a.randomPassword=g.getRandomPassword(),a.client.request("ConfirmDevice",{DeviceKey:h.AuthenticationResult.NewDeviceMetadata.DeviceKey,AccessToken:a.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:w,DeviceName:Bn},function(b,S){return b?i.onFailure(b):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),S.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,S.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(jn());function We(){}We.prototype.userAgent=qn();var Kn=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(Hn())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 Hn(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (Hn=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)),Wn=(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":Kn(),"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 Jn(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 Jn(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 Jn(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 Wn(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"],Gn={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"],Zn=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],Qn=typeof TextEncoder<"u"?new TextEncoder:null;function Su(){if(typeof globalThis<"u")return globalThis.Buffer}function vu(r){if(Qn)return Qn.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 ei(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 Y(){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 zn(r){return r===""||r==="on"||r==="true"}function Yn(r){return r==="false"}function Xn(r,e,t){e.name&&t(r,e.name,e.value);}var Ft=Y(),Ru=typeof SubmitEvent<"u",Iu=typeof HTMLFormElement<"u";function M(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===""||zn(u.value)?s(n,u.name,true):Yn(u.value)?s(n,u.name,false):u.value&&s(n,u.name,u.value):u.type==="checkbox"&&(zn(u.value)?s(n,u.name,false):Yn(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++)Xn(n,c[d],s);for(let d=0;d<l.length;d++)Xn(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(Gn[t])e[Gn[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=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 Cr(r,e){let t=Zn.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 w=ku(_);return `${h}-${d}-${w}`}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,(_,w)=>typeof w=="function"?"custom validator":w)}catch{return String(g)}}function h(g,_){return _==="array"?Array.isArray(g):_==="object"?s(g):_==="null"?g===null:_==="undefined"?typeof g>"u":typeof g===_}function p(g){return n===null?g:`${n}[${g}]`}if(typeof e>"u")throw new Error('Argument "struct" is required.');if(typeof e=="function")return e(r);if(o(e)){if(!s(r))throw new Error(`Data schema does not match:
207
- `+JSON.stringify(r,null,2));for(let g of Object.keys(e)){let _=p(g);if(Object.prototype.hasOwnProperty.call(r,g))r[g]=tt(r[g],e[g],t,_);else {if(t.indexOf(_)!==-1)throw new Error(`Key "${_}" is required.`);let w=e[g];a(w)&&w.length>1&&typeof w[w.length-1]=="function"&&(r[g]=w[w.length-1]());}}return r}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let _=e[0];if(!Array.isArray(r))throw new Error(`Type <${c(r)}> is invalid in "${n}". Expected a list.`);for(let w=0;w<r.length;w++){let b=r[w];if(u(_)){if(!h(b,_))throw new Error(`Type <${c(b)}> is invalid in "${n}". Expected a list of Type <${_}>.`)}else if(typeof _=="function")r[w]=_(b);else if(b!==_)throw new Error(`Value ${l(b)} is invalid in "${n}". Expected a list of ${l(_)}.`)}g=true;}else if(Array.isArray(r)&&e.every(w=>!a(w)&&w!=="array")){for(let w=0;w<r.length;w++){let b=false,S="";for(let U of e)try{r[w]=tt(r[w],U,t,n),b=!0;break}catch(I){typeof U=="function"&&(S=I?.message||String(I));}if(!b&&S)throw new Error(S);if(!b){let U=e.map(d).join(", ");throw new Error(`${l(r[w])} is invalid in "${n}". allowed types or values are: ${U}.`)}}g=true;}else {let w="";for(let b of e)try{r=tt(r,b,t,n),g=!0;break}catch(S){typeof b=="function"&&(w=S?.message||String(S));}if(!g&&w)throw new Error(w)}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=M(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 V=null;function Dr(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 v.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 Dr(t)}async function ni(r,e){await this.__connection;let t=await v.bind(this)("ticket",Object.assign({exec:"list"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Dr),t}async function ii(r,e){await this.__connection;let t=await v.bind(this)("ticket",Object.assign({exec:"consumed"},r||{}),{auth:true,fetchOptions:e});return t.list=t.list.map(Dr),t}async function si(r){return v.bind(this)("register-ticket",Object.assign({exec:"reg"},r),{auth:true})}async function oi(r){return v.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=V.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),V=this.userPool.getCurrentUser(),!V){this.log("getSession:cognitoUser",V),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};V.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,V).then(b=>o(l(b))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),_=g.getExpiration(),w=_<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",_),this.log("getSession:isExpired",w),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),w||u||!h.isValid())ti.bind(this)(h,V).then(b=>o(l(b))).catch(a);else try{o(l(h));}catch(b){a(b);}});}),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:w=>{V=d.cognitoUser,e().then(b=>c(this.user));},onFailure:w=>{l(new f(w.message||"Failed to authenticate user.",{code:w.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:w,code:b}=Lt(g),S=typeof g?.message=="string"?g.message:"";if(b==="NotAuthorizedException"?S.includes("User is disabled.")?(this.__disabledAccount=h,_=["This account is disabled.","USER_IS_DISABLED"]):u?_=["The account already exists.","ACCOUNT_EXISTS"]:_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotFoundException"?_=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,_=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(b==="TooManyRequestsException"||b==="LimitExceededException")&&(_=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),w.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),_.length){let U=_[1],I=_[0];l(new f(I,{code:U,cause:g}));}else l(w);}});}),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 v.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),V=new we(n),V.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof V,cognitoUserKeys:Object.keys(V||{}),cognitoUser:V});}}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;V&&(r?e=new Promise((n,i)=>{V.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):V.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}=M(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 v.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 v.bind(this)("recover-account",{username:this.__disabledAccount,redirect:r}),"SUCCESS: Recovery e-mail has been sent."}async function kr(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 v.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?(V=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?kr.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 v.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(!V)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?V?.verifyAttribute(r,n,u):(u.inputVerificationCode=null,V?.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)=>{V.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 v.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)=>{V?.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=M(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 v.bind(this)("get-users",r,{auth:true,fetchOptions:e})}async function Ei(r){await this.__connection;let e=await v.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 v.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=Y(),Nr=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 Fr(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(Nr++,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[Nr%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[Nr%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 v(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 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 w=n?.ignoreService?{}:{service:u,owner:c};Object.assign(w,p),e=M(e).data,e?e&&typeof e=="object"&&(e=Object.assign(w,e)):e=w;let b=`${s}:${i?"auth":"public"}:${r}`,S=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(st&&e instanceof FormData)){let P=function(k){return typeof k=="object"&&k!==null?Object.keys(k).sort().reduce((N,O)=>(typeof k[O]=="object"&&k[O]!==null?N[O]=P(k[O]):N[O]=k[O],N),{}):k};return K.hash(b+"/"+JSON.stringify(P(e)))}return K.hash(b+"/"+u)})(),{requestKey:U,requestKeyWithStartKey:I}=zu.bind(this)({params:e,url:r,fetchMore:g,hashedParams:S});if(!U||U&&typeof U=="object")return U;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 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=(O,Ne)=>typeof O=="string"?O:O===true?Ne: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 Q={public_identifier:this.__public_identifier,service:u,owner:c};D["Content-Meta"]=JSON.stringify(Q),t.revalidate&&(D["Cache-Control"]="no-cache",D.Pragma="no-cache");let L={headers:D};if(t?.responseType&&(L.responseType=t.responseType),s==="GET"){if(e){let P=[];if(st&&e instanceof FormData?P=Array.from(e.entries()).map(([k,N])=>{let O=typeof N=="string"?N:N.name;return encodeURIComponent(k)+"="+encodeURIComponent(O)}):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("&");}}L.body=null;}else if(st&&e instanceof FormData)L.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));}L.body=P.toString();}else typeof e=="string"?L.body=e:L.body=e?JSON.stringify(e):null;if(L.method=s,Ge===null){let P={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:k=>{this.onBatchProcess.forEach(N=>N(k));}};Ge=new nt(P);}return this.log("request-opt",L),new Promise((P,k)=>{Ge.add([async()=>{let N=Pi.bind(this)(d,L,_);it[I]=N;try{let O=Yu.bind(this)({hashedParam:U,requestKeyWithStartKey:I,url:r,fetched:await N});return delete it[I],this.log("request:end",O),P(O),O}catch(O){throw delete it[I],this.log("request:err",O),k(O),O}}]);})}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:Fr(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{t({status:"upload",progress:Fr(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((w,b)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let S=a.responseText;try{S=JSON.parse(S);}catch{}if(a.status>=200&&a.status<300)w(S);else if(a.status===429){let U=a.getResponseHeader("Retry-After"),I=Ri(U);I!==null?setTimeout(()=>{u(p,g,_).then(w,b);},I):b("Too many requests");}else b(S);},a.onerror=()=>b("Network error"),a.onabort=()=>b("Aborted"),a.ontimeout=()=>b("Timeout"),a.upload&&typeof _=="function"&&(a.upload.onprogress=_),a.send(g);});function c(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let _="";for(;p>0;)_=g[p%62]+_,p=Math.floor(p/62);return _}let 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:w=null,url:b,cdn:S}=await v.bind(this)("get-signed-url",_,{auth:!!this.__user});h.push(S);let U=new FormData;for(let I in w)U.append(I,w[I]);U.append("file",g);try{await u(b,U,typeof i=="function"?I=>i({status:"upload",progress:Fr(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 R(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 b=window.location.href;c=a.target;let S=new URL(c.action);l=S.href;let U=l?l.match(/(?<=\{).*?(?=\})/g):"";if(U)for(let I of U){if(!I)continue;let D=c.querySelector(`[name="${I}"]`);if(D)if(D.type==="file")for(let F=0;F<=D.files.length-1;F++)D.files[F]&&(d[I]||(d[I]=[]),d[I].push(new Promise((Q,L)=>{let P=new FileReader;P.onload=function(){Q(P.result);},P.readAsDataURL(D.files[F]),P.onerror=L;})));else l=l.replace(`{${I}}`,D.value);}c.getAttribute("action")===null?u=false:h=S.href===b;}let p=async b=>{if(l)for(let S in d)d[S].length&&(l=l.replace(`{${S}}`,(await Promise.all(d[S])).join(",")));return c&&u&&(window.sessionStorage.setItem(`${this.service}:${K.hash(l)}`,JSON.stringify(b)),h?window.location.replace(l):window.location.href=l),b},g,_=b=>{throw b instanceof f?b.name=n+"()":b=b instanceof Error?b:new f(b,{name:n+"()"}),b},w=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let b=await g;return p(b)}return p(g)}catch(b){throw _(b)}};if(e){let b=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Ot?.[b]||(Ot[b]=w().finally(()=>{delete Ot[b];})),Ot[b]}return w()};}}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 Lr(r){return typeof r=="string"&&r.slice(-1)==="."}function Or(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 Mr(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"?Lr(e.index.name)?Or(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 w=_[_.length-1],b=_[10];if(b==="__data__"&&w==="__json__.json")return {isDataFile:!0,rawUrl:p};let S=_[9],U=_[8],I=o(_[6]),D=p,F=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(L){console.error("Error getting signed url for private file:",L),D=p;}let Q={access_group:I,filename:w,url:D,path:g,size:ie(S),uploaded:ie(U),getFile:(L,P)=>{let k={dataType:L||"download",progress:P,_ref:d},N=()=>ke.bind(this)(D,Object.assign({},k,{_update:Q}));return F?ke.bind(this)(p,Object.assign({},k,F)).catch(()=>N()):N()}};return {pathKey:b,obj:Q}}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 v.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:S=>S}),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],w=e.expires;if(w){if(!a)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(w<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let S={request:d?"get-host":"get",id:d||h[5],key:t.split("?")[0],expires:w};g&&(S.service=g);let U=e.browserCache,I={auth:true};if(U){if(U<0)throw new f('"config.browserCache" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});I.method="get",I.stableGateway=true,S.browser_cache=U;let D=this.session?.idToken?.payload?.sub||this.user?.user_id;D&&(S.uid=D),e.refresh&&(I.revalidate=true);}r=(await v.bind(this)("get-signed-url",S,I)).url;}else if(p){let S=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<S)){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:S,expiresIn:this.session?.idToken?.payload?.exp-S,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(F){throw this.log("getFile:new token error",F),new f("User login is required.",{code:"INVALID_REQUEST"})}}let U=this.bearerToken||this.session?.idToken?.jwtToken;if(!U||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});r+=`${r.includes("?")?"&":"?"}t=${encodeURIComponent(U)}`;let I=h[6]==="**"?"**":parseInt(h[6]),D=this.user?.access_group??-1;if(this.user.user_id!==h[3]&&(I==="**"||D<I)){let F=h[5];if(this.__private_access_key[F]&&typeof this.__private_access_key[F]=="string")r+=`&p=${encodeURIComponent(this.__private_access_key[F])}`;else if(this.owner!==this.host)try{let Q=await this.requestPrivateRecordAccessKey({record_id:F,reference_id:e?._ref});r+=`&p=${encodeURIComponent(Q)}`;}catch{}}}if(e?.dataType==="endpoint")return e._update&&(e._update.url=r),r;if(e?.dataType==="download"){let S=document.createElement("a");return S.href=r,document.body.appendChild(S),S.setAttribute("download",_),S.target="_blank",S.click(),document.body.removeChild(S),null}return new Promise(async(S,U)=>{try{let I=await v.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=()=>S(D.result),D.readAsDataURL(I);}else S(I);}catch(I){if(e?.browserCache&&!e?.refresh)try{S(await ke.bind(this)(t,Object.assign({},e,{refresh:!0})));return}catch(D){U(D);return}U(I);}})}function jt(r,e){return `${r||this.service}/${e||this.owner}`}function Vr(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=M(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=Vr.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:Mr.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"&&Lr(c.index.name)?Or(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 v.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"?Vr.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:Mr.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=Vr.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 v.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=M(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 v.bind(this)("post-record",l,a);if(Y()&&u.length){let _=new FormData;for(let S of u)_.append(S.name,S.file,S.file.name);let w={record_id:h.rec,progress:s};i.hasOwnProperty("service")&&(w.service=i.service);let{bin_endpoints:b}=await Mt.bind(this)(_,w);h.bin?h.bin.push(...b):h.bin=b;}o&&typeof h?.reference_private_key=="string"&&(this.__private_access_key[o]=h.reference_private_key);let 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),Y()&&(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 v.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 v.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 v.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 v.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 v.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 v.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=v.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),v.bind(this)("grant-private-access",t,{auth:true})}var x={},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 Br(r,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let t=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await x[s].setRemoteDescription(new RTCSessionDescription(i));let a=await x[s].createAnswer();await x[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}x?.[e]?r?(await 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 $r(r,e){if(this.log("receiveIceCandidate",r),x?.[e]&&x[e]?.remoteDescription&&x[e]?.remoteDescription?.type){if(!r)return Wt(Kt,e,t=>x[e].addIceCandidate(t));await Wt(Kt,e,t=>x[e].addIceCandidate(t)),await x[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],x?.[s]){x[s].connectionState!=="closed"&&(x[s].close(),e.send(JSON.stringify({action:"rtc",uid:s,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));let o={type:"connectionstatechange",target:x[s],timestamp:new Date().toISOString(),state:x[s].connectionState,iceState:x[s].iceConnectionState,signalingState:x[s].signalingState};he[s]&&he[s](o),this.log("closeRTC",o);}delete he[s],delete ge[s],delete oe[s],delete x[s];};if(n)for(let s in x)i(s);else i(t);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function 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}]};x?.[t]||(x[t]=new RTCPeerConnection(s)),r?.media&&(this.__mediaStream=await Xi(r.media),this.__mediaStream.getTracks().forEach(o=>{x[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=x[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 qr.bind(this)(t),{hangup:()=>oe[t]&&oe[t](false),connection:new Promise(o=>{oe[t]=(a=>{if(this.log("receiver picked up the call",t),!a)return ae.bind(this)({cid:t}),null;x[t].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${t}".`),qr.bind(this)(t),he[t]&&he[t]({type:"negotiationneeded",target:x[t],timestamp:new Date().toISOString(),signalingState:x[t].signalingState,connectionState:x[t].iceConnectionState,gatheringState:x[t].iceGatheringState});},o({target:x[t],channels:j[t],hangup:()=>ae.bind(this)({cid:t}),media:this.__mediaStream});}).bind(this);})}}function es(r){return async(e,t)=>{e=e||{},e=M(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 x?.[n]||(x[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Xi(e.media),this.__mediaStream.getTracks().forEach(o=>{x[n].addTrack(o,this.__mediaStream);})),delete ge[n],he[n]=t,j[n]||(j[n]={}),x[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 Br.bind(this)(null,n),await $r.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:x[n],channels:j[n],hangup:()=>ae.bind(this)({cid:n}),media:this.__mediaStream}}}async function qr(r){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",r);let e=await this.__socket,t=await x[r].createOffer();await x[r].setLocalDescription(t);let n=x[r].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:r,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function 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",x[e].iceGatheringState),n({type:"icecandidate",target:x[e],timestamp:new Date().toISOString(),candidate:r.candidate.candidate,sdpMid:r.candidate.sdpMid,sdpMLineIndex:r.candidate.sdpMLineIndex,usernameFragment:r.candidate.usernameFragment,protocol:r.candidate.protocol,gatheringState:x[e].iceGatheringState,connectionState:x[e].iceConnectionState}),t.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function ts(r,e){let t=new Set(e),n=he[r]||(o=>{}),i=x[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:()=>{qr.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 jr=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&&Kr.bind(this)({group:null}),Ye=0,Te&&(Te.terminate(),Te=null);try{r&&r.close();}catch{}return window.removeEventListener("visibilitychange",jr),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&&(jr=()=>{!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",jr),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 Sc=Object.create;var et=Object.defineProperty;var yi=Object.getOwnPropertyDescriptor;var vc=Object.getOwnPropertyNames;var Rc=Object.getPrototypeOf,Tc=Object.prototype.hasOwnProperty;var Ic=(t,e,r)=>e in t?et(t,e,{enumerable:true,configurable:true,writable:true,value:r}):t[e]=r;var Ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var tt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Gt=(t,e)=>{for(var r in e)et(t,r,{get:e[r],enumerable:true});},_i=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vc(e))!Tc.call(t,i)&&i!==r&&et(t,i,{get:()=>e[i],enumerable:!(n=yi(e,i))||n.enumerable});return t};var rt=(t,e,r)=>(r=t!=null?Sc(Rc(t)):{},_i(!t||!t.__esModule?et(r,"default",{value:t,enumerable:true}):r,t)),nt=t=>_i(et({},"__esModule",{value:true}),t),R=(t,e,r,n)=>{for(var i=yi(e,r),s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(o(e,r,i))||i);return i&&et(e,r,i),i};var Se=(t,e,r)=>Ic(t,typeof e!="symbol"?e+"":e,r);var Ei=ne(Yt=>{Yt.byteLength=xc;Yt.toByteArray=Dc;Yt.fromByteArray=Oc;var ve=[],ue=[],Uc=typeof Uint8Array<"u"?Uint8Array:Array,Kr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(We=0,wi=Kr.length;We<wi;++We)ve[We]=Kr[We],ue[Kr.charCodeAt(We)]=We;var We,wi;ue[45]=62;ue[95]=63;function Ai(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return [r,n]}function xc(t){var e=Ai(t),r=e[0],n=e[1];return (r+n)*3/4-n}function Cc(t,e,r){return (e+r)*3/4-r}function Dc(t){var e,r=Ai(t),n=r[0],i=r[1],s=new Uc(Cc(t,n,i)),o=0,a=i>0?n-4:n,c;for(c=0;c<a;c+=4)e=ue[t.charCodeAt(c)]<<18|ue[t.charCodeAt(c+1)]<<12|ue[t.charCodeAt(c+2)]<<6|ue[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=ue[t.charCodeAt(c)]<<2|ue[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=ue[t.charCodeAt(c)]<<10|ue[t.charCodeAt(c+1)]<<4|ue[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function kc(t){return ve[t>>18&63]+ve[t>>12&63]+ve[t>>6&63]+ve[t&63]}function Nc(t,e,r){for(var n,i=[],s=e;s<r;s+=3)n=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(kc(n));return i.join("")}function Oc(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(Nc(t,o,o+s>a?a:o+s));return n===1?(e=t[r-1],i.push(ve[e>>2]+ve[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ve[e>>10]+ve[e>>4&63]+ve[e<<2&63]+"=")),i.join("")}});var Si=ne(jr=>{jr.read=function(t,e,r,n,i){var s,o,a=i*8-n-1,c=(1<<a)-1,u=c>>1,d=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,s=p&(1<<-d)-1,p>>=-d,d+=a;d>0;s=s*256+t[e+f],f+=h,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+t[e+f],f+=h,d-=8);if(s===0)s=1-u;else {if(s===c)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-u;}return (p?-1:1)*o*Math.pow(2,s-n)};jr.write=function(t,e,r,n,i,s){var o,a,c,u=s*8-i-1,d=(1<<u)-1,f=d>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,g=n?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+f>=1?e+=h/c:e+=h*Math.pow(2,1-f),e*c>=2&&(o++,c/=2),o+f>=d?(a=0,o=d):o+f>=1?(a=(e*c-1)*Math.pow(2,i),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=a&255,p+=g,a/=256,i-=8);for(o=o<<i|a,u+=i;u>0;t[r+p]=o&255,p+=g,o/=256,u-=8);t[r+p-g]|=m*128;};});var Ri=ne((Ef,vi)=>{var Fc={}.toString;vi.exports=Array.isArray||function(t){return Fc.call(t)=="[object Array]"};});var tr=ne(st=>{var Hr=Ei(),it=Si(),Pi=Ri();st.Buffer=A;st.SlowBuffer=$c;st.INSPECT_MAX_BYTES=50;A.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:Lc();st.kMaxLength=zt();function Lc(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},t.foo()===42&&typeof t.subarray=="function"&&t.subarray(1,1).byteLength===0}catch{return false}}function zt(){return A.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function ke(t,e){if(zt()<e)throw new RangeError("Invalid typed array length");return A.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=A.prototype):(t===null&&(t=new A(e)),t.length=e),t}function A(t,e,r){if(!A.TYPED_ARRAY_SUPPORT&&!(this instanceof A))return new A(t,e,r);if(typeof t=="number"){if(typeof e=="string")throw new Error("If encoding is specified then the first argument must be a string");return Gr(this,t)}return Ui(this,t,e,r)}A.poolSize=8192;A._augment=function(t){return t.__proto__=A.prototype,t};function Ui(t,e,r,n){if(typeof e=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer?Bc(t,e,r,n):typeof e=="string"?Vc(t,e,r):qc(t,e)}A.from=function(t,e,r){return Ui(null,t,e,r)};A.TYPED_ARRAY_SUPPORT&&(A.prototype.__proto__=Uint8Array.prototype,A.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&A[Symbol.species]===A&&Object.defineProperty(A,Symbol.species,{value:null,configurable:true}));function xi(t){if(typeof t!="number")throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function Mc(t,e,r,n){return xi(e),e<=0?ke(t,e):r!==void 0?typeof n=="string"?ke(t,e).fill(r,n):ke(t,e).fill(r):ke(t,e)}A.alloc=function(t,e,r){return Mc(null,t,e,r)};function Gr(t,e){if(xi(e),t=ke(t,e<0?0:Jr(e)|0),!A.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}A.allocUnsafe=function(t){return Gr(null,t)};A.allocUnsafeSlow=function(t){return Gr(null,t)};function Vc(t,e,r){if((typeof r!="string"||r==="")&&(r="utf8"),!A.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=Ci(e,r)|0;t=ke(t,n);var i=t.write(e,r);return i!==n&&(t=t.slice(0,i)),t}function Wr(t,e){var r=e.length<0?0:Jr(e.length)|0;t=ke(t,r);for(var n=0;n<r;n+=1)t[n]=e[n]&255;return t}function Bc(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError("'offset' is out of bounds");if(e.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return r===void 0&&n===void 0?e=new Uint8Array(e):n===void 0?e=new Uint8Array(e,r):e=new Uint8Array(e,r,n),A.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=A.prototype):t=Wr(t,e),t}function qc(t,e){if(A.isBuffer(e)){var r=Jr(e.length)|0;return t=ke(t,r),t.length===0||e.copy(t,0,0,r),t}if(e){if(typeof ArrayBuffer<"u"&&e.buffer instanceof ArrayBuffer||"length"in e)return typeof e.length!="number"||au(e.length)?ke(t,0):Wr(t,e);if(e.type==="Buffer"&&Pi(e.data))return Wr(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Jr(t){if(t>=zt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+zt().toString(16)+" bytes");return t|0}function $c(t){return +t!=t&&(t=0),A.alloc(+t)}A.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};A.compare=function(e,r){if(!A.isBuffer(e)||!A.isBuffer(r))throw new TypeError("Arguments must be Buffers");if(e===r)return 0;for(var n=e.length,i=r.length,s=0,o=Math.min(n,i);s<o;++s)if(e[s]!==r[s]){n=e[s],i=r[s];break}return n<i?-1:i<n?1:0};A.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}};A.concat=function(e,r){if(!Pi(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return A.alloc(0);var n;if(r===void 0)for(r=0,n=0;n<e.length;++n)r+=e[n].length;var i=A.allocUnsafe(r),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!A.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function Ci(t,e){if(A.isBuffer(t))return t.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;typeof t!="string"&&(t=""+t);var r=t.length;if(r===0)return 0;for(var n=false;;)switch(e){case "ascii":case "latin1":case "binary":return r;case "utf8":case "utf-8":case void 0:return Qt(t).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return r*2;case "hex":return r>>>1;case "base64":return Mi(t).length;default:if(n)return Qt(t).length;e=(""+e).toLowerCase(),n=true;}}A.byteLength=Ci;function Kc(t,e,r){var n=false;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return "";for(t||(t="utf8");;)switch(t){case "hex":return Zc(this,e,r);case "utf8":case "utf-8":return Ni(this,e,r);case "ascii":return Qc(this,e,r);case "latin1":case "binary":return Xc(this,e,r);case "base64":return Yc(this,e,r);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return eu(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=true;}}A.prototype._isBuffer=true;function Ge(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}A.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 r=0;r<e;r+=2)Ge(this,r,r+1);return this};A.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 r=0;r<e;r+=4)Ge(this,r,r+3),Ge(this,r+1,r+2);return this};A.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 r=0;r<e;r+=8)Ge(this,r,r+7),Ge(this,r+1,r+6),Ge(this,r+2,r+5),Ge(this,r+3,r+4);return this};A.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?Ni(this,0,e):Kc.apply(this,arguments)};A.prototype.equals=function(e){if(!A.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:A.compare(this,e)===0};A.prototype.inspect=function(){var e="",r=st.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"};A.prototype.compare=function(e,r,n,i,s){if(!A.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),r<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&r>=n)return 0;if(i>=s)return -1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;for(var o=s-i,a=n-r,c=Math.min(o,a),u=this.slice(i,s),d=e.slice(r,n),f=0;f<c;++f)if(u[f]!==d[f]){o=u[f],a=d[f];break}return o<a?-1:a<o?1:0};function Di(t,e,r,n,i){if(t.length===0)return -1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return -1;r=t.length-1;}else if(r<0)if(i)r=0;else return -1;if(typeof e=="string"&&(e=A.from(e,n)),A.isBuffer(e))return e.length===0?-1:Ti(t,e,r,n,i);if(typeof e=="number")return e=e&255,A.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Ti(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Ti(t,e,r,n,i){var s=1,o=t.length,a=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return -1;s=2,o/=2,a/=2,r/=2;}function c(p,g){return s===1?p[g]:p.readUInt16BE(g*s)}var u;if(i){var d=-1;for(u=r;u<o;u++)if(c(t,u)===c(e,d===-1?0:u-d)){if(d===-1&&(d=u),u-d+1===a)return d*s}else d!==-1&&(u-=u-d),d=-1;}else for(r+a>o&&(r=o-a),u=r;u>=0;u--){for(var f=true,h=0;h<a;h++)if(c(t,u+h)!==c(e,h)){f=false;break}if(f)return u}return -1}A.prototype.includes=function(e,r,n){return this.indexOf(e,r,n)!==-1};A.prototype.indexOf=function(e,r,n){return Di(this,e,r,n,true)};A.prototype.lastIndexOf=function(e,r,n){return Di(this,e,r,n,false)};function jc(t,e,r,n){r=Number(r)||0;var i=t.length-r;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;t[r+o]=a;}return o}function Hc(t,e,r,n){return er(Qt(e,t.length-r),t,r,n)}function ki(t,e,r,n){return er(su(e),t,r,n)}function Wc(t,e,r,n){return ki(t,e,r,n)}function Gc(t,e,r,n){return er(Mi(e),t,r,n)}function Jc(t,e,r,n){return er(ou(e,t.length-r),t,r,n)}A.prototype.write=function(e,r,n,i){if(r===void 0)i="utf8",n=this.length,r=0;else if(n===void 0&&typeof r=="string")i=r,n=this.length,r=0;else if(isFinite(r))r=r|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-r;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=false;;)switch(i){case "hex":return jc(this,e,r,n);case "utf8":case "utf-8":return Hc(this,e,r,n);case "ascii":return ki(this,e,r,n);case "latin1":case "binary":return Wc(this,e,r,n);case "base64":return Gc(this,e,r,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Jc(this,e,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};A.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Yc(t,e,r){return e===0&&r===t.length?Hr.fromByteArray(t):Hr.fromByteArray(t.slice(e,r))}function Ni(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i<r;){var s=t[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=r){var c,u,d,f;switch(a){case 1:s<128&&(o=s);break;case 2:c=t[i+1],(c&192)===128&&(f=(s&31)<<6|c&63,f>127&&(o=f));break;case 3:c=t[i+1],u=t[i+2],(c&192)===128&&(u&192)===128&&(f=(s&15)<<12|(c&63)<<6|u&63,f>2047&&(f<55296||f>57343)&&(o=f));break;case 4:c=t[i+1],u=t[i+2],d=t[i+3],(c&192)===128&&(u&192)===128&&(d&192)===128&&(f=(s&15)<<18|(c&63)<<12|(u&63)<<6|d&63,f>65535&&f<1114112&&(o=f));}}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 zc(n)}var Ii=4096;function zc(t){var e=t.length;if(e<=Ii)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=Ii));return r}function Qc(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]&127);return n}function Xc(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function Zc(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=e;s<r;++s)i+=iu(t[s]);return i}function eu(t,e,r){for(var n=t.slice(e,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+n[s+1]*256);return i}A.prototype.slice=function(e,r){var n=this.length;e=~~e,r=r===void 0?n:~~r,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r<e&&(r=e);var i;if(A.TYPED_ARRAY_SUPPORT)i=this.subarray(e,r),i.__proto__=A.prototype;else {var s=r-e;i=new A(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function J(t,e,r){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}A.prototype.readUIntLE=function(e,r,n){e=e|0,r=r|0,n||J(e,r,this.length);for(var i=this[e],s=1,o=0;++o<r&&(s*=256);)i+=this[e+o]*s;return i};A.prototype.readUIntBE=function(e,r,n){e=e|0,r=r|0,n||J(e,r,this.length);for(var i=this[e+--r],s=1;r>0&&(s*=256);)i+=this[e+--r]*s;return i};A.prototype.readUInt8=function(e,r){return r||J(e,1,this.length),this[e]};A.prototype.readUInt16LE=function(e,r){return r||J(e,2,this.length),this[e]|this[e+1]<<8};A.prototype.readUInt16BE=function(e,r){return r||J(e,2,this.length),this[e]<<8|this[e+1]};A.prototype.readUInt32LE=function(e,r){return r||J(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};A.prototype.readUInt32BE=function(e,r){return r||J(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};A.prototype.readIntLE=function(e,r,n){e=e|0,r=r|0,n||J(e,r,this.length);for(var i=this[e],s=1,o=0;++o<r&&(s*=256);)i+=this[e+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*r)),i};A.prototype.readIntBE=function(e,r,n){e=e|0,r=r|0,n||J(e,r,this.length);for(var i=r,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*r)),o};A.prototype.readInt8=function(e,r){return r||J(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};A.prototype.readInt16LE=function(e,r){r||J(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};A.prototype.readInt16BE=function(e,r){r||J(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};A.prototype.readInt32LE=function(e,r){return r||J(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};A.prototype.readInt32BE=function(e,r){return r||J(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};A.prototype.readFloatLE=function(e,r){return r||J(e,4,this.length),it.read(this,e,true,23,4)};A.prototype.readFloatBE=function(e,r){return r||J(e,4,this.length),it.read(this,e,false,23,4)};A.prototype.readDoubleLE=function(e,r){return r||J(e,8,this.length),it.read(this,e,true,52,8)};A.prototype.readDoubleBE=function(e,r){return r||J(e,8,this.length),it.read(this,e,false,52,8)};function ie(t,e,r,n,i,s){if(!A.isBuffer(t))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(r+n>t.length)throw new RangeError("Index out of range")}A.prototype.writeUIntLE=function(e,r,n,i){if(e=+e,r=r|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;ie(this,e,r,n,s,0);}var o=1,a=0;for(this[r]=e&255;++a<n&&(o*=256);)this[r+a]=e/o&255;return r+n};A.prototype.writeUIntBE=function(e,r,n,i){if(e=+e,r=r|0,n=n|0,!i){var s=Math.pow(2,8*n)-1;ie(this,e,r,n,s,0);}var o=n-1,a=1;for(this[r+o]=e&255;--o>=0&&(a*=256);)this[r+o]=e/a&255;return r+n};A.prototype.writeUInt8=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,1,255,0),A.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=e&255,r+1};function Xt(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,s=Math.min(t.length-r,2);i<s;++i)t[r+i]=(e&255<<8*(n?i:1-i))>>>(n?i:1-i)*8;}A.prototype.writeUInt16LE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):Xt(this,e,r,true),r+2};A.prototype.writeUInt16BE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,2,65535,0),A.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):Xt(this,e,r,false),r+2};function Zt(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,s=Math.min(t.length-r,4);i<s;++i)t[r+i]=e>>>(n?i:3-i)*8&255;}A.prototype.writeUInt32LE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255):Zt(this,e,r,true),r+4};A.prototype.writeUInt32BE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,4,4294967295,0),A.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Zt(this,e,r,false),r+4};A.prototype.writeIntLE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);ie(this,e,r,n,s-1,-s);}var o=0,a=1,c=0;for(this[r]=e&255;++o<n&&(a*=256);)e<0&&c===0&&this[r+o-1]!==0&&(c=1),this[r+o]=(e/a>>0)-c&255;return r+n};A.prototype.writeIntBE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);ie(this,e,r,n,s-1,-s);}var o=n-1,a=1,c=0;for(this[r+o]=e&255;--o>=0&&(a*=256);)e<0&&c===0&&this[r+o+1]!==0&&(c=1),this[r+o]=(e/a>>0)-c&255;return r+n};A.prototype.writeInt8=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,1,127,-128),A.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=e&255,r+1};A.prototype.writeInt16LE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):Xt(this,e,r,true),r+2};A.prototype.writeInt16BE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,2,32767,-32768),A.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):Xt(this,e,r,false),r+2};A.prototype.writeInt32LE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,4,2147483647,-2147483648),A.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):Zt(this,e,r,true),r+4};A.prototype.writeInt32BE=function(e,r,n){return e=+e,r=r|0,n||ie(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),A.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Zt(this,e,r,false),r+4};function Oi(t,e,r,n,i,s){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Fi(t,e,r,n,i){return i||Oi(t,e,r,4),it.write(t,e,r,n,23,4),r+4}A.prototype.writeFloatLE=function(e,r,n){return Fi(this,e,r,true,n)};A.prototype.writeFloatBE=function(e,r,n){return Fi(this,e,r,false,n)};function Li(t,e,r,n,i){return i||Oi(t,e,r,8),it.write(t,e,r,n,52,8),r+8}A.prototype.writeDoubleLE=function(e,r,n){return Li(this,e,r,true,n)};A.prototype.writeDoubleBE=function(e,r,n){return Li(this,e,r,false,n)};A.prototype.copy=function(e,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i<n&&(i=n),i===n||e.length===0||this.length===0)return 0;if(r<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-r<i-n&&(i=e.length-r+n);var s=i-n,o;if(this===e&&n<r&&r<i)for(o=s-1;o>=0;--o)e[o+r]=this[o+n];else if(s<1e3||!A.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+r]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),r);return s};A.prototype.fill=function(e,r,n,i){if(typeof e=="string"){if(typeof r=="string"?(i=r,r=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"&&!A.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof e=="number"&&(e=e&255);if(r<0||this.length<r||this.length<n)throw new RangeError("Out of range index");if(n<=r)return this;r=r>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=r;o<n;++o)this[o]=e;else {var a=A.isBuffer(e)?e:Qt(new A(e,i).toString()),c=a.length;for(o=0;o<n-r;++o)this[o+r]=a[o%c];}return this};var tu=/[^+\/0-9A-Za-z-_]/g;function ru(t){if(t=nu(t).replace(tu,""),t.length<2)return "";for(;t.length%4!==0;)t=t+"=";return t}function nu(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function iu(t){return t<16?"0"+t.toString(16):t.toString(16)}function Qt(t,e){e=e||1/0;for(var r,n=t.length,i=null,s=[],o=0;o<n;++o){if(r=t.charCodeAt(o),r>55295&&r<57344){if(!i){if(r>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=r;continue}if(r<56320){(e-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536;}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;s.push(r);}else if(r<2048){if((e-=2)<0)break;s.push(r>>6|192,r&63|128);}else if(r<65536){if((e-=3)<0)break;s.push(r>>12|224,r>>6&63|128,r&63|128);}else if(r<1114112){if((e-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128);}else throw new Error("Invalid code point")}return s}function su(t){for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r)&255);return e}function ou(t,e){for(var r,n,i,s=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,i=r%256,s.push(i),s.push(n);return s}function Mi(t){return Hr.toByteArray(ru(t))}function er(t,e,r,n){for(var i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function au(t){return t!==t}});var Vi={};Gt(Vi,{default:()=>uu});var cu,uu,Bi=tt(()=>{cu={},uu=cu;});var en={};Gt(en,{__assign:()=>Xr,__asyncDelegator:()=>Su,__asyncGenerator:()=>Eu,__asyncValues:()=>vu,__await:()=>Et,__awaiter:()=>mu,__classPrivateFieldGet:()=>Pu,__classPrivateFieldSet:()=>Uu,__createBinding:()=>_u,__decorate:()=>hu,__exportStar:()=>bu,__extends:()=>du,__generator:()=>yu,__importDefault:()=>Iu,__importStar:()=>Tu,__makeTemplateObject:()=>Ru,__metadata:()=>gu,__param:()=>pu,__read:()=>qi,__rest:()=>fu,__spread:()=>wu,__spreadArrays:()=>Au,__values:()=>Zr});function du(t,e){Qr(t,e);function r(){this.constructor=t;}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r);}function fu(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r}function hu(t,e,r,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s}function pu(t,e){return function(r,n){e(r,n,t);}}function gu(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function mu(t,e,r,n){function i(s){return s instanceof r?s:new r(function(o){o(s);})}return new(r||(r=Promise))(function(s,o){function a(d){try{u(n.next(d));}catch(f){o(f);}}function c(d){try{u(n.throw(d));}catch(f){o(f);}}function u(d){d.done?s(d.value):i(d.value).then(a,c);}u((n=n.apply(t,e||[])).next());})}function yu(t,e){var r={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(u){return function(d){return c([u,d])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(s=r.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){r.label=u[1];break}if(u[0]===6&&r.label<s[1]){r.label=s[1],s=u;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(u);break}s[2]&&r.ops.pop(),r.trys.pop();continue}u=e.call(t,r);}catch(d){u=[6,d],i=0;}finally{n=s=0;}if(u[0]&5)throw u[1];return {value:u[0]?u[1]:void 0,done:true}}}function _u(t,e,r,n){n===void 0&&(n=r),t[n]=e[r];}function bu(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&(e[r]=t[r]);}function Zr(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return {next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function qi(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),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&&(r=n.return)&&r.call(n);}finally{if(o)throw o.error}}return s}function wu(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(qi(arguments[e]));return t}function Au(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;for(var n=Array(t),i=0,e=0;e<r;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n}function Et(t){return this instanceof Et?(this.v=t,this):new Et(t)}function Eu(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=r.apply(t,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,m){s.push([h,p,g,m])>1||a(h,p);})});}function a(h,p){try{c(n[h](p));}catch(g){f(s[0][3],g);}}function c(h){h.value instanceof Et?Promise.resolve(h.value.v).then(u,d):f(s[0][2],h);}function u(h){a("next",h);}function d(h){a("throw",h);}function f(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1]);}}function Su(t){var e,r;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]=t[i]?function(o){return (r=!r)?{value:Et(t[i](o)),done:i==="return"}:s?s(o):o}:s;}}function vu(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],r;return e?e.call(t):(t=typeof Zr=="function"?Zr(t):t[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(s){r[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value);})};}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a});},o);}}function Ru(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function Tu(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function Iu(t){return t&&t.__esModule?t:{default:t}}function Pu(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function Uu(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var Qr,Xr,tn=tt(()=>{Qr=function(t,e){return Qr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n;}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);},Qr(t,e)};Xr=function(){return Xr=Object.assign||function(e){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s]);}return e},Xr.apply(this,arguments)};});var rn=ne(de=>{Object.defineProperty(de,"__esModule",{value:true});de.MAX_HASHABLE_LENGTH=de.INIT=de.KEY=de.DIGEST_LENGTH=de.BLOCK_SIZE=void 0;de.BLOCK_SIZE=64;de.DIGEST_LENGTH=32;de.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]);de.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];de.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var $i=ne(rr=>{Object.defineProperty(rr,"__esModule",{value:true});rr.RawSha256=void 0;var fe=rn(),xu=(function(){function t(){this.state=Int32Array.from(fe.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=false;}return t.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");var r=0,n=e.byteLength;if(this.bytesHashed+=n,this.bytesHashed*8>fe.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;n>0;)this.buffer[this.bufferLength++]=e[r++],n--,this.bufferLength===fe.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0);},t.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(r.setUint8(this.bufferLength++,128),n%fe.BLOCK_SIZE>=fe.BLOCK_SIZE-8){for(var i=this.bufferLength;i<fe.BLOCK_SIZE;i++)r.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<fe.BLOCK_SIZE-8;i++)r.setUint8(i,0);r.setUint32(fe.BLOCK_SIZE-8,Math.floor(e/4294967296),true),r.setUint32(fe.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(fe.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},t.prototype.hashBuffer=function(){for(var e=this,r=e.buffer,n=e.state,i=n[0],s=n[1],o=n[2],a=n[3],c=n[4],u=n[5],d=n[6],f=n[7],h=0;h<fe.BLOCK_SIZE;h++){if(h<16)this.temp[h]=(r[h*4]&255)<<24|(r[h*4+1]&255)<<16|(r[h*4+2]&255)<<8|r[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 m=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3;this.temp[h]=(g+this.temp[h-7]|0)+(m+this.temp[h-16]|0);}var y=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&u^~c&d)|0)+(f+(fe.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;f=d,d=u,u=c,c=a+y|0,a=o,o=s,s=i,i=y+w|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=c,n[5]+=u,n[6]+=d,n[7]+=f;},t})();rr.RawSha256=xu;});var Ki,ji,Hi=tt(()=>{Ki=t=>{let e=[];for(let r=0,n=t.length;r<n;r++){let i=t.charCodeAt(r);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192,i&63|128);else if(r+1<t.length&&(i&64512)===55296&&(t.charCodeAt(r+1)&64512)===56320){let s=65536+((i&1023)<<10)+(t.charCodeAt(++r)&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)},ji=t=>{let e="";for(let r=0,n=t.length;r<n;r++){let i=t[r];if(i<128)e+=String.fromCharCode(i);else if(192<=i&&i<224){let s=t[++r];e+=String.fromCharCode((i&31)<<6|s&63);}else if(240<=i&&i<365){let o="%"+[i,t[++r],t[++r],t[++r]].map(a=>a.toString(16)).join("%");e+=decodeURIComponent(o);}else e+=String.fromCharCode((i&15)<<12|(t[++r]&63)<<6|t[++r]&63);}return e};});function Wi(t){return new TextEncoder().encode(t)}function Gi(t){return new TextDecoder("utf-8").decode(t)}var Ji=tt(()=>{});var Yi={};Gt(Yi,{fromUtf8:()=>Cu,toUtf8:()=>Du});var Cu,Du,zi=tt(()=>{Hi();Ji();Cu=t=>typeof TextEncoder=="function"?Wi(t):Ki(t),Du=t=>typeof TextDecoder=="function"?Gi(t):ji(t);});var Qi=ne(nr=>{Object.defineProperty(nr,"__esModule",{value:true});nr.convertToBuffer=void 0;var ku=(zi(),nt(Yi)),Nu=typeof Buffer<"u"&&Buffer.from?function(t){return Buffer.from(t,"utf8")}:ku.fromUtf8;function Ou(t){return t instanceof Uint8Array?t:typeof t=="string"?Nu(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(t)}nr.convertToBuffer=Ou;});var Xi=ne(ir=>{Object.defineProperty(ir,"__esModule",{value:true});ir.isEmptyData=void 0;function Fu(t){return typeof t=="string"?t.length===0:t.byteLength===0}ir.isEmptyData=Fu;});var Zi=ne(sr=>{Object.defineProperty(sr,"__esModule",{value:true});sr.numToUint8=void 0;function Lu(t){return new Uint8Array([(t&4278190080)>>24,(t&16711680)>>16,(t&65280)>>8,t&255])}sr.numToUint8=Lu;});var es=ne(or=>{Object.defineProperty(or,"__esModule",{value:true});or.uint32ArrayFrom=void 0;function Mu(t){if(!Array.from){for(var e=new Uint32Array(t.length),r=0;r<t.length;)e[r]=t[r];return e}return Uint32Array.from(t)}or.uint32ArrayFrom=Mu;});var ts=ne(Re=>{Object.defineProperty(Re,"__esModule",{value:true});Re.uint32ArrayFrom=Re.numToUint8=Re.isEmptyData=Re.convertToBuffer=void 0;var Vu=Qi();Object.defineProperty(Re,"convertToBuffer",{enumerable:true,get:function(){return Vu.convertToBuffer}});var Bu=Xi();Object.defineProperty(Re,"isEmptyData",{enumerable:true,get:function(){return Bu.isEmptyData}});var qu=Zi();Object.defineProperty(Re,"numToUint8",{enumerable:true,get:function(){return qu.numToUint8}});var $u=es();Object.defineProperty(Re,"uint32ArrayFrom",{enumerable:true,get:function(){return $u.uint32ArrayFrom}});});var ns=ne(cr=>{Object.defineProperty(cr,"__esModule",{value:true});cr.Sha256=void 0;var rs=(tn(),nt(en)),ar=rn(),nn=$i(),sn=ts(),Ku=(function(){function t(e){if(this.hash=new nn.RawSha256,e){this.outer=new nn.RawSha256;var r=ju(e),n=new Uint8Array(ar.BLOCK_SIZE);n.set(r);for(var i=0;i<ar.BLOCK_SIZE;i++)r[i]^=54,n[i]^=92;this.hash.update(r),this.outer.update(n);for(var i=0;i<r.byteLength;i++)r[i]=0;}}return t.prototype.update=function(e){if(!((0, sn.isEmptyData)(e)||this.error))try{this.hash.update((0,sn.convertToBuffer)(e));}catch(r){this.error=r;}},t.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()},t.prototype.digest=function(){return (0, rs.__awaiter)(this,void 0,void 0,function(){return (0, rs.__generator)(this,function(e){return [2,this.digestSync()]})})},t})();cr.Sha256=Ku;function ju(t){var e=(0, sn.convertToBuffer)(t);if(e.byteLength>ar.BLOCK_SIZE){var r=new nn.RawSha256;r.update(e),e=r.digest();}var n=new Uint8Array(ar.BLOCK_SIZE);return n.set(e),n}});var an=ne(on=>{Object.defineProperty(on,"__esModule",{value:true});var Hu=(tn(),nt(en));(0, Hu.__exportStar)(ns(),on);});var mn={};Gt(mn,{default:()=>Vl});function Vl(t,e){return e=e||{},new Promise(function(r,n){var i=new XMLHttpRequest,s=[],o=[],a={},c=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:c,headers:{keys:function(){return s},entries:function(){return o},get:function(d){return a[d.toLowerCase()]},has:function(d){return d.toLowerCase()in a}}}};for(var u in i.open(e.method||"get",t,true),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(d,f,h){s.push(f=f.toLowerCase()),o.push([f,h]),a[f]=a[f]?a[f]+","+h:h;}),r(c());},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(u,e.headers[u]);i.send(e.body||null);})}var yn=tt(()=>{});var fs=ne((gh,ds)=>{ds.exports=self.fetch||(self.fetch=(yn(),nt(mn)).default||(yn(),nt(mn)));});function bi(t){let r=(typeof globalThis<"u"?globalThis:void 0)?.process;if(r&&typeof r.getBuiltinModule=="function")try{return r.getBuiltinModule(t)}catch{}try{if(typeof Ve=="function")return Ve(t)}catch{}return null}var Mr,Vr,Br=()=>Mr!==void 0?Mr:Mr=bi("fs"),qr=()=>Vr!==void 0?Vr:Vr=bi("path"),De=typeof globalThis<"u"?globalThis:void 0,Jt=De?.window;function Pc(t){if(Buffer)return Buffer.from(t).toString("base64");let e="",r=new Uint8Array(t),n=32768;for(let i=0;i<r.length;i+=n){let s=r.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(Jt)Jt.global=Jt,Jt.global._runningInNodeJS=false;else if(De&&(De.global=De,typeof De.window>"u")){class t{constructor(){this.result=null;this.error=null;this.onload=null;this.onloadend=null;this.onerror=null;}readAsDataURL(n){n.arrayBuffer().then(i=>{let s=Pc(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});});}}De.FileReader=t;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);});}}De.XMLHttpRequest=e,De.window={_runningInNodeJS:true,alert:r=>console.error("[Alert]",r),sessionStorage:{getItem:r=>null,setItem:(r,n)=>{},removeItem:r=>{}},localStorage:{getItem:r=>{let n=Br(),i=qr();if(!n||!i)return null;try{let s=i.resolve(process.cwd(),"states","localStorage",`${r}.skapi`);return n.existsSync(s)?n.readFileSync(s,"utf8"):null}catch{return null}},setItem:(r,n)=>{let i=Br(),s=qr();if(!(!i||!s))try{let o=s.resolve(process.cwd(),"states","localStorage");i.existsSync(o)||i.mkdirSync(o,{recursive:!0});let a=s.resolve(o,`${r}.skapi`);i.writeFileSync(a,n,"utf8");}catch{}},removeItem:r=>{let n=Br(),i=qr();if(!(!n||!i))try{let s=i.resolve(process.cwd(),"states","localStorage",`${r}.skapi`);n.existsSync(s)&&n.unlinkSync(s);}catch{}}},location:{href:"",origin:"",hostname:"",protocol:"",replace:r=>{}},navigator:{userAgent:`nodejs/${De?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async r=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var $r=(function(){function t(r){var n=r||{},i=n.ValidationData,s=n.Username,o=n.Password,a=n.AuthParameters,c=n.ClientMetadata;this.validationData=i||{},this.authParameters=a||{},this.clientMetadata=c||{},this.username=s,this.password=o;}var e=t.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},t})();var Ne=rt(tr());var le;typeof window<"u"&&window.crypto&&(le=window.crypto);!le&&typeof window<"u"&&window.msCrypto&&(le=window.msCrypto);!le&&typeof globalThis<"u"&&globalThis.crypto&&(le=globalThis.crypto);if(!le&&typeof Ve=="function")try{le=(Bi(),nt(Vi));}catch{}function Yr(){if(le){if(typeof le.getRandomValues=="function")try{return le.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof le.randomBytes=="function")try{return le.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function lu(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i<r;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 zr=(function(){function t(r,n){r=this.words=r||[],n!=null?this.sigBytes=n:this.sigBytes=r.length*4;}var e=t.prototype;return e.random=function(n){for(var i=[],s=0;s<n;s+=4)i.push(Yr());return new t(i,n)},e.toString=function(){return lu(this)},t})();var lr=rt(an());var W=D;function D(t,e){t!=null&&this.fromString(t,e);}function ee(){return new D(null)}var Be,Wu=0xdeadbeefcafe,is=(Wu&16777215)==15715070;function Gu(t,e,r,n,i,s){for(;--s>=0;){var o=e*this[t++]+r[n]+i;i=Math.floor(o/67108864),r[n++]=o&67108863;}return i}function Ju(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this[t]&32767,u=this[t++]>>15,d=a*c+u*o;c=o*c+((d&32767)<<15)+r[n]+(i&1073741823),i=(c>>>30)+(d>>>15)+a*u+(i>>>30),r[n++]=c&1073741823;}return i}function Yu(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this[t]&16383,u=this[t++]>>14,d=a*c+u*o;c=o*c+((d&16383)<<14)+r[n]+i,i=(c>>28)+(d>>14)+a*u,r[n++]=c&268435455;}return i}var ss=typeof navigator<"u";ss&&is&&navigator.appName=="Microsoft Internet Explorer"?(D.prototype.am=Ju,Be=30):ss&&is&&navigator.appName!="Netscape"?(D.prototype.am=Gu,Be=26):(D.prototype.am=Yu,Be=28);D.prototype.DB=Be;D.prototype.DM=(1<<Be)-1;D.prototype.DV=1<<Be;var cn=52;D.prototype.FV=Math.pow(2,cn);D.prototype.F1=cn-Be;D.prototype.F2=2*Be-cn;var zu="0123456789abcdefghijklmnopqrstuvwxyz",ur=new Array,ot,he;ot=48;for(he=0;he<=9;++he)ur[ot++]=he;ot=97;for(he=10;he<36;++he)ur[ot++]=he;ot=65;for(he=10;he<36;++he)ur[ot++]=he;function os(t){return zu.charAt(t)}function Qu(t,e){var r=ur[t.charCodeAt(e)];return r??-1}function Xu(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s;}function Zu(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0;}function un(t){var e=ee();return e.fromInt(t),e}function el(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");this.t=0,this.s=0;for(var n=t.length,i=false,s=0;--n>=0;){var o=Qu(t,n);if(o<0){t.charAt(n)=="-"&&(i=true);continue}i=false,s==0?this[this.t++]=o:s+r>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+=r,s>=this.DB&&(s-=this.DB);}this.clamp(),i&&D.ZERO.subTo(this,this);}function tl(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t;}function rl(t){if(this.s<0)return "-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else throw new Error("Only radix 2, 4, 8, 16, 32 are supported");var r=(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=os(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)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=true),i&&(s+=os(n));return i?s:"0"}function nl(){var t=ee();return D.ZERO.subTo(this,t),t}function il(){return this.s<0?this.negate():this}function sl(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this[r]-t[r])!=0)return e;return 0}function ln(t){var e=1,r;return (r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function ol(){return this.t<=0?0:this.DB*(this.t-1)+ln(this[this.t-1]^this.s&this.DM)}function al(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s;}function cl(t,e){for(var r=t;r<this.t;++r)e[r-t]=this[r];e.t=Math.max(this.t-t,0),e.s=this.s;}function ul(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e[a+s+1]=this[a]>>n|o,o=(this[a]&i)<<r;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 ll(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e[0]=this[r]>>n;for(var o=r+1;o<this.t;++o)e[o-r-1]|=(this[o]&s)<<i,e[o-r]=this[o]>>n;n>0&&(e[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp();}function dl(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]-t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;r<t.t;)n-=t[r],e[r++]=n&this.DM,n>>=this.DB;n-=t.s;}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp();}function fl(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+r.t]=r.am(0,n[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&D.ZERO.subTo(e,e);}function hl(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e[r],t,2*r,0,1);(t[r+e.t]+=e.am(r+1,2*e[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1);}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp();}function pl(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ee());var s=ee(),o=this.s,a=t.s,c=this.DB-ln(n[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,d=s[u-1];if(d!=0){var f=d*(1<<this.F1)+(u>1?s[u-2]>>this.F2:0),h=this.FV/f,p=(1<<this.F1)/f,g=1<<this.F2,m=r.t,y=m-u,w=e??ee();for(s.dlShiftTo(y,w),r.compareTo(w)>=0&&(r[r.t++]=1,r.subTo(w,r)),D.ONE.dlShiftTo(u,w),w.subTo(s,s);s.t<u;)s[s.t++]=0;for(;--y>=0;){var b=r[--m]==d?this.DM:Math.floor(r[m]*h+(r[m-1]+g)*p);if((r[m]+=s.am(0,b,r,y,0,u))<b)for(s.dlShiftTo(y,w),r.subTo(w,r);r[m]<--b;)r.subTo(w,r);}e!=null&&(r.drShiftTo(u,e),o!=a&&D.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&D.ZERO.subTo(r,r);}}}function gl(t){var e=ee();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(D.ZERO)>0&&t.subTo(e,e),e}function ml(){if(this.t<1)return 0;var t=this[0];if((t&1)==0)return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function yl(t){return this.compareTo(t)==0}function _l(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]+t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s;}else {for(n+=this.s;r<t.t;)n+=t[r],e[r++]=n&this.DM,n>>=this.DB;n+=t.s;}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp();}function bl(t){var e=ee();return this.addTo(t,e),e}function wl(t){var e=ee();return this.subTo(t,e),e}function Al(t){var e=ee();return this.multiplyTo(t,e),e}function El(t){var e=ee();return this.divRemTo(t,e,null),e}function at(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t;}function Sl(t){var e=ee();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(D.ZERO)>0&&this.m.subTo(e,e),e}function vl(t){var e=ee();return t.copyTo(e),this.reduce(e),e}function Rl(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t[e]&32767,n=r*this.mpl+((r*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t[r]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++;}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t);}function Tl(t,e){t.squareTo(e),this.reduce(e);}function Il(t,e,r){t.multiplyTo(e,r),this.reduce(r);}at.prototype.convert=Sl;at.prototype.revert=vl;at.prototype.reduce=Rl;at.prototype.mulTo=Il;at.prototype.sqrTo=Tl;function Pl(t,e,r){var n=t.bitLength(),i,s=un(1),o=new at(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,c=3,u=i-1,d=(1<<i)-1;if(a[1]=o.convert(this),i>1){var f=ee();for(o.sqrTo(a[1],f);c<=d;)a[c]=ee(),o.mulTo(f,a[c-2],a[c]),c+=2;}var h=t.t-1,p,g=true,m=ee(),y;for(n=ln(t[h])-1;h>=0;){for(n>=u?p=t[h]>>n-u&d:(p=(t[h]&(1<<n+1)-1)<<u-n,h>0&&(p|=t[h-1]>>this.DB+n-u)),c=i;(p&1)==0;)p>>=1,--c;if((n-=c)<0&&(n+=this.DB,--h),g)a[p].copyTo(s),g=false;else {for(;c>1;)o.sqrTo(s,m),o.sqrTo(m,s),c-=2;c>0?o.sqrTo(s,m):(y=s,s=m,m=y),o.mulTo(m,a[p],s);}for(;h>=0&&(t[h]&1<<n)==0;)o.sqrTo(s,m),y=s,s=m,m=y,--n<0&&(n=this.DB-1,--h);}var w=o.revert(s);return r(null,w),w}D.prototype.copyTo=Xu;D.prototype.fromInt=Zu;D.prototype.fromString=el;D.prototype.clamp=tl;D.prototype.dlShiftTo=al;D.prototype.drShiftTo=cl;D.prototype.lShiftTo=ul;D.prototype.rShiftTo=ll;D.prototype.subTo=dl;D.prototype.multiplyTo=fl;D.prototype.squareTo=hl;D.prototype.divRemTo=pl;D.prototype.invDigit=ml;D.prototype.addTo=_l;D.prototype.toString=rl;D.prototype.negate=nl;D.prototype.abs=il;D.prototype.compareTo=sl;D.prototype.bitLength=ol;D.prototype.mod=gl;D.prototype.equals=yl;D.prototype.add=bl;D.prototype.subtract=wl;D.prototype.multiply=Al;D.prototype.divide=El;D.prototype.modPow=Pl;D.ZERO=un(0);D.ONE=un(1);function dn(t){return Ne.Buffer.from(new zr().random(t).toString(),"hex")}var Ul=/^[89a-f]/i,xl="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",Cl="userAttributes.",qe=(function(){function t(r){this.N=new W(xl,16),this.g=new W("2",16),this.k=new W(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=Ne.Buffer.from("Caldera Derived Key","utf8"),this.poolName=r;}var e=t.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=dn(128).toString("hex"),i=new W(n,16);return i},e.generateRandomString=function(){return dn(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,c=this.hash(a),u=dn(16).toString("hex");this.SaltToHashDevices=this.padHex(new W(u,16)),this.g.modPow(new W(this.hexHash(this.SaltToHashDevices+c),16),this.N,function(d,f){d&&s(d,null),o.verifierDevices=o.padHex(f),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(W.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 W(this.UHexHash,16);return s},e.hash=function(n){var i=new lr.Sha256;i.update(n);var s=i.digestSync(),o=Ne.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(Ne.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=Ne.Buffer.concat([this.infoBits,Ne.Buffer.from("","utf8")]),o=new lr.Sha256(i);o.update(n);var a=o.digestSync(),c=new lr.Sha256(a);c.update(s);var u=c.digestSync(),d=u,f=d.slice(0,16);return f},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var c=this;if(s.mod(this.N).equals(W.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(W.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+n+":"+i,d=this.hash(u),f=new W(this.hexHash(this.padHex(o)+d),16);this.calculateS(f,s,function(h,p){h&&a(h,null);var g=c.computehkdf(Ne.Buffer.from(c.padHex(p),"hex"),Ne.Buffer.from(c.padHex(c.UValue),"hex"));a(null,g);});},e.calculateS=function(n,i,s){var o=this;this.g.modPow(n,this.N,function(a,c){a&&s(a,null);var u=i.subtract(o.k.multiply(c));u.modPow(o.smallAValue.add(o.UValue.multiply(n)),o.N,function(d,f){d&&s(d,null),s(null,f.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return Cl},e.padHex=function(n){if(!(n instanceof W))throw new Error("Not a BigInteger");var i=n.compareTo(W.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=Ul.test(s)?"00"+s:s,i){var o=s.split("").map(function(c){var u=~parseInt(c,16)&15;return "0123456789ABCDEF".charAt(u)}).join(""),a=new W(o,16).add(W.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},t})();var as=rt(tr());var dr=(function(){function t(r){this.jwtToken=r||"",this.payload=this.decodePayload();}var e=t.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(as.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},t})();function Dl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,fn(t,e);}function fn(t,e){return fn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},fn(t,e)}var ct=(function(t){function e(r){var n=r===void 0?{}:r,i=n.AccessToken;return t.call(this,i||"")||this}return Dl(e,t),e})(dr);function kl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,hn(t,e);}function hn(t,e){return hn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},hn(t,e)}var ut=(function(t){function e(r){var n=r===void 0?{}:r,i=n.IdToken;return t.call(this,i||"")||this}return kl(e,t),e})(dr);var lt=(function(){function t(r){var n=r===void 0?{}:r,i=n.RefreshToken;this.token=i||"";}var e=t.prototype;return e.getToken=function(){return this.token},t})();var Y=rt(tr()),gn=rt(an());var cs="5.0.4";var Nl="aws-amplify/"+cs,pn={userAgent:Nl,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},us=function(){return pn.userAgent};var dt=(function(){function t(r){var n=r===void 0?{}:r,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=t.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()},t})();var Ol=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Fl=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],fr=(function(){function t(){}var e=t.prototype;return e.getNowString=function(){var n=new Date,i=Fl[n.getUTCDay()],s=Ol[n.getUTCMonth()],o=n.getUTCDate(),a=n.getUTCHours();a<10&&(a="0"+a);var c=n.getUTCMinutes();c<10&&(c="0"+c);var u=n.getUTCSeconds();u<10&&(u="0"+u);var d=n.getUTCFullYear(),f=i+" "+s+" "+o+" "+a+":"+c+":"+u+" UTC "+d;return f},t})();var Te=(function(){function t(r){var n=r===void 0?{}:r,i=n.Name,s=n.Value;this.Name=i||"",this.Value=s||"";}var e=t.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}},t})();var Je={},Ll=(function(){function t(){}return t.setItem=function(r,n){return Je[r]=n,Je[r]},t.getItem=function(r){return Object.prototype.hasOwnProperty.call(Je,r)?Je[r]:void 0},t.removeItem=function(r){return delete Je[r]},t.clear=function(){return Je={},Je},t})(),hr=(function(){function t(){try{this.storageWindow=window.localStorage,this.storageWindow.setItem("aws.cognito.test-ls",1),this.storageWindow.removeItem("aws.cognito.test-ls");}catch{this.storageWindow=Ll;}}var e=t.prototype;return e.getStorage=function(){return this.storageWindow},t})();var Ml=typeof navigator<"u",ls=Ml?pn.isReactNative?"react-native":navigator.userAgent:"nodejs",Oe=(function(){function t(r){if(r==null||r.Username==null||r.Pool==null)throw new Error("Username and Pool information are required.");this.username=r.Username||"",this.pool=r.Pool,this.Session=null,this.client=r.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=r.Storage||new hr().getStorage(),this.keyPrefix="CognitoIdentityServiceProvider."+this.pool.getClientId(),this.userDataKey=this.keyPrefix+"."+this.username+".userData";}var e=t.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(),c={AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:a};this.getUserContextData()&&(c.UserContextData=this.getUserContextData()),this.client.request("InitiateAuth",c,function(u,d){if(u)return i.onFailure(u);var f=d.ChallengeName,h=d.ChallengeParameters;return f==="CUSTOM_CHALLENGE"?(s.Session=d.Session,i.customChallenge(h)):(s.signInUserSession=s.getCognitoUserSession(d.AuthenticationResult),s.cacheTokens(),i.onSuccess(s.signInUserSession))});},e.authenticateUser=function(n,i){return this.authenticationFlowType==="USER_PASSWORD_AUTH"?this.authenticateUserPlainUsernamePassword(n,i):this.authenticationFlowType==="USER_SRP_AUTH"||this.authenticationFlowType==="CUSTOM_AUTH"?this.authenticateUserDefaultAuth(n,i):i.onFailure(new Error("Authentication flow type is invalid."))},e.authenticateUserDefaultAuth=function(n,i){var s=this,o=new qe(this.pool.getUserPoolName()),a=new fr,c,u,d={};this.deviceKey!=null&&(d.DEVICE_KEY=this.deviceKey),d.USERNAME=this.username,o.getLargeAValue(function(f,h){f&&i.onFailure(f),d.SRP_A=h.toString(16),s.authenticationFlowType==="CUSTOM_AUTH"&&(d.CHALLENGE_NAME="SRP_A");var p=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),g={AuthFlow:s.authenticationFlowType,ClientId:s.pool.getClientId(),AuthParameters:d,ClientMetadata:p};s.getUserContextData(s.username)&&(g.UserContextData=s.getUserContextData(s.username)),s.client.request("InitiateAuth",g,function(m,y){if(m)return i.onFailure(m);var w=y.ChallengeParameters;s.username=w.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",c=new W(w.SRP_B,16),u=new W(w.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),c,u,function(b,E){b&&i.onFailure(b);var P=a.getNowString(),U=Y.Buffer.concat([Y.Buffer.from(s.pool.getUserPoolName(),"utf8"),Y.Buffer.from(s.username,"utf8"),Y.Buffer.from(w.SECRET_BLOCK,"base64"),Y.Buffer.from(P,"utf8")]),N=new gn.Sha256(E);N.update(U);var O=N.digestSync(),B=Y.Buffer.from(O).toString("base64"),x={};x.USERNAME=s.username,x.PASSWORD_CLAIM_SECRET_BLOCK=w.SECRET_BLOCK,x.TIMESTAMP=P,x.PASSWORD_CLAIM_SIGNATURE=B,s.deviceKey!=null&&(x.DEVICE_KEY=s.deviceKey);var k=function(ye,Me){return s.client.request("RespondToAuthChallenge",ye,function($,re){return $&&$.code==="ResourceNotFoundException"&&$.message.toLowerCase().indexOf("device")!==-1?(x.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),k(ye,Me)):Me($,re)})},F={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:x,Session:y.Session,ClientMetadata:p};s.getUserContextData()&&(F.UserContextData=s.getUserContextData()),k(F,function(q,ye){return q?i.onFailure(q):s.authenticateUserInternal(ye,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 qe(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(o.DEVICE_KEY=this.deviceKey);var c=Object.keys(n.getValidationData()).length!==0?n.getValidationData():n.getClientMetadata(),u={AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.pool.getClientId(),AuthParameters:o,ClientMetadata:c};this.getUserContextData(this.username)&&(u.UserContextData=this.getUserContextData(this.username)),this.client.request("InitiateAuth",u,function(d,f){return d?i.onFailure(d):s.authenticateUserInternal(f,a,i)});},e.authenticateUserInternal=function(n,i,s){var o=this,a=n.ChallengeName,c=n.ChallengeParameters;if(a==="SMS_MFA")return this.Session=n.Session,s.mfaRequired(a,c);if(a==="SELECT_MFA_TYPE")return this.Session=n.Session,s.selectMFAType(a,c);if(a==="MFA_SETUP")return this.Session=n.Session,s.mfaSetup(a,c);if(a==="SOFTWARE_TOKEN_MFA")return this.Session=n.Session,s.totpRequired(a,c);if(a==="CUSTOM_CHALLENGE")return this.Session=n.Session,s.customChallenge(c);if(a==="NEW_PASSWORD_REQUIRED"){this.Session=n.Session;var u=null,d=null,f=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(c&&(u=JSON.parse(n.ChallengeParameters.userAttributes),d=JSON.parse(n.ChallengeParameters.requiredAttributes)),d)for(var p=0;p<d.length;p++)f[p]=d[p].substr(h.length);return s.newPasswordRequired(u,f)}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(m){if(m)return s.onFailure(m);var y={Salt:Y.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:Y.Buffer.from(i.getVerifierDevices(),"hex").toString("base64")};o.verifierDevices=y.PasswordVerifier,o.deviceGroupKey=g.DeviceGroupKey,o.randomPassword=i.getRandomPassword(),o.client.request("ConfirmDevice",{DeviceKey:g.DeviceKey,AccessToken:o.signInUserSession.getAccessToken().getJwtToken(),DeviceSecretVerifierConfig:y,DeviceName:ls},function(w,b){return w?s.onFailure(w):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),b.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,b.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 c=new qe(this.pool.getUserPoolName()),u=c.getNewPasswordRequiredChallengeUserAttributePrefix(),d={};i&&Object.keys(i).forEach(function(h){d[u+h]=i[h];}),d.NEW_PASSWORD=n,d.USERNAME=this.username;var f={ChallengeName:"NEW_PASSWORD_REQUIRED",ClientId:this.pool.getClientId(),ChallengeResponses:d,Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(f.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",f,function(h,p){return h?s.onFailure(h):a.authenticateUserInternal(p,c,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new qe(this.deviceGroupKey),a=new fr,c={};c.USERNAME=this.username,c.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(u,d){u&&n.onFailure(u),c.SRP_A=d.toString(16);var f={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:c,ClientMetadata:i,Session:s.Session};s.getUserContextData()&&(f.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",f,function(h,p){if(h)return n.onFailure(h);var g=p.ChallengeParameters,m=new W(g.SRP_B,16),y=new W(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,m,y,function(w,b){if(w)return n.onFailure(w);var E=a.getNowString(),P=Y.Buffer.concat([Y.Buffer.from(s.deviceGroupKey,"utf8"),Y.Buffer.from(s.deviceKey,"utf8"),Y.Buffer.from(g.SECRET_BLOCK,"base64"),Y.Buffer.from(E,"utf8")]),U=new gn.Sha256(b);U.update(P);var N=U.digestSync(),O=Y.Buffer.from(N).toString("base64"),B={};B.USERNAME=s.username,B.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,B.TIMESTAMP=E,B.PASSWORD_CLAIM_SIGNATURE=O,B.DEVICE_KEY=s.deviceKey;var x={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:B,Session:p.Session};s.getUserContextData()&&(x.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",x,function(k,F){return k?n.onFailure(k):(s.signInUserSession=s.getCognitoUserSession(F.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(c){return c?s(c,null):s(null,"SUCCESS")});},e.sendCustomChallengeAnswer=function(n,i,s){var o=this,a={};a.USERNAME=this.username,a.ANSWER=n;var c=new qe(this.pool.getUserPoolName());this.getCachedDeviceKeyAndPassword(),this.deviceKey!=null&&(a.DEVICE_KEY=this.deviceKey);var u={ChallengeName:"CUSTOM_CHALLENGE",ChallengeResponses:a,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:s};this.getUserContextData()&&(u.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",u,function(d,f){return d?i.onFailure(d):o.authenticateUserInternal(f,c,i)});},e.sendMFACode=function(n,i,s,o){var a=this,c={};c.USERNAME=this.username,c.SMS_MFA_CODE=n;var u=s||"SMS_MFA";u==="SOFTWARE_TOKEN_MFA"&&(c.SOFTWARE_TOKEN_MFA_CODE=n),this.deviceKey!=null&&(c.DEVICE_KEY=this.deviceKey);var d={ChallengeName:u,ChallengeResponses:c,ClientId:this.pool.getClientId(),Session:this.Session,ClientMetadata:o};this.getUserContextData()&&(d.UserContextData=this.getUserContextData()),this.client.request("RespondToAuthChallenge",d,function(f,h){if(f)return i.onFailure(f);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 qe(a.pool.getUserPoolName());g.generateHashDevice(h.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,h.AuthenticationResult.NewDeviceMetadata.DeviceKey,function(m){if(m)return i.onFailure(m);var y={Salt:Y.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:Y.Buffer.from(g.getVerifierDevices(),"hex").toString("base64")};a.verifierDevices=y.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:y,DeviceName:ls},function(w,b){return w?i.onFailure(w):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),b.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,b.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,c){return a?i(a,null):o.getUserData(function(){return i(null,"SUCCESS",c)},{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 c={Name:s.UserAttributes[a].Name,Value:s.UserAttributes[a].Value},u=new Te(c);o.push(u);}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",c=s+".refreshToken",u=s+".clockDrift";if(this.storage.getItem(o)){var d=new ut({IdToken:this.storage.getItem(o)}),f=new ct({AccessToken:this.storage.getItem(a)}),h=new lt({RefreshToken:this.storage.getItem(c)}),p=parseInt(this.storage.getItem(u),0)||0,g={IdToken:d,AccessToken:f,RefreshToken:h,ClockDrift:p},m=new dt(g);if(m.isValid())return this.signInUserSession=m,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,c={};c.REFRESH_TOKEN=n.getToken();var u="CognitoIdentityServiceProvider."+this.pool.getClientId(),d=u+".LastAuthUser";if(this.storage.getItem(d)){this.username=this.storage.getItem(d);var f=u+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(f),c.DEVICE_KEY=this.deviceKey;}var h={ClientId:this.pool.getClientId(),AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:c,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 m=g.AuthenticationResult;return Object.prototype.hasOwnProperty.call(m,"RefreshToken")||(m.RefreshToken=n.getToken()),o.signInUserSession=o.getCognitoUserSession(m),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",c=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(c,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",c=n+"."+this.username+".clockDrift";this.storage.removeItem(i),this.storage.removeItem(s),this.storage.removeItem(o),this.storage.removeItem(a),this.storage.removeItem(c);},e.getCognitoUserSession=function(n){var i=new ut(n),s=new ct(n),o=new lt(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new dt(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(c){return c?s.onFailure(c):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,c){return a?s.onFailure(a):s.onSuccess(c)});},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(),c=this.signInUserSession.getAccessToken();if(this.isSessionRevocable(c)&&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(c,u){if(c)return i.onFailure(c);if(s.Session=u.Session,n==="SMS_MFA")return i.mfaRequired(u.ChallengeName,u.ChallengeParameters);if(n==="SOFTWARE_TOKEN_MFA")return i.totpRequired(u.ChallengeName,u.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,c){return a?s.onFailure(a):s.onSuccess(c)}):this.client.request("VerifySoftwareToken",{Session:this.Session,UserCode:n,FriendlyDeviceName:i},function(a,c){if(a)return s.onFailure(a);o.Session=c.Session;var u={};u.USERNAME=o.username;var d={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:u,Session:o.Session};o.getUserContextData()&&(d.UserContextData=o.getUserContextData()),o.client.request("RespondToAuthChallenge",d,function(f,h){return f?s.onFailure(f):(o.signInUserSession=o.getCognitoUserSession(h.AuthenticationResult),o.cacheTokens(),s.onSuccess(o.signInUserSession))});});},t})();rt(fs());function ft(){}ft.prototype.userAgent=us();var hs=function(e){var r=ft.category?" "+ft.category:"",n=ft.framework?" framework/"+ft.framework:"",i=""+ft.prototype.userAgent+r+n;return i};function Bl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,St(t,e);}function _n(t){var e=typeof Map=="function"?new Map:void 0;return _n=function(n){if(n===null||!$l(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 ql(n,arguments,bn(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),St(i,n)},_n(t)}function ql(t,e,r){if(ps())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(t.bind.apply(t,n));return r&&St(i,r.prototype),i}function ps(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (ps=function(){return !!t})()}function $l(t){try{return Function.toString.call(t).indexOf("[native code]")!==-1}catch{return typeof t=="function"}}function St(t,e){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},St(t,e)}function bn(t){return bn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},bn(t)}var Kl=(function(t){function e(r,n,i,s){var o;return o=t.call(this,r)||this,o.code=n,o.name=i,o.statusCode=s,o}return Bl(e,t),e})(_n(Error)),gs=(function(){function t(r,n,i){this.endpoint=n||"https://cognito-idp."+r+".amazonaws.com/";var s=i||{},o=s.credentials;this.fetchOptions=o?{credentials:o}:{};}var e=t.prototype;return e.promisifyRequest=function(n,i){var s=this;return new Promise(function(o,a){s.request(n,i,function(c,u){c?a(new Kl(c.message,c.code,c.name,c.statusCode)):o(u);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;Gl(function(c){return new Promise(function(u,d){o.request(n,c,function(f,h){f?d(f):u(h);});})},[i],a).then(function(c){return s(null,c)}).catch(function(c){return s(c)});},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":hs(),"Cache-Control":"no-store"},a=Object.assign({},this.fetchOptions,{headers:o,method:"POST",mode:"cors",body:JSON.stringify(i)}),c;fetch(this.endpoint,a).then(function(d){return c=d,d},function(d){throw d instanceof TypeError?new Error("Network error"):d}).then(function(d){return d.json().catch(function(){return {}})}).then(function(d){if(c.ok)return s(null,d);var f=(d.__type||d.code).split("#").pop(),h=new Error(d.message||d.Message||null);return h.name=f,h.code=f,s(h)}).catch(function(d){if(c&&c.headers&&c.headers.get("x-amzn-errortype"))try{var f=c.headers.get("x-amzn-errortype").split(":")[0],h=new Error(c.status?c.status.toString():null);return h.code=f,h.name=f,h.statusCode=c.status,s(h)}catch{return s(d)}else d instanceof Error&&d.message==="Network error"&&(d.code="NetworkError");return s(d)});},t})();var pr={debug:function(){}};var jl=function(e){var r="nonRetryable";return e&&e[r]};function ms(t,e,r,n){if(n===void 0&&(n=1),typeof t!="function")throw Error("functionToRetry must be a function");return pr.debug(t.name+" attempt #"+n+" with args: "+JSON.stringify(e)),t.apply(void 0,e).catch(function(i){if(pr.debug("error on "+t.name,i),jl(i))throw pr.debug(t.name+" non retryable error",i),i;var s=r(n,e,i);if(pr.debug(t.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return ms(t,e,r,n+1)});throw i})}function Hl(t){var e=100,r=100;return function(n){var i=Math.pow(2,n)*e+r*Math.random();return i>t?false:i}}function Gl(t,e,r){return ms(t,e,Hl(r))}var Jl=55,wn=(function(){function t(r,n){var i=r||{},s=i.UserPoolId,o=i.ClientId,a=i.endpoint,c=i.fetchOptions,u=i.AdvancedSecurityDataCollectionFlag;if(!s||!o)throw new Error("Both UserPoolId and ClientId are required.");if(s.length>Jl||!/^[\w-]+_[0-9a-zA-Z]+$/.test(s))throw new Error("Invalid UserPoolId format.");var d=s.split("_")[0];this.userPoolId=s,this.clientId=o,this.client=new gs(d,a,c),this.advancedSecurityDataCollectionFlag=u!==false,this.storage=r.Storage||new hr().getStorage(),n&&(this.wrapRefreshSessionCallback=n);}var e=t.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,c){var u=this,d={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:c};this.getUserContextData(n)&&(d.UserContextData=this.getUserContextData(n)),this.client.request("SignUp",d,function(f,h){if(f)return a(f,null);var p={Username:n,Pool:u,Storage:u.storage},g={user:new Oe(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 Oe(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 {}}},t})();function gr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)n!=="__proto__"&&(t[n]=r[n]);}return t}var Yl={read:function(t){return t[0]==='"'&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function An(t,e){function r(i,s,o){if(!(typeof document>"u")){o=gr({},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 c in o)o[c]&&(a+="; "+c,o[c]!==true&&(a+="="+o[c].split(";")[0]));return document.cookie=i+"="+t.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 c=s[a].split("="),u=c.slice(1).join("=");try{var d=decodeURIComponent(c[0]);if(d in o||(o[d]=t.read(u,d)),i===d)break}catch{}}return i?o[i]:o}}return Object.create({set:r,get:n,remove:function(i,s){r(i,"",gr({},s,{expires:-1}));},withAttributes:function(i){return An(this.converter,gr({},this.attributes,i))},withConverter:function(i){return An(gr({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}An(Yl,{path:"/"});var l=class extends Error{constructor(e,r){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=r?.name||"SKAPI",this.code=r?.code||e[0]||"ERROR",r?.cause&&(this.cause=r.cause);}else super((e?.message||(typeof e=="string"?e:"Something went wrong.")).trim()),typeof e=="string"?(this.name=r?.name||"SKAPI",this.code=r?.code||"ERROR",r?.cause&&(this.cause=r.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=r?.name||"SKAPI",this.code=r?.code||"ERROR",this.cause=e?.cause);}};var Fe="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",En=BigInt(Fe.length),Ql=2*1024*1024,Xl=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],ys={auth_time:"log",sub:"user_id"},Zl=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],Es=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],_s=typeof TextEncoder<"u"?new TextEncoder:null;function ed(){if(typeof globalThis<"u")return globalThis.Buffer}function G(t){if(_s)return _s.encode(t);let e=unescape(encodeURIComponent(t)),r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}function Sn(t){if(t instanceof Uint8Array)return t;if(typeof t=="string")return G(t);if(typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer)return new Uint8Array(t);if(typeof ArrayBuffer<"u"&&ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);if(Array.isArray(t))return Uint8Array.from(t);let e=ed();if(e)return new Uint8Array(e.from(t));throw new Error("No byte conversion available in this environment.")}var S=class S{static hash(e){typeof e!="string"&&(console.warn("coercing non-string value to empty string"),e="");let r=S.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,c,u,d;for(let f=0;f<r.length;f+=16)a=n,c=i,u=s,d=o,n=S.ff(n,i,s,o,r[f],7,-680876936),o=S.ff(o,n,i,s,r[f+1],12,-389564586),s=S.ff(s,o,n,i,r[f+2],17,606105819),i=S.ff(i,s,o,n,r[f+3],22,-1044525330),n=S.ff(n,i,s,o,r[f+4],7,-176418897),o=S.ff(o,n,i,s,r[f+5],12,1200080426),s=S.ff(s,o,n,i,r[f+6],17,-1473231341),i=S.ff(i,s,o,n,r[f+7],22,-45705983),n=S.ff(n,i,s,o,r[f+8],7,1770035416),o=S.ff(o,n,i,s,r[f+9],12,-1958414417),s=S.ff(s,o,n,i,r[f+10],17,-42063),i=S.ff(i,s,o,n,r[f+11],22,-1990404162),n=S.ff(n,i,s,o,r[f+12],7,1804603682),o=S.ff(o,n,i,s,r[f+13],12,-40341101),s=S.ff(s,o,n,i,r[f+14],17,-1502002290),i=S.ff(i,s,o,n,r[f+15],22,1236535329),n=S.gg(n,i,s,o,r[f+1],5,-165796510),o=S.gg(o,n,i,s,r[f+6],9,-1069501632),s=S.gg(s,o,n,i,r[f+11],14,643717713),i=S.gg(i,s,o,n,r[f],20,-373897302),n=S.gg(n,i,s,o,r[f+5],5,-701558691),o=S.gg(o,n,i,s,r[f+10],9,38016083),s=S.gg(s,o,n,i,r[f+15],14,-660478335),i=S.gg(i,s,o,n,r[f+4],20,-405537848),n=S.gg(n,i,s,o,r[f+9],5,568446438),o=S.gg(o,n,i,s,r[f+14],9,-1019803690),s=S.gg(s,o,n,i,r[f+3],14,-187363961),i=S.gg(i,s,o,n,r[f+8],20,1163531501),n=S.gg(n,i,s,o,r[f+13],5,-1444681467),o=S.gg(o,n,i,s,r[f+2],9,-51403784),s=S.gg(s,o,n,i,r[f+7],14,1735328473),i=S.gg(i,s,o,n,r[f+12],20,-1926607734),n=S.hh(n,i,s,o,r[f+5],4,-378558),o=S.hh(o,n,i,s,r[f+8],11,-2022574463),s=S.hh(s,o,n,i,r[f+11],16,1839030562),i=S.hh(i,s,o,n,r[f+14],23,-35309556),n=S.hh(n,i,s,o,r[f+1],4,-1530992060),o=S.hh(o,n,i,s,r[f+4],11,1272893353),s=S.hh(s,o,n,i,r[f+7],16,-155497632),i=S.hh(i,s,o,n,r[f+10],23,-1094730640),n=S.hh(n,i,s,o,r[f+13],4,681279174),o=S.hh(o,n,i,s,r[f],11,-358537222),s=S.hh(s,o,n,i,r[f+3],16,-722521979),i=S.hh(i,s,o,n,r[f+6],23,76029189),n=S.hh(n,i,s,o,r[f+9],4,-640364487),o=S.hh(o,n,i,s,r[f+12],11,-421815835),s=S.hh(s,o,n,i,r[f+15],16,530742520),i=S.hh(i,s,o,n,r[f+2],23,-995338651),n=S.ii(n,i,s,o,r[f],6,-198630844),o=S.ii(o,n,i,s,r[f+7],10,1126891415),s=S.ii(s,o,n,i,r[f+14],15,-1416354905),i=S.ii(i,s,o,n,r[f+5],21,-57434055),n=S.ii(n,i,s,o,r[f+12],6,1700485571),o=S.ii(o,n,i,s,r[f+3],10,-1894986606),s=S.ii(s,o,n,i,r[f+10],15,-1051523),i=S.ii(i,s,o,n,r[f+1],21,-2054922799),n=S.ii(n,i,s,o,r[f+8],6,1873313359),o=S.ii(o,n,i,s,r[f+15],10,-30611744),s=S.ii(s,o,n,i,r[f+6],15,-1560198380),i=S.ii(i,s,o,n,r[f+13],21,1309151649),n=S.ii(n,i,s,o,r[f+4],6,-145523070),o=S.ii(o,n,i,s,r[f+11],10,-1120210379),s=S.ii(s,o,n,i,r[f+2],15,718787259),i=S.ii(i,s,o,n,r[f+9],21,-343485551),n=S.ad(n,a),i=S.ad(i,c),s=S.ad(s,u),o=S.ad(o,d);return S.rh(n)+S.rh(i)+S.rh(s)+S.rh(o)}static rh(e){let r="";for(let n=0;n<=3;n++)r+=S.alphabet.charAt(e>>n*8+4&15)+S.alphabet.charAt(e>>n*8&15);return r}static ad(e,r){let n=(e&65535)+(r&65535);return (e>>16)+(r>>16)+(n>>16)<<16|n&65535}static rl(e,r){return e<<r|e>>>32-r}static cm(e,r,n,i,s,o){return S.ad(S.rl(S.ad(S.ad(r,e),S.ad(i,o)),s),n)}static ff(e,r,n,i,s,o,a){return S.cm(r&n|~r&i,e,r,s,o,a)}static gg(e,r,n,i,s,o,a){return S.cm(r&i|n&~i,e,r,s,o,a)}static hh(e,r,n,i,s,o,a){return S.cm(r^n^i,e,r,s,o,a)}static ii(e,r,n,i,s,o,a){return S.cm(n^(r|~i),e,r,s,o,a)}static sb(e){let r,n=(e.length+8>>6)+1,i=new Array(n*16);for(r=0;r<n*16;r++)i[r]=0;for(r=0;r<e.length;r++)i[r>>2]|=e.charCodeAt(r)<<r%4*8;return i[r>>2]|=128<<r%4*8,i[n*16-2]=e.length*8,i}};S.alphabet="0123456789abcdef";var Q=S;function Ss(t){if(t===0)return Fe[0];let e="";for(;t>0;)e=Fe[t%62]+e,t=Math.floor(t/62);return e}function pe(t){return t.split("").reverse().reduce((e,r,n)=>e+Fe.indexOf(r)*62**n,0)}function Ye(t=6){let e="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=r.length,i=0;for(;i<t;)e+=r.charAt(Math.floor(Math.random()*n)),i+=1;return e}function vn(){return typeof window>"u"||!!window?._runningInNodeJS}function se(){return !vn()&&typeof document<"u"&&typeof document.createElement=="function"}function mr(t){let e;try{e=JSON.stringify(t);}catch{throw new l("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>Ql)throw new l("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function bs(t){return t===""||t==="on"||t==="true"}function ws(t){return t==="false"}function As(t,e,r){e.name&&r(t,e.name,e.value);}var yr=se(),td=typeof SubmitEvent<"u",rd=typeof HTMLFormElement<"u";function j(t,e,r){let n={},i=[];function s(c,u,d){if(e?.ignoreEmpty&&d==="")return;if(e?.nullIfEmpty&&d===""&&(d=null),typeof r=="function"){let p=r(u,d);p!==void 0&&(d=p);}let f=u.split("[").map(p=>{let g=p.replace("]",""),m=Number(g);return !isNaN(m)&&!g.includes(".")?g=m:(g[0]==='"'&&g[g.length-1]==='"'||g[0]==="'"&&g[g.length-1]==="'")&&(g=g.replace(/"/g,"").replace(/'/g,"")),g}),h=c;if(typeof f[0]=="number")throw new l("Form key cannot start with an array index.",{code:"INVALID_REQUEST"});for(let p=0;p<f.length;p++){let g=f[p];p<f.length-1?(h[g]===void 0&&(typeof f[p+1]=="number"?h[g]=[]:h[g]={}),h=h[g]):h[g]===void 0?h[g]=d:Array.isArray(h[g])?h[g].push(d):h[g]=[h[g],d];}}function o(c,u,d){if(d instanceof File)c.push({name:u,file:d});else if(d instanceof FileList&&d&&d.length>0)for(let f=0;f<=d.length-1;f++){let h=d.item(f);h&&c.push({name:u,file:h});}}let a=c=>{c.name&&(c.type==="number"?c.value&&s(n,c.name,Number(c.value)):c.type==="checkbox"||c.type==="radio"?c.checked?c.type==="checkbox"&&c.value===""||bs(c.value)?s(n,c.name,true):ws(c.value)?s(n,c.name,false):c.value&&s(n,c.name,c.value):c.type==="checkbox"&&(bs(c.value)?s(n,c.name,false):ws(c.value)&&s(n,c.name,true)):c.type==="file"?c.files&&c.files.length>0&&o(i,c.name,c.files):s(n,c.name,c.value));};if(yr&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement))return a(t),mr(n),{data:n,files:i};if(yr&&t instanceof FormData){for(let c of t.entries()){let u=c[0],d=c[1];if(d instanceof File||d instanceof FileList)o(i,u,d);else if(d instanceof Blob){let f=d;if(f.type==="application/json")try{let h=JSON.parse(f.text());s(n,u,h);}catch{s(n,u,f);}}else s(n,u,d);}return mr(n),{data:n,files:i}}if(yr&&td&&t instanceof SubmitEvent&&(t=t.target),yr&&rd&&t instanceof HTMLFormElement){let c=t.querySelectorAll("input"),u=t.querySelectorAll("select"),d=t.querySelectorAll("textarea");for(let f=0;f<u.length;f++)As(n,u[f],s);for(let f=0;f<d.length;f++)As(n,d[f],s);for(let f=0;f<c.length;f++)a(c[f]);return mr(n),{data:n,files:i}}return mr(t),{data:t,files:i}}function vt(t){let e={};for(let r in t){let n=t[r];if(!Xl.includes(r))if(ys[r])e[ys[r]]=n;else if(r.includes("custom:"))e[r.replace("custom:","")]=n;else if(r==="address"){let i=n;if(i&&typeof i=="object"&&Object.keys(i).length){if(i?.formatted)try{e[r]=JSON.parse(i.formatted);}catch{e[r]=i.formatted;}}else e[r]=i;}else e[r]=n;}for(let r of ["address_public","birthdate_public","email_public","gender_public","phone_number_public","access_group"])r.includes("_public")?e.hasOwnProperty(r.split("_")[0])?e[r]=e.hasOwnProperty(r)?!!Number(e[r]):false:delete e[r]:e[r]=e.hasOwnProperty(r)?Number(e[r]):0;for(let r of ["email","phone_number"])e.hasOwnProperty(r)?e[r+"_verified"]=e[r+"_verified"]===true:delete e[r+"_verified"];return e}function Rn(t){if(t=ld(t),t.split("-").length===7){let e=t.split("-"),r,n;try{r=Es[pe(e[1][0])],n=e.slice(2).join("-");}catch{throw new Error("INVALID_PARAMETER: Service ID is invalid: "+t)}if(!r)throw new Error("INVALID_PARAMETER: Service ID is invalid: "+t);return {service:r+e[0]+e[1].slice(1),owner:n}}return {service:t,owner:""}}function Tn(t,e){let r=Es.indexOf(t.slice(0,4)),n=Zl[r],s=`${t.slice(4,-4)}-${n}${t.slice(-4)}-${e}`;return ud(s)}function nd(t){let e=0n;for(let r of t){let n=Fe.indexOf(r);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${r}`);e=e*En+BigInt(n);}return e}function id(t,e=1){if(t<0n)throw new Error("INVALID_PARAMETER: Negative values are not supported.");if(t===0n)return "0".repeat(Math.max(1,e));let r="",n=t;for(;n>0n;){let i=Number(n%En);r=Fe[i]+r,n/=En;}return r.length<e&&(r="0".repeat(e-r.length)+r),r}function sd(t){if(t===0n)return Uint8Array.from([0]);let e=[],r=t;for(;r>0n;)e.push(Number(r&0xffn)),r>>=8n;return e.reverse(),Uint8Array.from(e)}function od(t){let e=0n;for(let r of t)e=(e<<8n)+BigInt(r);return e}function ad(t){let e=String(t).replace(/-/g,"");if(!/^[0-9a-fA-F]{32}$/.test(e))throw new Error("INVALID_PARAMETER: Invalid UUID format.");let r=new Uint8Array(16);for(let n=0;n<16;n++)r[n]=parseInt(e.slice(n*2,n*2+2),16);return r}function cd(t){let e=Array.from(Sn(t),r=>r.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 ud(t){let e=String(t);if(e.split("-").length===2)return e;let r=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(!r)throw new Error("INVALID_PARAMETER: Input must match <base62>-<base62>-<uuid>.");let[,n,i,s]=r;if(n.length<2)throw new Error("INVALID_PARAMETER: The first part must contain at least 2 characters.");if(i.length>=Fe.length)throw new Error("INVALID_PARAMETER: The middle section is too long to encode.");let o=n.slice(0,2),a=n.slice(2),c=i+o,u=Fe[i.length]+a+c,d=ad(s),f=id(od(d));return `${u}-${f}`}function ld(t){let e=String(t);if(e.split("-").length!==2)return e;let r=e.split("-");if(r.length!==2||!r[0]||!r[1])throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let[n,i]=r,s=Fe.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 c=o.slice(0,o.length-a),u=o.slice(o.length-a),d=u.slice(s),f=u.slice(0,s),h=d+c;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(f))throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let p=nd(i),g=sd(p);if(g.length>16)throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let m=new Uint8Array(16);m.set(g,16-g.length);let y=cd(m);return `${h}-${f}-${y}`}function Rt(t){if(typeof TextDecoder<"u")return new TextDecoder().decode(t);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return decodeURIComponent(escape(e))}function In(...t){let e=0;for(let i of t)e+=i.length;let r=new Uint8Array(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return r}function Tt(t,e,r=[],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 c(g){return typeof g=="string"&&i.indexOf(g)!==-1}function u(g){return Array.isArray(g)?"array":g===null?"null":typeof g}function d(g){try{return JSON.stringify(g)}catch{return String(g)}}function f(g){if(c(g))return `Type<${g}>`;if(typeof g=="function")return "custom validator";try{return JSON.stringify(g,(m,y)=>typeof y=="function"?"custom validator":y)}catch{return String(g)}}function h(g,m){return m==="array"?Array.isArray(g):m==="object"?s(g):m==="null"?g===null:m==="undefined"?typeof g>"u":typeof g===m}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(t);if(o(e)){if(!s(t))throw new Error(`Data schema does not match:
207
+ `+JSON.stringify(t,null,2));for(let g of Object.keys(e)){let m=p(g);if(Object.prototype.hasOwnProperty.call(t,g))t[g]=Tt(t[g],e[g],r,m);else {if(r.indexOf(m)!==-1)throw new Error(`Key "${m}" is required.`);let y=e[g];a(y)&&y.length>1&&typeof y[y.length-1]=="function"&&(t[g]=y[y.length-1]());}}return t}if(a(e)){let g=false;if(e.length===1&&!a(e[0])&&!o(e[0])){let m=e[0];if(!Array.isArray(t))throw new Error(`Type <${u(t)}> is invalid in "${n}". Expected a list.`);for(let y=0;y<t.length;y++){let w=t[y];if(c(m)){if(!h(w,m))throw new Error(`Type <${u(w)}> is invalid in "${n}". Expected a list of Type <${m}>.`)}else if(typeof m=="function")t[y]=m(w);else if(w!==m)throw new Error(`Value ${d(w)} is invalid in "${n}". Expected a list of ${d(m)}.`)}g=true;}else if(Array.isArray(t)&&e.every(y=>!a(y)&&y!=="array")){for(let y=0;y<t.length;y++){let w=false,b="";for(let E of e)try{t[y]=Tt(t[y],E,r,n),w=!0;break}catch(P){typeof E=="function"&&(b=P?.message||String(P));}if(!w&&b)throw new Error(b);if(!w){let E=e.map(f).join(", ");throw new Error(`${d(t[y])} is invalid in "${n}". allowed types or values are: ${E}.`)}}g=true;}else {let y="";for(let w of e)try{t=Tt(t,w,r,n),g=!0;break}catch(b){typeof w=="function"&&(y=b?.message||String(b));}if(!g&&y)throw new Error(y)}if(!g){let m=e.map(f).join(", ");throw new Error(`${d(t)} is invalid in "${n}". allowed types or values are: ${m}.`)}return t}if(c(e)&&h(t,e)||t===e)return t;throw new Error(`${d(t)} is invalid in "${n}". allowed type or value is: ${f(e)}.`)}function dd(t,e="User ID"){let r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;if(t){if(typeof t!="string")throw new l(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!t.match(r))throw new l(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new l(`${e} is empty.`,{code:"INVALID_PARAMETER"});return t}function fd(t){if(t&&(typeof t!="string"||t.charAt(0)!=="+"||isNaN(Number(t.substring(1)))))throw new l('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return t||""}function hd(t){if(t){if(typeof t!="string")throw new l('"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(t.length!==10||t.split("-").length!==3||!e.test(t))throw new l('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return t||""}function pd(t){if(t){if(typeof t!="string")throw new l('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(t.length<6)throw new l('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(t.length>60)throw new l('"password" can be up to 60 characters max.',{code:"INVALID_PARAMETER"})}else throw new l('"password" is required.',{code:"INVALID_PARAMETER"});return t}function gd(t,e="email"){if(t){if(typeof t!="string")throw new l(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(t.length<5)throw new l(`"${e}" should be at least 5 characters.`,{code:"INVALID_PARAMETER"});if(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(t)&&(t=t.trim(),t.split("@")[1].split(".").length>=2))return t.toLowerCase()}else throw new l(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new l(`"${t}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function md(t){let e=typeof window<"u",r=(()=>{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]==="/"&&r){if(r.slice(0,5)==="file:")throw new l(`"${i}" is an invalid url. Relative URL does not work on local file system. Use full URL string.`,{code:"INVALID_PARAMETER"});s=r+s;}else if(s[0]==="."&&r){if(r.slice(0,5)==="file:")throw new l(`"${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 l(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})}if(o.protocol)return o.href}}throw new l(`"${i}" is an invalid url.`,{code:"INVALID_PARAMETER"})};return Array.isArray(t)?t.map(i=>n(i)):n(t)}function yd(t,e,r=[],n){let i=j(t,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,r)}catch(a){throw new l(a.message,{code:"INVALID_PARAMETER"})}}var _={UserId:dd,PhoneNumber:fd,Birthdate:hd,Password:pd,Email:gd,Url:md,Params:yd};var oe="skapi.enc.v1",Ts=6e5,It=12,_r=null,ht=null;function Is(){return new l("Encryption requires Web Crypto, which needs a secure context (https, or localhost) in the browser, or Node 18 or newer. A page served over plain http has crypto.getRandomValues but crypto.subtle is undefined.",{code:"NOT_SUPPORTED"})}function Ps(){if(ht)return ht;let t=typeof globalThis<"u"?globalThis:void 0;if(t?.crypto?.subtle&&typeof t.crypto.getRandomValues=="function")return ht=t.crypto,ht;try{let e=typeof globalThis<"u"?globalThis:void 0,r=null;if(e?.process&&typeof e.process.getBuiltinModule=="function"&&(r=e.process.getBuiltinModule("crypto")),!r&&typeof Ve=="function"&&(r=Ve("crypto")),r?.webcrypto?.subtle)return ht=r.webcrypto,ht}catch{}throw Is()}function ge(){if(_r)return _r;let t=Ps();if(!t.subtle)throw Is();return _r=t.subtle,_r}function Un(){try{return ge(),!0}catch{return false}}function ae(t){let e=Ps(),r=new Uint8Array(t),n=65536;for(let i=0;i<t;i+=n)e.getRandomValues(r.subarray(i,Math.min(i+n,t)));return r}function V(t){let e=Sn(t),r;if(typeof Buffer<"u"&&typeof Buffer.from=="function")r=Buffer.from(e).toString("base64");else if(typeof btoa=="function"){let n="";for(let s=0;s<e.length;s+=32768)n+=String.fromCharCode.apply(null,Array.from(e.subarray(s,s+32768)));r=btoa(n);}else throw new l("No base64 encoder available in this environment.",{code:"NOT_SUPPORTED"});return r.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function K(t){if(typeof t!="string")throw new l("Expected a base64url string.",{code:"INVALID_PARAMETER"});let e=t.replace(/-/g,"+").replace(/_/g,"/"),r=e.length%4;if(r===2)e+="==";else if(r===3)e+="=";else if(r===1)throw new l("Malformed base64url string.",{code:"INVALID_PARAMETER"});if(typeof Buffer<"u"&&typeof Buffer.from=="function"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}if(typeof atob=="function"){let n=atob(e),i=new Uint8Array(n.length);for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s);return i}throw new l("No base64 decoder available in this environment.",{code:"NOT_SUPPORTED"})}async function br(t){let e=await ge().digest("SHA-256",t);return new Uint8Array(e)}async function xt(t,e,r,n){let i=ge(),s=await i.importKey("raw",t,"HKDF",false,["deriveBits"]),o=await i.deriveBits({name:"HKDF",hash:"SHA-256",salt:e,info:r},s,n*8);return new Uint8Array(o)}async function gt(t,e,r,n){let i=ge(),s=G(t.normalize("NFC")),o=await i.importKey("raw",s,"PBKDF2",false,["deriveBits"]),a=new Uint8Array(await i.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:"SHA-256"},o,256)),c=await xt(a,e,n,32);M(a),M(s);let u=await _e(c);return M(c),u}async function _e(t){return ge().importKey("raw",t,{name:"AES-GCM"},false,["encrypt","decrypt"])}async function Us(){let t=ae(32),e=await _e(t);return {bytes:t,key:e}}async function me(t,e,r){let n=ae(It),i=await ge().encrypt({name:"AES-GCM",iv:n,additionalData:r,tagLength:128},t,e);return {iv:n,ct:new Uint8Array(i)}}async function be(t,e,r,n){let i=await ge().decrypt({name:"AES-GCM",iv:e,additionalData:n,tagLength:128},t,r);return new Uint8Array(i)}var wr={name:"ECDH",namedCurve:"P-256"};async function xs(){let t=ge(),e=await t.generateKey(wr,true,["deriveBits"]),r=new Uint8Array(await t.exportKey("raw",e.publicKey)),n=new Uint8Array(await t.exportKey("pkcs8",e.privateKey)),i=await xn(n);return {pubRaw:r,pkcs8:n,priv:i}}async function xn(t){return ge().importKey("pkcs8",t,wr,false,["deriveBits"])}async function Cs(t){if(t.length!==65||t[0]!==4)throw new l("Malformed public key: expected a 65 byte uncompressed P-256 point.",{code:"INVALID_PARAMETER"});return ge().importKey("raw",t,wr,false,[])}async function Cn(t){return V(await br(t))}async function Ds(t,e,r,n){let i=ge(),s=await Cs(t),o=await i.generateKey(wr,true,["deriveBits"]),a=new Uint8Array(await i.deriveBits({name:"ECDH",public:s},o.privateKey,256)),c=await xt(a,new Uint8Array(32),r,32);M(a);let u=await _e(c);M(c);let{iv:d,ct:f}=await me(u,e,n);return {epk:new Uint8Array(await i.exportKey("raw",o.publicKey)),iv:d,ct:f}}async function ks(t,e,r,n,i,s){let o=ge(),a=await Cs(e),c=new Uint8Array(await o.deriveBits({name:"ECDH",public:a},t,256)),u=await xt(c,new Uint8Array(32),i,32);M(c);let d=await _e(u);return M(u),be(d,r,n,s)}function M(t){t&&t.length&&t.fill(0);}function _d(t,e){if(t.length!==e.length)return false;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function Dn(t){return G(JSON.stringify(t))}function Ct(t,e,r){return In(t,new Uint8Array([0]),G(e),new Uint8Array([0]),G(r))}var ze="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Pt=16,vs=26,Rs=28;function Ns(t){let e=2166136261;for(let r=0;r<t.length;r++)e^=t[r],e=e*16777619>>>0;return e&1023}function Os(t){if(t.length!==Pt)throw new l(`A recovery code needs exactly ${Pt} bytes.`,{code:"INVALID_PARAMETER"});let e="",r=0,n=0;for(let s=0;s<t.length;s++)for(r=r<<8|t[s],n+=8;n>=5;)n-=5,e+=ze[r>>n&31];n>0&&(e+=ze[r<<5-n&31]);let i=Ns(t);return e+=ze[i>>5&31]+ze[i&31],(e.match(/.{1,4}/g)||[]).join("-")}function Fs(t){if(typeof t!="string")throw new l("Recovery code should be a string.",{code:"INVALID_PARAMETER"});let e=t.toUpperCase().replace(/[\s\-_]/g,"").replace(/O/g,"0").replace(/[IL]/g,"1");if(e.length!==Rs)throw new l(`That does not look like a recovery code: expected ${Rs} characters, got ${e.length}.`,{code:"ENCRYPTION_BAD_RECOVERY_CODE"});let r=e.slice(0,vs),n=e.slice(vs),i=0,s=0,o=[];for(let u=0;u<r.length;u++){let d=ze.indexOf(r[u]);if(d<0)throw new l(`That does not look like a recovery code: "${r[u]}" is not a valid character.`,{code:"ENCRYPTION_BAD_RECOVERY_CODE"});i=i<<5|d,s+=5,s>=8&&(s-=8,o.push(i>>s&255));}let a=new Uint8Array(o.slice(0,Pt)),c=Ns(a);if(n!==ze[c>>5&31]+ze[c&31])throw new l("That recovery code has a typo in it: the check characters do not match.",{code:"ENCRYPTION_BAD_RECOVERY_CODE"});return a}async function kn(t,e,r){let n=await xt(t,e,r,32),i=await _e(n);return M(n),i}var Pn=[83,75,69,78,67,70],Ls=2,Ut=56,Ms=16,bd=4*1024*1024;function Nn(t){if(!t||t.length<Ut)return false;for(let e=0;e<Pn.length;e++)if(t[e]!==Pn[e])return false;return true}function Qe(t,e,r){t[e]=r>>>24&255,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255;}function pt(t,e){return (t[e]<<24>>>0)+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3]}function wd(t,e,r){let n=Math.floor(r/4294967296);Qe(t,e,n),Qe(t,e+4,r>>>0);}function Ad(t,e){return pt(t,e)*4294967296+pt(t,e+4)}async function Vs(t,e,r,n,i,s){let o=G(`${oe}|binfile|${r}|${n}|${i}|${s}`),a=await xt(t,e,o,32),c=await _e(a);return M(a),c}async function Bs(t){return (await br(In(G(`${oe}|dekid`),t))).subarray(0,8)}function qs(t,e,r){return Dn([`${oe}|binchunk`,V(t),e,r])}function Ed(t,e,r,n,i,s){let o=new Uint8Array(Ut+s.length);return o.set(Pn,0),o[6]=Ls,o[7]=s.length?1:0,Qe(o,8,t),Qe(o,12,e),o.set(r,16),wd(o,32,n),o.set(i,40),Qe(o,48,s.length),Qe(o,52,0),s.length&&o.set(s,Ut),o}async function $s(t,e,r,n,i=bd){let s=ae(Ms),o=await Vs(t,s,r.service,r.owner,r.recordOwner,r.recordId),a=await Bs(t),c=n?G(JSON.stringify(n)):new Uint8Array(0);if(c.length>4096)throw new l("Encrypted file metadata is too large.",{code:"INVALID_PARAMETER"});let u=e.length===0?1:Math.ceil(e.length/i),d=Ed(i,u,s,e.length,a,c),f=await br(d),h=[],p=d.length;for(let y=0;y<u;y++){let w=e.subarray(y*i,Math.min((y+1)*i,e.length)),b=await me(o,w,qs(f,y,u));h.push(b),p+=4+b.iv.length+b.ct.length;}let g=new Uint8Array(p);g.set(d,0);let m=d.length;for(let y of h)Qe(g,m,y.iv.length+y.ct.length),m+=4,g.set(y.iv,m),m+=y.iv.length,g.set(y.ct,m),m+=y.ct.length;return g}function Sd(t){if(!Nn(t))throw new l("This file is not an encrypted skapi file.",{code:"INVALID_PARAMETER"});let e=pt(t,48),r=Ut+e;if(t.length<r)throw new l("Encrypted file header is truncated.",{code:"INVALID_REQUEST"});let n=null;return e&&(n=JSON.parse(Rt(t.subarray(Ut,r)))),{version:t[6],chunkBytes:pt(t,8),count:pt(t,12),fileId:t.subarray(16,16+Ms),plainLen:Ad(t,32),dekId:t.subarray(40,48),meta:n,headerLen:r}}async function Ks(t,e,r){let n=Sd(e);if(n.version!==Ls)throw new l(`This file was encrypted by a different version of the SDK (container v${n.version}).`,{code:"NOT_SUPPORTED"});if(!n.count||!n.chunkBytes)throw new l("Encrypted file header is malformed.",{code:"INVALID_PARAMETER"});let i=await Bs(t);if(!_d(i,n.dekId))throw new l("This file was encrypted under a previous data key for this record, so it can no longer be opened. It was most likely left behind by an interrupted access change.",{code:"ENCRYPTION_FILE_STALE_KEY"});let s=await Vs(t,n.fileId,r.service,r.owner,r.recordOwner,r.recordId),o=await br(e.subarray(0,n.headerLen)),a=[],c=n.headerLen,u=0;for(let h=0;h<n.count;h++){if(c+4>e.length)throw new l("Encrypted file is truncated.",{code:"INVALID_REQUEST"});let p=pt(e,c);if(c+=4,p<It+16||c+p>e.length)throw new l("Encrypted file is truncated.",{code:"INVALID_REQUEST"});let g=await be(s,e.subarray(c,c+It),e.subarray(c+It,c+p),qs(o,h,n.count));c+=p,a.push(g),u+=g.length;}let d=new Uint8Array(u),f=0;for(let h of a)d.set(h,f),f+=h.length;return {bytes:d,meta:n.meta}}var vd="skapi__keyring",Dt="__skapi_enc__",Hs=1,Rd="skapi-enc",Ke="keys",Fn=new WeakMap;function Ws(t){if(!t)return null;if(t===true&&(t={}),typeof t!="object")throw new l('"options.encryption" should be a boolean or an object.',{code:"INVALID_PARAMETER"});let e=typeof t.iterations=="number"?t.iterations:Ts;if(e<1e5)throw new l('"encryption.iterations" must be at least 100000.',{code:"INVALID_PARAMETER"});let r=t.trustPolicy==="strict"?"strict":"tofu";return {enabled:true,iterations:e,trustPolicy:r,persistDevice:t.persistDevice!==false,minPasswordLength:typeof t.minPasswordLength=="number"?t.minPasswordLength:0,withheld:t.withheld==="sentinel"?"sentinel":"null",recovery:t.recovery==="none"?"none":"code",table:typeof t.table=="string"&&t.table?t.table:vd}}function L(){return Fn.get(this)||null}function Gs(t){if(!t){Fn.delete(this);return}Fn.set(this,{cfg:t,status:"locked",reason:"NO_SESSION_KEY",user_id:"",scope:"",mk:null,ikPriv:null,pubRaw:null,fpr:"",keyringRecordId:"",pins:{},dek:new Map,roll:new Set,passthrough:new Map,rawRead:false,ready:null,unlocking:false,pendingRecoveryCode:"",peerPub:new Map,peerInflight:new Map});}function Ln(){let t=L.call(this);if(t){t.user_id&&Jn.call(this,t).catch(()=>{}),t.ready=null,t.unlocking=false,t.pendingRecoveryCode="";for(let[,e]of t.dek)M(e.bytes);t.dek.clear(),t.roll.clear(),t.passthrough.clear(),t.peerPub.clear(),t.peerInflight.clear(),t.pins={},t.mk=null,t.ikPriv=null,t.pubRaw=null,t.fpr="",t.keyringRecordId="",t.user_id="",t.status="locked",t.reason="NO_SESSION_KEY";}}function Js(){let t=L.call(this);return t?{status:t.status,reason:t.status==="unlocked"?void 0:t.reason,user_id:t.user_id||void 0,fingerprint:t.fpr||void 0}:{status:"disabled"}}function Ys(t,e){return typeof e=="string"&&e===t.cfg.table}function mt(){return `${this.service}/${this.owner}`}function Mn(t,e,r,n){let[i,s]=t.split("/");return Dn([oe,i,s,e,r,n])}function zs(t,e,r,n,i){let[s,o]=t.split("/");return G(`${oe}|dekwrap|${s}|${o}|${e}|${r}|${n}|${i}`)}function Vn(t){return t.anch==="uid"?t.uid:t.anch==="rid"?t.rid:""}function Er(t){return !!t&&typeof t=="object"&&!Array.isArray(t)&&typeof t[Dt]=="number"&&typeof t.ct=="string"&&typeof t.iv=="string"&&typeof t.own=="string"&&typeof t.anch=="string"&&!!t.k&&typeof t.k=="object"&&!Array.isArray(t.k)}var Qs="__skapi_no_access__";function ce(t,e,r){if(t.withheld!=="sentinel")return null;let n={[Qs]:true,reason:e};return r&&(n.recipients=r),Object.freeze(n)}function Bn(t){return !!t&&typeof t=="object"&&t[Qs]===true}var Td=256*1024,Ot="__skenc_ct__",Xs="payload.bin",Id=`/${Ot}/${Xs}`;function qn(t,e){return t===Ot&&e===Xs}async function Pd(t,e,r){let n=e?.table,i=typeof n=="string"?n:n?.name;if(n&&(typeof n=="string"||n.access_group!==void 0))return {group:typeof n=="string"?0:js(n.access_group),table:i,record:null};if(!r)return {group:n?.access_group!==void 0?js(n.access_group):0,table:i,record:null};let s=t.dek.get(r);if(s)return {group:s.access_group,table:i,record:null};let o=await $e.call(this,r);if(!o)throw new l(`Record "${r}" not found.`,{code:"NOT_EXISTS"});return {group:o.table.access_group,table:o.table.name,record:o}}function Ud(t){return this.getFile(t,{dataType:"blob"})}async function $e(t){let e=/^[a-zA-Z0-9]+$/.test(t)?{record_id:t}:{unique_id:t};return (await this.getRecords(e,{limit:1}))?.list?.[0]||null}function js(t){return t==="private"||t==="**"?"private":t==="public"?0:t==="authorized"?1:t==="admin"?99:typeof t=="number"?t:0}function On(t,e,r){let n=this.user?.user_id;if(!(!t||!t.user_id||!n||t.user_id===n))throw new l(`Record "${e}" belongs to another user (${t.user_id}), so ${r} would either seal it under the wrong key or strand its contents. Encryption only operates on records you own, no matter what access level you hold.`,{code:"ENCRYPTION_NOT_RECORD_OWNER"})}async function $n(t,e,r){let n=L.call(this);if(!n)return {send:t,plain:t,encrypted:false,omit:false};let i=e?.record_id||"",s=i,o=e?.unique_id||"";if(i&&n.passthrough.has(i)){let $=n.passthrough.get(i);return n.passthrough.delete(i),{send:$,plain:t,encrypted:true,omit:false}}let{group:a,table:c,record:u}=await Pd.call(this,n,e,s);if(a!=="private"){let $=true;if(!r&&i){let Z=u||await $e.call(this,i);if(Z&&Z.encrypted){if(On.call(this,Z,i,"making it non-private"),Z.encrypted.status==="failed")throw new l(`Cannot make record "${i}" non-private: its current contents could not be decrypted (${Z.encrypted.reason}), so they cannot be written back in the clear. Unlock encryption, or supply the record's data with the access group change.`,{code:"ENCRYPTION_LOCKED"});let At=!!Z.bin&&Object.keys(Z.bin).some(Wt=>(Z.bin[Wt]||[]).some(mi=>mi&&mi.encrypted));if(!At&&s){let Wt=n.dek.get(s);Wt&&(M(Wt.bytes),n.dek.delete(s));}return {send:Z.data,plain:Z.data,encrypted:false,omit:false,files:At?"decrypt":void 0}}}let re=u;i&&!re&&(re=await $e.call(this,i).catch(()=>null)),re&&re.encrypted&&On.call(this,re,i,"making it non-private");let gi=!!re&&!!re.bin&&Object.keys(re.bin).some(Z=>(re.bin[Z]||[]).some(At=>At&&At.encrypted));if(gi&&($=false),$&&s){let Z=n.dek.get(s);Z&&(M(Z.bytes),n.dek.delete(s));}return {send:t,plain:t,encrypted:false,omit:!r,files:gi?"decrypt":void 0}}if(Ys(n,c))return {send:t,plain:t,encrypted:false,omit:false};if(n.ready&&!n.unlocking)try{await n.ready;}catch{}if(!r)return {send:t,plain:t,encrypted:false,omit:true};if(Bn.call(this,t))throw new l("This record's data could not be decrypted by this session, so it cannot be written back. Writing it would replace the record with the placeholder.",{code:"ENCRYPTION_CANNOT_REWRITE_WITHHELD"});if(n.status!=="unlocked"||!n.mk)throw new l("Encryption is enabled but locked, so this private record cannot be written. Call unlockEncryption({ password }) first, or the user must log in with their password.",{code:"ENCRYPTION_LOCKED"});if(t&&typeof t=="object"&&!Array.isArray(t)&&Object.prototype.hasOwnProperty.call(t,Dt))throw new l(`"${Dt}" is a reserved key in record data.`,{code:"INVALID_PARAMETER"});if(e?.service&&e.service!==this.service||e?.owner&&e.owner!==this.owner)throw new l("Encrypted records cannot be written to another project. The encryption key is derived per project, so a record written under one service and read under another could never be decrypted. Construct a separate Skapi instance for that project.",{code:"INVALID_REQUEST"});let d=this.user?.user_id;if(!d)throw new l("User login is required to write an encrypted record.",{code:"INVALID_REQUEST"});let f=mt.call(this),h=false;if(i&&n.roll.has(i)){h=true,n.roll.delete(i);let $=n.dek.get(i);n.dek.delete(i),$&&M($.bytes);}let p=u;i&&!p&&!n.dek.has(i)&&(p=await $e.call(this,i).catch(()=>null)),p&&On.call(this,p,i,"making it private");let g=!!p&&!p.encrypted&&!!p.bin&&Object.keys(p.bin).some($=>(p.bin[$]||[]).some(re=>re&&!re.encrypted)),m=null;if(i&&!h&&(m=n.dek.get(i)||null,!m)){let $=p||u||await $e.call(this,i);if($&&(s=$.record_id||i,m=n.dek.get(s)||null,!o&&$.unique_id&&(o=$.unique_id),!m&&$.encrypted?.status==="failed"))throw new l(`Cannot update encrypted record "${i}": its current contents could not be decrypted (${$.encrypted.reason}), so its existing key wraps cannot be preserved. Updating anyway would revoke everyone it is shared with.`,{code:"ENCRYPTION_LOCKED"})}s===i&&m&&m.rid&&(s=m.rid),!o&&m&&m.anch==="uid"&&m.uid&&(o=m.uid);let y,w,b;if(m){if(m.own&&m.own!==d)throw new l(`Record "${i}" belongs to another user (${m.own}). Encryption only operates on records you own.`,{code:"ENCRYPTION_NOT_RECORD_OWNER"});y=m.bytes,w=m.key,b=Object.assign({},m.recipients);}else {let $=await Us();y=$.bytes,w=$.key,b={};}let E=o?"uid":s?"rid":"new",P=E==="uid"?o:E==="rid"?s:"",U=Mn(f,d,E,P),N=Ct(U,d,"mk"),O=await me(n.mk,y,N);b[d]={t:"mk",iv:V(O.iv),ct:V(O.ct)},m&&(m.anch!==E||Vn(m)!==P)&&(b=await xd.call(this,n,y,b,f,d,E,P,U));let B=G(JSON.stringify(t===void 0?null:t)),x=await me(w,B,U);M(B);let k={[Dt]:Hs,enc:"A256GCM",kw:"ECDH-ES+A256GCM",anch:E,uid:o,rid:s,own:d,iv:V(x.iv),ct:V(x.ct),k:b},F,q,ye=k.ct;s&&ye.length>Td&&(F=K(ye),k.ct="",k.ct_ref=Id,m&&m.ctRef&&(q=m.ctRef));let Me=JSON.stringify(k).length;if(Me>2*1024*1024)throw new l(`Encrypted record data is too large: once encrypted and base64 encoded it becomes ${Me} bytes, over the ${2*1024*1024} byte limit. Encryption costs about 33% plus roughly 230 bytes per additional recipient.`,{code:"ENCRYPTED_DATA_TOO_LARGE"});return s&&n.dek.set(s,{bytes:y,key:w,recipients:b,anch:E,uid:o,rid:s,own:d,access_group:"private"}),{send:k,plain:t,encrypted:true,omit:false,spill:F,retireCt:q,dek:{bytes:y,key:w,recipients:b,anch:E,uid:o,rid:s,own:d,access_group:"private"},files:g?"encrypt":void 0}}function Zs(t,e){let r=L.call(this);!r||!e||!t||r.dek.has(t)||r.dek.set(t,Object.assign({},e,{rid:t}));}async function xd(t,e,r,n,i,s,o,a){let c=Object.keys(r).filter(f=>f!==i);if(!c.length)return r;let u=await Yn.call(this,c),d={[i]:r[i]};for(let f of c){let h=u[f];h&&(d[f]=await eo.call(this,e,h,n,o,i,f,a));}return d}async function eo(t,e,r,n,i,s,o){let a=zs(r,n,i,s,e.fpr),c=Ct(o,s,e.fpr),u=await Ds(e.pubRaw,t,a,c);return {t:"ecdh",epk:V(u.epk),iv:V(u.iv),ct:V(u.ct),fpr:e.fpr}}async function to(t,e){if(!Er(t))return {value:t};if(e.access_group!=="private")return {value:t};let r=L.call(this);if(!r)return {value:null,flag:{status:"failed",reason:"ENCRYPTION_DISABLED"}};if(r.rawRead)return {value:t};if(Ys(r,e.table_name))return {value:t};if(t[Dt]!==Hs)return {value:ce(r.cfg,"UNSUPPORTED_VERSION"),flag:{status:"failed",reason:"UNSUPPORTED_VERSION"}};if(r.ready&&!r.unlocking)try{await r.ready;}catch{}if(t.own!==e.user_id)return {value:ce(r.cfg,"BINDING_MISMATCH"),flag:{status:"failed",reason:"BINDING_MISMATCH"}};if(t.uid&&e.unique_id&&t.uid!==e.unique_id)return {value:ce(r.cfg,"BINDING_MISMATCH"),flag:{status:"failed",reason:"BINDING_MISMATCH"}};if(t.rid&&e.record_id&&t.rid!==e.record_id)return {value:ce(r.cfg,"BINDING_MISMATCH"),flag:{status:"failed",reason:"BINDING_MISMATCH"}};let n=this.user?.user_id,i=n?t.k[n]:null;if(!i)return {value:ce(r.cfg,"NOT_A_RECIPIENT",Object.keys(t.k)),flag:{status:"failed",reason:"NOT_A_RECIPIENT",recipients:Object.keys(t.k)}};if(r.status!=="unlocked"||!r.mk)return {value:ce(r.cfg,"NO_SESSION_KEY"),flag:{status:"failed",reason:"NO_SESSION_KEY"}};let s=mt.call(this),o=Vn(t),a=Mn(s,t.own,t.anch,o),c;try{if(i.t==="mk")c=await be(r.mk,K(i.iv),K(i.ct),Ct(a,n,"mk"));else if(i.t==="ecdh"){if(!r.ikPriv)return {value:ce(r.cfg,"NO_SESSION_KEY"),flag:{status:"failed",reason:"NO_SESSION_KEY"}};c=await ks(r.ikPriv,K(i.epk),K(i.iv),K(i.ct),zs(s,o,t.own,n,i.fpr),Ct(a,n,i.fpr));}else return {value:ce(r.cfg,"UNSUPPORTED_VERSION"),flag:{status:"failed",reason:"UNSUPPORTED_VERSION"}}}catch{return {value:ce(r.cfg,"BAD_KEY"),flag:{status:"failed",reason:"BAD_KEY"}}}let u;try{if(t.ct_ref){if(!e.ctUrl)return M(c),{value:ce(r.cfg,"DATA_UNAVAILABLE"),flag:{status:"failed",reason:"DATA_UNAVAILABLE"}};let p=await Ud.call(this,e.ctUrl);u=new Uint8Array(await p.arrayBuffer());}else u=K(t.ct);}catch{return M(c),{value:ce(r.cfg,"DATA_UNAVAILABLE"),flag:{status:"failed",reason:"DATA_UNAVAILABLE"}}}let d,f;try{f=await _e(c),d=await be(f,K(t.iv),u,a);}catch{return M(c),{value:ce(r.cfg,"CORRUPT"),flag:{status:"failed",reason:"CORRUPT"}}}let h;try{h=JSON.parse(Rt(d));}catch{return M(d),M(c),{value:ce(r.cfg,"CORRUPT"),flag:{status:"failed",reason:"CORRUPT"}}}if(M(d),e.record_id){let p=r.dek.get(e.record_id);p?(p.bytes=c,p.key=f,p.recipients=t.k,p.anch=t.anch,p.uid=t.uid,p.own=t.own,p.access_group="private",p.ctRef=t.ct_ref||""):r.dek.set(e.record_id,{bytes:c,key:f,recipients:t.k,anch:t.anch,uid:t.uid,rid:e.record_id,own:t.own,access_group:"private",ctRef:t.ct_ref||""});}else M(c);return {value:h,flag:{status:"encrypted",recipients:Object.keys(t.k)}}}function kt(t,e){let[r,n]=t.split("/");return G(`${oe}|kek|${r}|${n}|${e}`)}function Nt(t,e,r,n){let[i,s]=t.split("/");return G(`${oe}|mk|${i}|${s}|${e}|PBKDF2-SHA256|${r}|${n}`)}function ro(t,e){let[r,n]=t.split("/");return G(`${oe}|recovery|${r}|${n}|${e}`)}function no(t,e,r){let[n,i]=t.split("/");return G(`${oe}|rk|${n}|${i}|${e}|HKDF-SHA256|${r}`)}function io(t,e){let[r,n]=t.split("/");return G(`${oe}|self|${r}|${n}|${e}`)}function so(t,e){let[r,n]=t.split("/");return G(`${oe}|ik|${r}|${n}|${e}`)}async function Sr(t){let r=((await this.getRecords({table:{name:t.cfg.table,access_group:"private"},index:{name:"$user_id",value:this.user.user_id,condition:"="}},{limit:2}))?.list||[]).filter(n=>n.user_id===this.user.user_id);return r.length?(r.sort((n,i)=>n.uploaded-i.uploaded),r[0]):null}async function Kn(t,e,r){let n=ae(Pt),i=Os(n),s=ae(16),o=V(s),a=await kn(n,s,ro(t,e)),c=await me(a,r,no(t,e,o));return M(n),{code:i,wrap:{id:V(ae(6)),p:"recovery",kdf:{a:"HKDF-SHA256",s:o},iv:V(c.iv),ct:V(c.ct),created:Date.now()}}}async function Cd(t,e,r,n){let i=Fs(n),s=(r||[]).filter(o=>o.p==="recovery");s.sort((o,a)=>(a.created||0)-(o.created||0));for(let o of s)try{let a=await kn(i,K(o.kdf.s),ro(t,e)),c=await be(a,K(o.iv),K(o.ct),no(t,e,o.kdf.s));return M(i),c}catch{}return M(i),null}async function Dd(t,e,r,n,i){let s=ae(16),o=V(s),a=await gt(n,s,t.cfg.iterations,kt(e,r)),c=await me(a,i,Nt(e,r,t.cfg.iterations,o));return {id:V(ae(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:t.cfg.iterations,s:o},iv:V(c.iv),ct:V(c.ct),created:Date.now()}}async function kd(t,e){let r=this.user.user_id,n=t.scope,i=ae(16),s=V(i),o=await gt(e,i,t.cfg.iterations,kt(n,r)),a=ae(32),c=await me(o,a,Nt(n,r,t.cfg.iterations,s)),u=await _e(a),d=await xs(),f=await me(u,d.pkcs8,so(n,r));M(d.pkcs8);let h=null;t.cfg.recovery==="code"&&(h=await Kn(n,r,a));let p=await me(u,a,io(n,r));M(a);let g=await Cn(d.pubRaw),m=Date.now(),y=[{id:V(ae(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:t.cfg.iterations,s},iv:V(c.iv),ct:V(c.ct),created:m}];h&&y.push(h.wrap);let w={v:1,alg:"ECDH-P-256",user_id:r,wraps:y,ik:{iv:V(f.iv),ct:V(f.ct)},self:{iv:V(p.iv),ct:V(p.ct)},pub:V(d.pubRaw),fpr:g,pins:null,created:m,updated:m};await this.postRecord({v:1,alg:"ECDH-P-256",user_id:r,pub:V(d.pubRaw),fpr:g,created:m},{table:{name:t.cfg.table,access_group:"authorized"},index:{name:"pubkey",value:r}});let b=await this.postRecord(w,{table:{name:t.cfg.table,access_group:"private"}}),E=await Sr.call(this,t);if(E&&E.record_id!==b.record_id){await oo.call(this,t,E,e);return}t.mk=u,t.ikPriv=d.priv,t.pubRaw=d.pubRaw,t.fpr=g,t.keyringRecordId=b.record_id,h&&(t.pendingRecoveryCode=h.code),t.user_id=r,t.pins={},t.status="unlocked",t.reason="";}async function oo(t,e,r){let n=this.user.user_id,i=t.scope,s=e.data;if(e.user_id!==n||s&&s.user_id&&s.user_id!==n)throw new l("The encryption keyring does not belong to this user.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let a=(Array.isArray(s?.wraps)?s.wraps:[]).filter(d=>d.p==="password");if(!a.length)throw new l("The keyring has no password wrap.",{code:"ENCRYPTION_KEYRING_CORRUPT"});a.sort((d,f)=>(f.created||0)-(d.created||0));let c=null;for(let d of a)try{let f=K(d.kdf.s),h=await gt(r,f,d.kdf.it,kt(i,n));c=await be(h,K(d.iv),K(d.ct),Nt(i,n,d.kdf.it,d.kdf.s));break}catch{}if(!c)throw new l("Incorrect password: the encryption keyring could not be opened.",{code:"ENCRYPTION_BAD_PASSWORD"});let u=await _e(c);M(c),await jn.call(this,t,e,u);}async function jn(t,e,r){let n=this.user.user_id,i=e.data,s=await be(r,K(i.ik.iv),K(i.ik.ct),so(t.scope,n)),o=await xn(s);M(s);let a={};if(i.pins&&typeof i.pins=="object"&&i.pins.ct)try{let c=await be(r,K(i.pins.iv),K(i.pins.ct),G(`${oe}|pins|${t.scope}|${n}`));a=JSON.parse(Rt(c)),M(c);}catch{a={};}t.mk=r,t.ikPriv=o,t.pubRaw=K(i.pub),t.fpr=i.fpr,t.keyringRecordId=e.record_id,t.user_id=n,t.pins=a,t.status="unlocked",t.reason="";}async function vr(t){let e=L.call(this);if(!e||!this.user?.user_id)return;if(!Un()){e.status="locked",e.reason="NO_WEB_CRYPTO";return}if(this.user?.is_openid){e.status="locked",e.reason="OPENID_UNSUPPORTED";return}if(e.cfg.minPasswordLength&&t.length<e.cfg.minPasswordLength){e.status="locked",e.reason="WEAK_PASSWORD";return}e.scope=mt.call(this);let r=await Sr.call(this,e);r?await oo.call(this,e,r,t):await kd.call(this,e,t),e.cfg.persistDevice&&await fo.call(this,e).catch(()=>{});}async function ao(t){await this.__connection;let e=L.call(this);if(!e)throw new l("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(!this.user?.user_id)throw new l("User login is required.",{code:"INVALID_REQUEST"});if(!t?.password||typeof t.password!="string")throw new l('"password" is required.',{code:"INVALID_PARAMETER"});if(await vr.call(this,t.password),e.status!=="unlocked")throw new l(`Encryption could not be unlocked: ${e.reason}`,{code:"ENCRYPTION_LOCKED"});return {status:e.status}}async function co(t){let e=L.call(this);return e?(t?.forgetDevice&&await Jn.call(this,e).catch(()=>{}),Ln.call(this),this.__cached_requests={},{status:e.status}):{status:"disabled"}}async function uo(t,e){let r=L.call(this);if(!r)return;if(r.status!=="unlocked"||!r.mk)throw new l("Encryption must be unlocked before changing the password, or the encryption keyring would be left wrapped under a password that no longer exists. Call unlockEncryption({ password }) first.",{code:"ENCRYPTION_LOCKED"});let i=(await this.getRecords({record_id:r.keyringRecordId},{limit:1}))?.list?.[0];if(!i)throw new l("The encryption keyring could not be read, so the password change was stopped before it could strand it.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let s=this.user.user_id,o=i.data,a=(o.wraps||[]).filter(m=>m.p==="password");a.sort((m,y)=>(y.created||0)-(m.created||0));let c=null;for(let m of a)try{let y=await gt(t,K(m.kdf.s),m.kdf.it,kt(r.scope,s));c=await be(y,K(m.iv),K(m.ct),Nt(r.scope,s,m.kdf.it,m.kdf.s));break}catch{}if(!c)throw new l("Incorrect current password: the encryption keyring was not re-wrapped.",{code:"ENCRYPTION_BAD_PASSWORD"});let u=ae(16),d=V(u),f=await gt(e,u,r.cfg.iterations,kt(r.scope,s)),h=await me(f,c,Nt(r.scope,s,r.cfg.iterations,d));M(c);let p=Date.now(),g=(o.wraps||[]).concat([{id:V(ae(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:r.cfg.iterations,s:d},iv:V(h.iv),ct:V(h.ct),created:p}]);await this.postRecord(Object.assign({},o,{wraps:g,updated:p}),{record_id:r.keyringRecordId});}async function lo(){let t=L.call(this);if(!t||t.status!=="unlocked"||!t.keyringRecordId)return;let r=(await this.getRecords({record_id:t.keyringRecordId},{limit:1}))?.list?.[0];if(!r)return;let n=r.data,i=(n.wraps||[]).filter(o=>o.p==="password").sort((o,a)=>(a.created||0)-(o.created||0)),s=(n.wraps||[]).filter(o=>o.p!=="password");i.length<=1||await this.postRecord(Object.assign({},n,{wraps:[i[0]].concat(s),updated:Date.now()}),{record_id:t.keyringRecordId});}function Hn(){return typeof indexedDB<"u"&&!!indexedDB}function Wn(){return new Promise((t,e)=>{let r=indexedDB.open(Rd,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(Ke)||n.createObjectStore(Ke);},r.onsuccess=()=>t(r.result),r.onerror=()=>e(r.error);})}function Gn(t){return `${t.scope}#${this.user?.user_id}`}async function fo(t){if(!Hn()||!t.mk)return;let e=await Wn();await new Promise((r,n)=>{let i=e.transaction(Ke,"readwrite");i.objectStore(Ke).put({mk:t.mk,keyringRecordId:t.keyringRecordId,saved:Date.now()},Gn.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}async function Nd(t){if(!Hn())return null;let e=await Wn(),r=await new Promise((n,i)=>{let o=e.transaction(Ke,"readonly").objectStore(Ke).get(Gn.call(this,t));o.onsuccess=()=>n(o.result||null),o.onerror=()=>i(o.error);});return e.close(),r&&r.mk?r:null}async function Jn(t){if(!Hn())return;let e=await Wn();await new Promise((r,n)=>{let i=e.transaction(Ke,"readwrite");i.objectStore(Ke).delete(Gn.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}function ho(){let t=L.call(this);!t||t.ready||(t.unlocking=true,t.ready=Od.bind(this)().catch(()=>false).then(()=>{t.unlocking=false;}));}async function Od(){let t=L.call(this);if(!t||!this.user?.user_id||!t.cfg.persistDevice||!Un())return false;t.scope=mt.call(this);try{let e=await Nd.call(this,t);if(!e)return !1;let r=await Sr.call(this,t);return r?(await jn.call(this,t,r,e.mk),!0):(await Jn.call(this,t).catch(()=>{}),!1)}catch{return t.status="locked",t.reason="NO_SESSION_KEY",false}}async function Yn(t){let e=L.call(this);if(!e)throw new l("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});let r={},n=[],i=false;for(let s of t){let o=e.peerPub.get(s);o?r[s]=o:n.push(s);}return await Promise.all(n.map(async s=>{let o=e.peerInflight.get(s);o||(o=(async()=>{let u=((await this.getRecords({table:{name:e.cfg.table,access_group:"authorized"},index:{name:"$user_id",value:s,condition:"="}},{limit:10}))?.list||[]).filter(p=>p.user_id===s&&p.data?.pub);if(!u.length)return null;u.sort((p,g)=>g.uploaded-p.uploaded);let d=K(u[0].data.pub),f=await Cn(d),h=e.pins[s];if(h&&h!==f)throw new l(`The public key for user "${s}" has changed since it was first seen. This is expected if they reset their account, and is what a key substitution attack also looks like. Verify the new fingerprint out of band, then call pinPeerKey({ user_id, fingerprint }).`,{code:"ENCRYPTION_PEER_KEY_CHANGED"});if(!h){if(e.cfg.trustPolicy==="strict")throw new l(`No pinned key for user "${s}" and trustPolicy is "strict". Pin it first with pinPeerKey().`,{code:"ENCRYPTION_PEER_NOT_PINNED"});e.pins[s]=f,i=true;}return {pubRaw:d,fpr:f}})().finally(()=>e.peerInflight.delete(s)),e.peerInflight.set(s,o));let a=await o;a&&e.peerPub.set(s,a),r[s]=a;})),i&&await yo.call(this,e).catch(()=>{}),r}async function po(t,e){let r=mt.call(this),n=t.dek.get(e);if(n)return {entry:n,scope:r};let i=await $e.call(this,e);if(!i)throw new l(`Record "${e}" not found.`,{code:"NOT_EXISTS"});if(i.encrypted?.status==="failed"&&i.encrypted.reason==="DATA_UNAVAILABLE")throw new l(`Cannot change sharing on record "${e}": its data could not be read, so whether it is encrypted is unknown. Retry once the record reads normally.`,{code:"ENCRYPTION_DATA_UNAVAILABLE"});if(!i.encrypted)return null;if(i.user_id!==this.user?.user_id)throw new l("Only the record owner can share or revoke an encrypted record, because adding or removing a key wrap means writing the record.",{code:"ENCRYPTION_GRANT_REQUIRES_OWNER"});let s=t.dek.get(i.record_id)||t.dek.get(e);if(!s)throw new l(`Cannot change sharing on record "${e}": its data could not be decrypted`+(i.encrypted.reason?` (${i.encrypted.reason})`:"")+".",{code:"ENCRYPTION_LOCKED"});return {entry:s,scope:r}}async function zn(t,e){let r=L.call(this);if(!r)return;let n=await po.call(this,r,t);if(!n)return;let{entry:i,scope:s}=n,o=this.user.user_id;if(i.own!==o)throw new l("Only the record owner can share an encrypted record, because adding a key wrap means writing the record.",{code:"ENCRYPTION_GRANT_REQUIRES_OWNER"});let a=await Yn.call(this,e),c=e.filter(h=>!a[h]);if(c.length)throw new l(`These users have no encryption key yet, so they cannot be given access: ${c.join(", ")}. A user's key is created the first time they log in with encryption enabled.`,{code:"ENCRYPTION_RECIPIENT_HAS_NO_KEY"});let u=Vn(i),d=Mn(s,i.own,i.anch,u),f=Object.assign({},i.recipients);for(let h of e)h!==o&&(f[h]=await eo.call(this,i.bytes,a[h],s,u,i.own,h,d));await Ld.call(this,r,t,i,f);}async function go(t,e){let r=L.call(this);if(!r)return;let n=await po.call(this,r,t);if(!n)return;let{entry:i}=n,s=this.user.user_id;if(i.own!==s)throw new l("Only the record owner can revoke access to an encrypted record.",{code:"ENCRYPTION_GRANT_REQUIRES_OWNER"});let o=Object.keys(i.recipients).filter(u=>u===s?true:e?!e.includes(u):false).filter(u=>u!==s),a=await $e.call(this,t);if(!a)throw new l(`Record "${t}" not found.`,{code:"NOT_EXISTS"});Fd(a,t);let c={};if(o.length){c=await Yn.call(this,o);let u=o.filter(d=>!c[d]);if(u.length)throw new l(`Cannot revoke on record "${t}": these users keep access but their encryption keys could not be read, so re-sharing after the key roll would fail and lock them out: ${u.join(", ")}.`,{code:"ENCRYPTION_RECIPIENT_HAS_NO_KEY"})}r.roll.add(a.record_id||t),await this.postRecord(a.data,{record_id:a.record_id||t,table:{name:a.table.name,access_group:"private"}}),o.length&&await zn.call(this,a.record_id||t,o);}function Fd(t,e){if(t?.encrypted?.status==="failed")throw new l(`Cannot change sharing on record "${e}": its current data could not be read (${t.encrypted.reason}), so re-writing the record would destroy it.`,{code:"ENCRYPTION_DATA_UNAVAILABLE"})}async function Ld(t,e,r,n){let i=await Md.call(this,e);if(!i)throw new l(`Cannot change sharing on record "${e}": its stored envelope could not be read.`,{code:"ENCRYPTION_DATA_UNAVAILABLE"});r.recipients=n,t.dek.set(e,r);let s=Object.assign({},i,{k:n});t.passthrough.set(e,s),await this.postRecord(void 0,{record_id:e});}async function Md(t){let e=L.call(this);if(!e)return null;e.rawRead=true;let r;try{r=(await this.getRecords({record_id:t},{limit:1}))?.list?.[0];}finally{e.rawRead=false;}return r&&Er(r.data)?r.data:null}async function mo(t){let e=L.call(this);if(!e||e.status!=="unlocked")throw new l("Encryption is locked.",{code:"ENCRYPTION_LOCKED"});e.pins[t.user_id]=t.fingerprint,e.peerPub.delete(t.user_id),await yo.call(this,e);}async function yo(t){if(!t.mk||!t.keyringRecordId)return;let r=(await this.getRecords({record_id:t.keyringRecordId},{limit:1}))?.list?.[0];if(!r)return;let n=await me(t.mk,G(JSON.stringify(t.pins)),G(`${oe}|pins|${t.scope}|${t.user_id}`));await this.postRecord(Object.assign({},r.data,{pins:{iv:V(n.iv),ct:V(n.ct)},updated:Date.now()}),{record_id:t.keyringRecordId});}function _o(){let t=L.call(this);if(!t||!t.pendingRecoveryCode)return null;let e=t.pendingRecoveryCode;return t.pendingRecoveryCode="",e}async function bo(t){await this.__connection;let e=L.call(this);if(!e)throw new l("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(!this.user?.user_id)throw new l("User login is required. Reset the password and log in first, then use the recovery code.",{code:"INVALID_REQUEST"});if(!t?.code||typeof t.code!="string")throw new l('"code" is required.',{code:"INVALID_PARAMETER"});e.scope=mt.call(this);let r=this.user.user_id,n=await Sr.call(this,e);if(!n)throw new l("This account has no encryption keyring, so there is nothing to recover.",{code:"NOT_EXISTS"});let i=await Cd(e.scope,r,n.data?.wraps||[],t.code);if(!i)throw new l("That recovery code did not open the keyring. Check it against the copy you saved when encryption was set up.",{code:"ENCRYPTION_BAD_RECOVERY_CODE"});let s=await _e(i);await jn.call(this,e,n,s);let o=false,a=null,c=(n.data?.wraps||[]).slice();if(t.password&&(c=c.filter(u=>u.p!=="password"),c.push(await Dd(e,e.scope,r,t.password,i)),o=true),e.cfg.recovery==="code"){let u=await Kn(e.scope,r,i);c=c.filter(d=>d.p!=="recovery"),c.push(u.wrap),a=u.code;}return M(i),await this.postRecord(Object.assign({},n.data,{wraps:c,updated:Date.now()}),{record_id:n.record_id}),e.cfg.persistDevice&&await fo.call(this,e).catch(()=>{}),{status:e.status,repaired:o,recoveryCode:a}}async function wo(){await this.__connection;let t=L.call(this);if(!t)throw new l("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(t.status!=="unlocked"||!t.mk)throw new l("Encryption must be unlocked to issue a recovery code. Only someone who can already decrypt can create one.",{code:"ENCRYPTION_LOCKED"});if(t.cfg.recovery!=="code")throw new l('Recovery codes are disabled for this instance ("recovery" is "none").',{code:"INVALID_REQUEST"});let r=(await this.getRecords({record_id:t.keyringRecordId},{limit:1}))?.list?.[0];if(!r)throw new l("The encryption keyring could not be read.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let n=r.data?.self;if(!n||!n.ct)throw new l("This keyring predates recovery-code rotation and cannot issue a new code. Use unlockWithRecoveryCode() with the existing code, which issues a replacement.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let i=await be(t.mk,K(n.iv),K(n.ct),io(t.scope,t.user_id)),s=await Kn(t.scope,t.user_id,i);M(i);let o=(r.data.wraps||[]).filter(a=>a.p!=="recovery").concat([s.wrap]);return await this.postRecord(Object.assign({},r.data,{wraps:o,updated:Date.now()}),{record_id:t.keyringRecordId}),{recoveryCode:s.code}}var Ar="__skenc__",Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function Vd(t){if(t===0)return "0";let e="";for(;t>0;)e=Ao[t%62]+e,t=Math.floor(t/62);return e}function Bd(t){let e=0;for(let r of t){let n=Ao.indexOf(r);if(n<0)return NaN;e=e*62+n;}return e}function Rr(t){if(typeof t!="string")return null;let e=t.lastIndexOf(Ar);if(e<0)return null;let r=Bd(t.slice(e+Ar.length));return Number.isFinite(r)?{key:t.slice(0,e),plainSize:r}:null}function Qn(t){try{let e=String(t).split("?")[0].split("/").slice(3);if(e.length<12||e[4]!=="records"||e[7]!=="bin")return null;let r=Rr(e[10]);return r?{recordId:e[5],recordOwner:e[3],filename:e[e.length-1],plainSize:r.plainSize}:null}catch{return null}}function Eo(t,e){return {service:this.service,owner:this.owner,recordOwner:e,recordId:t}}async function So(t,e,r){let n=L.call(this);if(!n||!t)return {key:e,file:r,encrypted:false};let i=n.dek.get(t);if(!i)return {key:e,file:r,encrypted:false};if(Rr(e))throw new l(`"${Ar}" is reserved in an upload form key.`,{code:"INVALID_PARAMETER"});if(e===Ot)return {key:e,file:r,encrypted:false};let s=new Uint8Array(await r.arrayBuffer()),o={n:r.name,t:r.type||"",lm:r.lastModified||0},a=await $s(i.bytes,s,Eo.call(this,t,i.own),o);return M(s),{key:`${e}${Ar}${Vd(r.size)}`,file:new File([a],r.name,{type:"application/octet-stream"}),encrypted:true}}async function vo(t,e){let r=L.call(this),n=Qn(t);if(!r||!n)return e;let i=r.dek.get(n.recordId);if(!i)throw new l(`Cannot open this file: the data key for record "${n.recordId}" is not available. Read the record first, and make sure encryption is unlocked.`,{code:"ENCRYPTION_LOCKED"});let s=new Uint8Array(await e.arrayBuffer());if(!Nn(s))throw new l("This file is marked as encrypted but its contents are not an encrypted container.",{code:"ENCRYPTION_FILE_CORRUPT"});let o=await Ks(i.bytes,s,Eo.call(this,n.recordId,n.recordOwner)),a=o.meta&&o.meta.t||"application/octet-stream";return new Blob([o.bytes],{type:a})}function qd(t){let e=[];for(let r in t?.bin||{})for(let n of t.bin[r]||[])n&&n.encrypted&&e.push({formKey:r,url:n.url,filename:n.filename});return e}function $d(t){let e=[];for(let r in t?.bin||{})for(let n of t.bin[r]||[])n&&!n.encrypted&&e.push({formKey:r,url:n.url,filename:n.filename});return e}async function Xn(t,e,r){let n=L.call(this);if(!n)return [];let i=await $e.call(this,t);if(!i)return [];let s=e==="decrypt"?qd(i):$d(i);if(!s.length)return [];let o=[],a=new FormData,c=false;for(let u of s){let d=i.bin[u.formKey].find(h=>h.url===u.url);if(!d||typeof d.getFile!="function")continue;let f=await d.getFile("blob");f&&(a.append(u.formKey,new File([f],u.filename,{type:f.type||"application/octet-stream"})),o.push(u.url),c=true);}if(!c)return [];if(e==="decrypt"){let u=n.dek.get(t);u&&(M(u.bytes),n.dek.delete(t));}return await this.uploadFiles(a,{record_id:t,progress:r}),o}var H=null;function Zn(t){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"},r={};for(let n in t)if(n==="tkid"){let i=t[n].split("#");if(i.length===1){r.ticket_id=i[0];continue}r.ticket_id=i[1],r.consume_id=i[2],r.user_id=i[3];let s=i[2].slice(-4);if(r.is_test=s===":CHK",!t.stmp){let o=i[2].slice(0,-4);/^[0-9]+$/.test(o)?r.timestamp=parseInt(o,10):r.timestamp=pe(i[2].slice(0,-4));}}else e[n]?r[e[n]]=t[n]:r[n]=t[n];return r}async function To(t){if(!t.ticket_id)throw new l("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!t.method)throw new l('Method is required. Should be either "GET" or "POST"',{code:"INVALID_PARAMETER"});let e=t.ticket_id;await this.__connection;let r=await I.bind(this)(`https://${this.service.slice(0,4)}.${this.customApiDomain}/auth/consume/${this.service}/${this.owner}/${e}`,t?.data||{},{method:t.method,auth:!!t?.auth});return Zn(r)}async function Io(t,e){await this.__connection;let r=await I.bind(this)("ticket",Object.assign({exec:"list"},t||{}),{auth:true,fetchOptions:e});return r.list=r.list.map(Zn),r}async function Po(t,e){await this.__connection;let r=await I.bind(this)("ticket",Object.assign({exec:"consumed"},t||{}),{auth:true,fetchOptions:e});return r.list=r.list.map(Zn),r}async function Uo(t){return I.bind(this)("register-ticket",Object.assign({exec:"reg"},t),{auth:true})}async function xo(t){return I.bind(this)("register-ticket",Object.assign({exec:"unreg"},t),{auth:true})}var Kd=3600;async function yt(){if(await this.__connection,this.session){let t=Math.floor(Date.now()/1e3),r=this.session.getIdToken().getExpiration();if(r<t+Kd){this.log("request:requesting new token",null);try{await te.bind(this)().getSession({refreshToken:!0}),this.log("request:received new tokens",{exp:this.session?.idToken?.payload?.exp,currentTime:t,expiresIn:r-t,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(n){throw this.log("request:new token error",n),new l("User login is required.",{code:"INVALID_REQUEST"})}}else this.log("request:tokens",{exp:this.session.idToken.payload.exp,currentTime:t,expiresIn:r-t,token:this.session.accessToken.jwtToken,refreshToken:this.session.refreshToken.token});return this.session?.idToken?.jwtToken}else throw this.log("request:no session",null),Le.bind(this)(),new l("User login is required.",{code:"INVALID_REQUEST"})}function Ro(t,e){return new Promise((r,n)=>{e.refreshSession(t.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(Le.bind(this)(),n(i)):s.isValid()?r(s):(Le.bind(this)(),n(new l("Invalid session.",{code:"INVALID_REQUEST"})));});})}function te(){if(!this.userPool)throw new l("User pool is missing",{code:"INVALID_REQUEST"});let t=()=>{let s=H.getSignInUserSession().getIdToken().payload||null,o=vt(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:c=false,skipUserUpdateEventTrigger:u=false}=s||{};if(c&&u&&(u=false),H=this.userPool.getCurrentUser(),!H){this.log("getSession:cognitoUser",H),Le.bind(this)(),a(null);return}let d=f=>{let h=f.getIdToken().payload;if(this.log("getSession:respond:sessionAttribute",h),h["custom:service"]!==this.service)throw this.log("getSession:respond","invalid service, signing out"),Le.bind(this)(),new l("Invalid session.",{code:"INVALID_REQUEST"});return this.session=f,t(),u||this._runOnUserUpdateListeners(this.user),this.session};H.getSession((f,h)=>{if(this.log("getSession:getSessionCallback",{err:f,session:h}),!h){Le.bind(this)(),a(new l("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(f){Ro.bind(this)(h,H).then(w=>o(d(w))).catch(a);return}let p=Math.floor(Date.now()/1e3),g=h.getIdToken(),m=g.getExpiration(),y=m<p;if(this.log("getSession:currentTime",p),this.log("getSession:idTokenExp",m),this.log("getSession:isExpired",y),this.log("getSession:existingBearerToken",this.bearerToken),this.bearerToken=g.getJwtToken(),y||c||!h.isValid())Ro.bind(this)(h,H).then(w=>o(d(w))).catch(a);else try{o(d(h));}catch(w){a(w);}});}),r=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+Q.hash(s);return {cognitoUser:new Oe({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,c=false)=>new Promise((u,d)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let f=r(s,a),h=f.cognitoUsername,p=new $r({Username:h,Password:o});f.cognitoUser.authenticateUser(p,{newPasswordRequired:(g,m)=>{this.__disabledAccount=null,this.__request_signup_confirmation=h,g["custom:signup_ticket"]==="PASS"||g["custom:signup_ticket"]==="MEMBER"||g["custom:signup_ticket"]==="OIDPASS"?f.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:y=>{H=f.cognitoUser,e().then(async w=>{if(L.call(this))try{await vr.bind(this)(o);}catch(b){this.log("encryption:ensureKeyring:failed",b);}u(this.user);});},onFailure:y=>{d(new l(y.message||"Failed to authenticate user.",{code:y.code}));}}):d(new l("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(async m=>{if(this.__disabledAccount=null,L.call(this))try{await vr.bind(this)(o);}catch(y){this.log("encryption:ensureKeyring:failed",y);}this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user),u(this.user);}),onFailure:g=>{let m=[],{parsed:y,code:w}=Tr(g),b=typeof g?.message=="string"?g.message:"";if(w==="NotAuthorizedException"?b.includes("User is disabled.")?(this.__disabledAccount=h,m=["This account is disabled.","USER_IS_DISABLED"]):c?m=["The account already exists.","ACCOUNT_EXISTS"]:m=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:w==="UserNotFoundException"?m=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:w==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,m=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(w==="TooManyRequestsException"||w==="LimitExceededException")&&(m=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),y.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),m.length){let E=m[1],P=m[0];d(new l(P,{code:E,cause:g}));}else d(y);}});}),createCognitoUser:r,signup:(s,o,a)=>new Promise((c,u)=>{this.userPool.signUp(s,o,a,null,(d,f)=>{if(d){let{parsed:h,code:p}=Tr(d),g=[];p==="UsernameExistsException"?g=["The account already exists.","EXISTS"]:p==="InvalidPasswordException"?g=["Invalid password. Password must be at least 6 characters.","INVALID_PARAMETER"]:p==="InvalidParameterException"?g=[h.message||"Invalid parameter.","INVALID_PARAMETER"]:p==="TooManyRequestsException"||p==="LimitExceededException"?g=["Too many attempts. Please try again later.","REQUEST_EXCEED"]:p==="CodeDeliveryFailureException"?g=["Failed to deliver verification code.","CODE_DELIVERY_FAILURE"]:p==="UserLambdaValidationException"&&(g=[h.message||"Signup validation failed.","INVALID_REQUEST"]),g.length?u(new l(g[0],{code:g[1],cause:d})):u(h);return}c(f);});})}}function Tr(t){let e=typeof t?.code=="string"&&t.code.trim()?t.code.trim():"ERROR",n=((typeof t?.message=="string"?t.message:typeof t=="string"?t:"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 l(o,{code:s,cause:t}),code:e}}async function Co(t){await this.__authConnection;let e=t?.refreshToken||false;if(!e)return this.user;try{return await te.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},t)),this.user}catch{return null}}async function Do(t){await this.__connection,t=_.Params(t,{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 l('"merge" array items should be type: <string>.',{code:"INVALID_PARAMETER"})}if(typeof o!="boolean"&&!Array.isArray(o))throw new l('"merge" should be type: <boolean | string[]>.',{code:"INVALID_PARAMETER"});return o},template:o=>{if(typeof o!="object"||o===null)throw new l('"template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(o.welcome!==void 0&&(typeof o.welcome!="string"||!o.welcome))throw new l('"template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return o}});let e={token:t.token,id:t.id,merge:t.merge};t.template?.welcome&&(e.template_welcome=t.template.welcome);let r=await I.bind(this)("openid-logger",e),n=r.logger.split("#"),i=this.service+"-"+n[0],s=n[1];return {userProfile:await te.bind(this)().authenticateUser(i,s,true,true),openid:r.openid}}function jd(t){let e=typeof globalThis<"u"?globalThis:void 0;if(e?.Buffer)return e.Buffer.from(t,"base64").toString("utf8");if(typeof atob=="function"){let r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;i++)n[i]=r.charCodeAt(i);return typeof TextDecoder<"u"?new TextDecoder().decode(n):r}throw new Error("No base64 decoder available in this environment")}function Hd(t){let e=t.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=jd(n);return JSON.parse(i)}async function ko(t){await this.__authConnection,this.log("loginWithToken:params",t),t=_.Params(t,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=Hd(t.idToken);if(this.log("loginWithToken:idTokenPayload",e),e["custom:service"]!==this.service)throw new l("Token does not belong to this service.",{code:"INVALID_REQUEST"});let r=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<r)throw new l("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=vt(e),this.session=null,t.accessToken&&t.refreshToken)try{if(this.session=new dt({IdToken:new ut({IdToken:t.idToken}),AccessToken:new ct({AccessToken:t.accessToken}),RefreshToken:new lt({RefreshToken:t.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",Oe),this.log("loginWithToken:userPool",this.userPool),Oe&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),H=new Oe(n),H.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof H,cognitoUserKeys:Object.keys(H||{}),cognitoUser:H});}}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 X(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Ft.bind(this)(),false)}async function Le(t=false){let e=null;H&&(t?e=new Promise((n,i)=>{H.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):H.signOut()),Ln.bind(this)();let r={session:null,__startKeyHistory:{},__cached_requests:{},__user:null};e&&(e=await e);for(let n in r)this[n]=r[n];return this._runOnUserUpdateListeners(null),this._runOnLoginListeners(null),e}async function Ft(t){await this.__connection;let{data:e}=j(t);return await Le.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function No(){if(!this.__request_signup_confirmation)throw new l("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await I.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function Oo(t=false){if(typeof t=="string")t=_.Url(t);else if(typeof t!="boolean")throw new l("Argument should be type: <boolean | string>.",{code:"INVALID_REQUEST"});if(!this.__disabledAccount)throw new l("Least one signin attempt of disabled account is required.",{code:"INVALID_REQUEST"});return await I.bind(this)("recover-account",{username:this.__disabledAccount,redirect:t}),"SUCCESS: Recovery e-mail has been sent."}async function ei(t){let e=_.Params(t,{username:"string",email:"string",password:"string"},["password"]);if(await this.__authConnection,e.email)try{_.Email(e.email);}catch{e.username=e.email,delete e.email;}if(!e.username&&!e.email)throw new l('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await te.bind(this)().authenticateUser(e.username||e.email,e.password)}async function Fo(t,e){await this.__authConnection;let r={username:"string",password:u=>_.Password(u),email:u=>_.Email(u),name:"string",address:u=>{if(!u)return "";if(typeof u=="string")return u;if(typeof u=="object")return JSON.stringify(u)},gender:"string",birthdate:u=>u?_.Birthdate(u):"",phone_number:u=>u?_.PhoneNumber(u):"",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:u=>u?_.Url(u):"",profile:u=>u?_.Url(u):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:u=>u?_.Url(u):""},n=_.Params(t||{},r,["email","password"]);await Ft.bind(this)(),e=_.Params(e||{},{email_subscription:u=>{if(typeof u!="boolean")throw new l('"option.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new l('"option.signup_confirmation" is required for email subscription.',{code:"INVALID_PARAMETER"});return u},signup_confirmation:u=>{let d=u;if(typeof u=="string")d=_.Url(u);else if(typeof u=="boolean")d=u;else throw new l('"option.signup_confirmation" should be type: <string | boolean>.',{code:"INVALID_PARAMETER"});if(d&&!n.email)throw new l('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return d},login:u=>{if(typeof u=="boolean"){if(e.signup_confirmation&&u)throw new l('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return u}throw new l('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})},template:u=>{if(typeof u!="object"||u===null)throw new l('"option.template" should be type: <object>.',{code:"INVALID_PARAMETER"});if(u.signup_confirmation!==void 0){if(typeof u.signup_confirmation!="string"||!u.signup_confirmation)throw new l('"option.template.signup_confirmation" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});if(!e?.signup_confirmation)throw new l('"option.signup_confirmation" is required when "option.template.signup_confirmation" is set.',{code:"INVALID_PARAMETER"})}if(u.welcome!==void 0&&(typeof u.welcome!="string"||!u.welcome))throw new l('"option.template.welcome" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});return u}});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 l('"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=te.bind(this)().createCognitoUser(n.username||n.email);for(let u of ["email_public","address_public","gender_public","birthdate_public","phone_number_public"])n[u]=n[u]?"1":"0";n.access_group&&(n.access_group=n.access_group.toString());let o=(await I.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(":"),c=[new Te({Name:"custom:signup",Value:o[0]}),new Te({Name:"locale",Value:a.split("#")[1]}),new Te({Name:"custom:signup_ticket",Value:a})];for(let u in r){let d=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[u]!==""&&(u==="username"||u==="password"||u==="access_group"||(d.includes(u)?c.push(new Te({Name:"custom:"+u,Value:n[u]})):c.push(new Te({Name:u,Value:n[u]}))));}return await te.bind(this)().signup(s.cognitoUsername,n.password,c),n.signup_confirmation?(H=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?ei.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function Lo(){await this.__connection;let t=await I.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await Ft.bind(this)(),t}async function Mo(t){await this.__connection;let e=_.Params(t,{email:i=>_.Email(i),code:["number","string"],new_password:i=>_.Password(i)},["email","code","new_password"]),r=e.code,n=e.new_password;return typeof r=="number"&&(r=r.toString()),new Promise(async(i,s)=>{te.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(r,n,{onSuccess:a=>{i("SUCCESS: New password has been set.");},onFailure:a=>{s(new l(a?.message||"Failed to reset password.",{code:a?.code||"ERROR",cause:a}));}});})}async function Vo(t,e,r){await this.__connection;let n;if(!H)throw new l("The user has to be logged in.",{code:"INVALID_REQUEST"});if(t==="email"||t==="phone_number"){if(!this.__user.hasOwnProperty(t))throw new l(`No ${t==="email"?"e-mail":"phone number"} to verify`,{code:"INVALID_REQUEST"});if(this.__user?.[`${t}_verified`])return `SUCCESS: "${t}" is verified.`;n=(e?_.Params(e,{code:"string"}):{}).code||"";}else return;let i,s=r?.template?.verification;if(s!==void 0){if(typeof s!="string"||!s)throw new l('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});i={template_verification:s};}return new Promise((o,a)=>{let c={onSuccess:u=>{n?te.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[t+"_verified"]=true),o(`SUCCESS: "${t}" is verified.`);}).catch(d=>{a(d);}):o("SUCCESS: Verification code has been sent.");},onFailure:u=>{a(new l(u.message||"Failed to request verification code.",{code:u?.code}));}};n?H?.verifyAttribute(t,n,c):(c.inputVerificationCode=null,H?.getAttributeVerificationCode(t,c,i));})}function Bo(t,e){return Vo.bind(this)("phone_number",t,e)}function qo(t,e){return Vo.bind(this)("email",t,e)}async function $o(t,e){await this.__connection;let r=_.Params(t,{email:s=>_.Email(s)},["email"]),n,i=e?.template?.verification;if(i!==void 0){if(typeof i!="string"||!i)throw new l('"template.verification" should be a non-empty <string> (template message_id).',{code:"INVALID_PARAMETER"});n={template_verification:i};}return new Promise(async(s,o)=>{te.bind(this)().createCognitoUser(r.email).cognitoUser.forgotPassword({onSuccess:c=>{s("SUCCESS: Verification code has been sent.");},onFailure:c=>{let{parsed:u,code:d}=Tr(c),f={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[d]||u.code||d||"ERROR";o(new l(u.message,{code:f,cause:c}));}},n);})}async function Ko(t){if(await this.__connection,!this.session)throw new l("User login is required.",{code:"INVALID_REQUEST"});let e=_.Params(t,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new l('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new l('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return _.Password(e.current_password),_.Password(e.new_password),L.call(this)&&await uo.bind(this)(e.current_password,e.new_password),new Promise((r,n)=>{H.changePassword(e.current_password,e.new_password,(i,s)=>{if(i){if(i?.code==="InvalidParameterException")n(new l("Invalid password parameter.",{code:"INVALID_PARAMETER"}));else if(i?.code==="NotAuthorizedException")n(new l("Incorrect password.",{code:"INVALID_REQUEST"}));else if(i?.code==="TooManyRequestsException"||i?.code==="LimitExceededException")n(new l("Too many attempts. Please try again later.",{code:"REQUEST_EXCEED"}));else {let{parsed:o}=Tr(i);n(o);}return}L.call(this)&&lo.bind(this)().catch(o=>this.log("encryption:prune:failed",o)),r("SUCCESS: Password has been changed.");});})}async function jo(t){if(await this.__connection,!this.session)throw new l("User login is required.",{code:"INVALID_REQUEST"});let e=_.Params(t||{},{user_id:i=>_.UserId(i),email:i=>_.Email(i),address:i=>{if(!i)return "";if(typeof i=="string")return i;if(typeof i=="object")return JSON.stringify(i)},name:"string",gender:"string",birthdate:i=>i?_.Birthdate(i):"",phone_number:i=>i?_.PhoneNumber(i):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:i=>i?_.Url(i):"",profile:i=>i?_.Url(i):"",family_name:"string",given_name:"string",middle_name:"string",nickname:"string",website:i=>i?_.Url(i):""});if(e&&typeof e=="object"&&!Object.keys(e).length)return this.user;e.email&&(e.preferred_username=this.service+"-"+Q.hash(e.email));let r=[["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 r)if(e[i[0]]&&!this.__user[i[1]])throw new l(`${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 I.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 Te({Name:s,Value:e[s]}));return await new Promise((s,o)=>{H?.updateAttributes(i,(a,c)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(c);});}),await te.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function Ho(t,e){t=j(t).data,t||(t={searchFor:"timestamp",condition:">",value:0},e||(e={}),e.ascending=false),await this.__connection;let r={user_id:i=>Array.isArray(i)?i.map(s=>_.UserId(s)):_.UserId(i),email:"string",phone_number:"string",locale:i=>{if(typeof i!="string"||typeof i=="string"&&i.length>5)throw new l('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>_.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(t=_.Params(t,{searchFor:["user_id","name","email","phone_number","address","gender","birthdate","locale","subscribers","timestamp","access_group","approved"],condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],value:i=>{let s=r[t.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new l(`Value does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i},range:i=>{let s=r[t.searchFor];if(typeof s=="function")return s(i);if(typeof i!==s)throw new l(`Range does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});return i}},n),t?.condition&&t?.condition!=="="&&t.hasOwnProperty("range"))throw new l("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(t.searchFor==="user_id"&&(t.condition!=="="||t.range))throw new l(`Conditions are not allowed on "${t.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof t?.value=="string"&&!t?.value)throw new l("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof t?.searchFor=="string"&&!t?.searchFor)throw new l('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return I.bind(this)("get-users",t,{auth:true,fetchOptions:e})}async function Wo(t){await this.__connection;let e=await I.bind(this)("last-verified-email",t,{auth:true});return e.includes("SUCCESS")?(await te.bind(this)().getSession({refreshToken:true}),this.user):e}async function Go(t){return await this.__connection,t=_.Params(t,{username:_.Email,redirect:_.Url},["username"]),await I.bind(this)("request-username-change",t,{auth:true})}var Wd="1.2.1",Gd=class{constructor(t){Se(this,"version",Wd);Se(this,"items",[]);Se(this,"nextJobId",1);Se(this,"breakWhenError",false);Se(this,"batchSize",1);Se(this,"onProgress");Se(this,"activeCount",0);Se(this,"currentCycleCompleted",[]);Se(this,"stopProcessing",false);if(this.breakWhenError=!!t?.breakWhenError,this.batchSize=t?.batchSize??1,typeof this.batchSize!="number"||this.batchSize<1)throw new Error("batchSize must be at least 1");if(t?.onProgress)if(typeof t.onProgress=="function")this.onProgress=t.onProgress;else throw new Error("onProgress must be a function")}get batchToProcess(){return Math.ceil(this.items.length/this.batchSize)}add(t){let e=Array.isArray(t)?t:[t],r=[];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}),r.push(i);}return this.processNext(),r}setBatchSize(t){if(typeof t!="number"||t<1)throw new Error("batchSize must be at least 1");this.batchSize=t;}remove(t){let e=String(t),r=this.items.findIndex(n=>n.id===e);return r===-1?false:(this.items.splice(r,1),true)}processNext(){if(this.stopProcessing||this.items.length===0||this.activeCount>0)return;let t=this.items.splice(0,this.batchSize);this.activeCount=t.length,this.currentCycleCompleted=new Array(t.length),t.forEach((e,r)=>{Promise.resolve().then(()=>e.job()).then(n=>(this.finalizeJob(r,n,false),n)).catch(n=>(this.finalizeJob(r,n,true),n));});}finalizeJob(t,e,r){if(this.currentCycleCompleted[t]=e,this.activeCount-=1,r&&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=[];}},Lt=Gd;var _t=null,Yo=typeof SubmitEvent<"u",Jd=typeof HTMLFormElement<"u",Vt=se(),ti=0;function zo(t){if(!t)return null;let e=Number(t);if(Number.isFinite(e))return Math.max(0,e*1e3);let r=Date.parse(t);return Number.isNaN(r)?null:Math.max(0,r-Date.now())}function ri(t,e){return e>0?t/e*100:0}var Jo=t=>{let{auth:e,type:r,endpoints:n,stable:i}=t,s=n[0],o=n[1];if(ti++,r==="admin"){let a=Object.entries(s).filter(([c,u])=>c.includes(e?"_private":"_public")&&c!=="get_users_private"&&c!=="service_public"&&typeof u=="string").map(([,c])=>c);if(!a.length)throw new l("No available admin gateways.",{code:"INVALID_REQUEST"});return a[ti%a.length]}if(r==="record"){let a=Object.entries(o).filter(([c,u])=>c.includes(e?"record_private":"record_public")&&typeof u=="string").map(([,c])=>c);if(!a.length)throw new l("No available record gateways.",{code:"INVALID_REQUEST"});return i?a[0]:a[ti%a.length]}throw new l("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Yd(t,e,r){let n=await Promise.all([this.admin_endpoint,this.record_endpoint]),i=n[0],s=n[1],o=t.split("?"),a=o.length>1?"?"+o[1]:"";switch(t=o[0],t){case "get-users":return i.get_users_private+t+a;case "service":return i.service_public+t+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 Jo.bind(this)({auth:e,type:"admin",endpoints:n})+t+a;case "post-record":return (e?s.post_private:s.post_public)+t+a;case "get-records":return (e?s.get_private:s.get_public)+t+a;case "del-files":case "del-records":return s.del_private+t+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 Jo.bind(this)({auth:e,type:"record",endpoints:n,stable:r})+t+a;default:return _.Url(t)+a}}var Mt={};function Qo(){_t&&(_t.terminate(),_t=null);}async function I(t,e=null,r,n){this.log("request",{url:t,data:e,options:r,_etc:n||{}}),r=r||{};let{auth:i=false,method:s="post",bypassAwaitConnection:o=false}=r;s=s.toUpperCase();let a=null,c=e?.service||this.service,u=e?.owner||this.owner,d=null,f=await Yd.bind(this)(t,!!i,!!r.stableGateway);if(!o&&(a=await this.__connection,!a))throw new l("Invalid connection. The service could have been disabled, or has a restricted CORS.",{code:"INVALID_REQUEST"});let h=r?.tokenHeaders?.idToken===true;(i||h)&&(d=await yt.bind(this)());let p={},{fetchMore:g=false,progress:m}=r?.fetchOptions||{};if(r?.fetchOptions&&Object.keys(r.fetchOptions).length){for(let x of ["limit","startKey","ascending"])if(r.fetchOptions.hasOwnProperty(x)){if(x==="startKey"&&r.fetchOptions[x]===null)continue;p[x]=r.fetchOptions[x];}p=_.Params(p,{limit:x=>{if(typeof x!="number")throw new l("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(x>1e3)throw new l("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return x},startKey:x=>x,ascending:"boolean"});}let y=n?.ignoreService?{}:{service:c,owner:u};Object.assign(y,p),e=j(e).data,e?e&&typeof e=="object"&&(e=Object.assign(y,e)):e=y;let w=`${s}:${i?"auth":"public"}:${t}`,b=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(Vt&&e instanceof FormData)){let x=function(k){return typeof k=="object"&&k!==null?Object.keys(k).sort().reduce((F,q)=>(typeof k[q]=="object"&&k[q]!==null?F[q]=x(k[q]):F[q]=k[q],F),{}):k};return Q.hash(w+"/"+JSON.stringify(x(e)))}return Q.hash(w+"/"+c)})(),{requestKey:E,requestKeyWithStartKey:P}=zd.bind(this)({params:e,url:t,fetchMore:g,hashedParams:b});if(!E||E&&typeof E=="object")return E;if(this.log("requestKey",P),typeof P=="string"&&Mt[P]instanceof Promise)return this.log("request:returning pending",P),Mt[P];let U={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(r,"contentType")&&r.contentType!==void 0){let x=r.contentType===null?"application/x-www-form-urlencoded":r.contentType;x&&(U["Content-Type"]=x);}else U["Content-Type"]="application/json";if(d&&(U.Authorization=d),r?.tokenHeaders){let x=(q,ye)=>typeof q=="string"?q:q===true?ye:null,k=x(r.tokenHeaders.accessToken,this.session?.accessToken?.jwtToken||null),F=x(r.tokenHeaders.idToken,this.bearerToken||this.session?.idToken?.jwtToken||d||null);k&&(U["X-Access-Token"]=k),F&&(U["X-Id-Token"]=F);}let O={public_identifier:this.__public_identifier,service:c,owner:u};U["Content-Meta"]=JSON.stringify(O),r.revalidate&&(U["Cache-Control"]="no-cache",U.Pragma="no-cache");let B={headers:U};if(r?.responseType&&(B.responseType=r.responseType),s==="GET"){if(e){let x=[];if(Vt&&e instanceof FormData?x=Array.from(e.entries()).map(([k,F])=>{let q=typeof F=="string"?F:F.name;return encodeURIComponent(k)+"="+encodeURIComponent(q)}):x=Object.keys(e).map(k=>{let F=e[k];return typeof F!="string"&&(F=JSON.stringify(F)),encodeURIComponent(k)+"="+encodeURIComponent(F)}),x.length){let k=f.includes("?")?f.endsWith("?")||f.endsWith("&")?"":"&":"?";f+=k+x.join("&");}}B.body=null;}else if(Vt&&e instanceof FormData)B.body=e;else if(U["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let x=new URLSearchParams;for(let k of Object.keys(e)){let F=e[k];x.append(k,typeof F=="string"?F:JSON.stringify(F));}B.body=x.toString();}else typeof e=="string"?B.body=e:B.body=e?JSON.stringify(e):null;if(B.method=s,_t===null){let x={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:k=>{this.onBatchProcess.forEach(F=>F(k));}};_t=new Lt(x);}return this.log("request-opt",B),new Promise((x,k)=>{_t.add([async()=>{let F=Xo.bind(this)(f,B,m);Mt[P]=F;try{let q=Xd.bind(this)({hashedParam:E,requestKeyWithStartKey:P,url:t,fetched:await F});return delete Mt[P],this.log("request:end",q),x(q),q}catch(q){throw delete Mt[P],this.log("request:err",q),k(q),q}}]);})}function zd(t){let{params:e={},url:r,fetchMore:n=false,hashedParams:i}=t||{};if(e.startKey){if(!(typeof e.startKey=="object"&&Object.keys(e.startKey).length)&&e.startKey!=="start"&&e.startKey!=="end")throw new l(`"${e.startKey}" is invalid startKey key.`,{code:"INVALID_PARAMETER"});e.startKey==="start"&&(n=false,delete e.startKey);}if(!n){if(this.__cached_requests?.[r]?.[i]&&delete this.__cached_requests[r][i],this.__startKeyHistory?.[r]?.[i]){if(Array.isArray(this.__startKeyHistory[r][i])&&this.__startKeyHistory[r][i].length)for(let c of this.__startKeyHistory[r][i]){let u=i+Q.hash(c);this.__cached_requests?.[r]&&this.__cached_requests?.[r]?.[u]&&delete this.__cached_requests[r][u];}delete this.__startKeyHistory[r][i];}return {requestKeyWithStartKey:i,requestKey:i}}if(!Array.isArray(this.__startKeyHistory?.[r]?.[i]))return {requestKeyWithStartKey:i,requestKey:i};let s=this.__startKeyHistory[r][i],o=s[s.length-1],a=i;if(o){if(o==="end")return {requestKey:{list:[],startKey:"end",endOfList:true,startKeyHistory:s},requestKeyWithStartKey:a};a+=Q.hash(o),e.startKey=JSON.parse(o);}return this.__cached_requests?.[r]?.[a]?{requestKey:this.__cached_requests[r][a],requestKeyWithStartKey:a}:{requestKeyWithStartKey:a,requestKey:i}}function Qd(t){let e=r=>r&&typeof r=="object"&&r.encrypted?Object.assign({},r,{data:null}):r;return Array.isArray(t)?t.map(e):t&&typeof t=="object"?Array.isArray(t.list)?Object.assign({},t,{list:t.list.map(e)}):e(t):t}function Xo(t,e,r){return new Promise((n,i)=>{let s=new XMLHttpRequest;s.open(e.method||"GET",t);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"),c=zo(a);c!==null?setTimeout(()=>{Xo(t,e,r).then(n,i);},c):i("Too many requests");}else {let a=s.status,c=["INVALID_CORS","INVALID_REQUEST","SERVICE_DISABLED","INVALID_PARAMETER","ERROR","EXISTS","NOT_EXISTS"],u=e.responseType=="blob"?s.response:s.responseText;try{u=JSON.parse(u);}catch{}if(typeof u=="string"){let d=u.split(":"),f=d.splice(0,1)[0].trim(),h=d.join(":").trim();i(new l(h||u,{code:c.includes(f)?f:"ERROR"}));}else if(typeof u=="object"&&u?.message){let d=u?.code||(a?a.toString():null)||"ERROR",f=u.message,h=u?.cause;typeof f=="string"&&(f=f.trim()),i(new l(f,{cause:h,code:d}));}else i(u);}},s.onerror=()=>i("Network error"),s.onabort=()=>i("Aborted"),s.ontimeout=()=>i("Timeout"),typeof r=="function"&&(s.onprogress=a=>{r({status:"download",progress:ri(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{r({status:"upload",progress:ri(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Xd(t){let{hashedParam:e,requestKeyWithStartKey:r,url:n,fetched:i}=t;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][r]=i,Object.assign({startKeyHistory:this.__startKeyHistory[n][e]},i)}async function Bt(t,e){await this.__connection;let{record_id:r,service:n=this.service,progress:i}=e;if(!r)throw new l('"record_id" is required.',{code:"INVALID_PARAMETER"});if(Yo&&t instanceof SubmitEvent&&(t=t.target),Jd&&t instanceof HTMLFormElement&&(t=new FormData(t)),!Vt||!(t instanceof FormData))throw new l('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:Ye(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,c=(p,g,m)=>new Promise((y,w)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let b=a.responseText;try{b=JSON.parse(b);}catch{}if(a.status>=200&&a.status<300)y(b);else if(a.status===429){let E=a.getResponseHeader("Retry-After"),P=zo(E);P!==null?setTimeout(()=>{c(p,g,m).then(y,w);},P):w("Too many requests");}else w(b);},a.onerror=()=>w("Network error"),a.onabort=()=>w("Aborted"),a.ontimeout=()=>w("Timeout"),a.upload&&typeof m=="function"&&(a.upload.onprogress=m),a.send(g);});function u(p){let g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";if(p===0)return g[0];let m="";for(;p>0;)m=g[p%62]+m,p=Math.floor(p/62);return m}let d=[],f=[],h=[];for(let[p,g]of t.entries()){if(!(g instanceof File))continue;let m=await So.bind(this)(r,p,g),y=m.file,w=m.key,b=Object.assign({key:w+"/"+y.name,sizeKey:u(y.size),contentType:y.type||null},o),{fields:E=null,url:P,cdn:U}=await I.bind(this)("get-signed-url",b,{auth:!!this.__user});h.push(U);let N=new FormData;for(let O in E)N.append(O,E[O]);N.append("file",y);try{await c(P,N,typeof i=="function"?O=>i({status:"upload",progress:ri(O.loaded,O.total),currentFile:g,completed:d,failed:f,loaded:O.loaded,total:O.total,abort:()=>a.abort()}):null),d.push(g);}catch{f.push(g);}}return {completed:d,failed:f,bin_endpoints:h}}var Ir={};function T(t){let{preventMultipleCalls:e=false}=t||{};return function(r,n,i){let s=i.value;i.value=function(...o){let a=o[0],c=true,u=null,d="",f={},h=false;if(Yo&&a instanceof SubmitEvent){a.preventDefault();let w=window.location.href;u=a.target;let b=new URL(u.action);d=b.href;let E=d?d.match(/(?<=\{).*?(?=\})/g):"";if(E)for(let P of E){if(!P)continue;let U=u.querySelector(`[name="${P}"]`);if(U)if(U.type==="file")for(let N=0;N<=U.files.length-1;N++)U.files[N]&&(f[P]||(f[P]=[]),f[P].push(new Promise((O,B)=>{let x=new FileReader;x.onload=function(){O(x.result);},x.readAsDataURL(U.files[N]),x.onerror=B;})));else d=d.replace(`{${P}}`,U.value);}u.getAttribute("action")===null?c=false:h=b.href===w;}let p=async w=>{if(d)for(let b in f)f[b].length&&(d=d.replace(`{${b}}`,(await Promise.all(f[b])).join(",")));if(u&&c){let b=L.call(this)?Qd(w):w;window.sessionStorage.setItem(`${this.service}:${Q.hash(d)}`,JSON.stringify(b)),h?window.location.replace(d):window.location.href=d;}return w},g,m=w=>{throw w instanceof l?w.name=n+"()":w=w instanceof Error?w:new l(w,{name:n+"()"}),w},y=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let w=await g;return p(w)}return p(g)}catch(w){throw m(w)}};if(e){let w=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Ir?.[w]||(Ir[w]=y().finally(()=>{delete Ir[w];})),Ir[w]}return y()};}}async function Zo(){await this.__connection;let t=`${this.service}:${Q.hash(window.location.href.split("?")[0])}`,e=window.sessionStorage.getItem(t);if(window.sessionStorage.removeItem(t),e!==null){try{e=JSON.parse(e);}catch{}return e}return null}var Zd=256,ef=256,tf=256,ea=256,rf="\u{10FFFF}",nf=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,sf={"/":"%2F","!":"%21","*":"%2A","#":"%23"},of={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function af(t){return t.replace(/%/g,"%25").replace(/[\/!*#]/g,r=>sf[r]||r)}function we(t){return typeof t!="string"?t:t.replace(/%(2F|21|2A|23)/gi,r=>{let n=r.toUpperCase();return of[n]||r}).replace(/%25/gi,"%")}function Ie(t,e,r={}){let{allowEmpty:n=false,maxLength:i,blockKeyDelimiters:s=false,disallowLeadingDollar:o=false,onlyAlphanumeric:a=false}=r;if(typeof t!="string")throw new l(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(t))throw new l(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&t.length===0)throw new l(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&t.length>i)throw new l(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(nf.test(t)||t.includes(rf))throw new l(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&(t=af(t),i&&t.length>i))throw new l(`"${e}" should be <= ${i} characters. "/", "!", "*", "#" and "%" count as 3 characters each.`,{code:"INVALID_PARAMETER"});if(o&&t.startsWith("$"))throw new l(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return t}function bt(t,e="table.name",r={}){return Ie(t,e,{allowEmpty:r.allowEmpty===true,maxLength:Zd,blockKeyDelimiters:true})}function Ur(t,e="tag",r={}){return Ie(t,e,{allowEmpty:r.allowEmpty===true,maxLength:ef,blockKeyDelimiters:true})}function qt(t,e="index.name",r={}){return Ie(t,e,{allowEmpty:r.allowEmpty===true,maxLength:tf,blockKeyDelimiters:true,disallowLeadingDollar:true})}function ta(t,e="index.value"){return Ie(t,e,{allowEmpty:true,maxLength:ea})}function ni(t){return typeof t=="string"&&t.slice(-1)==="."}function ii(t,e){return Ie(t,e,{allowEmpty:true,maxLength:ea,blockKeyDelimiters:true})}function ra(t){if(!t.record_id&&!t.unique_id)return null;let e={};return t?.service&&(e.service=t.service),t?.owner&&(e.owner=t.owner),t?.record_id?e.record_id=Ie(t.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):t?.unique_id&&(e.unique_id=t.unique_id),e}function si(t){if(t===void 0)return 0;if(typeof t=="number"){if(t>99||t<0)throw new l('"table.access_group" value should be within a range of 0 ~ 99.',{code:"INVALID_REQUEST"})}else if(typeof t=="string"){if(t={private:"private",public:0,authorized:1,admin:99}[t],t===void 0)throw new l('"table.access_group" is invalid.',{code:"INVALID_PARAMETER"})}else throw new l('"table.access_group" should be type: <number | string>.',{code:"INVALID_PARAMETER"});if(!this.__user&&t)throw new l("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return t}var Pr=4503599627370496;function xr(t){if(typeof t=="number"){if(t>Pr||t<-Pr)throw new l(`Number value should be within range -${Pr} ~ +${Pr}`,{code:"INVALID_PARAMETER"});return t}if(typeof t=="boolean")return t;if(typeof t=="string")return ta(t,"index.value");throw new l('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function na(t,e){if(!e.index||!("value"in e.index))throw new l('"index.value" is required.',{code:"INVALID_PARAMETER"});if(e.index.name==="$record_id")throw new l(`Cannot do "index.range" on ${e.index.name}`,{code:"INVALID_PARAMETER"});if(typeof e.index.value!=typeof t)throw new l('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof t=="string"?ni(e.index.name)?ii(t,"index.range"):ta(t,"index.range"):t}var Cr={},cf=10080*60,uf=3600,ia=2;function lf(t,e){if(!e)return String(ia);let r=Math.max(60,t-300)*1e3;return "g"+ia+"w"+Math.floor(Date.now()/r)}function df(t){if(!this.user?.user_id)return false;let e=t[6]==="**"?"**":parseInt(t[6]),r=this.user?.access_group??-1;return !(this.user.user_id!==t[3]&&(e==="**"||r<e))}function ff(t){if(typeof t=="string"){if(t.startsWith("!J%"))try{return JSON.parse(t.substring(3))}catch{return t}return t==="!D%{}"?{}:t==="!L%[]"?[]:t}if(t&&typeof t=="object"&&!Array.isArray(t)&&typeof t.__json__=="string"&&Object.keys(t).length===1)try{return JSON.parse(t.__json__)}catch{}return t}async function sa(t){return typeof t=="string"?t:t&&typeof t.text=="function"?await t.text():await new Promise((e,r)=>{try{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=()=>r(n.error||new Error("Failed to read blob")),n.readAsText(t);}catch(n){r(n);}})}async function Ze(t,e,r=false,n=false,i=false){let s={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:{}},o=false,a=[],c=null;function u(h){let p=h=="**"?"private":parseInt(h);return p=p==0?"public":p==1?"authorized":p==99?"admin":p,p}let d={ip:h=>{let p=h.split("#"),g=p[0];p.length>1&&(s.unique_id=p.slice(1).join("#")),g.slice(-1)==="R"?(s.readonly=true,g=g.slice(0,-1)):s.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(g)&&(g=g.split("-").join("."),o=true),s.ip=g;},rec:h=>{if(!h)return;s.record_id=h;let p=h.substring(0,h.length-9),g=pe(p);s.uploaded=g;},usr:h=>{s.user_id=h;},tbl:h=>{if(h&&!s.table.name){let p=h.split("/");s.table.name=we(p[0]),s.table.access_group=u(p[2]),p?.[3]&&(s.table.subscription.is_subscription_record=true);}},usr_tbl:h=>{let p=h.split("/");s.user_id||(s.user_id=p[0]),s.table.name||(s.table.name=we(p[1]),s.table.access_group=u(p[3]),p?.[4]&&(s.table.subscription.is_subscription_record=true));},idx:h=>{if(!h)return;let p=h.split("!"),g=we(p.splice(0,1)[0]),m=hf("!"+p.join("!"));s.index={name:g,value:m};},ref:h=>{h&&(s.reference=h.split("/")[0]);},tags:h=>{s.tags=Array.isArray(h)?h.map(p=>we(p)):h;},upd:h=>{s.updated=h;},acpt_mrf:h=>{s.source.prevent_multiple_referencing=!h;},ref_limt:h=>{s.source.referencing_limit=h;},rfd:h=>{s.referenced_count=h;},bin:async h=>{let p={},g=s?.reference||null;if(Array.isArray(h)){let m=await Promise.all(h.map(async y=>{try{let w=y.split("/").slice(3).join("/"),b=w.split("/");if(b.length<12)return null;let E=b[b.length-1],P=b[10];if(P==="__data__"&&E==="__json__.json")return {isDataFile:!0,rawUrl:y};if(qn(P,E))return {isDataFile:!0,rawUrl:y};let U=Rr(P),N=b[9],O=b[8],B=u(b[6]),x=y,k=B!=="public"&&df.call(this,b)?{expires:uf,browserCache:cf}:null;if(B!=="public"&&!i)try{x=await Xe.bind(this)(y,{dataType:"endpoint",_ref:g});}catch(q){console.error("Error getting signed url for private file:",q),x=y;}let F={access_group:B,filename:E,url:x,path:w,size:U?U.plainSize:pe(N),uploaded:pe(O),getFile:(q,ye)=>{let Me={dataType:q||"download",progress:ye,_ref:g},$=()=>Xe.bind(this)(x,Object.assign({},Me,{_update:F}));return k?Xe.bind(this)(y,Object.assign({},Me,k)).catch(()=>$()):$()}};return U&&(F.encrypted=!0,F.stored_size=pe(N)),{pathKey:U?U.key:P,obj:F}}catch{return null}}));for(let y of m)if(y&&!y.isDataFile){if(p[y.pathKey]){p[y.pathKey].push(y.obj);continue}p[y.pathKey]=[y.obj];}}s.bin=p;},prv_acs:h=>{for(let p in h)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(p)?s.table.subscription[p]=h[p]:p==="referencing_index_restrictions"&&Array.isArray(h[p])?s.source[p]=h[p].map(m=>m&&typeof m=="object"&&typeof m.name=="string"?Object.assign({},m,{name:we(m.name)}):m):s.source[p]=h[p];},data:async h=>{let p={access_group:s.table.access_group,table_name:s.table.name,user_id:s.user_id,record_id:s.record_id,unique_id:s.unique_id,ctUrl:c},g=()=>{L.call(this)&&(s.encrypted={status:"failed",reason:"DATA_UNAVAILABLE"});},m=async w=>{if(n||!L.call(this)&&!Er(w))return w;let b=await to.bind(this)(w,p);return b.flag&&(s.encrypted=b.flag),b.value},y=ff(h);if(y!==h){s.data=await m(y);return}if(h&&typeof h=="object"&&!Array.isArray(h)&&typeof h.__data__=="string"&&Object.keys(h).length===1&&h.__data__.endsWith("/__data__/__json__.json")){let w=h.__data__,b=a.find(E=>E.endsWith(w))||null;if(!b&&!r&&g(),b){if(r){s.data=h;return}try{let E=await Xe.bind(this)(b,{dataType:"blob",_ref:s.reference||null}),P=await sa(E);s.data=await m(JSON.parse(P));}catch(E){console.error("Failed to fetch offloaded record data:",E),s.data=null,g();}return}}s.data=await m(h);}};if(t.record_id)return t;if(Array.isArray(t.bin))for(let h of t.bin)try{if(typeof h!="string")continue;let p=h.split("/").slice(3);p.length>=12&&p[10]==="__data__"&&p[p.length-1]==="__json__.json"&&a.push(h),p.length>=12&&qn(p[10],p[p.length-1])&&(c=h);}catch{}let f=[];for(let h in d)if(t.hasOwnProperty(h)){let p=d[h](t[h]);p instanceof Promise&&f.push(p);}return o&&(s.user_id="anonymous:"+s.user_id),await Promise.all(f),s}function hf(t){let e=t.substring(3);switch(t.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 l("Value parse error.",{code:"PARSE_ERROR"})}default:return t}}async function oa(t){let{endpoints:e}=t;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new l('"endpoints" should be type: array | string.',{code:"INVALID_PARAMETER"});let r=await I.bind(this)("del-files",{endpoints:e,storage:"records"},{auth:true,method:"post"}),n=[];for(let i in r)n.push(Ze.bind(this)(r[i]));return Promise.all(n)}async function Xe(t,e){if(typeof t!="string")throw new l('"url" should be type: string.',{code:"INVALID_PARAMETER"});let r=t,n=t.split("?"),i=n.shift()||"",s=n.length?"?"+n.join("?"):"",o=_.Url(i);t=o+s;let a=false,c=o.split("/"),d=c[2].split("."),f=null;d.length===3&&d[1]==="skapi"&&(f=d[0],a=true);let h=c.slice(3),p=false;if(!a&&(h[0]==="auth"||h[0]==="publ"))try{_.UserId(h[2]),_.UserId(h[3]),p=h[0]=="auth",a=!0;}catch{throw new l("Invalid file url.",{code:"INVALID_PARAMETER"})}let g=f?null:h[1];if(e=_.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:E=>E}),e?.dataType==="info")return {url:t,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:pe(h[9]),uploaded:pe(h[8])};let m=t.split("/").slice(-1)[0],y=e.expires;if(y){if(!a)throw new l("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(y<0)throw new l('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let E={request:f?"get-host":"get",id:f||h[5],key:r.split("?")[0],expires:y};g&&(E.service=g);let P=e.browserCache,U={auth:true};if(P){if(P<0)throw new l('"config.browserCache" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});U.method="get",U.stableGateway=true,E.browser_cache=P;let N=this.session?.idToken?.payload?.sub||this.user?.user_id;N&&(E.uid=N),E.nocache=lf(y,e.refresh);}t=(await I.bind(this)("get-signed-url",E,U)).url;}else if(p){let E=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<E)){this.log("getFile:requesting new token",null);try{await te.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:E,expiresIn:this.session?.idToken?.payload?.exp-E,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(O){throw this.log("getFile:new token error",O),new l("User login is required.",{code:"INVALID_REQUEST"})}}let P=this.bearerToken||this.session?.idToken?.jwtToken;if(!P||!this.user?.user_id)throw new l("User login is required.",{code:"INVALID_REQUEST"});t+=`${t.includes("?")?"&":"?"}t=${encodeURIComponent(P)}`;let U=h[6]==="**"?"**":parseInt(h[6]),N=this.user?.access_group??-1;if(this.user.user_id!==h[3]&&(U==="**"||N<U)){let O=h[5];if(this.__private_access_key[O]&&typeof this.__private_access_key[O]=="string")t+=`&p=${encodeURIComponent(this.__private_access_key[O])}`;else if(this.owner!==this.host)try{let B=await this.requestPrivateRecordAccessKey({record_id:O,reference_id:e?._ref});t+=`&p=${encodeURIComponent(B)}`;}catch{}}}if((L.call(this)?Qn(t):null)&&e?.dataType!=="endpoint"&&e?.dataType!=="info"){let E=await I.bind(this)(t,null,{method:"get",contentType:null,responseType:"blob",fetchOptions:{progress:e?.progress}},{ignoreService:true}),P=await vo.bind(this)(t,E);if(e?.dataType==="blob")return P;if(e?.dataType==="text")return await sa(P);if(e?.dataType==="base64")return await new Promise((O,B)=>{let x=new FileReader;x.onloadend=()=>O(x.result),x.onerror=()=>B(x.error),x.readAsDataURL(P);});let U=URL.createObjectURL(P),N=document.createElement("a");return N.href=U,document.body.appendChild(N),N.setAttribute("download",m),N.click(),document.body.removeChild(N),setTimeout(()=>URL.revokeObjectURL(U),6e4),null}if(e?.dataType==="endpoint")return e._update&&(e._update.url=t),t;if(e?.dataType==="download"){let E=document.createElement("a");return E.href=t,document.body.appendChild(E),E.setAttribute("download",m),E.target="_blank",E.click(),document.body.removeChild(E),null}return new Promise(async(E,P)=>{try{let U=await I.bind(this)(t,null,{method:"get",contentType:null,responseType:e?.dataType==="text"?"text":"blob",fetchOptions:{progress:e?.progress}},{ignoreService:!0});if(e?.dataType==="base64"){let N=new FileReader;N.onloadend=()=>E(N.result),N.readAsDataURL(U);}else E(U);}catch(U){if(e?.browserCache&&!e?.refresh)try{E(await Xe.bind(this)(r,Object.assign({},e,{refresh:!0})));return}catch(N){P(N);return}P(U);}})}function Dr(t,e){return `${t||this.service}/${e||this.owner}`}function oi(t,e){let r=this.__my_unique_ids[t];return r?r[e]:void 0}function aa(t,e,r){this.__my_unique_ids[t]||(this.__my_unique_ids[t]={}),this.__my_unique_ids[t][e]=r;}function pf(t,e){this.__my_unique_ids[t]&&delete this.__my_unique_ids[t][e];}function ca(t,e){if(!t||typeof t!="object"||t.access_group!==void 0&&t.access_group!==null)return t;let r=typeof this._defaultAccessGroup=="function"?this._defaultAccessGroup():null;if(r==="ask")throw new l(`"table.access_group" is required: this project's "default_access_group" is set to "ask", so every table query and record must name its access group explicitly.`,{code:"INVALID_PARAMETER"});return r!=null?(t.access_group=r,t):(e?.fallbackPublic&&(t.access_group=0),t)}function ua(t,e){return !e||e.table===void 0?t:Object.assign({},t,{table:e.table})}async function $t(t){if(await this.__connection,!this.__user&&this.connection?.opt?.require_login===true)throw new l(`This project requires users to sign in before reading its database, so "${t}" is not available to a signed-out visitor.`,{code:"REQUIRE_LOGIN"})}async function la(t,e=false){t=j(t,{ignoreEmpty:true}).data||{};let r=Dr.bind(this)(t?.service,t?.owner),n="",i=ra(t);if(i){if(t=i,n=t.record_id||t.unique_id,typeof n=="string"){typeof this.__private_access_key?.[n]=="string"&&(t.private_key=this.__private_access_key?.[n]||void 0);let s=oi.bind(this)(r,n);s&&(e?pf.bind(this)(r,n):t.record_id=s);}}else {let s=await X.bind(this)(),o=t?.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"&&(t.private_key=this.__private_access_key?.[n]||void 0),t.reference=n):o?.user_id&&(a=o.user_id===this.user?.user_id,t.reference=o.user_id));let c=typeof t?.table=="string";c&&(t.table={name:t.table}),ca.bind(this)(t.table,{fallbackPublic:c}),t.index&&t.index.hasOwnProperty("range")&&t.index.hasOwnProperty("condition")&&delete t.index.range;let u=d=>({table:{name:f=>bt(f,"table.name"),access_group:si.bind(this),subscription:f=>_.UserId(f,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",f=>qt(f,"index.name")],value:f=>{let h={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:_.UserId};if(h.hasOwnProperty(d.index.name)){let p=h[d.index.name];if(typeof p=="function")return p(f);if(p!==typeof f)throw new l(`"index.value" should be type: ${p}.`,{code:"INVALID_PARAMETER"});return f}return typeof f=="string"&&!f?"":typeof f=="string"&&ni(d.index.name)?ii(f,"index.value"):xr(f)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:f=>na(f,d)},tag:f=>{if(f==null)return f;if(typeof f=="string")return Ur(f,"tag");throw new l('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});t=_.Params(t||{},u(t),a||s?[]:["table"],{ignoreEmpty:true});}return {query:t,is_reference_fetch:n}}async function da(t,e){await this.__connection,await $t.call(this,"getRecords");let r=await la.bind(this)(t),n=r.is_reference_fetch,i=await I.bind(this)("get-records",r.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 fa(t){let e="",r=[],n=Dr.bind(this)(t?.service,t?.owner),i=_.Params(t||{},{record_id:o=>{let a=typeof o=="string"?oi.bind(this)(n,o):void 0;return a||Ie(o,"record_id",{allowEmpty:false})},unique_id:["string",null],readonly:"boolean",table:{name:o=>bt(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:si.bind(this)},source:{referencing_limit:o=>{if(o===null)return null;if(typeof o=="number"){if(0>o)throw new l('"reference_limit" should be >= 0',{code:"INVALID_PARAMETER"});if(o>4503599627370546)throw new l('"reference_limit" should be <= 4503599627370546',{code:"INVALID_PARAMETER"});return o}throw new l('"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:u=>qt(u,'"name" in "index_restrictions"'),value:u=>xr(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof o.value!=typeof u)throw new l('Index restriction "range" type should match the type of "value".',{code:"INVALID_PARAMETER"});if(!o.hasOwnProperty("value"))throw new l('Index restriction "value" is required.',{code:"INVALID_PARAMETER"});return u}};Array.isArray(o)||(o=[o]);let c=o.map(u=>_.Params(u,a,["name"]));if(c.length)for(let u of c)u.condition&&u.hasOwnProperty("range")&&delete u.range;return c}},reference:o=>{if(o===null)return {record_id:null};if(o){if(typeof o=="string"){e=o;let a=oi.bind(this)(n,o);return a||o}if(typeof o!="object")throw new l('"reference" should be type: <string | object>.',{code:"INVALID_PARAMETER"});return _.Params(o,{unique_id:"string",record_id:a=>a==null?a:(e=a,typeof this.__private_access_key?.[a]=="string"&&(t.reference_private_key=this.__private_access_key[a]||void 0),Ie(a,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:o=>qt(o,"index.name"),value:o=>xr(o)}],tags:o=>{if(o==null)return o;if(typeof o=="string"&&(o=o.split(",").map(a=>a.trim())),!Array.isArray(o))throw new l('"tag" should be type: <string | string[]>.',{code:"INVALID_PARAMETER"});return o.map(a=>Ur(a,"tag"))},remove_bin:o=>{if(!o)return null;let a=[];if(Array.isArray(o))for(let c of o)if(typeof c=="string")a.push(c.split("?")[0]);else if(c.url&&c.size&&c.filename){let d=c.url.split("/").slice(0,3).join("/")+"/"+c.path;a.push(d);}else throw new l('"remove_bin" should be type: <string[] | BinaryFile[] | null>',{code:"INVALID_PARAMETER"});else throw new l('"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 l('"table.name" is required.',{code:"INVALID_PARAMETER"});let c=typeof a.table=="string";c&&(a.table={name:a.table}),a?.record_id?c&&a.table.access_group===void 0&&(a.table.access_group=0):ca.bind(this)(a.table,{fallbackPublic:c}),o.files&&(r=o.files);}}),s=t.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 l("Public users cannot update existing records.",{code:"INVALID_REQUEST"});if(i.table.access_group!=="public"&&i.table.access_group!==0)throw new l("Public users can only post records to public tables.",{code:"INVALID_REQUEST"});if(o)throw new l("Public users cannot post subscription records.",{code:"INVALID_REQUEST"});if(i.remove_bin)throw new l("Public users cannot remove files from records.",{code:"INVALID_REQUEST"});if(i.unique_id)throw new l("Public users cannot set unique_id for records.",{code:"INVALID_REQUEST"})}return {config:i,progress:s,is_reference_post:e,files:r}}async function ha(t){if(await this.__connection,!Array.isArray(t)||!t.length)throw new l('"params" should be a non-empty array.',{code:"INVALID_PARAMETER"});let e=[],r,n,i=null,s={},a={_is_bulk_:await Promise.all(t.map(async(p,g)=>{if(!p||typeof p!="object"||Array.isArray(p))throw new l(`"params[${g}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let m=fa.bind(this)(p),y=m.config;if(L.call(this)){let w=Object.prototype.hasOwnProperty.call(y,"data"),b=await $n.bind(this)(y.data,ua(p,y),w);b.encrypted&&(y.data=b.send,s[g]=b.plain);}if(m.is_reference_post&&e.push(m.is_reference_post),typeof y.progress=="function"&&i===null&&(i=y.progress),y.service!==void 0){if(r===void 0)r=y.service;else if(r!==y.service)throw new l('All bulk params should share the same "service" value.',{code:"INVALID_PARAMETER"})}if(y.owner!==void 0){if(n===void 0)n=y.owner;else if(n!==y.owner)throw new l('All bulk params should share the same "owner" value.',{code:"INVALID_PARAMETER"})}return delete y.progress,delete y.service,delete y.owner,y})),service:"",owner:""};r!==void 0&&(a.service=r),n!==void 0&&(a.owner=n);let c={auth:!!this.__user,method:"post"},u={};Object.keys(u).length&&Object.assign(c,{fetchOptions:u});let d=await I.bind(this)("post-record",a,c),f=await Promise.all(d.map((p,g)=>Ze.bind(this)(p,"called from postRecord",false,s.hasOwnProperty(g))));for(let p=0;p<f.length;p++)s.hasOwnProperty(p)&&f[p]&&!f[p].error&&(f[p].data=s[p],f[p].encrypted={status:"encrypted"});let h=Dr.bind(this)(r,n);for(let p=0;p<d.length;p++){let g=d[p],m=f[p];if(g&&typeof g=="object"&&g.error&&m&&!m.record_id&&(m.error=g.error),typeof g?.reference_private_key=="string")for(let y of e)this.__private_access_key[y]=g.reference_private_key;m?.unique_id&&aa.bind(this)(h,m.unique_id,m.record_id);}return f}async function ai(t,e,r){if(await this.__connection,!e)throw new l('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=fa.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},c=[],u=j(t);r&&Array.isArray(r)&&r.length&&(c=c.concat(r)),u.files&&Array.isArray(u.files)&&u.files.length&&(c=c.concat(u.files));let d=e?.data!==void 0?e.data:u.data,f=d!==void 0,h=await $n.bind(this)(d,ua(e,i),f),p=null;p=Object.assign({},i),delete p.data,h.omit||(p.data=h.send);let g={};if(typeof s=="function"&&(g.progress=s),Object.keys(g).length&&Object.assign(a,{fetchOptions:g}),h.files==="decrypt"&&e?.record_id){let b=await Xn.bind(this)(e.record_id,"decrypt",s);if(b.length){let E=p.remove_bin;p.remove_bin=Array.isArray(E)?E.concat(b):b;}}if(h.spill&&e?.record_id){let b=new FormData;if(b.append(Ot,new File([h.spill],"payload.bin",{type:"application/octet-stream"})),await Bt.bind(this)(b,{record_id:e.record_id}),h.retireCt){let E=p.remove_bin,P=[h.retireCt];p.remove_bin=Array.isArray(E)?E.concat(P):P;}}let m=await I.bind(this)("post-record",p,a);if(h.encrypted&&m?.rec&&Zs.bind(this)(m.rec,h.dek),h.files==="encrypt"&&m?.rec)try{let b=await Xn.bind(this)(m.rec,"encrypt",s);b.length&&await ai.bind(this)(void 0,{record_id:m.rec,remove_bin:b});}catch(b){console.error("Failed to encrypt existing attachments after making the record private:",b);}if(se()&&c.length){let b=new FormData;for(let U of c)b.append(U.name,U.file,U.file.name);let E={record_id:m.rec,progress:s};i.hasOwnProperty("service")&&(E.service=i.service);let{bin_endpoints:P}=await Bt.bind(this)(b,E);m.bin?m.bin.push(...P):m.bin=P;}o&&typeof m?.reference_private_key=="string"&&(this.__private_access_key[o]=m.reference_private_key);let y=!!m&&m.data&&typeof m.data=="object"&&!Array.isArray(m.data)&&typeof m.data.__data__=="string"&&m.data.__data__.endsWith("/__data__/__json__.json"),w=await Ze.bind(this)(m,"called from postRecord",true,h.encrypted);if(y&&(w.data=u.data),h.encrypted&&(w.data=h.plain,w.encrypted={status:"encrypted",recipients:Object.keys(h.send.k||{})}),w.unique_id){let b=Dr.bind(this)(i?.service,i?.owner);aa.bind(this)(b,w.unique_id,w.record_id),se()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${b}:uniqueids`,JSON.stringify(this.__my_unique_ids[b]||{}));}catch{}},500));}return w}async function pa(t,e){await $t.call(this,"getTables");let r=await I.bind(this)("get-table",_.Params(t||{},{table:i=>bt(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(r?.list))for(let i of r.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=we(i.table));}return r}async function ga(t,e){if(await $t.call(this,"getIndexes"),!t?.table)throw new l('"table" is required.',{code:"INVALID_PARAMETER"});let r=_.Params(t||{},{table:s=>bt(s,"table",{allowEmpty:true}),index:s=>qt(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(t?.order?.by==="index_name"&&typeof s=="string")return Ie(s,"order.value",{allowEmpty:true,maxLength:256,blockKeyDelimiters:true});if(typeof s!="string"&&typeof s!="number"&&typeof s!="boolean")throw new l('"order.value" should be type: <string | number | boolean>.',{code:"INVALID_PARAMETER"});return s},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}},["table"]);if(r.hasOwnProperty("order")){if(!r.order?.by)throw new l('"order.by" is required.',{code:"INVALID_PARAMETER"});if(r.order.hasOwnProperty("condition")&&!r.order.hasOwnProperty("value"))throw new l('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("index")&&r.index.substring(r.index.length-1)!==".")throw new l('"index" should be a parent index name of the compound index when using "order.by"',{code:"INVALID_PARAMETER"})}let n=await I.bind(this)("get-index",r,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:we(o[1]),index:we(o[2]),number_of_records:s.cnt_rec};for(let c in i)Object.prototype.hasOwnProperty.call(s,c)&&(a[i[c]]=s[c]);return a})),n}async function ma(t,e){await $t.call(this,"getTags");let r=await I.bind(this)("get-tag",_.Params(t||{},{table:n=>bt(n,"table",{allowEmpty:true}),tag:n=>Ur(n,"tag",{allowEmpty:true}),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));return Array.isArray(r?.list)&&(r.list=r.list.map(n=>{let i=n.tag.split("/");return {table:we(i[1]),tag:we(i[0]),number_of_records:n.cnt_rec}})),r}async function ya(t,e){await $t.call(this,"getUniqueId");let r=await I.bind(this)("get-uniqueid",_.Params(t||{},{unique_id:"string",condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne"]}),Object.assign({auth:!!this.__user},{fetchOptions:e}));if(Array.isArray(r?.list))for(let n in r.list){let i=r.list[n];r.list[n]={unique_id:i.unq,record_id:i.rec};}return r}async function _a(t,e){await this.__connection;let r=await la.bind(this)(t,true),n=r.is_reference_fetch,i=await I.bind(this)("del-records",r.query,{auth:true,fetchOptions:e});return n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),Array.isArray(i?.list)&&(i.list=await Promise.all(i.list.map(async s=>{if(!s||typeof s!="object")return s;try{return await Ze.bind(this)(s,"called from deleteRecords",!0,!1,!0)}catch{return s}}))),i?.message||i}async function ba(t){if(L.call(this)){let e=typeof t.user_id=="string"?[t.user_id]:t.user_id;Array.isArray(e)&&e.length&&await zn.bind(this)(t.record_id,e);}return Sa.bind(this)({record_id:t.record_id,user_id:t.user_id,execute:"add"})}async function wa(t){let e=await Sa.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"remove"});if(L.call(this)){let r=typeof t.user_id=="string"?[t.user_id]:t.user_id;await go.bind(this)(t.record_id,Array.isArray(r)&&r.length?r:null);}return e}async function Aa(t,e){let r={record_id:t.record_id||void 0,user_id:t.user_id||void 0,execute:"list"};if(!r.record_id&&!r.user_id)throw new l("Either record_id or user_id must be provided.",{code:"INVALID_PARAMETER"});if(r.user_id)if(typeof r.user_id=="string")_.UserId(r.user_id),r.user_id=[r.user_id];else if(Array.isArray(r.user_id))for(let s of r.user_id)_.UserId(s);else throw new l("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 I.bind(this)("grant-private-access",r,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function Ea(t){let e=t.record_id,r=t.reference_id||void 0;if(!e)throw new l("Record ID is required.",{code:"INVALID_PARAMETER"});if(typeof e!="string")throw new l("Record ID should be type: <string | string[]>",{code:"INVALID_PARAMETER"});if(r&&typeof r!="string")throw new l("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(Cr[e])return Cr[e];let n=I.bind(this)("request-private-access-key",{record_id:e,reference_id:r},{auth:true}).then(i=>{let s=typeof i=="string"?i:i?.private_key;if(typeof s!="string")throw new l("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete Cr[e];});return Cr[e]=n,n}function Sa(t){t.execute;let r=_.Params(t,{record_id:"string",user_id:n=>{if(!n)throw new l("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new l("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)_.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return r.user_id||(r.user_id=null),I.bind(this)("grant-private-access",r,{auth:true})}var C={},z={},Ae={},Ue={},Pe={},kr={},Nr={};function va(t,e,r){t[e]||(t[e]=[]),t[e].push(r);}async function Or(t,e,r){let n=[];if(t[e]){for(let i of t[e])if(i){let s=r(i);s instanceof Promise&&(s=await s),n.push(s);}delete t[e];}return n}async function ui(t,e){if(!this?.session?.accessToken?.jwtToken)throw new l("Access token is required.",{code:"INVALID_PARAMETER"});let r=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await C[s].setRemoteDescription(new RTCSessionDescription(i));let a=await C[s].createAnswer();await C[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}C?.[e]?t?(await Or(Nr,e,i=>n.bind(this)(i,e,r)),await n.bind(this)(t,e,r)):await Or(Nr,e,i=>n.bind(this)(i,e,r)):t&&va(Nr,e,t);}async function li(t,e){if(this.log("receiveIceCandidate",t),C?.[e]&&C[e]?.remoteDescription&&C[e]?.remoteDescription?.type){if(!t)return Or(kr,e,r=>C[e].addIceCandidate(r));await Or(kr,e,r=>C[e].addIceCandidate(r)),await C[e].addIceCandidate(t);}else va(kr,e,t);}async function Ee(t){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});_.Params(t,{cid:s=>{if(typeof s!="string")throw new l('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(s&&s.slice(0,4)!=="cid:")throw new l('"cid" should be a valid connection id.',{code:"INVALID_PARAMETER"});return s},close:"boolean"});let e=await this.__socket,{cid:r,close_all:n=false}=t||{};if(!n&&!r)throw new l('"cid" is required.',{code:"INVALID_PARAMETER"});let i=s=>{if(!s)throw new l('"cid" is required.',{code:"INVALID_PARAMETER"});if(delete Nr[s],delete kr[s],z[s]&&Object.values(z[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete z[s],C?.[s]){C[s].connectionState!=="closed"&&(C[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:C[s],timestamp:new Date().toISOString(),state:C[s].connectionState,iceState:C[s].iceConnectionState,signalingState:C[s].signalingState};Pe[s]&&Pe[s](o),this.log("closeRTC",o);}delete Pe[s],delete Ue[s],delete Ae[s],delete C[s];};if(n)for(let s in C)i(s);else i(r);this.log("Cleaning up media stream..."),this.__mediaStream&&(this.__mediaStream.getTracks().forEach(s=>{s.stop();}),this.__mediaStream=null);}async function Ra(t){if(t instanceof MediaStream)return t;if(!t.video&&!t.audio){let e=new MediaStream,r=document.createElement("canvas");r.width=1,r.height=1;let i=r.captureStream().getVideoTracks()[0];return e.addTrack(i),e}return window.navigator.mediaDevices.getUserMedia(t)}async function Ta(t,e){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof e!="function")throw new l("Callback is required.",{code:"INVALID_PARAMETER"});if(!this?.session?.accessToken?.jwtToken)throw new l("Access token is required.",{code:"INVALID_PARAMETER"});t=_.Params(t,{cid:o=>{if(typeof o!="string")throw new l('"cid" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&o.slice(0,4)!=="cid:")throw new l('"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:r,ice:n}=t;if(!(t?.media instanceof MediaStream)&&(t?.media?.video||t?.media?.audio)&&window.location.hostname!=="localhost"&&window.location.protocol!=="https:")throw new l("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 l("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(i.readyState!==1)throw new l("Realtime connection is not ready.",{code:"INVALID_REQUEST"});let s={iceServers:[{urls:n}]};C?.[r]||(C[r]=new RTCPeerConnection(s)),t?.media&&(this.__mediaStream=await Ra(t.media),this.__mediaStream.getTracks().forEach(o=>{C[r].addTrack(o,this.__mediaStream);})),Pe[r]=e,z[r]||(z[r]={});for(let o=0;o<t.channels.length;o++){let a=t.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 c=a.protocol||"default";if(Object.keys(z[r]).includes(c))throw new l(`Data channel with the protocol "${c}" already exists.`,{code:"INVALID_REQUEST"});let u=C[r].createDataChannel(c,a);z[r][c]=u;}for(let o in z[r]){let a=z[r][o];Ua.bind(this)(r,a);}return Pa.bind(this)(r,["onnegotiationneeded"]),await ci.bind(this)(r),{hangup:()=>Ae[r]&&Ae[r](false),connection:new Promise(o=>{Ae[r]=(a=>{if(this.log("receiver picked up the call",r),!a)return Ee.bind(this)({cid:r}),null;C[r].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${r}".`),ci.bind(this)(r),Pe[r]&&Pe[r]({type:"negotiationneeded",target:C[r],timestamp:new Date().toISOString(),signalingState:C[r].signalingState,connectionState:C[r].iceConnectionState,gatheringState:C[r].iceGatheringState});},o({target:C[r],channels:z[r],hangup:()=>Ee.bind(this)({cid:r}),media:this.__mediaStream});}).bind(this);})}}function Ia(t){return async(e,r)=>{e=e||{},e=j(e).data;let n=t.sender_cid,i=await this.__socket;if(!Ue[n])return null;if(typeof r!="function")throw new l("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 l("Media stream is only supported on either localhost or https.",{code:"INVALID_REQUEST"});let{ice:s="stun:stun.skapi.com:3468"}=e;return C?.[n]||(C[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await Ra(e.media),this.__mediaStream.getTracks().forEach(o=>{C[n].addTrack(o,this.__mediaStream);})),delete Ue[n],Pe[n]=r,z[n]||(z[n]={}),C[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;z[n][a.label]=a,Ua.bind(this)(n,a);},Pa.bind(this)(n,["onnegotiationneeded"]),await ui.bind(this)(null,n),await li.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:C[n],channels:z[n],hangup:()=>Ee.bind(this)({cid:n}),media:this.__mediaStream}}}async function ci(t){if(!this?.session?.accessToken?.jwtToken)throw new l("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",t);let e=await this.__socket,r=await C[t].createOffer();await C[t].setLocalDescription(r);let n=C[t].localDescription;this.log("rtcSdpOffer to",n),e.send(JSON.stringify({action:"rtc",uid:t,content:{sdpoffer:n},token:this.session.accessToken.jwtToken}));}async function gf(t,e){if(!this?.session?.accessToken?.jwtToken)throw new l("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendIceCandidate to",e);let r=await this.__socket;if(!t.candidate){this.log("candidate-end","all ice candidates have been sent");return}let n=Pe[e]||(()=>{}),i=t.candidate;this.log("ice gathering state set to",C[e].iceGatheringState),n({type:"icecandidate",target:C[e],timestamp:new Date().toISOString(),candidate:t.candidate.candidate,sdpMid:t.candidate.sdpMid,sdpMLineIndex:t.candidate.sdpMLineIndex,usernameFragment:t.candidate.usernameFragment,protocol:t.candidate.protocol,gatheringState:C[e].iceGatheringState,connectionState:C[e].iceConnectionState}),r.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function Pa(t,e){let r=new Set(e),n=Pe[t]||(o=>{}),i=C[t],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{gf.bind(this)(o,t),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:()=>{ci.bind(this)(t),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")&&Ee.bind(this)({cid:t});}};for(let[o,a]of Object.entries(s))r.has(o)||(i[o]=a);}function Ua(t,e,r){let n=new Set(r),i=Pe[t]||(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),z[t]&&(delete z[t][e.label],Object.keys(z[t]).length===0&&Ee.bind(this)({cid:t}));},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 He,je=null,Kt=true,wt=0;async function mf(){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.getProfile(),!this.session)throw new l("No access.",{code:"INVALID_REQUEST"});let t=await this.record_endpoint;return new WebSocket(t.websocket_private+"?token="+this.session.accessToken.jwtToken)}var di=null;async function xa(){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});Kt=true;let t=this.__socket?await this.__socket:this.__socket;Ee.bind(this)({close_all:true}),He&&fi.bind(this)({group:null}),wt=0,je&&(je.terminate(),je=null);try{t&&t.close();}catch{}return window.removeEventListener("visibilitychange",di),this.__socket=null,null}async function Fr(t,e=50,r){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof t!="function")throw new l("Callback must be a function.",{code:"INVALID_REQUEST"});if(r==="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(Kt&&(di=()=>{!document.hidden&&!Kt&&Fr.bind(this)(t,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;je&&(je.terminate(),je=null),this.__socket=new Promise(async n=>{await yt.bind(this)(),setTimeout(async()=>{let i=await mf.bind(this)();i.onopen=()=>{Kt=false,wt=0,r!=="reconnect"&&window.addEventListener("visibilitychange",di),this.log("realtime onopen","Connected to WebSocket server."),t({type:"success",message:"Connected to WebSocket server."}),He&&i.send(JSON.stringify({action:"joinRoom",rid:He,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 Hs=Object.create;var Fe=Object.defineProperty;var Gr=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]),ge[u.sender_cid]&&delete ge[u.sender_cid],x?.[u.sender_cid]&&ae.bind(this)({cid:u.sender_cid}),u.type="rtc:closed",r(u);return}if(c.candidate&&$r.bind(this)(c.candidate,u.sender_cid),c.sdpoffer&&(Br.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=(()=>{x[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&&x[u.sender_cid])if(x[u.sender_cid].signalingState==="have-local-offer")await x[u.sender_cid].setRemoteDescription(new RTCSessionDescription(c.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else r(u);},i.onclose=()=>{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=M(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 Kr(r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new f("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await Je.bind(this)(),r=M(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 v.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 v.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 Hr(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(Hr(r));return}let _=setInterval(async()=>{try{let w=await v.bind(this)("csr-poll",{id:r,service:t,owner:n},{auth:e});if(w.status==="running"||w.status==="pending"||g)return;g=!0,o&&o(w),clearInterval(_),c(),h(w);}catch(w){if(g)return;g=true,a&&a(w),clearInterval(_),c(),p(w);}},i);u.stop=()=>{g||(g=true,clearInterval(_),c(),h(Hr(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,w=pe[s].add([async()=>{try{let b=await l();return _||(_=!0,p(b)),b}catch(b){throw _||(_=true,g(b)),b}}])[0];ut[r]=w,u.stop=()=>{if(!_){u.aborted=true;try{pe[s]&&pe[s].remove(ut[r]);}catch{}delete ut[r],c(),_=true,p(Hr(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 v.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=()=>v.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"],compact:"boolean",queue_exact:"boolean",queue_exclude:"string"},["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};r?.compact&&(o.compact=true),r?.queue_exact&&(o.queue_exact=true),r?.queue_exclude&&(o.queue_exclude=r.queue_exclude),Object.keys(o).forEach(u=>{o[u]||delete o[u];}),o.queue&&(o.id_prefix=o.id,delete o.id);let a=await v.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,request_text:u?.reqtxt,response_text:u?.rslvtxt,response_complete_marker:u?.rslvmk!=null?!!u.rslvmk:void 0,compact:u?.cmpct?true:void 0};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]),v.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 v.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=M(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 v.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 v.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 v.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=M(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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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=M(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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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 v.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}=M(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 v.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 v.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 v.bind(this)("getspell",r)}async function js(r){await this.__connection,r=m.Params(r,{message:"string",name:"string"},["message","name"]);let e=await v.bind(this)("dopamine",r,{auth:true}),t=e?.previous_message?.message,n=e?.previous_message?.name;if(Y())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"});je=new Worker(URL.createObjectURL(o)),je.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 c={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")t(c);else if(a==="rtc"){if(c.sender!==this.user.user_id){let u=c.message;if(u.hungup){Ae[c.sender_cid]&&(Ae[c.sender_cid](false),delete Ae[c.sender_cid]),Ue[c.sender_cid]&&delete Ue[c.sender_cid],C?.[c.sender_cid]&&Ee.bind(this)({cid:c.sender_cid}),c.type="rtc:closed",t(c);return}if(u.candidate&&li.bind(this)(u.candidate,c.sender_cid),u.sdpoffer&&(ui.bind(this)(u.sdpoffer,c.sender_cid),Ue[c.sender_cid]||(Ue[c.sender_cid]=c.sender_cid,delete c.message,c.connectRTC=Ia.bind(this)(c),c.type="rtc:incoming",c.hangup=(()=>{C[c.sender_cid]?Ee.bind(this)({cid:c.sender_cid}):Ue[c.sender_cid]&&(delete Ue[c.sender_cid],i.send(JSON.stringify({action:"rtc",uid:c.sender_cid,content:{hungup:this.user.user_id},token:this.session.accessToken.jwtToken})));}).bind(this),t(c))),u.pickup&&Ae[c.sender_cid]&&(Ae[c.sender_cid](true),delete Ae[c.sender_cid]),u.sdpanswer&&C[c.sender_cid])if(C[c.sender_cid].signalingState==="have-local-offer")await C[c.sender_cid].setRemoteDescription(new RTCSessionDescription(u.sdpanswer));else throw new l("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else t(c);},i.onclose=()=>{Kt?(this.log("realtime onclose","WebSocket connection closed."),t({type:"close",message:"WebSocket connection closed."})):(this.log("realtime onclose","WebSocket unexpected close."),t({type:"error",message:"Skapi: WebSocket unexpected close."}),wt++,wt<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+wt),t({type:"reconnect",message:"Reconnecting to WebSocket server..."+wt}),Fr.bind(this)(t,3e3,"reconnect")):(this.log("realtime onclose","Max reconnection attempts reached."),t({type:"error",message:"Skapi: Max reconnection attempts reached."})));},i.onerror=()=>{this.log("realtime onerror","WebSocket connection error."),t({type:"error",message:"Skapi: WebSocket connection error."});};},e);});}async function Ca(t,e,r){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let n=this.__socket?await this.__socket:this.__socket;if(!n)throw new l("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});if(!e)throw new l("No recipient.",{code:"INVALID_REQUEST"});await yt.bind(this)(),t=j(t).data;let i="";if(r&&(r=_.Params(r,{config:{always:"boolean"},title:"string",body:"string"},["title","body"]),i=JSON.stringify({title:r.title,body:r.body}),new Blob([i]).size>3072))throw new l("Notification size exceeds 3kb.",{code:"INVALID_PARAMETER"});if(n.readyState===1){try{_.UserId(e),n.send(JSON.stringify({action:"sendMessage",uid:e,content:t,notification:i,notificationConfig:r?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}catch(s){if(this.log("postRealtime:err",{err:s}),He!==e)throw new l(`User has not joined to the recipient group. Run joinRealtime({ group: "${e}" })`,{code:"INVALID_REQUEST"});n.send(JSON.stringify({action:"broadcast",rid:e,content:t,notification:i,notificationConfig:r?.config||{},token:`IdT:${this.service}:${this.owner}:`+(this.bearerToken||this.session?.idToken?.jwtToken||"null")}));}return {type:"success",message:"Message sent."}}throw new l("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function fi(t){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});let e=this.__socket?await this.__socket:this.__socket;if(!e)throw new l("No realtime connection. Execute connectRealtime() before this method.",{code:"INVALID_REQUEST"});await yt.bind(this)(),t=j(t,{nullIfEmpty:true}).data;let{group:r=null}=t;if(!r&&!He)return {type:"success",message:"Left realtime message group."};if(r!==null&&typeof r!="string")throw new l('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:r,token:this.session.accessToken.jwtToken})),He=r,{type:"success",message:r?`Joined realtime message group: "${r}".`:"Left realtime message group."}}async function Da(t,e){t=_.Params(t,{user_id:n=>_.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!He)throw new l('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return He}]});let r=await I.bind(this)("get-ws-group",t,{fetchOptions:e,auth:true,method:"post"});return r.list=r.list.map(n=>({user_id:n.uid.split("#")[1],cid:"cid:"+n.cid})),r}async function ka(t,e){if(await this.__connection,t||(t={searchFor:"group",value:" ",condition:">"}),t=_.Params(t,{searchFor:["group","number_of_users",()=>"group"],value:["string","number",()=>t?.searchFor&&t?.searchFor==="number_of_users"?0:" "],condition:[">",">=","=","<","<=","!=","gt","gte","eq","lt","lte","ne"],range:["string","number"]}),t.condition||(t.value===" "||!t.value?t.condition=">":t.condition="="),t.range&&t.condition&&delete t.condition,t.searchFor==="number_of_users"&&typeof t.value!="number")throw new l('"value" must be a number.',{code:"INVALID_PARAMETER"});if(t.searchFor==="group"&&typeof t.value!="string")throw new l('"value" must be a string.',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("range")&&typeof t.range!=typeof t.value)throw new l(`"range" must be a ${typeof t.value}.`,{code:"INVALID_PARAMETER"});let r=await I.bind(this)("get-ws-group",t,{fetchOptions:e,auth:true,method:"post"});return r.list=r.list.map(n=>({group:n.rid.split("#")[1],number_of_users:n.cnt})),r}var Na=typeof FormData<"u",Oa=typeof HTMLFormElement<"u",Fa=typeof SubmitEvent<"u",xe={},jt={},Ce={};function hi(t){return Object.freeze({id:t,status:"stopped"})}function La(t){return !!t&&typeof t=="object"&&t.status==="stopped"}function Ma({id:t,auth:e,service:r,owner:n,latency:i=1e3,queue:s,onResponse:o,onError:a}){if(typeof i!="number")throw new l('"latency" should be a number.',{code:"INVALID_PARAMETER"});if(i<0)throw new l('"latency" should be a non-negative number.',{code:"INVALID_PARAMETER"});s&&!xe?.[s]&&(xe[s]=new Lt({breakWhenError:false,batchSize:1}));let c={stop:null,aborted:false,queue:s};Ce[t]=c;let u=()=>{Ce[t]===c&&delete Ce[t];},d=()=>new Promise((h,p)=>{let g=false;if(c.aborted){u(),h(hi(t));return}let m=setInterval(async()=>{try{let y=await I.bind(this)("csr-poll",{id:t,service:r,owner:n},{auth:e});if(y.status==="running"||y.status==="pending"||g)return;g=!0,o&&o(y),clearInterval(m),u(),h(y);}catch(y){if(g)return;g=true,a&&a(y),clearInterval(m),u(),p(y);}},i);c.stop=()=>{g||(g=true,clearInterval(m),u(),h(hi(t)));};}),f=()=>{let h=Ce[t];h&&(h.stop?h.stop():(h.aborted=true,delete Ce[t]));};if(s){let h=new Promise((p,g)=>{let m=false,y=xe[s].add([async()=>{try{let w=await d();return m||(m=!0,p(w)),w}catch(w){throw m||(m=true,g(w)),w}}])[0];jt[t]=y,c.stop=()=>{if(!m){c.aborted=true;try{xe[s]&&xe[s].remove(jt[t]);}catch{}delete jt[t],u(),m=true,p(hi(t));}};});return Object.assign(h,{stop:f})}else return Object.assign(d(),{stop:f})}function Va(t){let e=0,r=[];if(t?.id){if(t.url&&t.method){let n=t.service||this.service;r.push(`[${t.method.toUpperCase()}]${t.url.toLowerCase()}#${n}:${t.id}`);}r.push(t.id);}else if(t?.queue)for(let n in Ce)Ce[n]?.queue===t.queue&&r.push(n);else for(let n in Ce)r.push(n);for(let n of r){let i=Ce[n];i&&(i.stop?i.stop():(i.aborted=true,delete Ce[n]),e+=1);}return e}function Ba(t,e){if(!t.queue)throw new l('"queue" is required.',{code:"INVALID_PARAMETER"});let r={service:t.service||this.service,owner:t.owner||this.owner,queue:t.queue+":"};return I.bind(this)("csr-poll",r,{auth:true})}async function qa(t){let e=false;if(typeof t.poll=="number"&&t.poll<0)throw new l('"poll" should be a non-negative number.',{code:"INVALID_PARAMETER"});let r=t?.onResponse,n=t?.onError,i=typeof t.poll=="number"?t.poll:t.poll?1e3:0;delete t.poll,i&&!t.queue&&(t.queue=(this.__user?.user_id||"anonymous")+"-"+Ye());let s=c=>{for(let u in c)if(typeof c[u]=="string"&&c[u].includes("$CLIENT_SECRET")){e=true;break}};if(t=_.Params(t,{url:c=>{if(!c||typeof c!="string")throw new l('"url" should be type: <string>.',{code:"INVALID_PARAMETER"});return _.Url(c),c.includes("$CLIENT_SECRET")&&(e=true),c},clientSecretName:"string",method:c=>{if(c&&typeof c!="string")throw new l('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});let u=c.toLowerCase();if(u!=="get"&&u!=="post"&&u!=="delete"&&u!=="put")throw new l('"method" should be either "GET" or "POST" or "DELETE" or "PUT".',{code:"INVALID_PARAMETER"});return u},headers:c=>{if(c&&typeof c!="object")throw new l('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},data:c=>{if(c&&typeof c!="object")throw new l('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},params:c=>{if(c&&typeof c!="object")throw new l('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},expires:"number",queue:"string"},["clientSecretName","method","url"]),!e)throw new l(`At least one parameter value should include "$CLIENT_SECRET" in ${t.method.toLowerCase()==="post"?'"data"':'"params"'} or "headers".`,{code:"INVALID_PARAMETER"});await this.__connection;let o=!!this.__user,a=()=>I.bind(this)("csr",t,{auth:o,tokenHeaders:{accessToken:!!o}}).then(c=>{if(c.status==="running"||c.status==="pending"){let u=`[${t.method.toUpperCase()}]${t.url.toLowerCase()}`,d=t.service||this.service,f=t.owner||this.owner,h=`${u}#${d}:${c.id}`;Object.assign(c,{poll:p=>Ma.call(this,{id:h,auth:o,service:d,owner:f,latency:p?.latency||1e3,queue:t?.queue,onResponse:r,onError:n})});}return r?r(c):c}).catch(c=>{if(n)return n(c);throw c});if(t?.queue){let c="base:"+t.queue;return xe?.[c]||(xe[c]=new Lt({breakWhenError:false,batchSize:1})),new Promise((u,d)=>{xe[c].add([async()=>{try{let f=await a();if(i>0){let h=f.poll({latency:i});return u(h),h}return u(f),f}catch(f){throw d(f),f}}]);})}else return a()}async function $a(t,e){await this.__connection;let r=t.service||this.service,n=t.owner||this.owner;t=_.Params(t,{url:"string",method:["GET","POST","DELETE","PUT"],queue:"string",status:["pending","running","resolved","failed"],compact:"boolean",queue_exact:"boolean",queue_exclude:"string"},["url","method"]);let i=!!this.__user,s=`[${t.method.toUpperCase()}]${t.url.toLowerCase()}#${r}:`,o={id:s,queue:t?.queue,status:t?.status,service:r,owner:n};t?.compact&&(o.compact=true),t?.queue_exact&&(o.queue_exact=true),t?.queue_exclude&&(o.queue_exclude=t.queue_exclude),Object.keys(o).forEach(c=>{o[c]||delete o[c];}),o.queue&&(o.id_prefix=o.id,delete o.id);let a=await I.bind(this)("csr-poll",o,{auth:i,fetchOptions:e});return a.list=a.list.map(c=>{let u={id:c.id,status_code:c.rslv?.status_code||null,response_body:c.rslv?.body||c.rslv?.truncated||null,error:c?.err,created:c?.stmp,updated:c?.utmp,request_body:c?.reqbdy,expires:c?.expt,status:c.stts,queue_name:c?.qid,request_text:c?.reqtxt,response_text:c?.rslvtxt,response_complete_marker:c?.rslvmk!=null?!!c.rslvmk:void 0,compact:c?.cmpct?true:void 0};for(let d in u)u[d]===void 0&&delete u[d];return (u.status==="running"||u.status==="pending")&&(u.poll=d=>Ma.call(this,{id:s+u.id,auth:i,service:r,owner:n,latency:d?.latency||1e3,queue:c?.qid,onResponse:d?.onResponse,onError:d?.onError})),u}),a}async function Ka(t){await this.__connection,t=_.Params(t,{url:"string",method:["GET","POST","DELETE","PUT"],id:"string",queue:"string"},["url","method","id"]);let e=t?.service||this.service,r=t?.owner||this.owner,n=!!this.__user,i=`[${t.method.toUpperCase()}]${t.url.toLowerCase()}#${e}`,s=t.id,o=`${i}:${s}`,a=t?.queue;return a&&xe?.[a]&&(xe[a].remove(jt[o]),delete jt[o]),I.bind(this)("csr-cancel",{id:o,service:e,owner:r},{auth:n})}async function ja(t){await this.__connection;let e={name:"string",email:r=>(_.Email(r),r),subject:"string",message:"string"};return t=_.Params(t,e,["name","email","subject","message"]),await I.bind(this)("send-inquiry",t),"SUCCESS: Inquiry has been sent."}async function Ha(t,e){if(await this.__connection,Na&&t instanceof FormData||Oa&&t instanceof HTMLFormElement||Fa&&t instanceof SubmitEvent){if(!e)throw new l("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=j(t);t={url:e,data:n.data,sync:true};}let r={url:n=>_.Url(n),data:n=>n,sync:["boolean",()=>true]};if(Array.isArray(t))for(let n of t)n=_.Params(n,r);else t=_.Params(t,r);return I.bind(this)("post-secure",t,{auth:true})}async function Wa(t,e){await this.__connection;let{auth:r=false,method:n="POST",bypassAwaitConnection:i=false,responseType:s,contentType:o,tokenHeaders:a,progress:c}=e||{};if(e=Object.assign({auth:r,method:n,bypassAwaitConnection:i,responseType:s,contentType:o,tokenHeaders:a},{fetchOptions:{progress:c}}),typeof t!="object"&&(o==="application/json"||o===void 0))throw new l('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return I.bind(this)("mock",t,e)}async function Ga(t,e){if(await this.__connection,!e?.url||typeof e.url!="string")throw new l('"url" is required in the second argument.',{code:"INVALID_PARAMETER"});_.Url(e.url);let n=(await this.admin_endpoint)?.forward_request;if(!n)throw new l("forwardRequest is not available on this service region yet.",{code:"NOT_EXISTS"});let i=null,s=null,o=Fa&&t instanceof SubmitEvent?t.target:Oa&&t instanceof HTMLFormElement?t:null;o?i=new FormData(o):Na&&t instanceof FormData?i=t:t!=null&&(i=JSON.stringify(t),s="application/json");let a={public_identifier:this.__public_identifier,service:this.service,owner:this.owner,forward:{url:e.url,method:e.method||"POST",headers:e.headers||{},apiKeyHeader:e.apiKeyHeader,apiKeyScheme:e.apiKeyScheme}},c=JSON.stringify(a).replace(/[\u007f-\uffff]/g,p=>"\\u"+p.charCodeAt(0).toString(16).padStart(4,"0"));if(c.length>4096)throw new l("Destination url and headers are too large for Content-Meta.",{code:"INVALID_PARAMETER"});let u=this.bearerToken||this.session?.idToken?.jwtToken||null;if(!u)throw new l("User login is required.",{code:"INVALID_REQUEST"});let d={"Content-Meta":c,Authorization:u};s&&(d["Content-Type"]=s);let f=await fetch(n,{method:"POST",headers:d,body:i,signal:e.signal});if(e.responseType==="response")return f;if(!f.ok){let p=await f.text();try{p=JSON.parse(p);}catch{}throw new l(p?.message||(typeof p=="string"?p:JSON.stringify(p)),{code:p?.code||"ERROR"})}if(e.onStream&&f.body){let p=f.body.getReader(),g=new TextDecoder,m="";for(;;){let{done:y,value:w}=await p.read();if(y)break;let b=g.decode(w,{stream:true});m+=b;try{e.onStream(b);}catch(E){console.error(E);}}return m}let h=await f.text();if(e.responseType==="text")return h;try{return JSON.parse(h)}catch{return h}}async function Ja(t,e){await this.__connection,t=_.Params(t||{},{access_group:n=>{if(n==="authorized"&&(n=1),n==="public"&&(n=0),typeof n!="number")throw new l('"access_group" should be type number.',{code:"INVALID_PARAMETER"});if(n<0)throw new l('"access_group" should be zero or a positive number.',{code:"INVALID_PARAMETER"});if(n>this.__user.access_group)throw new l("User has no access.",{code:"INVALID_REQUEST"});return n}});let r=await I.bind(this)("get-feed",t,{auth:true,fetchOptions:e});for(let n in r.list)r.list[n]=await Ze.bind(this)(r.list[n]);return r}function Ht(t){if(t===this.__user.user_id)throw new l(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return _.UserId(t,'"user_id"')}async function Ya(t,e){if(t=j(t,{ignoreEmpty:true}).data,t=_.Params(t,{subscriber:n=>_.UserId(n,'User ID in "subscriber"'),subscription:Ht.bind(this),blocked:"boolean"}),!t.subscriber&&!t.subscription)throw new l('At least either "subscriber" or "subscription" should have a value.',{code:"INVALID_PARAMETER"});let r=await I.bind(this)("get-subscription",t,Object.assign({auth:true},{fetchOptions:e}));return r.list=r.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})),r}async function za(t){await this.__connection,t=_.Params(t,{user_id:Ht.bind(this),get_feed:["boolean",()=>false],get_notified:["boolean",()=>false],get_email:n=>{if(n&&!this.__user.email||!this.__user.email_verified)throw new l("User has no verified email address.",{code:"INVALID_REQUEST"});return !!n}},["user_id"]);let e=await I.bind(this)("subscription",{subscribe:t.user_id,option:{get_feed:t.get_feed,get_notified:t.get_notified,get_email:t.get_email||false}},{auth:true}),r={};if(e.sub){let n=e.sub.split("#");r.subscriber=n[2],r.subscription=n[0];}else r.subscriber=e.subscriber,r.subscription=e.subscription;return r.timestamp=e?.timestamp||e.stmp,r.blocked=e?.blocked||e.grp.substring(0,1)==="N",Object.assign(r,e.opt),r}async function Qa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Ht.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function Xa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Ht.bind(this)},["user_id"]);return await I.bind(this)("subscription",{block:e},{auth:true})}async function Za(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Ht.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unblock:e},{auth:true})}async function ec(t,e){await this.__connection;let r=await X.bind(this)();t=_.Params(t,{user_id:o=>{if(o!==this.__user.user_id&&!r)throw new l("No access.",{code:"INVALID_REQUEST"});return o},group:o=>{if(o==="public"&&(o=0),o==="authorized"&&(o=1),typeof o!="number")throw new l('"group" should be type number | "public" | "authorized".',{code:"INVALID_PARAMETER"});return o}});let n=await I.bind(this)("get-newsletter-subscription",t,{auth:true,fetchOptions:e||null}),i=n?.list||n,s=[];Array.isArray(i)||(i=[]);for(let o of i){let a=o.subt.split("#"),c=true;a[0].charAt(0)==="@"&&(c=false,a[0]=a[0].substring(1));let u=parseInt(a[0]);s.push({timestamp:o.stmp,group:u,subscribed_email:a[1],active:c});}return n?.list?(n.list=s,n):s}async function tc(t){await this.__connection;let e=_.Params(t||{},{email:r=>Array.isArray(r)&&r.length>0?r.length===1?_.Email(r[0]):r.map(n=>_.Email(n)):_.Email(r),group:["number","public","authorized","admin",r=>{if(typeof r!="string"||r.length>20||!/^[a-zA-Z0-9]+$/.test(r))throw new l('"group" should be an alphanumeric string without spaces and less than 20 characters.',{code:"INVALID_PARAMETER"});return r}],redirect:r=>_.Url(r)},this.__user?["group"]:["email","group"]);return I.bind(this)(`subscribe-${this.__user?"":"public-"}newsletter`,e,{auth:!!this.__user})}async function rc(t){await this.__connection,t=_.Params(t,{group:["number","public","authorized","admin"]},["group"]);let e=Object.assign({action:"unsubscribe"},t);return I.bind(this)("subscribe-newsletter",e,{auth:true})}async function nc(t,e){let r=await X.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};t||(e=Object.assign({ascending:false},e||{})),t=j(t).data,t=t||{searchFor:"timestamp",value:Date.now(),condition:"<",group:"public"},t=_.Params(t,{searchFor:["message_id","timestamp","subject","complaint","read","bounced"],value:c=>{if(typeof c!==n[t.searchFor])throw new l(`"value" type does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof c=="string"&&!c)throw new l('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return c},range:c=>{if(!t.hasOwnProperty("value")||typeof c!=typeof t.value)throw new l('"range" should match type of "value".',{code:"INVALID_PARAMETER"});return c},condition:[">",">=","=","<","<=","gt","gte","eq","lt","lte",()=>"="],group:c=>{if(c==="public")return 0;if(!this.session)throw new l("User should be logged in.",{code:"INVALID_REQUEST"});if(c==="authorized")return 1;if(typeof c=="number"){if(!r&&c>parseInt(this.user?.access_group||this.session?.idToken?.payload?.access_group))throw new l("User has no access.",{code:"INVALID_REQUEST"});return c}throw new l('"group" should be type: number | "public" | "authorized".',{code:"INVALID_PARAMETER"})}},["searchFor","value","group"]);let i=t.group===0?"get-public-newsletters":"get-newsletters",s=await I.bind(this)(i,t,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(c=>{let u={};for(let d in o)u[d]=c[o[d]]||a[d];return u.bounced=String(u.bounced),u}),s}async function ic(t){let e=_.Params(t,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,block:e.user_id}:e={block:e.user_id},!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("block-account",e,{auth:true})}async function sc(t){let e=_.Params(t,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,unblock:e.user_id}:e={unblock:e.user_id},!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("block-account",e,{auth:true})}async function oc(t){let e=_.Params(t,{user_id:n=>_.UserId(n,'"user_id"')},["user_id"]);if(e?.service&&e?.owner?e={service:e?.service,owner:e?.owner,delete:e.user_id}:e={delete:e.user_id},!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("remove-account",e,{auth:true})}async function ac(t,e){let r={email:s=>_.Email(s),password:s=>_.Password(s),name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>_.Birthdate(s),phone_number:s=>_.PhoneNumber(s),picture:s=>{if(s)return _.Url(s)},profile:s=>{if(s)return _.Url(s)},website:s=>{if(s)return _.Url(s)},nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],openid_id:"string",access_group:s=>{try{typeof s=="string"&&(s=s==="admin"?99:parseInt(s));}catch{throw new l('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new l('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=_.Params(t,r,["email"]);if(e=_.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=_.Url(s);else throw new l('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new l('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new l('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new l('"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 l('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:_.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("admin-signup",n,{auth:true})}async function cc(t){let e={email:s=>_.Email(s),password:s=>_.Password(s),openid_id:"string",name:"string",username:"string",gender:"string",address:s=>{if(!s)return "";if(typeof s=="string")return s;if(typeof s=="object")return JSON.stringify(s)},birthdate:s=>_.Birthdate(s),phone_number:s=>_.PhoneNumber(s),picture:s=>s?_.Url(s):"",profile:s=>s?_.Url(s):"",website:s=>s?_.Url(s):"",nickname:"string",misc:"string",email_public:["boolean",()=>false],gender_public:["boolean",()=>false],address_public:["boolean",()=>false],birthdate_public:["boolean",()=>false],phone_number_public:["boolean",()=>false],access_group:s=>{try{typeof s=="string"&&(s=parseInt(s));}catch{throw new l('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new l('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},r=["email","password"],n=_.Params(t,e,r);if(!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("admin-signup",n,{auth:true})}async function uc(t){if(t=_.Params(t,{user_id:r=>_.UserId(r,'"user_id"'),access_group:r=>{try{typeof r=="string"&&(r=parseInt(r));}catch{throw new l('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof r=="number"&&r>0&&r<100)return r;throw new l('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("grant-access",t,{auth:true})}async function lc(t,e){if(t=_.Params(t,{email:"string"}),!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}let n=await I.bind(this)("invitation-list",Object.assign({mode:"search"},t),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>vt(i.user)),n}async function dc(t){if(t=_.Params(t,{email:r=>_.Email(r)},["email"]),!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("invitation-list",Object.assign({mode:"cancel"},t),{auth:true})}async function fc(t){if(t=_.Params(t,{email:r=>_.Email(r)},["email"]),!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}return await I.bind(this)("invitation-list",Object.assign({mode:"resend"},t),{auth:true})}async function hc(t){let e=_.Params(t,{user_id:o=>_.UserId(o,'"user_id"'),email:o=>_.Email(o),address:o=>{if(!o)return "";if(typeof o=="string")return o;if(typeof o=="object")return JSON.stringify(o)},name:"string",gender:"string",birthdate:o=>o?_.Birthdate(o):"",phone_number:o=>o?_.PhoneNumber(o):"",email_public:"boolean",phone_number_public:"boolean",address_public:"boolean",gender_public:"boolean",birthdate_public:"boolean",misc:"string",picture:o=>o?_.Url(o):"",profile:o=>o?_.Url(o):"",nickname:"string",website:o=>o?_.Url(o):""},["user_id"]),r=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 l("At least one attribute to update is required.",{code:"INVALID_PARAMETER"});if(!await X.bind(this)()){if(!this.__user)throw new l("User needs to login.",{code:"INVALID_REQUEST"});if(this.__user.access_group<90)throw new l("Invalid access.",{code:"INVALID_REQUEST"})}e.email&&(e.preferred_username=(r||this.service)+"-"+Q.hash(e.email));let s={attributes:e};return r&&n&&(s.service=r,s.owner=n),await I.bind(this)("admin-edit-profile",s,{auth:true})}async function pc(t){if(typeof window>"u"||window._runningInNodeJS)throw new l("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!t.endpoint)throw new l("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!t.keys||!t.keys.p256dh||!t.keys.auth)throw new l("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await I.bind(this)("store-subscription",{endpoint:t.endpoint,keys:t.keys},{auth:true}),"SUCCESS: Subscribed to receive notifications."}async function gc(t){if(typeof window>"u"||window._runningInNodeJS)throw new l("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(await this.__connection,!t.endpoint)throw new l("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!t.keys||!t.keys.p256dh||!t.keys.auth)throw new l("Missing parameter: keys.p256dh or keys.auth",{code:"INVALID_PARAMETER"});return await I.bind(this)("delete-subscription",{endpoint:t.endpoint,keys:t.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function mc(){if(typeof window>"u"||window._runningInNodeJS)throw new l("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});return await this.__connection,{VAPIDPublicKey:await I.bind(this)("get-vapid-public-key",null,{auth:true})}}async function yc(t,e){if(typeof window>"u"||window._runningInNodeJS)throw new l("Push Notifications are not supported in Node.js environment.",{code:"NOT_SUPPORTED"});await this.__connection;let{title:r,body:n}=j(t||{},{nullIfEmpty:true}).data;if(!r)throw new l("Missing parameter: message title",{code:"INVALID_PARAMETER"});if(!n)throw new l("Missing parameter: message body",{code:"INVALID_PARAMETER"});let i={title:r,body:n};return e?(typeof e=="string"&&(e=[e]),i.user_ids=e):i.user_ids="all_users",await I.bind(this)("push-notification",i,{auth:true}),"SUCCESS: Notification sent."}async function _c(t){await this.__connection,t=_.Params(t,{spell:"string",name:"string",magic:r=>r},["spell","name"]);await I.bind(this)("castspell",t);return `The spell "${t.spell}" has been cast.`}async function bc(t){return await this.__connection,t=_.Params(t||{},{search:["spell","name",()=>"spell"],value:"string"}),await I.bind(this)("getspell",t)}async function wc(t){await this.__connection,t=_.Params(t,{message:"string",name:"string"},["message","name"]);let e=await I.bind(this)("dopamine",t,{auth:true}),r=e?.previous_message?.message,n=e?.previous_message?.name;if(se())r&&n&&window.alert(`${n} said: ${r}`),window.location.href=e.video;else return r&&n?`${n} said: ${r}
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="2.0.0-rc.1";this.project_id="";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:ei,fromBase62:ie,decodeProjectId:Ur,formatServiceId:Cr,extractFormData:M,terminatePendingRequests:Ii,request:(e,t,n)=>v.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.trim().toLowerCase().replace(/^<|>$/g,"").replace(/[\s_\-.]+/g,"");if(s==="serviceid"||s==="projectid")throw this._alert(`Replace "${e}" with your actual Project ID.`),new f("Project ID is required.",{code:"INVALID_PARAMETER"});let o=e.split("-").length;if(o===2||o===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(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;try{this.project_id=Cr(e,t);}catch{this.project_id="";}let c=true,l=false;if(n&&(typeof n.refetchServiceInfo=="boolean"&&(l=n.refetchServiceInfo),typeof n.autoLogin=="boolean"&&(c=n.autoLogin),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new f('"requestBatchSize" must be greater than 0.',{code:"INVALID_PARAMETER"});this.requestBatchSize=n.requestBatchSize;}n?.eventListener&&typeof n.eventListener=="object"&&(n.eventListener?.onLogin&&typeof n.eventListener.onLogin=="function"&&(this.onLogin=n.eventListener.onLogin),n.eventListener?.onUserUpdate&&typeof n.eventListener.onUserUpdate=="function"&&(this.onUserUpdate=n.eventListener.onUserUpdate),n.eventListener?.onBatchProcess&&typeof n.eventListener.onBatchProcess=="function"&&(this.onBatchProcess=n.eventListener.onBatchProcess)),this.target_cdn=i?.target_cdn||this.target_cdn,this.hostDomain=i?.hostDomain||this.hostDomain,this.customApiDomain=i?.customApiDomain||this.customApiDomain,this.__network_logs=!!i?.network_logs;let d=`https://${this.target_cdn}.cloudfront.net`,h=e.substring(0,4);this.admin_endpoint=fetch(`${d}/${h}/admin-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((S,U)=>{let I=new FileReader;I.onloadend=()=>S(I.result),I.onerror=U,I.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(`${d}/${h}/record-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((S,U)=>{let I=new FileReader;I.onloadend=()=>S(I.result),I.onerror=U,I.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 p=Y();if(p&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let g=p?JSON.parse(window.sessionStorage.getItem(`${e}#${t}`)||"null"):null;if(this.log("constructor:restore",g),g?.connection){for(let b in g)this[b]=g[b];g.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${De(16)}`);}this.__authConnection=(async()=>{let b=await this.admin_endpoint,S={UserPoolId:b.userpool_id,ClientId:b.userpool_client};xr()&&(S.Storage=window.localStorage),this.userPool=new Rr(S);try{this.user||await G.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!g?.connection&&!c?Ee.bind(this)():(this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let _=`${this.service}/${this.owner}`,w=p?window.sessionStorage.getItem(`${_}:uniqueids`):null;if(w)try{let b=JSON.parse(w);this.__my_unique_ids=b&&typeof b=="object"&&!Array.isArray(b)?{[_]:b}:{};}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let b=null;await this.record_endpoint,g?.connection||(b=this._updateConnection({refresh:l}));let S=()=>{if(this.__class_properties_has_been_cached)return;let U=()=>{let I={},D=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let F of D)I[F]=this[F];if(p){let F=`${e}#${t}`;try{window.sessionStorage.setItem(F,JSON.stringify(I));}catch{try{let L=Object.assign({},I,{__cached_requests:{},__startKeyHistory:{}});window.sessionStorage.setItem(F,JSON.stringify(L));}catch{try{window.sessionStorage.removeItem(F);}catch{}}}}this.__class_properties_has_been_cached=true;}};return b instanceof Promise?b.then(()=>U()):U()};return p&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),S();}),window.addEventListener("visibilitychange",()=>{S();})),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){Y()&&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||(Y()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {project_id:this.project_id,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 v.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,Y()){let t=`Built with:
218
+ Watch the video here: ${e.video}`}var Ac=["public","private","authorized","admin"];function Ec(t,e){if(typeof t=="number"){if(!Number.isInteger(t)||t<0||t>99)throw new l(`"${e}" value should be an integer within a range of 0 ~ 99.`,{code:"INVALID_PARAMETER"});return t}if(typeof t=="string"){if(t==="ask"||Ac.indexOf(t)!==-1)return t;throw new l(`"${e}" should be one of ${Ac.concat(["ask"]).map(r=>`'${r}'`).join(", ")}, or a number 0 ~ 99.`,{code:"INVALID_PARAMETER"})}throw new l(`"${e}" should be type: <number | string>.`,{code:"INVALID_PARAMETER"})}var v=class{constructor(e,r,n,i){this.__version="2.0.0-rc.10";this.project_id="";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.__default_access_group=null;this.customApiDomain="skapi.dev";this.requestBatchSize=30;this.__disabledAccount=null;this.__cached_requests={};this.__startKeyHistory={};this.__request_signup_confirmation=null;this.__private_access_key={};this.__class_properties_has_been_cached=false;this.__user=null;this._userProfileListeners=[];this._onLoginListeners=[];this._onBatchProcessListeners=[];this.validate={userId(e){try{return _.UserId(e),!0}catch{return false}},url(e){try{return _.Url(e),!0}catch{return false}},phoneNumber(e){try{return _.PhoneNumber(e),!0}catch{return false}},birthdate(e){try{return _.Birthdate(e),!0}catch{return false}},email(e){try{return _.Email(e),!0}catch{return false}},params(e,r,n){return _.Params(e,r,n)}};this.util={MD5:Q,generateRandom:Ye,toBase62:Ss,fromBase62:pe,decodeProjectId:Rn,formatServiceId:Tn,extractFormData:j,terminatePendingRequests:Qo,request:(e,r,n)=>I.bind(this)(e,r,n,{ignoreService:true})};this.__network_logs=false;this.__endpoint_version="v2";this.__public_identifier="";this.bearerToken="";this.registerTicket=Uo.bind(this);this.unregisterTicket=xo.bind(this);if(!e||typeof e!="string")throw this._alert("Service ID is required."),new l("Service ID is required.",{code:"INVALID_PARAMETER"});let s=e.trim().toLowerCase().replace(/^<|>$/g,"").replace(/[\s_\-.]+/g,"");if(s==="serviceid"||s==="projectid")throw this._alert(`Replace "${e}" with your actual Project ID.`),new l("Project ID is required.",{code:"INVALID_PARAMETER"});let o=e.split("-").length;if(o===2||o===7)try{let b=Rn(e);n&&typeof n=="object"&&(i=n),r&&typeof r=="object"&&(n=r),r=b.owner,e=b.service;}catch{throw this._alert("Service ID is invalid."),new l("Service ID is invalid.",{code:"INVALID_PARAMETER"})}if(!r||typeof r!="string")throw this._alert("Owner ID is invalid."),new l("Owner ID is invalid.",{code:"INVALID_PARAMETER"});if(r!==this.host)try{_.UserId(r,'"owner"');}catch{throw this._alert("Owner ID is invalid."),new l("Owner ID is invalid.",{code:"INVALID_PARAMETER"})}this.service=e,this.owner=r;try{this.project_id=Tn(e,r);}catch{this.project_id="";}let u=true,d=false,f=null;if(n&&(typeof n.refetchServiceInfo=="boolean"&&(d=n.refetchServiceInfo),typeof n.autoLogin=="boolean"&&(u=n.autoLogin),n.encryption&&(f=Ws(n.encryption)),n.default_access_group!==void 0&&n.default_access_group!==null&&(this.__default_access_group=Ec(n.default_access_group,"default_access_group")),typeof n.requestBatchSize=="number")){if(n.requestBatchSize<1)throw new l('"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 h=`https://${this.target_cdn}.cloudfront.net`,p=e.substring(0,4);this.admin_endpoint=fetch(`${h}/${p}/admin-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((E,P)=>{let U=new FileReader;U.onloadend=()=>E(U.result),U.onerror=P,U.readAsDataURL(b);})).then(b=>{try{return typeof b=="string"?JSON.parse(atob(b.split(",")[1])):null}catch{throw new l("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}}),this.record_endpoint=fetch(`${h}/${p}/record-${this.__endpoint_version}.json`).then(b=>b.blob()).then(b=>new Promise((E,P)=>{let U=new FileReader;U.onloadend=()=>E(U.result),U.onerror=P,U.readAsDataURL(b);})).then(b=>{try{return typeof b=="string"?JSON.parse(atob(b.split(",")[1])):null}catch{throw new l("Service does not exist. Create your service from skapi.com",{code:"NOT_EXISTS"})}});let g=se();if(g&&!window.sessionStorage)throw this._alert("This browser is not supported."),new Error("This browser is not supported.");let m=g?JSON.parse(window.sessionStorage.getItem(`${e}#${r}`)||"null"):null;if(this.log("constructor:restore",m),m?.connection){for(let b in m)this[b]=m[b];m.__public_identifier||(this.__public_identifier=`${this.service}:${this.owner}:${Ye(16)}`);}Gs.bind(this)(f),this.__authConnection=(async()=>{let b=await this.admin_endpoint,E={UserPoolId:b.userpool_id,ClientId:b.userpool_client};vn()&&(E.Storage=window.localStorage),this.userPool=new wn(E);try{this.user||await te.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!m?.connection&&!u?Le.bind(this)():(f&&ho.bind(this)(),this._runOnLoginListeners(this.user),this._runOnUserUpdateListeners(this.user)));}catch{}})();let y=`${this.service}/${this.owner}`,w=g?window.sessionStorage.getItem(`${y}:uniqueids`):null;if(w)try{let b=JSON.parse(w);this.__my_unique_ids=b&&typeof b=="object"&&!Array.isArray(b)?{[y]:b}:{};}catch{this.__my_unique_ids={};}this.__connection=(async()=>{let b=null;await this.record_endpoint,m?.connection||(b=this._updateConnection({refresh:d}));let E=()=>{if(this.__class_properties_has_been_cached)return;let P=()=>{let U={},N=["__startKeyHistory","__disabledAccount","__cached_requests","__request_signup_confirmation","__public_identifier","connection"];if(this.connection){for(let O of N)U[O]=this[O];if(f&&(U.__cached_requests={},U.__startKeyHistory={}),g){let O=`${e}#${r}`;try{window.sessionStorage.setItem(O,JSON.stringify(U));}catch{try{let x=Object.assign({},U,{__cached_requests:{},__startKeyHistory:{}});window.sessionStorage.setItem(O,JSON.stringify(x));}catch{try{window.sessionStorage.removeItem(O);}catch{}}}}this.__class_properties_has_been_cached=true;}};return b instanceof Promise?b.then(()=>P()):P()};return g&&(window.addEventListener("beforeunload",()=>{this.closeRealtime(),E();}),window.addEventListener("visibilitychange",()=>{E();})),await b,await this.__authConnection,this.connection})(),this.__connection.then(b=>{((b?.group||0)<3||this.__network_logs)&&this.version();}).catch(()=>{});}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 r of this._userProfileListeners)typeof r=="function"&&r(e);}_runOnLoginListeners(e){for(let r of this._onLoginListeners)typeof r=="function"&&r(e);}get onBatchProcess(){return this._onBatchProcessListeners}set onBatchProcess(e){typeof e=="function"&&this._onBatchProcessListeners.push(e);}_alert(e){se()&&typeof window.alert=="function"&&window.alert(e);}_defaultAccessGroup(){if(this.__default_access_group!==null)return this.__default_access_group;let e=this.connection?.opt?.default_access_group;if(e==null)return null;try{return Ec(e,"default_access_group")}catch{return null}}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||(se()&&typeof window.navigator?.userAgent=="string"?window.navigator.userAgent:`skapi-node/${globalThis?.process?.versions?.node||"unknown"}`);return {project_id:this.project_id,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 r=e?.refresh||false;try{this.connection=await I.bind(this)("service",{service:this.service,owner:this.owner,refresh:r},{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,se()){let r=`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{Y()?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 Kr.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 kr.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)}};T([R()],E.prototype,"getFeed"),T([R()],E.prototype,"closeRTC"),T([R()],E.prototype,"connectRTC"),T([R()],E.prototype,"spellcast"),T([R()],E.prototype,"getspell"),T([R()],E.prototype,"dopamine"),T([R()],E.prototype,"getUniqueId"),T([R()],E.prototype,"resendInvitation"),T([R()],E.prototype,"cancelInvitation"),T([R()],E.prototype,"getInvitations"),T([R()],E.prototype,"openIdLogin"),T([R()],E.prototype,"loginWithToken"),T([R()],E.prototype,"clientSecretRequest"),T([R()],E.prototype,"clientSecretRequestHistory"),T([R()],E.prototype,"cancelClientSecretRequest"),T([R()],E.prototype,"consumeTicket"),T([R()],E.prototype,"getConsumedTickets"),T([R()],E.prototype,"getTickets"),T([R()],E.prototype,"getRealtimeUsers"),T([R()],E.prototype,"sendInquiry"),T([R()],E.prototype,"blockAccount"),T([R()],E.prototype,"unblockAccount"),T([R()],E.prototype,"deleteAccount"),T([R()],E.prototype,"inviteUser"),T([R()],E.prototype,"createAccount"),T([R()],E.prototype,"grantAccess"),T([R()],E.prototype,"updateUserAttributes"),T([R()],E.prototype,"getRealtimeGroups"),T([R()],E.prototype,"postRealtime"),T([R()],E.prototype,"joinRealtime"),T([R()],E.prototype,"getProfile"),T([R()],E.prototype,"getFile"),T([R()],E.prototype,"secureRequest"),T([R()],E.prototype,"getFormResponse"),T([R()],E.prototype,"getRecords"),T([R()],E.prototype,"getTables"),T([R()],E.prototype,"getIndexes"),T([R()],E.prototype,"getTags"),T([R()],E.prototype,"deleteRecords"),T([R()],E.prototype,"resendSignupConfirmation"),T([R()],E.prototype,"recoverAccount"),T([R()],E.prototype,"getUsers"),T([R()],E.prototype,"disableAccount"),T([R()],E.prototype,"lastVerifiedEmail"),T([R()],E.prototype,"unsubscribeNewsletter"),T([R()],E.prototype,"subscribeNotification"),T([R()],E.prototype,"unsubscribeNotification"),T([R()],E.prototype,"vapidPublicKey"),T([R()],E.prototype,"pushNotification"),T([R()],E.prototype,"getNewsletters"),T([R()],E.prototype,"getNewsletterSubscription"),T([R()],E.prototype,"requestUsernameChange"),T([R()],E.prototype,"grantPrivateRecordAccess"),T([R()],E.prototype,"removePrivateRecordAccess"),T([R()],E.prototype,"listPrivateRecordAccess"),T([R()],E.prototype,"requestPrivateRecordAccessKey"),T([R()],E.prototype,"deleteFiles"),T([R()],E.prototype,"uploadFiles"),T([R()],E.prototype,"mock"),T([R({preventMultipleCalls:true})],E.prototype,"login"),T([R()],E.prototype,"logout"),T([R({preventMultipleCalls:true})],E.prototype,"signup"),T([R({preventMultipleCalls:true})],E.prototype,"resetPassword"),T([R({preventMultipleCalls:true})],E.prototype,"verifyEmail"),T([R({preventMultipleCalls:true})],E.prototype,"verifyPhoneNumber"),T([R({preventMultipleCalls:true})],E.prototype,"forgotPassword"),T([R({preventMultipleCalls:true})],E.prototype,"changePassword"),T([R({preventMultipleCalls:true})],E.prototype,"updateProfile"),T([R()],E.prototype,"postRecord"),T([R()],E.prototype,"getSubscriptions"),T([R()],E.prototype,"subscribe"),T([R()],E.prototype,"unsubscribe"),T([R()],E.prototype,"blockSubscriber"),T([R()],E.prototype,"unblockSubscriber"),T([R()],E.prototype,"subscribeNewsletter");var Wr={};var Gt=typeof globalThis<"u"?globalThis:void 0;Gt&&(Gt.Skapi=E,Gt.SkapiError=f,Gt.SkapiTypes=Wr);/*! Bundled license information:
233
+ Full Documentation: https://docs.skapi.com/skapi.md`;console.log(r,"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,r){if(this.__network_logs){if(r!==null&&typeof r=="object")try{se()?r=JSON.parse(JSON.stringify(r)):r=JSON.stringify(r,null,2);}catch{r=String(r);}else typeof r=="string"&&r.length>100&&(r=r.substring(0,100)+"...");console.log(`%c${e}:`,"color: blue;",r);}}getFeed(e,r){return Ja.bind(this)(e,r)}closeRTC(e){return Ee.bind(this)(e)}connectRTC(e,r){return Ta.bind(this)(e,r)}connectRealtime(e){return Fr.bind(this)(e)}spellcast(e){return _c.bind(this)(e)}getspell(e){return bc.bind(this)(e)}dopamine(e){return wc.bind(this)(e)}getUniqueId(e,r){return ya.bind(this)(e,r)}resendInvitation(e){return fc.bind(this)(e)}cancelInvitation(e){return dc.bind(this)(e)}getInvitations(e,r){return lc.bind(this)(e,r)}openIdLogin(e){return Do.bind(this)(e)}loginWithToken(e){return ko.bind(this)(e)}clientSecretRequest(e){return qa.bind(this)(e)}clientSecretRequestHistory(e,r){return $a.bind(this)(e,r)}cancelClientSecretRequest(e){return Ka.bind(this)(e)}stopClientSecretPolling(e){return Va.bind(this)(e||{})}isPollStopped(e){return La(e)}clientSecretRequestQueueCount(e){return Ba.bind(this)(e)}consumeTicket(e){return To.bind(this)(e)}getConsumedTickets(e,r){return Po.bind(this)(e,r)}getTickets(e,r){return Io.bind(this)(e,r)}closeRealtime(){return xa.bind(this)()}getRealtimeUsers(e,r){return Da.bind(this)(e,r)}sendInquiry(e){return ja.bind(this)(e)}blockAccount(e){return ic.bind(this)(e)}unblockAccount(e){return sc.bind(this)(e)}deleteAccount(e){return oc.bind(this)(e)}inviteUser(e,r){return ac.bind(this)(e,r)}createAccount(e){return cc.bind(this)(e)}grantAccess(e){return uc.bind(this)(e)}updateUserAttributes(e){return hc.bind(this)(e)}getRealtimeGroups(e,r){return ka.bind(this)(e,r)}postRealtime(e,r,n){return Ca.bind(this)(e,r,n)}joinRealtime(e){return fi.bind(this)(e)}getProfile(e){return Co.bind(this)(e)}getFile(e,r){return Xe.bind(this)(e,r)}secureRequest(e,r){return Ha.bind(this)(e,r)}forwardRequest(e,r){return Ga.bind(this)(e,r)}getFormResponse(){return Zo.bind(this)()}getRecords(e,r){return da.bind(this)(e,r)}getTables(e,r){return pa.bind(this)(e,r)}getIndexes(e,r){return ga.bind(this)(e,r)}getTags(e,r){return ma.bind(this)(e,r)}deleteRecords(e,r){return _a.bind(this)(e,r)}resendSignupConfirmation(){return No.bind(this)()}recoverAccount(e=false){return Oo.bind(this)(e)}getUsers(e,r){return Ho.bind(this)(e,r)}disableAccount(){return Lo.bind(this)()}lastVerifiedEmail(e){return Wo.bind(this)(e)}unsubscribeNewsletter(e){return rc.bind(this)(e)}subscribeNotification(e,r){return pc.bind(this)({endpoint:e,keys:r})}unsubscribeNotification(e,r){return gc.bind(this)({endpoint:e,keys:r})}vapidPublicKey(){return mc.bind(this)()}pushNotification(e,r){return yc.bind(this)(e,r)}getNewsletters(e,r){return nc.bind(this)(e,r)}getNewsletterSubscription(e,r){return ec.bind(this)(e,r)}requestUsernameChange(e){return Go.bind(this)(e)}getEncryptionStatus(){return Js.bind(this)()}isWithheld(e){return Bn.call(this,e)}unlockEncryption(e){return ao.bind(this)(e)}lockEncryption(e){return co.bind(this)(e)}takeRecoveryCode(){return _o.bind(this)()}unlockWithRecoveryCode(e){return bo.bind(this)(e)}regenerateRecoveryCode(){return wo.bind(this)()}pinPeerKey(e){return mo.bind(this)(e)}grantPrivateRecordAccess(e){return ba.bind(this)(e)}removePrivateRecordAccess(e){return wa.bind(this)(e)}listPrivateRecordAccess(e,r){return Aa.bind(this)(e,r)}requestPrivateRecordAccessKey(e){return Ea.bind(this)(e)}deleteFiles(e){return oa.bind(this)(e)}uploadFiles(e,r){return Bt.bind(this)(e,r)}mock(e,r){return Wa.bind(this)(e,r)}login(e){return ei.bind(this)(e)}logout(e){return Ft.bind(this)(e)}signup(e,r){return Fo.bind(this)(e,r)}resetPassword(e){return Mo.bind(this)(e)}verifyEmail(e,r){return qo.bind(this)(e,r)}verifyPhoneNumber(e,r){return Bo.bind(this)(e,r)}forgotPassword(e,r){return $o.bind(this)(e,r)}changePassword(e){return Ko.bind(this)(e)}updateProfile(e){return jo.bind(this)(e)}postRecord(e,r,n){return ai.bind(this)(e,r,n)}getSubscriptions(e,r){return Ya.bind(this)(e,r)}subscribe(e){return za.bind(this)(e)}unsubscribe(e){return Qa.bind(this)(e)}blockSubscriber(e){return Xa.bind(this)(e)}unblockSubscriber(e){return Za.bind(this)(e)}subscribeNewsletter(e){return tc.bind(this)(e)}bulkPostRecords(e){return ha.bind(this)(e)}};R([T()],v.prototype,"getFeed"),R([T()],v.prototype,"closeRTC"),R([T()],v.prototype,"connectRTC"),R([T()],v.prototype,"spellcast"),R([T()],v.prototype,"getspell"),R([T()],v.prototype,"dopamine"),R([T()],v.prototype,"getUniqueId"),R([T()],v.prototype,"resendInvitation"),R([T()],v.prototype,"cancelInvitation"),R([T()],v.prototype,"getInvitations"),R([T()],v.prototype,"openIdLogin"),R([T()],v.prototype,"loginWithToken"),R([T()],v.prototype,"clientSecretRequest"),R([T()],v.prototype,"clientSecretRequestHistory"),R([T()],v.prototype,"cancelClientSecretRequest"),R([T()],v.prototype,"consumeTicket"),R([T()],v.prototype,"getConsumedTickets"),R([T()],v.prototype,"getTickets"),R([T()],v.prototype,"getRealtimeUsers"),R([T()],v.prototype,"sendInquiry"),R([T()],v.prototype,"blockAccount"),R([T()],v.prototype,"unblockAccount"),R([T()],v.prototype,"deleteAccount"),R([T()],v.prototype,"inviteUser"),R([T()],v.prototype,"createAccount"),R([T()],v.prototype,"grantAccess"),R([T()],v.prototype,"updateUserAttributes"),R([T()],v.prototype,"getRealtimeGroups"),R([T()],v.prototype,"postRealtime"),R([T()],v.prototype,"joinRealtime"),R([T()],v.prototype,"getProfile"),R([T()],v.prototype,"getFile"),R([T()],v.prototype,"secureRequest"),R([T()],v.prototype,"forwardRequest"),R([T()],v.prototype,"getFormResponse"),R([T()],v.prototype,"getRecords"),R([T()],v.prototype,"getTables"),R([T()],v.prototype,"getIndexes"),R([T()],v.prototype,"getTags"),R([T()],v.prototype,"deleteRecords"),R([T()],v.prototype,"resendSignupConfirmation"),R([T()],v.prototype,"recoverAccount"),R([T()],v.prototype,"getUsers"),R([T()],v.prototype,"disableAccount"),R([T()],v.prototype,"lastVerifiedEmail"),R([T()],v.prototype,"unsubscribeNewsletter"),R([T()],v.prototype,"subscribeNotification"),R([T()],v.prototype,"unsubscribeNotification"),R([T()],v.prototype,"vapidPublicKey"),R([T()],v.prototype,"pushNotification"),R([T()],v.prototype,"getNewsletters"),R([T()],v.prototype,"getNewsletterSubscription"),R([T()],v.prototype,"requestUsernameChange"),R([T()],v.prototype,"unlockEncryption"),R([T()],v.prototype,"unlockWithRecoveryCode"),R([T()],v.prototype,"grantPrivateRecordAccess"),R([T()],v.prototype,"removePrivateRecordAccess"),R([T()],v.prototype,"listPrivateRecordAccess"),R([T()],v.prototype,"requestPrivateRecordAccessKey"),R([T()],v.prototype,"deleteFiles"),R([T()],v.prototype,"uploadFiles"),R([T()],v.prototype,"mock"),R([T({preventMultipleCalls:true})],v.prototype,"login"),R([T()],v.prototype,"logout"),R([T({preventMultipleCalls:true})],v.prototype,"signup"),R([T({preventMultipleCalls:true})],v.prototype,"resetPassword"),R([T({preventMultipleCalls:true})],v.prototype,"verifyEmail"),R([T({preventMultipleCalls:true})],v.prototype,"verifyPhoneNumber"),R([T({preventMultipleCalls:true})],v.prototype,"forgotPassword"),R([T({preventMultipleCalls:true})],v.prototype,"changePassword"),R([T({preventMultipleCalls:true})],v.prototype,"updateProfile"),R([T()],v.prototype,"postRecord"),R([T()],v.prototype,"getSubscriptions"),R([T()],v.prototype,"subscribe"),R([T()],v.prototype,"unsubscribe"),R([T()],v.prototype,"blockSubscriber"),R([T()],v.prototype,"unblockSubscriber"),R([T()],v.prototype,"subscribeNewsletter");var pi={};var Lr=typeof globalThis<"u"?globalThis:void 0;Lr&&(Lr.Skapi=v,Lr.SkapiError=l,Lr.SkapiTypes=pi);/*! 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,Wr as Types};//# sourceMappingURL=skapi.browser.mjs.map
283
+ */export{v as Skapi,l as SkapiError,pi as Types};//# sourceMappingURL=skapi.browser.mjs.map
284
284
  //# sourceMappingURL=skapi.browser.mjs.map