skapi-js 2.0.0-rc.7 → 2.0.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/skapi.browser.mjs +6 -6
- package/dist/skapi.browser.mjs.map +1 -1
- package/dist/skapi.cjs +6 -6
- package/dist/skapi.cjs.map +1 -1
- package/dist/skapi.d.mts +70 -1
- package/dist/skapi.d.ts +70 -1
- package/dist/skapi.js +6 -6
- package/dist/skapi.js.map +1 -1
- package/dist/skapi.mjs +6 -6
- package/dist/skapi.mjs.map +1 -1
- package/package.json +2 -2
package/dist/skapi.browser.mjs
CHANGED
|
@@ -203,8 +203,8 @@
|
|
|
203
203
|
limitations under the License.
|
|
204
204
|
|
|
205
205
|
*/
|
|
206
|
-
var sc=Object.create;var ze=Object.defineProperty;var ii=Object.getOwnPropertyDescriptor;var oc=Object.getOwnPropertyNames;var ac=Object.getPrototypeOf,cc=Object.prototype.hasOwnProperty;var uc=(t,e,r)=>e in t?ze(t,e,{enumerable:true,configurable:true,writable:true,value:r}):t[e]=r;var yt=(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 Qe=(t,e)=>()=>(t&&(e=t(t=0)),e);var ee=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Bt=(t,e)=>{for(var r in e)ze(t,r,{get:e[r],enumerable:true});},si=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of oc(e))!cc.call(t,i)&&i!==r&&ze(t,i,{get:()=>e[i],enumerable:!(n=ii(e,i))||n.enumerable});return t};var Xe=(t,e,r)=>(r=t!=null?sc(ac(t)):{},si(!t||!t.__esModule?ze(r,"default",{value:t,enumerable:true}):r,t)),oe=t=>si(ze({},"__esModule",{value:true}),t),R=(t,e,r,n)=>{for(var i=ii(e,r),s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(o(e,r,i))||i);return i&&ze(e,r,i),i};var we=(t,e,r)=>uc(t,typeof e!="symbol"?e+"":e,r);var Fe={};Bt(Fe,{default:()=>dc});var lc,dc,Le=Qe(()=>{lc={},dc=lc;});var ci=ee(Kt=>{Kt.byteLength=gc;Kt.toByteArray=mc;Kt.fromByteArray=bc;var Ee=[],ae=[],hc=typeof Uint8Array<"u"?Uint8Array:Array,Nr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Ke=0,oi=Nr.length;Ke<oi;++Ke)Ee[Ke]=Nr[Ke],ae[Nr.charCodeAt(Ke)]=Ke;var Ke,oi;ae[45]=62;ae[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 gc(t){var e=ai(t),r=e[0],n=e[1];return (r+n)*3/4-n}function pc(t,e,r){return (e+r)*3/4-r}function mc(t){var e,r=ai(t),n=r[0],i=r[1],s=new hc(pc(t,n,i)),o=0,a=i>0?n-4:n,c;for(c=0;c<a;c+=4)e=ae[t.charCodeAt(c)]<<18|ae[t.charCodeAt(c+1)]<<12|ae[t.charCodeAt(c+2)]<<6|ae[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=ae[t.charCodeAt(c)]<<2|ae[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=ae[t.charCodeAt(c)]<<10|ae[t.charCodeAt(c+1)]<<4|ae[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function yc(t){return Ee[t>>18&63]+Ee[t>>12&63]+Ee[t>>6&63]+Ee[t&63]}function _c(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(yc(n));return i.join("")}function bc(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(_c(t,o,o+s>a?a:o+s));return n===1?(e=t[r-1],i.push(Ee[e>>2]+Ee[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(Ee[e>>10]+Ee[e>>4&63]+Ee[e<<2&63]+"=")),i.join("")}});var ui=ee(Or=>{Or.read=function(t,e,r,n,i){var s,o,a=i*8-n-1,c=(1<<a)-1,u=c>>1,l=-7,d=r?i-1:0,h=r?-1:1,p=t[e+d];for(d+=h,s=p&(1<<-l)-1,p>>=-l,l+=a;l>0;s=s*256+t[e+d],d+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=n;l>0;o=o*256+t[e+d],d+=h,l-=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)};Or.write=function(t,e,r,n,i,s){var o,a,c,u=s*8-i-1,l=(1<<u)-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,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=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+d>=1?e+=h/c:e+=h*Math.pow(2,1-d),e*c>=2&&(o++,c/=2),o+d>=l?(a=0,o=l):o+d>=1?(a=(e*c-1)*Math.pow(2,i),o=o+d):(a=e*Math.pow(2,d-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 di=ee((Yd,li)=>{var wc={}.toString;li.exports=Array.isArray||function(t){return wc.call(t)=="[object Array]"};});var Yt=ee(et=>{var Fr=ci(),Ze=ui(),gi=di();et.Buffer=w;et.SlowBuffer=Tc;et.INSPECT_MAX_BYTES=50;w.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:Ec();et.kMaxLength=jt();function Ec(){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 jt(){return w.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ce(t,e){if(jt()<e)throw new RangeError("Invalid typed array length");return w.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=w.prototype):(t===null&&(t=new w(e)),t.length=e),t}function w(t,e,r){if(!w.TYPED_ARRAY_SUPPORT&&!(this instanceof w))return new w(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 Mr(this,t)}return pi(this,t,e,r)}w.poolSize=8192;w._augment=function(t){return t.__proto__=w.prototype,t};function pi(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?vc(t,e,r,n):typeof e=="string"?Sc(t,e,r):Rc(t,e)}w.from=function(t,e,r){return pi(null,t,e,r)};w.TYPED_ARRAY_SUPPORT&&(w.prototype.__proto__=Uint8Array.prototype,w.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&w[Symbol.species]===w&&Object.defineProperty(w,Symbol.species,{value:null,configurable:true}));function mi(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 Ac(t,e,r,n){return mi(e),e<=0?Ce(t,e):r!==void 0?typeof n=="string"?Ce(t,e).fill(r,n):Ce(t,e).fill(r):Ce(t,e)}w.alloc=function(t,e,r){return Ac(null,t,e,r)};function Mr(t,e){if(mi(e),t=Ce(t,e<0?0:Vr(e)|0),!w.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}w.allocUnsafe=function(t){return Mr(null,t)};w.allocUnsafeSlow=function(t){return Mr(null,t)};function Sc(t,e,r){if((typeof r!="string"||r==="")&&(r="utf8"),!w.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=yi(e,r)|0;t=Ce(t,n);var i=t.write(e,r);return i!==n&&(t=t.slice(0,i)),t}function Lr(t,e){var r=e.length<0?0:Vr(e.length)|0;t=Ce(t,r);for(var n=0;n<r;n+=1)t[n]=e[n]&255;return t}function vc(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),w.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=w.prototype):t=Lr(t,e),t}function Rc(t,e){if(w.isBuffer(e)){var r=Vr(e.length)|0;return t=Ce(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"||Hc(e.length)?Ce(t,0):Lr(t,e);if(e.type==="Buffer"&&gi(e.data))return Lr(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Vr(t){if(t>=jt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+jt().toString(16)+" bytes");return t|0}function Tc(t){return +t!=t&&(t=0),w.alloc(+t)}w.isBuffer=function(e){return !!(e!=null&&e._isBuffer)};w.compare=function(e,r){if(!w.isBuffer(e)||!w.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};w.isEncoding=function(e){switch(String(e).toLowerCase()){case "hex":case "utf8":case "utf-8":case "ascii":case "latin1":case "binary":case "base64":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return true;default:return false}};w.concat=function(e,r){if(!gi(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return w.alloc(0);var n;if(r===void 0)for(r=0,n=0;n<e.length;++n)r+=e[n].length;var i=w.allocUnsafe(r),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!w.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,s),s+=o.length;}return i};function yi(t,e){if(w.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 Ht(t).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return r*2;case "hex":return r>>>1;case "base64":return vi(t).length;default:if(n)return Ht(t).length;e=(""+e).toLowerCase(),n=true;}}w.byteLength=yi;function Ic(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 Lc(this,e,r);case "utf8":case "utf-8":return wi(this,e,r);case "ascii":return Oc(this,e,r);case "latin1":case "binary":return Fc(this,e,r);case "base64":return kc(this,e,r);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Mc(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=true;}}w.prototype._isBuffer=true;function je(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}w.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<e;r+=2)je(this,r,r+1);return this};w.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<e;r+=4)je(this,r,r+3),je(this,r+1,r+2);return this};w.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<e;r+=8)je(this,r,r+7),je(this,r+1,r+6),je(this,r+2,r+5),je(this,r+3,r+4);return this};w.prototype.toString=function(){var e=this.length|0;return e===0?"":arguments.length===0?wi(this,0,e):Ic.apply(this,arguments)};w.prototype.equals=function(e){if(!w.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?true:w.compare(this,e)===0};w.prototype.inspect=function(){var e="",r=et.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"};w.prototype.compare=function(e,r,n,i,s){if(!w.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),l=e.slice(r,n),d=0;d<c;++d)if(u[d]!==l[d]){o=u[d],a=l[d];break}return o<a?-1:a<o?1:0};function _i(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=w.from(e,n)),w.isBuffer(e))return e.length===0?-1:fi(t,e,r,n,i);if(typeof e=="number")return e=e&255,w.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):fi(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function fi(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 l=-1;for(u=r;u<o;u++)if(c(t,u)===c(e,l===-1?0:u-l)){if(l===-1&&(l=u),u-l+1===a)return l*s}else l!==-1&&(u-=u-l),l=-1;}else for(r+a>o&&(r=o-a),u=r;u>=0;u--){for(var d=true,h=0;h<a;h++)if(c(t,u+h)!==c(e,h)){d=false;break}if(d)return u}return -1}w.prototype.includes=function(e,r,n){return this.indexOf(e,r,n)!==-1};w.prototype.indexOf=function(e,r,n){return _i(this,e,r,n,true)};w.prototype.lastIndexOf=function(e,r,n){return _i(this,e,r,n,false)};function Pc(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 Uc(t,e,r,n){return Jt(Ht(e,t.length-r),t,r,n)}function bi(t,e,r,n){return Jt(Kc(e),t,r,n)}function xc(t,e,r,n){return bi(t,e,r,n)}function Cc(t,e,r,n){return Jt(vi(e),t,r,n)}function Dc(t,e,r,n){return Jt(jc(e,t.length-r),t,r,n)}w.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 Pc(this,e,r,n);case "utf8":case "utf-8":return Uc(this,e,r,n);case "ascii":return bi(this,e,r,n);case "latin1":case "binary":return xc(this,e,r,n);case "base64":return Cc(this,e,r,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Dc(this,e,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=true;}};w.prototype.toJSON=function(){return {type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function kc(t,e,r){return e===0&&r===t.length?Fr.fromByteArray(t):Fr.fromByteArray(t.slice(e,r))}function wi(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,l,d;switch(a){case 1:s<128&&(o=s);break;case 2:c=t[i+1],(c&192)===128&&(d=(s&31)<<6|c&63,d>127&&(o=d));break;case 3:c=t[i+1],u=t[i+2],(c&192)===128&&(u&192)===128&&(d=(s&15)<<12|(c&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:c=t[i+1],u=t[i+2],l=t[i+3],(c&192)===128&&(u&192)===128&&(l&192)===128&&(d=(s&15)<<18|(c&63)<<12|(u&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 Nc(n)}var hi=4096;function Nc(t){var e=t.length;if(e<=hi)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=hi));return r}function Oc(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 Fc(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 Lc(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+=$c(t[s]);return i}function Mc(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}w.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(w.TYPED_ARRAY_SUPPORT)i=this.subarray(e,r),i.__proto__=w.prototype;else {var s=r-e;i=new w(s,void 0);for(var o=0;o<s;++o)i[o]=this[o+e];}return i};function G(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")}w.prototype.readUIntLE=function(e,r,n){e=e|0,r=r|0,n||G(e,r,this.length);for(var i=this[e],s=1,o=0;++o<r&&(s*=256);)i+=this[e+o]*s;return i};w.prototype.readUIntBE=function(e,r,n){e=e|0,r=r|0,n||G(e,r,this.length);for(var i=this[e+--r],s=1;r>0&&(s*=256);)i+=this[e+--r]*s;return i};w.prototype.readUInt8=function(e,r){return r||G(e,1,this.length),this[e]};w.prototype.readUInt16LE=function(e,r){return r||G(e,2,this.length),this[e]|this[e+1]<<8};w.prototype.readUInt16BE=function(e,r){return r||G(e,2,this.length),this[e]<<8|this[e+1]};w.prototype.readUInt32LE=function(e,r){return r||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};w.prototype.readUInt32BE=function(e,r){return r||G(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};w.prototype.readIntLE=function(e,r,n){e=e|0,r=r|0,n||G(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};w.prototype.readIntBE=function(e,r,n){e=e|0,r=r|0,n||G(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};w.prototype.readInt8=function(e,r){return r||G(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};w.prototype.readInt16LE=function(e,r){r||G(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};w.prototype.readInt16BE=function(e,r){r||G(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};w.prototype.readInt32LE=function(e,r){return r||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};w.prototype.readInt32BE=function(e,r){return r||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};w.prototype.readFloatLE=function(e,r){return r||G(e,4,this.length),Ze.read(this,e,true,23,4)};w.prototype.readFloatBE=function(e,r){return r||G(e,4,this.length),Ze.read(this,e,false,23,4)};w.prototype.readDoubleLE=function(e,r){return r||G(e,8,this.length),Ze.read(this,e,true,52,8)};w.prototype.readDoubleBE=function(e,r){return r||G(e,8,this.length),Ze.read(this,e,false,52,8)};function te(t,e,r,n,i,s){if(!w.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")}w.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;te(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};w.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;te(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};w.prototype.writeUInt8=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,1,255,0),w.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=e&255,r+1};function Wt(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;}w.prototype.writeUInt16LE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,2,65535,0),w.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):Wt(this,e,r,true),r+2};w.prototype.writeUInt16BE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,2,65535,0),w.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):Wt(this,e,r,false),r+2};function Gt(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;}w.prototype.writeUInt32LE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,4,4294967295,0),w.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255):Gt(this,e,r,true),r+4};w.prototype.writeUInt32BE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,4,4294967295,0),w.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Gt(this,e,r,false),r+4};w.prototype.writeIntLE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);te(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};w.prototype.writeIntBE=function(e,r,n,i){if(e=+e,r=r|0,!i){var s=Math.pow(2,8*n-1);te(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};w.prototype.writeInt8=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,1,127,-128),w.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=e&255,r+1};w.prototype.writeInt16LE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,2,32767,-32768),w.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8):Wt(this,e,r,true),r+2};w.prototype.writeInt16BE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,2,32767,-32768),w.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=e&255):Wt(this,e,r,false),r+2};w.prototype.writeInt32LE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,4,2147483647,-2147483648),w.TYPED_ARRAY_SUPPORT?(this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):Gt(this,e,r,true),r+4};w.prototype.writeInt32BE=function(e,r,n){return e=+e,r=r|0,n||te(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),w.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255):Gt(this,e,r,false),r+4};function Ei(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 Ai(t,e,r,n,i){return i||Ei(t,e,r,4),Ze.write(t,e,r,n,23,4),r+4}w.prototype.writeFloatLE=function(e,r,n){return Ai(this,e,r,true,n)};w.prototype.writeFloatBE=function(e,r,n){return Ai(this,e,r,false,n)};function Si(t,e,r,n,i){return i||Ei(t,e,r,8),Ze.write(t,e,r,n,52,8),r+8}w.prototype.writeDoubleLE=function(e,r,n){return Si(this,e,r,true,n)};w.prototype.writeDoubleBE=function(e,r,n){return Si(this,e,r,false,n)};w.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||!w.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};w.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"&&!w.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=w.isBuffer(e)?e:Ht(new w(e,i).toString()),c=a.length;for(o=0;o<n-r;++o)this[o+r]=a[o%c];}return this};var Vc=/[^+\/0-9A-Za-z-_]/g;function qc(t){if(t=Bc(t).replace(Vc,""),t.length<2)return "";for(;t.length%4!==0;)t=t+"=";return t}function Bc(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function $c(t){return t<16?"0"+t.toString(16):t.toString(16)}function Ht(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 Kc(t){for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r)&255);return e}function jc(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 vi(t){return Fr.toByteArray(qc(t))}function Jt(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 Hc(t){return t!==t}});var Hr={};Bt(Hr,{__assign:()=>Kr,__asyncDelegator:()=>su,__asyncGenerator:()=>iu,__asyncValues:()=>ou,__await:()=>_t,__awaiter:()=>Xc,__classPrivateFieldGet:()=>lu,__classPrivateFieldSet:()=>du,__createBinding:()=>eu,__decorate:()=>Yc,__exportStar:()=>tu,__extends:()=>Gc,__generator:()=>Zc,__importDefault:()=>uu,__importStar:()=>cu,__makeTemplateObject:()=>au,__metadata:()=>Qc,__param:()=>zc,__read:()=>Ri,__rest:()=>Jc,__spread:()=>ru,__spreadArrays:()=>nu,__values:()=>jr});function Gc(t,e){$r(t,e);function r(){this.constructor=t;}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r);}function Jc(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 Yc(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 zc(t,e){return function(r,n){e(r,n,t);}}function Qc(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function Xc(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(l){try{u(n.next(l));}catch(d){o(d);}}function c(l){try{u(n.throw(l));}catch(d){o(d);}}function u(l){l.done?s(l.value):i(l.value).then(a,c);}u((n=n.apply(t,e||[])).next());})}function Zc(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(l){return c([u,l])}}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(l){u=[6,l],i=0;}finally{n=s=0;}if(u[0]&5)throw u[1];return {value:u[0]?u[1]:void 0,done:true}}}function eu(t,e,r,n){n===void 0&&(n=r),t[n]=e[r];}function tu(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&(e[r]=t[r]);}function jr(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 Ri(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 ru(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(Ri(arguments[e]));return t}function nu(){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 _t(t){return this instanceof _t?(this.v=t,this):new _t(t)}function iu(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){d(s[0][3],g);}}function c(h){h.value instanceof _t?Promise.resolve(h.value.v).then(u,l):d(s[0][2],h);}function u(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 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:_t(t[i](o)),done:i==="return"}:s?s(o):o}:s;}}function ou(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 jr=="function"?jr(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 au(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function cu(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 uu(t){return t&&t.__esModule?t:{default:t}}function lu(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function du(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 $r,Kr,Wr=Qe(()=>{$r=function(t,e){return $r=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]);},$r(t,e)};Kr=function(){return Kr=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},Kr.apply(this,arguments)};});var Gr=ee(ue=>{Object.defineProperty(ue,"__esModule",{value:true});ue.MAX_HASHABLE_LENGTH=ue.INIT=ue.KEY=ue.DIGEST_LENGTH=ue.BLOCK_SIZE=void 0;ue.BLOCK_SIZE=64;ue.DIGEST_LENGTH=32;ue.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]);ue.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];ue.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1;});var Ti=ee(zt=>{Object.defineProperty(zt,"__esModule",{value:true});zt.RawSha256=void 0;var le=Gr(),fu=(function(){function t(){this.state=Int32Array.from(le.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>le.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===le.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%le.BLOCK_SIZE>=le.BLOCK_SIZE-8){for(var i=this.bufferLength;i<le.BLOCK_SIZE;i++)r.setUint8(i,0);this.hashBuffer(),this.bufferLength=0;}for(var i=this.bufferLength;i<le.BLOCK_SIZE-8;i++)r.setUint8(i,0);r.setUint32(le.BLOCK_SIZE-8,Math.floor(e/4294967296),true),r.setUint32(le.BLOCK_SIZE-4,e),this.hashBuffer(),this.finished=true;}for(var s=new Uint8Array(le.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],l=n[6],d=n[7],h=0;h<le.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&l)|0)+(d+(le.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=u,u=c,c=a+y|0,a=o,o=s,s=i,i=y+b|0;}n[0]+=i,n[1]+=s,n[2]+=o,n[3]+=a,n[4]+=c,n[5]+=u,n[6]+=l,n[7]+=d;},t})();zt.RawSha256=fu;});var Ii,Pi,Ui=Qe(()=>{Ii=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)},Pi=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 xi(t){return new TextEncoder().encode(t)}function Ci(t){return new TextDecoder("utf-8").decode(t)}var Di=Qe(()=>{});var ki={};Bt(ki,{fromUtf8:()=>hu,toUtf8:()=>gu});var hu,gu,Ni=Qe(()=>{Ui();Di();hu=t=>typeof TextEncoder=="function"?xi(t):Ii(t),gu=t=>typeof TextDecoder=="function"?Ci(t):Pi(t);});var Oi=ee(Qt=>{Object.defineProperty(Qt,"__esModule",{value:true});Qt.convertToBuffer=void 0;var pu=(Ni(),oe(ki)),mu=typeof Buffer<"u"&&Buffer.from?function(t){return Buffer.from(t,"utf8")}:pu.fromUtf8;function yu(t){return t instanceof Uint8Array?t:typeof t=="string"?mu(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(t)}Qt.convertToBuffer=yu;});var Fi=ee(Xt=>{Object.defineProperty(Xt,"__esModule",{value:true});Xt.isEmptyData=void 0;function _u(t){return typeof t=="string"?t.length===0:t.byteLength===0}Xt.isEmptyData=_u;});var Li=ee(Zt=>{Object.defineProperty(Zt,"__esModule",{value:true});Zt.numToUint8=void 0;function bu(t){return new Uint8Array([(t&4278190080)>>24,(t&16711680)>>16,(t&65280)>>8,t&255])}Zt.numToUint8=bu;});var Mi=ee(er=>{Object.defineProperty(er,"__esModule",{value:true});er.uint32ArrayFrom=void 0;function wu(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)}er.uint32ArrayFrom=wu;});var Vi=ee(Ae=>{Object.defineProperty(Ae,"__esModule",{value:true});Ae.uint32ArrayFrom=Ae.numToUint8=Ae.isEmptyData=Ae.convertToBuffer=void 0;var Eu=Oi();Object.defineProperty(Ae,"convertToBuffer",{enumerable:true,get:function(){return Eu.convertToBuffer}});var Au=Fi();Object.defineProperty(Ae,"isEmptyData",{enumerable:true,get:function(){return Au.isEmptyData}});var Su=Li();Object.defineProperty(Ae,"numToUint8",{enumerable:true,get:function(){return Su.numToUint8}});var vu=Mi();Object.defineProperty(Ae,"uint32ArrayFrom",{enumerable:true,get:function(){return vu.uint32ArrayFrom}});});var Bi=ee(rr=>{Object.defineProperty(rr,"__esModule",{value:true});rr.Sha256=void 0;var qi=(Wr(),oe(Hr)),tr=Gr(),Jr=Ti(),Yr=Vi(),Ru=(function(){function t(e){if(this.hash=new Jr.RawSha256,e){this.outer=new Jr.RawSha256;var r=Tu(e),n=new Uint8Array(tr.BLOCK_SIZE);n.set(r);for(var i=0;i<tr.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, Yr.isEmptyData)(e)||this.error))try{this.hash.update((0,Yr.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, qi.__awaiter)(this,void 0,void 0,function(){return (0, qi.__generator)(this,function(e){return [2,this.digestSync()]})})},t})();rr.Sha256=Ru;function Tu(t){var e=(0, Yr.convertToBuffer)(t);if(e.byteLength>tr.BLOCK_SIZE){var r=new Jr.RawSha256;r.update(e),e=r.digest();}var n=new Uint8Array(tr.BLOCK_SIZE);return n.set(e),n}});var Qr=ee(zr=>{Object.defineProperty(zr,"__esModule",{value:true});var Iu=(Wr(),oe(Hr));(0, Iu.__exportStar)(Bi(),zr);});var an={};Bt(an,{default:()=>El});function El(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(l){return a[l.toLowerCase()]},has:function(l){return l.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(l,d,h){s.push(d=d.toLowerCase()),o.push([d,h]),a[d]=a[d]?a[d]+","+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 cn=Qe(()=>{});var zi=ee((Kf,Yi)=>{Yi.exports=self.fetch||(self.fetch=(cn(),oe(an)).default||(cn(),oe(an)));});var xe=typeof globalThis<"u"?globalThis:void 0,$t=xe?.window;function fc(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($t)$t.global=$t,$t.global._runningInNodeJS=false;else if(xe&&(xe.global=xe,typeof xe.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=fc(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});});}}xe.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);});}}xe.XMLHttpRequest=e,xe.window={_runningInNodeJS:true,alert:r=>console.error("[Alert]",r),sessionStorage:{getItem:r=>null,setItem:(r,n)=>{},removeItem:r=>{}},localStorage:{getItem:r=>{let n=(Le(),oe(Fe)),i=(Le(),oe(Fe));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=(Le(),oe(Fe)),s=(Le(),oe(Fe));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=(Le(),oe(Fe)),i=(Le(),oe(Fe));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/${xe?.process?.versions?.node||"unknown"}`,mediaDevices:{getUserMedia:async r=>{throw new Error("getUserMedia is not supported in Node.js environment.")}}},addEventListener:()=>{},removeEventListener:()=>{}};}var kr=(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 De=Xe(Yt());var ce;typeof window<"u"&&window.crypto&&(ce=window.crypto);!ce&&typeof window<"u"&&window.msCrypto&&(ce=window.msCrypto);!ce&&typeof globalThis<"u"&&globalThis.crypto&&(ce=globalThis.crypto);if(!ce&&typeof yt=="function")try{ce=(Le(),oe(Fe));}catch{}function qr(){if(ce){if(typeof ce.getRandomValues=="function")try{return ce.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof ce.randomBytes=="function")try{return ce.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")}function Wc(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 Br=(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(qr());return new t(i,n)},e.toString=function(){return Wc(this)},t})();var ir=Xe(Qr());var H=k;function k(t,e){t!=null&&this.fromString(t,e);}function X(){return new k(null)}var Me,Pu=0xdeadbeefcafe,$i=(Pu&16777215)==15715070;function Uu(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 xu(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,l=a*c+u*o;c=o*c+((l&32767)<<15)+r[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r[n++]=c&1073741823;}return i}function Cu(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,l=a*c+u*o;c=o*c+((l&16383)<<14)+r[n]+i,i=(c>>28)+(l>>14)+a*u,r[n++]=c&268435455;}return i}var Ki=typeof navigator<"u";Ki&&$i&&navigator.appName=="Microsoft Internet Explorer"?(k.prototype.am=xu,Me=30):Ki&&$i&&navigator.appName!="Netscape"?(k.prototype.am=Uu,Me=26):(k.prototype.am=Cu,Me=28);k.prototype.DB=Me;k.prototype.DM=(1<<Me)-1;k.prototype.DV=1<<Me;var Xr=52;k.prototype.FV=Math.pow(2,Xr);k.prototype.F1=Xr-Me;k.prototype.F2=2*Me-Xr;var Du="0123456789abcdefghijklmnopqrstuvwxyz",nr=new Array,tt,de;tt=48;for(de=0;de<=9;++de)nr[tt++]=de;tt=97;for(de=10;de<36;++de)nr[tt++]=de;tt=65;for(de=10;de<36;++de)nr[tt++]=de;function ji(t){return Du.charAt(t)}function ku(t,e){var r=nr[t.charCodeAt(e)];return r??-1}function Nu(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s;}function Ou(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 Zr(t){var e=X();return e.fromInt(t),e}function Fu(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=ku(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&&k.ZERO.subTo(this,this);}function Lu(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t;}function Mu(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=ji(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+=ji(n));return i?s:"0"}function Vu(){var t=X();return k.ZERO.subTo(this,t),t}function qu(){return this.s<0?this.negate():this}function Bu(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 en(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 $u(){return this.t<=0?0:this.DB*(this.t-1)+en(this[this.t-1]^this.s&this.DM)}function Ku(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 ju(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 Hu(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 Wu(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 Gu(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 Ju(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&&k.ZERO.subTo(e,e);}function Yu(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 zu(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=X());var s=X(),o=this.s,a=t.s,c=this.DB-en(n[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s[u-1];if(l!=0){var d=l*(1<<this.F1)+(u>1?s[u-2]>>this.F2:0),h=this.FV/d,p=(1<<this.F1)/d,g=1<<this.F2,m=r.t,y=m-u,b=e??X();for(s.dlShiftTo(y,b),r.compareTo(b)>=0&&(r[r.t++]=1,r.subTo(b,r)),k.ONE.dlShiftTo(u,b),b.subTo(s,s);s.t<u;)s[s.t++]=0;for(;--y>=0;){var E=r[--m]==l?this.DM:Math.floor(r[m]*h+(r[m-1]+g)*p);if((r[m]+=s.am(0,E,r,y,0,u))<E)for(s.dlShiftTo(y,b),r.subTo(b,r);r[m]<--E;)r.subTo(b,r);}e!=null&&(r.drShiftTo(u,e),o!=a&&k.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&k.ZERO.subTo(r,r);}}}function Qu(t){var e=X();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(k.ZERO)>0&&t.subTo(e,e),e}function Xu(){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 Zu(t){return this.compareTo(t)==0}function el(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 tl(t){var e=X();return this.addTo(t,e),e}function rl(t){var e=X();return this.subTo(t,e),e}function nl(t){var e=X();return this.multiplyTo(t,e),e}function il(t){var e=X();return this.divRemTo(t,e,null),e}function rt(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=X();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(k.ZERO)>0&&this.m.subTo(e,e),e}function ol(t){var e=X();return t.copyTo(e),this.reduce(e),e}function al(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 cl(t,e){t.squareTo(e),this.reduce(e);}function ul(t,e,r){t.multiplyTo(e,r),this.reduce(r);}rt.prototype.convert=sl;rt.prototype.revert=ol;rt.prototype.reduce=al;rt.prototype.mulTo=ul;rt.prototype.sqrTo=cl;function ll(t,e,r){var n=t.bitLength(),i,s=Zr(1),o=new rt(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,l=(1<<i)-1;if(a[1]=o.convert(this),i>1){var d=X();for(o.sqrTo(a[1],d);c<=l;)a[c]=X(),o.mulTo(d,a[c-2],a[c]),c+=2;}var h=t.t-1,p,g=true,m=X(),y;for(n=en(t[h])-1;h>=0;){for(n>=u?p=t[h]>>n-u&l:(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 b=o.revert(s);return r(null,b),b}k.prototype.copyTo=Nu;k.prototype.fromInt=Ou;k.prototype.fromString=Fu;k.prototype.clamp=Lu;k.prototype.dlShiftTo=Ku;k.prototype.drShiftTo=ju;k.prototype.lShiftTo=Hu;k.prototype.rShiftTo=Wu;k.prototype.subTo=Gu;k.prototype.multiplyTo=Ju;k.prototype.squareTo=Yu;k.prototype.divRemTo=zu;k.prototype.invDigit=Xu;k.prototype.addTo=el;k.prototype.toString=Mu;k.prototype.negate=Vu;k.prototype.abs=qu;k.prototype.compareTo=Bu;k.prototype.bitLength=$u;k.prototype.mod=Qu;k.prototype.equals=Zu;k.prototype.add=tl;k.prototype.subtract=rl;k.prototype.multiply=nl;k.prototype.divide=il;k.prototype.modPow=ll;k.ZERO=Zr(0);k.ONE=Zr(1);function tn(t){return De.Buffer.from(new Br().random(t).toString(),"hex")}var dl=/^[89a-f]/i,fl="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",hl="userAttributes.",Ve=(function(){function t(r){this.N=new H(fl,16),this.g=new H("2",16),this.k=new H(this.hexHash(""+this.padHex(this.N)+this.padHex(this.g)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=De.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=tn(128).toString("hex"),i=new H(n,16);return i},e.generateRandomString=function(){return tn(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=tn(16).toString("hex");this.SaltToHashDevices=this.padHex(new H(u,16)),this.g.modPow(new H(this.hexHash(this.SaltToHashDevices+c),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(H.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 H(this.UHexHash,16);return s},e.hash=function(n){var i=new ir.Sha256;i.update(n);var s=i.digestSync(),o=De.Buffer.from(s).toString("hex");return new Array(64-o.length).join("0")+o},e.hexHash=function(n){return this.hash(De.Buffer.from(n,"hex"))},e.computehkdf=function(n,i){var s=De.Buffer.concat([this.infoBits,De.Buffer.from("","utf8")]),o=new ir.Sha256(i);o.update(n);var a=o.digestSync(),c=new ir.Sha256(a);c.update(s);var u=c.digestSync(),l=u,d=l.slice(0,16);return d},e.getPasswordAuthenticationKey=function(n,i,s,o,a){var c=this;if(s.mod(this.N).equals(H.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,s),this.UValue.equals(H.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+n+":"+i,l=this.hash(u),d=new H(this.hexHash(this.padHex(o)+l),16);this.calculateS(d,s,function(h,p){h&&a(h,null);var g=c.computehkdf(De.Buffer.from(c.padHex(p),"hex"),De.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(l,d){l&&s(l,null),s(null,d.mod(o.N));});});},e.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return hl},e.padHex=function(n){if(!(n instanceof H))throw new Error("Not a BigInteger");var i=n.compareTo(H.ZERO)<0,s=n.abs().toString(16);if(s=s.length%2!==0?"0"+s:s,s=dl.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 H(o,16).add(H.ONE);s=a.toString(16),s.toUpperCase().startsWith("FF8")&&(s=s.substring(2));}return s},t})();var Hi=Xe(Yt());var sr=(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(Hi.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},t})();function gl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,rn(t,e);}function rn(t,e){return rn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},rn(t,e)}var nt=(function(t){function e(r){var n=r===void 0?{}:r,i=n.AccessToken;return t.call(this,i||"")||this}return gl(e,t),e})(sr);function pl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,nn(t,e);}function nn(t,e){return nn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},nn(t,e)}var it=(function(t){function e(r){var n=r===void 0?{}:r,i=n.IdToken;return t.call(this,i||"")||this}return pl(e,t),e})(sr);var st=(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 J=Xe(Yt()),on=Xe(Qr());var Wi="5.0.4";var ml="aws-amplify/"+Wi,sn={userAgent:ml,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},Gi=function(){return sn.userAgent};var ot=(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 yl=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],_l=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],or=(function(){function t(){}var e=t.prototype;return e.getNowString=function(){var n=new Date,i=_l[n.getUTCDay()],s=yl[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 l=n.getUTCFullYear(),d=i+" "+s+" "+o+" "+a+":"+c+":"+u+" UTC "+l;return d},t})();var Se=(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 He={},bl=(function(){function t(){}return t.setItem=function(r,n){return He[r]=n,He[r]},t.getItem=function(r){return Object.prototype.hasOwnProperty.call(He,r)?He[r]:void 0},t.removeItem=function(r){return delete He[r]},t.clear=function(){return He={},He},t})(),ar=(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=bl;}}var e=t.prototype;return e.getStorage=function(){return this.storageWindow},t})();var wl=typeof navigator<"u",Ji=wl?sn.isReactNative?"react-native":navigator.userAgent:"nodejs",ke=(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 ar().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,l){if(u)return i.onFailure(u);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 or,c,u,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(m,y){if(m)return i.onFailure(m);var b=y.ChallengeParameters;s.username=b.USER_ID_FOR_SRP,s.userDataKey=s.keyPrefix+"."+s.username+".userData",c=new H(b.SRP_B,16),u=new H(b.SALT,16),s.getCachedDeviceKeyAndPassword(),o.getPasswordAuthenticationKey(s.username,n.getPassword(),c,u,function(E,v){E&&i.onFailure(E);var x=a.getNowString(),P=J.Buffer.concat([J.Buffer.from(s.pool.getUserPoolName(),"utf8"),J.Buffer.from(s.username,"utf8"),J.Buffer.from(b.SECRET_BLOCK,"base64"),J.Buffer.from(x,"utf8")]),N=new on.Sha256(v);N.update(P);var O=N.digestSync(),M=J.Buffer.from(O).toString("base64"),U={};U.USERNAME=s.username,U.PASSWORD_CLAIM_SECRET_BLOCK=b.SECRET_BLOCK,U.TIMESTAMP=x,U.PASSWORD_CLAIM_SIGNATURE=M,s.deviceKey!=null&&(U.DEVICE_KEY=s.deviceKey);var C=function(Ue,ni){return s.client.request("RespondToAuthChallenge",Ue,function(qt,ic){return qt&&qt.code==="ResourceNotFoundException"&&qt.message.toLowerCase().indexOf("device")!==-1?(U.DEVICE_KEY=null,s.deviceKey=null,s.randomPassword=null,s.deviceGroupKey=null,s.clearCachedDeviceKeyAndPassword(),C(Ue,ni)):ni(qt,ic)})},V={ChallengeName:"PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:U,Session:y.Session,ClientMetadata:p};s.getUserContextData()&&(V.UserContextData=s.getUserContextData()),C(V,function(B,Ue){return B?i.onFailure(B):s.authenticateUserInternal(Ue,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 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(l,d){return l?i.onFailure(l):s.authenticateUserInternal(d,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,l=null,d=[],h=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(c&&(u=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(u,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(m){if(m)return s.onFailure(m);var y={Salt:J.Buffer.from(i.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:J.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:Ji},function(b,E){return b?s.onFailure(b):(o.deviceKey=n.AuthenticationResult.NewDeviceMetadata.DeviceKey,o.cacheDeviceKeyAndPassword(),E.UserConfirmationNecessary===true?s.onSuccess(o.signInUserSession,E.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 Ve(this.pool.getUserPoolName()),u=c.getNewPasswordRequiredChallengeUserAttributePrefix(),l={};i&&Object.keys(i).forEach(function(h){l[u+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,c,s)});},e.getDeviceResponse=function(n,i){var s=this,o=new Ve(this.deviceGroupKey),a=new or,c={};c.USERNAME=this.username,c.DEVICE_KEY=this.deviceKey,o.getLargeAValue(function(u,l){u&&n.onFailure(u),c.SRP_A=l.toString(16);var d={ChallengeName:"DEVICE_SRP_AUTH",ClientId:s.pool.getClientId(),ChallengeResponses:c,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,m=new H(g.SRP_B,16),y=new H(g.SALT,16);o.getPasswordAuthenticationKey(s.deviceKey,s.randomPassword,m,y,function(b,E){if(b)return n.onFailure(b);var v=a.getNowString(),x=J.Buffer.concat([J.Buffer.from(s.deviceGroupKey,"utf8"),J.Buffer.from(s.deviceKey,"utf8"),J.Buffer.from(g.SECRET_BLOCK,"base64"),J.Buffer.from(v,"utf8")]),P=new on.Sha256(E);P.update(x);var N=P.digestSync(),O=J.Buffer.from(N).toString("base64"),M={};M.USERNAME=s.username,M.PASSWORD_CLAIM_SECRET_BLOCK=g.SECRET_BLOCK,M.TIMESTAMP=v,M.PASSWORD_CLAIM_SIGNATURE=O,M.DEVICE_KEY=s.deviceKey;var U={ChallengeName:"DEVICE_PASSWORD_VERIFIER",ClientId:s.pool.getClientId(),ChallengeResponses:M,Session:p.Session};s.getUserContextData()&&(U.UserContextData=s.getUserContextData()),s.client.request("RespondToAuthChallenge",U,function(C,V){return C?n.onFailure(C):(s.signInUserSession=s.getCognitoUserSession(V.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 Ve(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(l,d){return l?i.onFailure(l):o.authenticateUserInternal(d,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 l={ChallengeName:u,ChallengeResponses:c,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(m){if(m)return i.onFailure(m);var y={Salt:J.Buffer.from(g.getSaltDevices(),"hex").toString("base64"),PasswordVerifier:J.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:Ji},function(b,E){return b?i.onFailure(b):(a.deviceKey=h.AuthenticationResult.NewDeviceMetadata.DeviceKey,a.cacheDeviceKeyAndPassword(),E.UserConfirmationNecessary===true?i.onSuccess(a.signInUserSession,E.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 Se(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 l=new it({IdToken:this.storage.getItem(o)}),d=new nt({AccessToken:this.storage.getItem(a)}),h=new st({RefreshToken:this.storage.getItem(c)}),p=parseInt(this.storage.getItem(u),0)||0,g={IdToken:l,AccessToken:d,RefreshToken:h,ClockDrift:p},m=new ot(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(),l=u+".LastAuthUser";if(this.storage.getItem(l)){this.username=this.storage.getItem(l);var d=u+"."+this.username+".deviceKey";this.deviceKey=this.storage.getItem(d),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 it(n),s=new nt(n),o=new st(n),a={IdToken:i,AccessToken:s,RefreshToken:o};return new ot(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 l={ChallengeName:"MFA_SETUP",ClientId:o.pool.getClientId(),ChallengeResponses:u,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))});});},t})();Xe(zi());function at(){}at.prototype.userAgent=Gi();var Qi=function(e){var r=at.category?" "+at.category:"",n=at.framework?" framework/"+at.framework:"",i=""+at.prototype.userAgent+r+n;return i};function Al(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,bt(t,e);}function un(t){var e=typeof Map=="function"?new Map:void 0;return un=function(n){if(n===null||!vl(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 Sl(n,arguments,ln(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),bt(i,n)},un(t)}function Sl(t,e,r){if(Xi())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var i=new(t.bind.apply(t,n));return r&&bt(i,r.prototype),i}function Xi(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (Xi=function(){return !!t})()}function vl(t){try{return Function.toString.call(t).indexOf("[native code]")!==-1}catch{return typeof t=="function"}}function bt(t,e){return bt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},bt(t,e)}function ln(t){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ln(t)}var Rl=(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 Al(e,t),e})(un(Error)),Zi=(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 Rl(c.message,c.code,c.name,c.statusCode)):o(u);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;Ul(function(c){return new Promise(function(u,l){o.request(n,c,function(d,h){d?l(d):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":Qi(),"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(l){return c=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(c.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(c&&c.headers&&c.headers.get("x-amzn-errortype"))try{var d=c.headers.get("x-amzn-errortype").split(":")[0],h=new Error(c.status?c.status.toString():null);return h.code=d,h.name=d,h.statusCode=c.status,s(h)}catch{return s(l)}else l instanceof Error&&l.message==="Network error"&&(l.code="NetworkError");return s(l)});},t})();var cr={debug:function(){}};var Tl=function(e){var r="nonRetryable";return e&&e[r]};function es(t,e,r,n){if(n===void 0&&(n=1),typeof t!="function")throw Error("functionToRetry must be a function");return cr.debug(t.name+" attempt #"+n+" with args: "+JSON.stringify(e)),t.apply(void 0,e).catch(function(i){if(cr.debug("error on "+t.name,i),Tl(i))throw cr.debug(t.name+" non retryable error",i),i;var s=r(n,e,i);if(cr.debug(t.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return es(t,e,r,n+1)});throw i})}function Il(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 Ul(t,e,r){return es(t,e,Il(r))}var xl=55,dn=(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>xl||!/^[\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 Zi(l,a,c),this.advancedSecurityDataCollectionFlag=u!==false,this.storage=r.Storage||new ar().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,l={ClientId:this.clientId,Username:n,Password:i,UserAttributes:s,ValidationData:o,ClientMetadata:c};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:u,Storage:u.storage},g={user:new ke(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 ke(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 ur(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 Cl={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 fn(t,e){function r(i,s,o){if(!(typeof document>"u")){o=ur({},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 l=decodeURIComponent(c[0]);if(l in o||(o[l]=t.read(u,l)),i===l)break}catch{}}return i?o[i]:o}}return Object.create({set:r,get:n,remove:function(i,s){r(i,"",ur({},s,{expires:-1}));},withAttributes:function(i){return fn(this.converter,ur({},this.attributes,i))},withConverter:function(i){return fn(ur({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}fn(Cl,{path:"/"});var f=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 Ne="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",hn=BigInt(Ne.length),kl=2*1024*1024,Nl=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],ts={auth_time:"log",sub:"user_id"},Ol=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],os=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],rs=typeof TextEncoder<"u"?new TextEncoder:null;function Fl(){if(typeof globalThis<"u")return globalThis.Buffer}function W(t){if(rs)return rs.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 gn(t){if(t instanceof Uint8Array)return t;if(typeof t=="string")return W(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=Fl();if(e)return new Uint8Array(e.from(t));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 r=A.sb(e),n=1732584193,i=-271733879,s=-1732584194,o=271733878,a,c,u,l;for(let d=0;d<r.length;d+=16)a=n,c=i,u=s,l=o,n=A.ff(n,i,s,o,r[d],7,-680876936),o=A.ff(o,n,i,s,r[d+1],12,-389564586),s=A.ff(s,o,n,i,r[d+2],17,606105819),i=A.ff(i,s,o,n,r[d+3],22,-1044525330),n=A.ff(n,i,s,o,r[d+4],7,-176418897),o=A.ff(o,n,i,s,r[d+5],12,1200080426),s=A.ff(s,o,n,i,r[d+6],17,-1473231341),i=A.ff(i,s,o,n,r[d+7],22,-45705983),n=A.ff(n,i,s,o,r[d+8],7,1770035416),o=A.ff(o,n,i,s,r[d+9],12,-1958414417),s=A.ff(s,o,n,i,r[d+10],17,-42063),i=A.ff(i,s,o,n,r[d+11],22,-1990404162),n=A.ff(n,i,s,o,r[d+12],7,1804603682),o=A.ff(o,n,i,s,r[d+13],12,-40341101),s=A.ff(s,o,n,i,r[d+14],17,-1502002290),i=A.ff(i,s,o,n,r[d+15],22,1236535329),n=A.gg(n,i,s,o,r[d+1],5,-165796510),o=A.gg(o,n,i,s,r[d+6],9,-1069501632),s=A.gg(s,o,n,i,r[d+11],14,643717713),i=A.gg(i,s,o,n,r[d],20,-373897302),n=A.gg(n,i,s,o,r[d+5],5,-701558691),o=A.gg(o,n,i,s,r[d+10],9,38016083),s=A.gg(s,o,n,i,r[d+15],14,-660478335),i=A.gg(i,s,o,n,r[d+4],20,-405537848),n=A.gg(n,i,s,o,r[d+9],5,568446438),o=A.gg(o,n,i,s,r[d+14],9,-1019803690),s=A.gg(s,o,n,i,r[d+3],14,-187363961),i=A.gg(i,s,o,n,r[d+8],20,1163531501),n=A.gg(n,i,s,o,r[d+13],5,-1444681467),o=A.gg(o,n,i,s,r[d+2],9,-51403784),s=A.gg(s,o,n,i,r[d+7],14,1735328473),i=A.gg(i,s,o,n,r[d+12],20,-1926607734),n=A.hh(n,i,s,o,r[d+5],4,-378558),o=A.hh(o,n,i,s,r[d+8],11,-2022574463),s=A.hh(s,o,n,i,r[d+11],16,1839030562),i=A.hh(i,s,o,n,r[d+14],23,-35309556),n=A.hh(n,i,s,o,r[d+1],4,-1530992060),o=A.hh(o,n,i,s,r[d+4],11,1272893353),s=A.hh(s,o,n,i,r[d+7],16,-155497632),i=A.hh(i,s,o,n,r[d+10],23,-1094730640),n=A.hh(n,i,s,o,r[d+13],4,681279174),o=A.hh(o,n,i,s,r[d],11,-358537222),s=A.hh(s,o,n,i,r[d+3],16,-722521979),i=A.hh(i,s,o,n,r[d+6],23,76029189),n=A.hh(n,i,s,o,r[d+9],4,-640364487),o=A.hh(o,n,i,s,r[d+12],11,-421815835),s=A.hh(s,o,n,i,r[d+15],16,530742520),i=A.hh(i,s,o,n,r[d+2],23,-995338651),n=A.ii(n,i,s,o,r[d],6,-198630844),o=A.ii(o,n,i,s,r[d+7],10,1126891415),s=A.ii(s,o,n,i,r[d+14],15,-1416354905),i=A.ii(i,s,o,n,r[d+5],21,-57434055),n=A.ii(n,i,s,o,r[d+12],6,1700485571),o=A.ii(o,n,i,s,r[d+3],10,-1894986606),s=A.ii(s,o,n,i,r[d+10],15,-1051523),i=A.ii(i,s,o,n,r[d+1],21,-2054922799),n=A.ii(n,i,s,o,r[d+8],6,1873313359),o=A.ii(o,n,i,s,r[d+15],10,-30611744),s=A.ii(s,o,n,i,r[d+6],15,-1560198380),i=A.ii(i,s,o,n,r[d+13],21,1309151649),n=A.ii(n,i,s,o,r[d+4],6,-145523070),o=A.ii(o,n,i,s,r[d+11],10,-1120210379),s=A.ii(s,o,n,i,r[d+2],15,718787259),i=A.ii(i,s,o,n,r[d+9],21,-343485551),n=A.ad(n,a),i=A.ad(i,c),s=A.ad(s,u),o=A.ad(o,l);return A.rh(n)+A.rh(i)+A.rh(s)+A.rh(o)}static rh(e){let r="";for(let n=0;n<=3;n++)r+=A.alphabet.charAt(e>>n*8+4&15)+A.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 A.ad(A.rl(A.ad(A.ad(r,e),A.ad(i,o)),s),n)}static ff(e,r,n,i,s,o,a){return A.cm(r&n|~r&i,e,r,s,o,a)}static gg(e,r,n,i,s,o,a){return A.cm(r&i|n&~i,e,r,s,o,a)}static hh(e,r,n,i,s,o,a){return A.cm(r^n^i,e,r,s,o,a)}static ii(e,r,n,i,s,o,a){return A.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}};A.alphabet="0123456789abcdef";var z=A;function as(t){if(t===0)return Ne[0];let e="";for(;t>0;)e=Ne[t%62]+e,t=Math.floor(t/62);return e}function fe(t){return t.split("").reverse().reduce((e,r,n)=>e+Ne.indexOf(r)*62**n,0)}function We(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 pn(){return typeof window>"u"||!!window?._runningInNodeJS}function re(){return !pn()&&typeof document<"u"&&typeof document.createElement=="function"}function lr(t){let e;try{e=JSON.stringify(t);}catch{throw new f("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>kl)throw new f("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function ns(t){return t===""||t==="on"||t==="true"}function is(t){return t==="false"}function ss(t,e,r){e.name&&r(t,e.name,e.value);}var dr=re(),Ll=typeof SubmitEvent<"u",Ml=typeof HTMLFormElement<"u";function K(t,e,r){let n={},i=[];function s(c,u,l){if(e?.ignoreEmpty&&l==="")return;if(e?.nullIfEmpty&&l===""&&(l=null),typeof r=="function"){let p=r(u,l);p!==void 0&&(l=p);}let d=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 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(c,u,l){if(l instanceof File)c.push({name:u,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&&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===""||ns(c.value)?s(n,c.name,true):is(c.value)?s(n,c.name,false):c.value&&s(n,c.name,c.value):c.type==="checkbox"&&(ns(c.value)?s(n,c.name,false):is(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(dr&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement))return a(t),lr(n),{data:n,files:i};if(dr&&t instanceof FormData){for(let c of t.entries()){let u=c[0],l=c[1];if(l instanceof File||l instanceof FileList)o(i,u,l);else if(l instanceof Blob){let d=l;if(d.type==="application/json")try{let h=JSON.parse(d.text());s(n,u,h);}catch{s(n,u,d);}}else s(n,u,l);}return lr(n),{data:n,files:i}}if(dr&&Ll&&t instanceof SubmitEvent&&(t=t.target),dr&&Ml&&t instanceof HTMLFormElement){let c=t.querySelectorAll("input"),u=t.querySelectorAll("select"),l=t.querySelectorAll("textarea");for(let d=0;d<u.length;d++)ss(n,u[d],s);for(let d=0;d<l.length;d++)ss(n,l[d],s);for(let d=0;d<c.length;d++)a(c[d]);return lr(n),{data:n,files:i}}return lr(t),{data:t,files:i}}function wt(t){let e={};for(let r in t){let n=t[r];if(!Nl.includes(r))if(ts[r])e[ts[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 mn(t){if(t=Wl(t),t.split("-").length===7){let e=t.split("-"),r,n;try{r=os[fe(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 yn(t,e){let r=os.indexOf(t.slice(0,4)),n=Ol[r],s=`${t.slice(4,-4)}-${n}${t.slice(-4)}-${e}`;return Hl(s)}function Vl(t){let e=0n;for(let r of t){let n=Ne.indexOf(r);if(n<0)throw new Error(`INVALID_PARAMETER: Invalid base62 character: ${r}`);e=e*hn+BigInt(n);}return e}function ql(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%hn);r=Ne[i]+r,n/=hn;}return r.length<e&&(r="0".repeat(e-r.length)+r),r}function Bl(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 $l(t){let e=0n;for(let r of t)e=(e<<8n)+BigInt(r);return e}function Kl(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 jl(t){let e=Array.from(gn(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 Hl(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>=Ne.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=Ne[i.length]+a+c,l=Kl(s),d=ql($l(l));return `${u}-${d}`}function Wl(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=Ne.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),l=u.slice(s),d=u.slice(0,s),h=l+c;if(!/^[0-9A-Za-z]+$/.test(h)||!/^[0-9A-Za-z]+$/.test(d))throw new Error("INVALID_PARAMETER: Corrupt compressed token: "+e);let p=Vl(i),g=Bl(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=jl(m);return `${h}-${d}-${y}`}function Et(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 _n(...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 At(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 l(g){try{return JSON.stringify(g)}catch{return String(g)}}function d(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]=At(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 b=t[y];if(c(m)){if(!h(b,m))throw new Error(`Type <${u(b)}> is invalid in "${n}". Expected a list of Type <${m}>.`)}else if(typeof m=="function")t[y]=m(b);else if(b!==m)throw new Error(`Value ${l(b)} is invalid in "${n}". Expected a list of ${l(m)}.`)}g=true;}else if(Array.isArray(t)&&e.every(y=>!a(y)&&y!=="array")){for(let y=0;y<t.length;y++){let b=false,E="";for(let v of e)try{t[y]=At(t[y],v,r,n),b=!0;break}catch(x){typeof v=="function"&&(E=x?.message||String(x));}if(!b&&E)throw new Error(E);if(!b){let v=e.map(d).join(", ");throw new Error(`${l(t[y])} is invalid in "${n}". allowed types or values are: ${v}.`)}}g=true;}else {let y="";for(let b of e)try{t=At(t,b,r,n),g=!0;break}catch(E){typeof b=="function"&&(y=E?.message||String(E));}if(!g&&y)throw new Error(y)}if(!g){let m=e.map(d).join(", ");throw new Error(`${l(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(`${l(t)} is invalid in "${n}". allowed type or value is: ${d(e)}.`)}function Gl(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 f(`${e} should be type: string.`,{code:"INVALID_PARAMETER"});if(!t.match(r))throw new f(`${e} is invalid.`,{code:"INVALID_PARAMETER"})}else throw new f(`${e} is empty.`,{code:"INVALID_PARAMETER"});return t}function Jl(t){if(t&&(typeof t!="string"||t.charAt(0)!=="+"||isNaN(Number(t.substring(1)))))throw new f('"phone_number" is invalid. The format should be "+00123456789". Type: string.',{code:"INVALID_PARAMETER"});return t||""}function Yl(t){if(t){if(typeof t!="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(t.length!==10||t.split("-").length!==3||!e.test(t))throw new f('"birthdate" is invalid. The format should be "yyyy-mm-dd". Type: string.',{code:"INVALID_PARAMETER"})}}return t||""}function zl(t){if(t){if(typeof t!="string")throw new f('"password" should be type: string.',{code:"INVALID_PARAMETER"});if(t.length<6)throw new f('"password" should be at least 6 characters.',{code:"INVALID_PARAMETER"});if(t.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 t}function Ql(t,e="email"){if(t){if(typeof t!="string")throw new f(`"${e}"should be type: string.`,{code:"INVALID_PARAMETER"});if(t.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(t)&&(t=t.trim(),t.split("@")[1].split(".").length>=2))return t.toLowerCase()}else throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});throw new f(`"${t}" is an invalid email.`,{code:"INVALID_PARAMETER"})}function Xl(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 f(`"${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 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(t)?t.map(i=>n(i)):n(t)}function Zl(t,e,r=[],n){let i=K(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 At(o,e,r)}catch(a){throw new f(a.message,{code:"INVALID_PARAMETER"})}}var _={UserId:Gl,PhoneNumber:Jl,Birthdate:Yl,Password:zl,Email:Ql,Url:Xl,Params:Zl};var ne="skapi.enc.v1",ls=6e5,St=12,fr=null,ct=null;function ds(){return new f("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 fs(){if(ct)return ct;let t=typeof globalThis<"u"?globalThis:void 0;if(t?.crypto?.subtle&&typeof t.crypto.getRandomValues=="function")return ct=t.crypto,ct;try{let e=typeof yt=="function"?yt("crypto"):null;if(e?.webcrypto?.subtle)return ct=e.webcrypto,ct}catch{}throw ds()}function he(){if(fr)return fr;let t=fs();if(!t.subtle)throw ds();return fr=t.subtle,fr}function wn(){try{return he(),!0}catch{return false}}function ie(t){let e=fs(),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 L(t){let e=gn(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 f("No base64 encoder available in this environment.",{code:"NOT_SUPPORTED"});return r.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function $(t){if(typeof t!="string")throw new f("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 f("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 f("No base64 decoder available in this environment.",{code:"NOT_SUPPORTED"})}async function hr(t){let e=await he().digest("SHA-256",t);return new Uint8Array(e)}async function Tt(t,e,r,n){let i=he(),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 lt(t,e,r,n){let i=he(),s=W(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 Tt(a,e,n,32);q(a),q(s);let u=await pe(c);return q(c),u}async function pe(t){return he().importKey("raw",t,{name:"AES-GCM"},false,["encrypt","decrypt"])}async function hs(){let t=ie(32),e=await pe(t);return {bytes:t,key:e}}async function ge(t,e,r){let n=ie(St),i=await he().encrypt({name:"AES-GCM",iv:n,additionalData:r,tagLength:128},t,e);return {iv:n,ct:new Uint8Array(i)}}async function me(t,e,r,n){let i=await he().decrypt({name:"AES-GCM",iv:e,additionalData:n,tagLength:128},t,r);return new Uint8Array(i)}var gr={name:"ECDH",namedCurve:"P-256"};async function gs(){let t=he(),e=await t.generateKey(gr,true,["deriveBits"]),r=new Uint8Array(await t.exportKey("raw",e.publicKey)),n=new Uint8Array(await t.exportKey("pkcs8",e.privateKey)),i=await En(n);return {pubRaw:r,pkcs8:n,priv:i}}async function En(t){return he().importKey("pkcs8",t,gr,false,["deriveBits"])}async function ps(t){if(t.length!==65||t[0]!==4)throw new f("Malformed public key: expected a 65 byte uncompressed P-256 point.",{code:"INVALID_PARAMETER"});return he().importKey("raw",t,gr,false,[])}async function An(t){return L(await hr(t))}async function ms(t,e,r,n){let i=he(),s=await ps(t),o=await i.generateKey(gr,true,["deriveBits"]),a=new Uint8Array(await i.deriveBits({name:"ECDH",public:s},o.privateKey,256)),c=await Tt(a,new Uint8Array(32),r,32);q(a);let u=await pe(c);q(c);let{iv:l,ct:d}=await ge(u,e,n);return {epk:new Uint8Array(await i.exportKey("raw",o.publicKey)),iv:l,ct:d}}async function ys(t,e,r,n,i,s){let o=he(),a=await ps(e),c=new Uint8Array(await o.deriveBits({name:"ECDH",public:a},t,256)),u=await Tt(c,new Uint8Array(32),i,32);q(c);let l=await pe(u);return q(u),me(l,r,n,s)}function q(t){t&&t.length&&t.fill(0);}function ed(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 Sn(t){return W(JSON.stringify(t))}function It(t,e,r){return _n(t,new Uint8Array([0]),W(e),new Uint8Array([0]),W(r))}var Ge="0123456789ABCDEFGHJKMNPQRSTVWXYZ",vt=16,cs=26,us=28;function _s(t){let e=2166136261;for(let r=0;r<t.length;r++)e^=t[r],e=e*16777619>>>0;return e&1023}function bs(t){if(t.length!==vt)throw new f(`A recovery code needs exactly ${vt} 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+=Ge[r>>n&31];n>0&&(e+=Ge[r<<5-n&31]);let i=_s(t);return e+=Ge[i>>5&31]+Ge[i&31],(e.match(/.{1,4}/g)||[]).join("-")}function ws(t){if(typeof t!="string")throw new f("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!==us)throw new f(`That does not look like a recovery code: expected ${us} characters, got ${e.length}.`,{code:"ENCRYPTION_BAD_RECOVERY_CODE"});let r=e.slice(0,cs),n=e.slice(cs),i=0,s=0,o=[];for(let u=0;u<r.length;u++){let l=Ge.indexOf(r[u]);if(l<0)throw new f(`That does not look like a recovery code: "${r[u]}" is not a valid character.`,{code:"ENCRYPTION_BAD_RECOVERY_CODE"});i=i<<5|l,s+=5,s>=8&&(s-=8,o.push(i>>s&255));}let a=new Uint8Array(o.slice(0,vt)),c=_s(a);if(n!==Ge[c>>5&31]+Ge[c&31])throw new f("That recovery code has a typo in it: the check characters do not match.",{code:"ENCRYPTION_BAD_RECOVERY_CODE"});return a}async function vn(t,e,r){let n=await Tt(t,e,r,32),i=await pe(n);return q(n),i}var bn=[83,75,69,78,67,70],Es=2,Rt=56,As=16,td=4*1024*1024;function Rn(t){if(!t||t.length<Rt)return false;for(let e=0;e<bn.length;e++)if(t[e]!==bn[e])return false;return true}function Je(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 ut(t,e){return (t[e]<<24>>>0)+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3]}function rd(t,e,r){let n=Math.floor(r/4294967296);Je(t,e,n),Je(t,e+4,r>>>0);}function nd(t,e){return ut(t,e)*4294967296+ut(t,e+4)}async function Ss(t,e,r,n,i,s){let o=W(`${ne}|binfile|${r}|${n}|${i}|${s}`),a=await Tt(t,e,o,32),c=await pe(a);return q(a),c}async function vs(t){return (await hr(_n(W(`${ne}|dekid`),t))).subarray(0,8)}function Rs(t,e,r){return Sn([`${ne}|binchunk`,L(t),e,r])}function id(t,e,r,n,i,s){let o=new Uint8Array(Rt+s.length);return o.set(bn,0),o[6]=Es,o[7]=s.length?1:0,Je(o,8,t),Je(o,12,e),o.set(r,16),rd(o,32,n),o.set(i,40),Je(o,48,s.length),Je(o,52,0),s.length&&o.set(s,Rt),o}async function Ts(t,e,r,n,i=td){let s=ie(As),o=await Ss(t,s,r.service,r.owner,r.recordOwner,r.recordId),a=await vs(t),c=n?W(JSON.stringify(n)):new Uint8Array(0);if(c.length>4096)throw new f("Encrypted file metadata is too large.",{code:"INVALID_PARAMETER"});let u=e.length===0?1:Math.ceil(e.length/i),l=id(i,u,s,e.length,a,c),d=await hr(l),h=[],p=l.length;for(let y=0;y<u;y++){let b=e.subarray(y*i,Math.min((y+1)*i,e.length)),E=await ge(o,b,Rs(d,y,u));h.push(E),p+=4+E.iv.length+E.ct.length;}let g=new Uint8Array(p);g.set(l,0);let m=l.length;for(let y of h)Je(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(!Rn(t))throw new f("This file is not an encrypted skapi file.",{code:"INVALID_PARAMETER"});let e=ut(t,48),r=Rt+e;if(t.length<r)throw new f("Encrypted file header is truncated.",{code:"INVALID_REQUEST"});let n=null;return e&&(n=JSON.parse(Et(t.subarray(Rt,r)))),{version:t[6],chunkBytes:ut(t,8),count:ut(t,12),fileId:t.subarray(16,16+As),plainLen:nd(t,32),dekId:t.subarray(40,48),meta:n,headerLen:r}}async function Is(t,e,r){let n=sd(e);if(n.version!==Es)throw new f(`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 f("Encrypted file header is malformed.",{code:"INVALID_PARAMETER"});let i=await vs(t);if(!ed(i,n.dekId))throw new f("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 Ss(t,n.fileId,r.service,r.owner,r.recordOwner,r.recordId),o=await hr(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 f("Encrypted file is truncated.",{code:"INVALID_REQUEST"});let p=ut(e,c);if(c+=4,p<St+16||c+p>e.length)throw new f("Encrypted file is truncated.",{code:"INVALID_REQUEST"});let g=await me(s,e.subarray(c,c+St),e.subarray(c+St,c+p),Rs(o,h,n.count));c+=p,a.push(g),u+=g.length;}let l=new Uint8Array(u),d=0;for(let h of a)l.set(h,d),d+=h.length;return {bytes:l,meta:n.meta}}var od="skapi__keyring",Pt="__skapi_enc__",Us=1,ad="skapi-enc",qe="keys",Tn=new WeakMap;function xs(t){if(!t)return null;if(t===true&&(t={}),typeof t!="object")throw new f('"options.encryption" should be a boolean or an object.',{code:"INVALID_PARAMETER"});let e=typeof t.iterations=="number"?t.iterations:ls;if(e<1e5)throw new f('"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:od}}function F(){return Tn.get(this)||null}function Cs(t){if(!t){Tn.delete(this);return}Tn.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,ready:null,unlocking:false,pendingRecoveryCode:"",peerPub:new Map,peerInflight:new Map});}function In(){let t=F.call(this);if(t){t.user_id&&Mn.call(this,t).catch(()=>{}),t.ready=null,t.unlocking=false,t.pendingRecoveryCode="";for(let[,e]of t.dek)q(e.bytes);t.dek.clear(),t.roll.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 Ds(){let t=F.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 ks(t,e){return typeof e=="string"&&e===t.cfg.table}function dt(){return `${this.service}/${this.owner}`}function Pn(t,e,r,n){let[i,s]=t.split("/");return Sn([ne,i,s,e,r,n])}function Ns(t,e,r,n,i){let[s,o]=t.split("/");return W(`${ne}|dekwrap|${s}|${o}|${e}|${r}|${n}|${i}`)}function Un(t){return t.anch==="uid"?t.uid:t.anch==="rid"?t.rid:""}function mr(t){return !!t&&typeof t=="object"&&!Array.isArray(t)&&typeof t[Pt]=="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 Os="__skapi_no_access__";function ye(t,e,r){if(t.withheld!=="sentinel")return null;let n={[Os]:true,reason:e};return r&&(n.recipients=r),Object.freeze(n)}function xn(t){return !!t&&typeof t=="object"&&t[Os]===true}async function cd(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:Ps(n.access_group),table:i,record:null};if(!r)return {group:n?.access_group!==void 0?Ps(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 Ut.call(this,r);if(!o)throw new f(`Record "${r}" not found.`,{code:"NOT_EXISTS"});return {group:o.table.access_group,table:o.table.name,record:o}}async function Ut(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 Ps(t){return t==="private"||t==="**"?"private":t==="public"?0:t==="authorized"?1:t==="admin"?99:typeof t=="number"?t:0}async function Cn(t,e,r){let n=F.call(this);if(!n)return {send:t,plain:t,encrypted:false,omit:false};let i=e?.record_id||"",s=i,o=e?.unique_id||"",{group:a,table:c,record:u}=await cd.call(this,n,e,s);if(a!=="private"){if(s){let C=n.dek.get(s);C&&(q(C.bytes),n.dek.delete(s));}if(!r&&i){let C=u||await Ut.call(this,i);if(C&&C.encrypted){if(C.encrypted.status==="failed")throw new f(`Cannot make record "${i}" non-private: its current contents could not be decrypted (${C.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"});return {send:C.data,plain:C.data,encrypted:false,omit:false}}}return {send:t,plain:t,encrypted:false,omit:!r}}if(ks(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(xn.call(this,t))throw new f("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 f("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,Pt))throw new f(`"${Pt}" 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 f("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 l=this.user?.user_id;if(!l)throw new f("User login is required to write an encrypted record.",{code:"INVALID_REQUEST"});let d=dt.call(this),h=false;if(i&&n.roll.has(i)){h=true,n.roll.delete(i);let C=n.dek.get(i);n.dek.delete(i),C&&q(C.bytes);}let p=null;if(i&&!h&&(p=n.dek.get(i)||null,!p)){let C=u||await Ut.call(this,i);if(C&&(s=C.record_id||i,p=n.dek.get(s)||null,!o&&C.unique_id&&(o=C.unique_id),!p&&C.encrypted?.status==="failed"))throw new f(`Cannot update encrypted record "${i}": its current contents could not be decrypted (${C.encrypted.reason}), so its existing key wraps cannot be preserved. Updating anyway would revoke everyone it is shared with.`,{code:"ENCRYPTION_LOCKED"})}s===i&&p&&p.rid&&(s=p.rid),!o&&p&&p.anch==="uid"&&p.uid&&(o=p.uid);let g,m,y;if(p)g=p.bytes,m=p.key,y=Object.assign({},p.recipients);else {let C=await hs();g=C.bytes,m=C.key,y={};}let b=o?"uid":s?"rid":"new",E=b==="uid"?o:b==="rid"?s:"",v=Pn(d,l,b,E),x=It(v,l,"mk"),P=await ge(n.mk,g,x);y[l]={t:"mk",iv:L(P.iv),ct:L(P.ct)},p&&(p.anch!==b||Un(p)!==E)&&(y=await ud.call(this,n,g,y,d,l,b,E,v));let N=W(JSON.stringify(t===void 0?null:t)),O=await ge(m,N,v);q(N);let M={[Pt]:Us,enc:"A256GCM",kw:"ECDH-ES+A256GCM",anch:b,uid:o,rid:s,own:l,iv:L(O.iv),ct:L(O.ct),k:y},U=JSON.stringify(M).length;if(U>2*1024*1024)throw new f(`Encrypted record data is too large: once encrypted and base64 encoded it becomes ${U} 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:g,key:m,recipients:y,anch:b,uid:o,rid:s,own:l,access_group:"private"}),{send:M,plain:t,encrypted:true,omit:false,dek:{bytes:g,key:m,recipients:y,anch:b,uid:o,rid:s,own:l,access_group:"private"}}}function Fs(t,e){let r=F.call(this);!r||!e||!t||r.dek.has(t)||r.dek.set(t,Object.assign({},e,{rid:t}));}async function ud(t,e,r,n,i,s,o,a){let c=Object.keys(r).filter(d=>d!==i);if(!c.length)return r;let u=await Vn.call(this,c),l={[i]:r[i]};for(let d of c){let h=u[d];h&&(l[d]=await Ls.call(this,e,h,n,o,i,d,a));}return l}async function Ls(t,e,r,n,i,s,o){let a=Ns(r,n,i,s,e.fpr),c=It(o,s,e.fpr),u=await ms(e.pubRaw,t,a,c);return {t:"ecdh",epk:L(u.epk),iv:L(u.iv),ct:L(u.ct),fpr:e.fpr}}async function Dn(t,e){if(!mr(t))return {value:t};if(e.access_group!=="private")return {value:t};let r=F.call(this);if(!r)return {value:null,flag:{status:"failed",reason:"ENCRYPTION_DISABLED"}};if(ks(r,e.table_name))return {value:t};if(t[Pt]!==Us)return {value:ye(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:ye(r.cfg,"BINDING_MISMATCH"),flag:{status:"failed",reason:"BINDING_MISMATCH"}};if(t.uid&&e.unique_id&&t.uid!==e.unique_id)return {value:ye(r.cfg,"BINDING_MISMATCH"),flag:{status:"failed",reason:"BINDING_MISMATCH"}};if(t.rid&&e.record_id&&t.rid!==e.record_id)return {value:ye(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:ye(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:ye(r.cfg,"NO_SESSION_KEY"),flag:{status:"failed",reason:"NO_SESSION_KEY"}};let s=dt.call(this),o=Un(t),a=Pn(s,t.own,t.anch,o),c;try{if(i.t==="mk")c=await me(r.mk,$(i.iv),$(i.ct),It(a,n,"mk"));else if(i.t==="ecdh"){if(!r.ikPriv)return {value:ye(r.cfg,"NO_SESSION_KEY"),flag:{status:"failed",reason:"NO_SESSION_KEY"}};c=await ys(r.ikPriv,$(i.epk),$(i.iv),$(i.ct),Ns(s,o,t.own,n,i.fpr),It(a,n,i.fpr));}else return {value:ye(r.cfg,"UNSUPPORTED_VERSION"),flag:{status:"failed",reason:"UNSUPPORTED_VERSION"}}}catch{return {value:ye(r.cfg,"BAD_KEY"),flag:{status:"failed",reason:"BAD_KEY"}}}let u,l;try{l=await pe(c),u=await me(l,$(t.iv),$(t.ct),a);}catch{return q(c),{value:ye(r.cfg,"CORRUPT"),flag:{status:"failed",reason:"CORRUPT"}}}let d;try{d=JSON.parse(Et(u));}catch{return q(u),q(c),{value:ye(r.cfg,"CORRUPT"),flag:{status:"failed",reason:"CORRUPT"}}}if(q(u),e.record_id){let h=r.dek.get(e.record_id);h?(h.bytes=c,h.key=l,h.recipients=t.k,h.anch=t.anch,h.uid=t.uid,h.own=t.own,h.access_group="private"):r.dek.set(e.record_id,{bytes:c,key:l,recipients:t.k,anch:t.anch,uid:t.uid,rid:e.record_id,own:t.own,access_group:"private"});}else q(c);return {value:d,flag:{status:"encrypted",recipients:Object.keys(t.k)}}}function xt(t,e){let[r,n]=t.split("/");return W(`${ne}|kek|${r}|${n}|${e}`)}function Ct(t,e,r,n){let[i,s]=t.split("/");return W(`${ne}|mk|${i}|${s}|${e}|PBKDF2-SHA256|${r}|${n}`)}function Ms(t,e){let[r,n]=t.split("/");return W(`${ne}|recovery|${r}|${n}|${e}`)}function Vs(t,e,r){let[n,i]=t.split("/");return W(`${ne}|rk|${n}|${i}|${e}|HKDF-SHA256|${r}`)}function qs(t,e){let[r,n]=t.split("/");return W(`${ne}|self|${r}|${n}|${e}`)}function Bs(t,e){let[r,n]=t.split("/");return W(`${ne}|ik|${r}|${n}|${e}`)}async function yr(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=ie(vt),i=bs(n),s=ie(16),o=L(s),a=await vn(n,s,Ms(t,e)),c=await ge(a,r,Vs(t,e,o));return q(n),{code:i,wrap:{id:L(ie(6)),p:"recovery",kdf:{a:"HKDF-SHA256",s:o},iv:L(c.iv),ct:L(c.ct),created:Date.now()}}}async function ld(t,e,r,n){let i=ws(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 vn(i,$(o.kdf.s),Ms(t,e)),c=await me(a,$(o.iv),$(o.ct),Vs(t,e,o.kdf.s));return q(i),c}catch{}return q(i),null}async function dd(t,e,r,n,i){let s=ie(16),o=L(s),a=await lt(n,s,t.cfg.iterations,xt(e,r)),c=await ge(a,i,Ct(e,r,t.cfg.iterations,o));return {id:L(ie(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:t.cfg.iterations,s:o},iv:L(c.iv),ct:L(c.ct),created:Date.now()}}async function fd(t,e){let r=this.user.user_id,n=t.scope,i=ie(16),s=L(i),o=await lt(e,i,t.cfg.iterations,xt(n,r)),a=ie(32),c=await ge(o,a,Ct(n,r,t.cfg.iterations,s)),u=await pe(a),l=await gs(),d=await ge(u,l.pkcs8,Bs(n,r));q(l.pkcs8);let h=null;t.cfg.recovery==="code"&&(h=await kn(n,r,a));let p=await ge(u,a,qs(n,r));q(a);let g=await An(l.pubRaw),m=Date.now(),y=[{id:L(ie(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:t.cfg.iterations,s},iv:L(c.iv),ct:L(c.ct),created:m}];h&&y.push(h.wrap);let b={v:1,alg:"ECDH-P-256",user_id:r,wraps:y,ik:{iv:L(d.iv),ct:L(d.ct)},self:{iv:L(p.iv),ct:L(p.ct)},pub:L(l.pubRaw),fpr:g,pins:null,created:m,updated:m};await this.postRecord({v:1,alg:"ECDH-P-256",user_id:r,pub:L(l.pubRaw),fpr:g,created:m},{table:{name:t.cfg.table,access_group:"authorized"},index:{name:"pubkey",value:r}});let E=await this.postRecord(b,{table:{name:t.cfg.table,access_group:"private"}}),v=await yr.call(this,t);if(v&&v.record_id!==E.record_id){await $s.call(this,t,v,e);return}t.mk=u,t.ikPriv=l.priv,t.pubRaw=l.pubRaw,t.fpr=g,t.keyringRecordId=E.record_id,h&&(t.pendingRecoveryCode=h.code),t.user_id=r,t.pins={},t.status="unlocked",t.reason="";}async function $s(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 f("The encryption keyring does not belong to this user.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let a=(Array.isArray(s?.wraps)?s.wraps:[]).filter(l=>l.p==="password");if(!a.length)throw new f("The keyring has no password wrap.",{code:"ENCRYPTION_KEYRING_CORRUPT"});a.sort((l,d)=>(d.created||0)-(l.created||0));let c=null;for(let l of a)try{let d=$(l.kdf.s),h=await lt(r,d,l.kdf.it,xt(i,n));c=await me(h,$(l.iv),$(l.ct),Ct(i,n,l.kdf.it,l.kdf.s));break}catch{}if(!c)throw new f("Incorrect password: the encryption keyring could not be opened.",{code:"ENCRYPTION_BAD_PASSWORD"});let u=await pe(c);q(c),await Nn.call(this,t,e,u);}async function Nn(t,e,r){let n=this.user.user_id,i=e.data,s=await me(r,$(i.ik.iv),$(i.ik.ct),Bs(t.scope,n)),o=await En(s);q(s);let a={};if(i.pins&&typeof i.pins=="object"&&i.pins.ct)try{let c=await me(r,$(i.pins.iv),$(i.pins.ct),W(`${ne}|pins|${t.scope}|${n}`));a=JSON.parse(Et(c)),q(c);}catch{a={};}t.mk=r,t.ikPriv=o,t.pubRaw=$(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 _r(t){let e=F.call(this);if(!e||!this.user?.user_id)return;if(!wn()){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=dt.call(this);let r=await yr.call(this,e);r?await $s.call(this,e,r,t):await fd.call(this,e,t),e.cfg.persistDevice&&await Gs.call(this,e).catch(()=>{});}async function Ks(t){await this.__connection;let e=F.call(this);if(!e)throw new f("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});if(!t?.password||typeof t.password!="string")throw new f('"password" is required.',{code:"INVALID_PARAMETER"});if(await _r.call(this,t.password),e.status!=="unlocked")throw new f(`Encryption could not be unlocked: ${e.reason}`,{code:"ENCRYPTION_LOCKED"});return {status:e.status}}async function js(t){let e=F.call(this);return e?(t?.forgetDevice&&await Mn.call(this,e).catch(()=>{}),In.call(this),this.__cached_requests={},{status:e.status}):{status:"disabled"}}async function Hs(t,e){let r=F.call(this);if(!r)return;if(r.status!=="unlocked"||!r.mk)throw new f("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 f("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 lt(t,$(m.kdf.s),m.kdf.it,xt(r.scope,s));c=await me(y,$(m.iv),$(m.ct),Ct(r.scope,s,m.kdf.it,m.kdf.s));break}catch{}if(!c)throw new f("Incorrect current password: the encryption keyring was not re-wrapped.",{code:"ENCRYPTION_BAD_PASSWORD"});let u=ie(16),l=L(u),d=await lt(e,u,r.cfg.iterations,xt(r.scope,s)),h=await ge(d,c,Ct(r.scope,s,r.cfg.iterations,l));q(c);let p=Date.now(),g=(o.wraps||[]).concat([{id:L(ie(6)),p:"password",kdf:{a:"PBKDF2-SHA256",it:r.cfg.iterations,s:l},iv:L(h.iv),ct:L(h.ct),created:p}]);await this.postRecord(Object.assign({},o,{wraps:g,updated:p}),{record_id:r.keyringRecordId});}async function Ws(){let t=F.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 On(){return typeof indexedDB<"u"&&!!indexedDB}function Fn(){return new Promise((t,e)=>{let r=indexedDB.open(ad,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(qe)||n.createObjectStore(qe);},r.onsuccess=()=>t(r.result),r.onerror=()=>e(r.error);})}function Ln(t){return `${t.scope}#${this.user?.user_id}`}async function Gs(t){if(!On()||!t.mk)return;let e=await Fn();await new Promise((r,n)=>{let i=e.transaction(qe,"readwrite");i.objectStore(qe).put({mk:t.mk,keyringRecordId:t.keyringRecordId,saved:Date.now()},Ln.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}async function hd(t){if(!On())return null;let e=await Fn(),r=await new Promise((n,i)=>{let o=e.transaction(qe,"readonly").objectStore(qe).get(Ln.call(this,t));o.onsuccess=()=>n(o.result||null),o.onerror=()=>i(o.error);});return e.close(),r&&r.mk?r:null}async function Mn(t){if(!On())return;let e=await Fn();await new Promise((r,n)=>{let i=e.transaction(qe,"readwrite");i.objectStore(qe).delete(Ln.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}function Js(){let t=F.call(this);!t||t.ready||(t.unlocking=true,t.ready=gd.bind(this)().catch(()=>false).then(()=>{t.unlocking=false;}));}async function gd(){let t=F.call(this);if(!t||!this.user?.user_id||!t.cfg.persistDevice||!wn())return false;t.scope=dt.call(this);try{let e=await hd.call(this,t);if(!e)return !1;let r=await yr.call(this,t);return r?(await Nn.call(this,t,r,e.mk),!0):(await Mn.call(this,t).catch(()=>{}),!1)}catch{return t.status="locked",t.reason="NO_SESSION_KEY",false}}async function Vn(t){let e=F.call(this);if(!e)throw new f("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 l=$(u[0].data.pub),d=await An(l),h=e.pins[s];if(h&&h!==d)throw new f(`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 f(`No pinned key for user "${s}" and trustPolicy is "strict". Pin it first with pinPeerKey().`,{code:"ENCRYPTION_PEER_NOT_PINNED"});e.pins[s]=d,i=true;}return {pubRaw:l,fpr:d}})().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 Zs.call(this,e).catch(()=>{}),r}async function Ys(t,e){let r=dt.call(this),n=t.dek.get(e);if(n)return {entry:n,scope:r};let i=await Ut.call(this,e);if(!i)throw new f(`Record "${e}" not found.`,{code:"NOT_EXISTS"});if(i.encrypted?.status==="failed"&&i.encrypted.reason==="DATA_UNAVAILABLE")throw new f(`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 f("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 f(`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 qn(t,e){let r=F.call(this);if(!r)return;let n=await Ys.call(this,r,t);if(!n)return;let{entry:i,scope:s}=n,o=this.user.user_id;if(i.own!==o)throw new f("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 Vn.call(this,e),c=e.filter(h=>!a[h]);if(c.length)throw new f(`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=Un(i),l=Pn(s,i.own,i.anch,u),d=Object.assign({},i.recipients);for(let h of e)h!==o&&(d[h]=await Ls.call(this,i.bytes,a[h],s,u,i.own,h,l));await pd.call(this,r,t,i,d);}async function zs(t,e){let r=F.call(this);if(!r)return;let n=await Ys.call(this,r,t);if(!n)return;let{entry:i}=n,s=this.user.user_id;if(i.own!==s)throw new f("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 Ut.call(this,t);if(!a)throw new f(`Record "${t}" not found.`,{code:"NOT_EXISTS"});Qs(a,t);let c={};if(o.length){c=await Vn.call(this,o);let u=o.filter(l=>!c[l]);if(u.length)throw new f(`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 qn.call(this,a.record_id||t,o);}function Qs(t,e){if(t?.encrypted?.status==="failed")throw new f(`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 pd(t,e,r,n){let s=(await this.getRecords({record_id:e},{limit:1}))?.list?.[0];if(!s)throw new f(`Record "${e}" not found.`,{code:"NOT_EXISTS"});Qs(s,e),r.recipients=n,t.dek.set(e,r),await this.postRecord(s.data,{record_id:e});}async function Xs(t){let e=F.call(this);if(!e||e.status!=="unlocked")throw new f("Encryption is locked.",{code:"ENCRYPTION_LOCKED"});e.pins[t.user_id]=t.fingerprint,e.peerPub.delete(t.user_id),await Zs.call(this,e);}async function Zs(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 ge(t.mk,W(JSON.stringify(t.pins)),W(`${ne}|pins|${t.scope}|${t.user_id}`));await this.postRecord(Object.assign({},r.data,{pins:{iv:L(n.iv),ct:L(n.ct)},updated:Date.now()}),{record_id:t.keyringRecordId});}function eo(){let t=F.call(this);if(!t||!t.pendingRecoveryCode)return null;let e=t.pendingRecoveryCode;return t.pendingRecoveryCode="",e}async function to(t){await this.__connection;let e=F.call(this);if(!e)throw new f("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(!this.user?.user_id)throw new f("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 f('"code" is required.',{code:"INVALID_PARAMETER"});e.scope=dt.call(this);let r=this.user.user_id,n=await yr.call(this,e);if(!n)throw new f("This account has no encryption keyring, so there is nothing to recover.",{code:"NOT_EXISTS"});let i=await ld(e.scope,r,n.data?.wraps||[],t.code);if(!i)throw new f("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 pe(i);await Nn.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(l=>l.p!=="recovery"),c.push(u.wrap),a=u.code;}return q(i),await this.postRecord(Object.assign({},n.data,{wraps:c,updated:Date.now()}),{record_id:n.record_id}),e.cfg.persistDevice&&await Gs.call(this,e).catch(()=>{}),{status:e.status,repaired:o,recoveryCode:a}}async function ro(){await this.__connection;let t=F.call(this);if(!t)throw new f("Encryption is not enabled for this instance.",{code:"INVALID_REQUEST"});if(t.status!=="unlocked"||!t.mk)throw new f("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 f('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 f("The encryption keyring could not be read.",{code:"ENCRYPTION_KEYRING_CORRUPT"});let n=r.data?.self;if(!n||!n.ct)throw new f("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 me(t.mk,$(n.iv),$(n.ct),qs(t.scope,t.user_id)),s=await kn(t.scope,t.user_id,i);q(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 pr="__skenc__",no="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function md(t){if(t===0)return "0";let e="";for(;t>0;)e=no[t%62]+e,t=Math.floor(t/62);return e}function yd(t){let e=0;for(let r of t){let n=no.indexOf(r);if(n<0)return NaN;e=e*62+n;}return e}function br(t){if(typeof t!="string")return null;let e=t.lastIndexOf(pr);if(e<0)return null;let r=yd(t.slice(e+pr.length));return Number.isFinite(r)?{key:t.slice(0,e),plainSize:r}:null}function Bn(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=br(e[10]);return r?{recordId:e[5],recordOwner:e[3],filename:e[e.length-1],plainSize:r.plainSize}:null}catch{return null}}function io(t,e){return {service:this.service,owner:this.owner,recordOwner:e,recordId:t}}async function so(t,e,r){let n=F.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(br(e))throw new f(`"${pr}" is reserved in an upload form key.`,{code:"INVALID_PARAMETER"});let s=new Uint8Array(await r.arrayBuffer()),o={n:r.name,t:r.type||"",lm:r.lastModified||0},a=await Ts(i.bytes,s,io.call(this,t,i.own),o);return q(s),{key:`${e}${pr}${md(r.size)}`,file:new File([a],r.name,{type:"application/octet-stream"}),encrypted:true}}async function oo(t,e){let r=F.call(this),n=Bn(t);if(!r||!n)return e;let i=r.dek.get(n.recordId);if(!i)throw new f(`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(!Rn(s))throw new f("This file is marked as encrypted but its contents are not an encrypted container.",{code:"ENCRYPTION_FILE_CORRUPT"});let o=await Is(i.bytes,s,io.call(this,n.recordId,n.recordOwner)),a=o.meta&&o.meta.t||"application/octet-stream";return new Blob([o.bytes],{type:a})}var j=null;function $n(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=fe(i[2].slice(0,-4));}}else e[n]?r[e[n]]=t[n]:r[n]=t[n];return r}async function co(t){if(!t.ticket_id)throw new f("Ticket ID is required.",{code:"INVALID_PARAMETER"});if(!t.method)throw new f('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 $n(r)}async function uo(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($n),r}async function lo(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($n),r}async function fo(t){return I.bind(this)("register-ticket",Object.assign({exec:"reg"},t),{auth:true})}async function ho(t){return I.bind(this)("register-ticket",Object.assign({exec:"unreg"},t),{auth:true})}var _d=3600;async function ft(){if(await this.__connection,this.session){let t=Math.floor(Date.now()/1e3),r=this.session.getIdToken().getExpiration();if(r<t+_d){this.log("request:requesting new token",null);try{await Z.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 f("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),Oe.bind(this)(),new f("User login is required.",{code:"INVALID_REQUEST"})}function ao(t,e){return new Promise((r,n)=>{e.refreshSession(t.getRefreshToken(),(i,s)=>{this.log("getSession:refreshSessionCallback",{refreshErr:i,refreshedSession:s}),i?(Oe.bind(this)(),n(i)):s.isValid()?r(s):(Oe.bind(this)(),n(new f("Invalid session.",{code:"INVALID_REQUEST"})));});})}function Z(){if(!this.userPool)throw new f("User pool is missing",{code:"INVALID_REQUEST"});let t=()=>{let s=j.getSignInUserSession().getIdToken().payload||null,o=wt(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),j=this.userPool.getCurrentUser(),!j){this.log("getSession:cognitoUser",j),Oe.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"),Oe.bind(this)(),new f("Invalid session.",{code:"INVALID_REQUEST"});return this.session=d,t(),u||this._runOnUserUpdateListeners(this.user),this.session};j.getSession((d,h)=>{if(this.log("getSession:getSessionCallback",{err:d,session:h}),!h){Oe.bind(this)(),a(new f("Current session does not exist.",{code:"INVALID_REQUEST"}));return}if(d){ao.bind(this)(h,j).then(b=>o(l(b))).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())ao.bind(this)(h,j).then(b=>o(l(b))).catch(a);else try{o(l(h));}catch(b){a(b);}});}),r=(s,o)=>{let a=o||s.includes(this.service+"-")?s:this.service+"-"+z.hash(s);return {cognitoUser:new ke({Username:a,Pool:this.userPool}),cognitoUsername:a}};return {getSession:e,authenticateUser:(s,o,a=false,c=false)=>new Promise((u,l)=>{this.__request_signup_confirmation=null,this.__disabledAccount=null;let d=r(s,a),h=d.cognitoUsername,p=new kr({Username:h,Password:o});d.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"?d.cognitoUser.completeNewPasswordChallenge(o,{},{onSuccess:y=>{j=d.cognitoUser,e().then(async b=>{if(F.call(this))try{await _r.bind(this)(o);}catch(E){this.log("encryption:ensureKeyring:failed",E);}u(this.user);});},onFailure:y=>{l(new f(y.message||"Failed to authenticate user.",{code:y.code}));}}):l(new f("User's signup confirmation is required.",{code:"SIGNUP_CONFIRMATION_NEEDED"}));},onSuccess:g=>e({skipUserUpdateEventTrigger:true}).then(async m=>{if(this.__disabledAccount=null,F.call(this))try{await _r.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:b}=wr(g),E=typeof g?.message=="string"?g.message:"";if(b==="NotAuthorizedException"?E.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"]:b==="UserNotFoundException"?m=["Incorrect username or password.","INCORRECT_USERNAME_OR_PASSWORD"]:b==="UserNotConfirmedException"?(this.__request_signup_confirmation=h,m=["User's signup confirmation is required.","SIGNUP_CONFIRMATION_NEEDED"]):(b==="TooManyRequestsException"||b==="LimitExceededException")&&(m=["Too many attempts. Please try again later.","REQUEST_EXCEED"]),y.code==="SIGNUP_CONFIRMATION_NEEDED"&&(this.__request_signup_confirmation=h),m.length){let v=m[1],x=m[0];l(new f(x,{code:v,cause:g}));}else l(y);}});}),createCognitoUser:r,signup:(s,o,a)=>new Promise((c,u)=>{this.userPool.signUp(s,o,a,null,(l,d)=>{if(l){let{parsed:h,code:p}=wr(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?u(new f(g[0],{code:g[1],cause:l})):u(h);return}c(d);});})}}function wr(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 f(o,{code:s,cause:t}),code:e}}async function go(t){await this.__authConnection;let e=t?.refreshToken||false;if(!e)return this.user;try{return await Z.bind(this)().getSession(Object.assign({skipUserUpdateEventTrigger:!e,refreshToken:e},t)),this.user}catch{return null}}async function po(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 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: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 Z.bind(this)().authenticateUser(i,s,true,true),openid:r.openid}}function bd(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 wd(t){let e=t.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=bd(n);return JSON.parse(i)}async function mo(t){await this.__authConnection,this.log("loginWithToken:params",t),t=_.Params(t,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=wd(t.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 r=Math.floor(Date.now()/1e3);if(e.exp&&e.exp<r)throw new f("Token has expired.",{code:"INVALID_REQUEST"});if(this.__user=wt(e),this.session=null,t.accessToken&&t.refreshToken)try{if(this.session=new ot({IdToken:new it({IdToken:t.idToken}),AccessToken:new nt({AccessToken:t.accessToken}),RefreshToken:new st({RefreshToken:t.refreshToken})}),this.log("loginWithToken:session",this.session),this.log("loginWithToken:CognitoUser",ke),this.log("loginWithToken:userPool",this.userPool),ke&&this.userPool){this.log("loginWithToken:cognito:username",e["cognito:username"]);let n={Username:e["cognito:username"],Pool:this.userPool};this.log("loginWithToken:cognitoUserParams",n),j=new ke(n),j.setSignInUserSession(this.session),this.log("loginWithToken:cognitoUserRestored",{cognitoUserType:typeof j,cognitoUserKeys:Object.keys(j||{}),cognitoUser:j});}}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 Q(){return await this.__connection,this.__user?.service===this.service?this.__user?.owner===this.host:(await Dt.bind(this)(),false)}async function Oe(t=false){let e=null;j&&(t?e=new Promise((n,i)=>{j.globalSignOut({onSuccess:s=>{this.log("globalSignOut:success",s),n(s);},onFailure:s=>{this.log("globalSignOut:error",s),i(s);}});}):j.signOut()),In.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 Dt(t){await this.__connection;let{data:e}=K(t);return await Oe.bind(this)(e?.global),"SUCCESS: The user has been logged out."}async function yo(){if(!this.__request_signup_confirmation)throw new f("Least one login attempt is required.",{code:"INVALID_REQUEST"});return await I.bind(this)("confirm-signup",{username:this.__request_signup_confirmation})}async function _o(t=false){if(typeof t=="string")t=_.Url(t);else if(typeof t!="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 I.bind(this)("recover-account",{username:this.__disabledAccount,redirect:t}),"SUCCESS: Recovery e-mail has been sent."}async function Kn(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 f('Least one of "username" or "email" is required.',{code:"INVALID_PARAMETER"});return await Z.bind(this)().authenticateUser(e.username||e.email,e.password)}async function bo(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 Dt.bind(this)(),e=_.Params(e||{},{email_subscription:u=>{if(typeof u!="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 u},signup_confirmation:u=>{let l=u;if(typeof u=="string")l=_.Url(u);else if(typeof u=="boolean")l=u;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:u=>{if(typeof u=="boolean"){if(e.signup_confirmation&&u)throw new f('"login" is not allowed when "option.signup_confirmation" is true.',{code:"INVALID_PARAMETER"});return u}throw new f('"option.login" should be type: boolean.',{code:"INVALID_PARAMETER"})},template:u=>{if(typeof u!="object"||u===null)throw new f('"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 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(u.welcome!==void 0&&(typeof u.welcome!="string"||!u.welcome))throw new f('"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 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=Z.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 Se({Name:"custom:signup",Value:o[0]}),new Se({Name:"locale",Value:a.split("#")[1]}),new Se({Name:"custom:signup_ticket",Value:a})];for(let u in r){let l=["email_public","address_public","gender_public","birthdate_public","phone_number_public","misc","service","owner"];n[u]!==""&&(u==="username"||u==="password"||u==="access_group"||(l.includes(u)?c.push(new Se({Name:"custom:"+u,Value:n[u]})):c.push(new Se({Name:u,Value:n[u]}))));}return await Z.bind(this)().signup(s.cognitoUsername,n.password,c),n.signup_confirmation?(j=s.cognitoUser,this.__request_signup_confirmation=s.cognitoUsername,"SUCCESS: The account has been created. User's signup confirmation is required."):i?Kn.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function wo(){await this.__connection;let t=await I.bind(this)("remove-account",{disable:this.__user.user_id},{auth:true});return await Dt.bind(this)(),t}async function Eo(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)=>{Z.bind(this)().createCognitoUser(e.email).cognitoUser.confirmPassword(r,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 Ao(t,e,r){await this.__connection;let n;if(!j)throw new f("The user has to be logged in.",{code:"INVALID_REQUEST"});if(t==="email"||t==="phone_number"){if(!this.__user.hasOwnProperty(t))throw new f(`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 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 c={onSuccess:u=>{n?Z.bind(this)().getSession({refreshToken:true}).then(()=>{this.__user&&(this.__user[t+"_verified"]=true),o(`SUCCESS: "${t}" is verified.`);}).catch(l=>{a(l);}):o("SUCCESS: Verification code has been sent.");},onFailure:u=>{a(new f(u.message||"Failed to request verification code.",{code:u?.code}));}};n?j?.verifyAttribute(t,n,c):(c.inputVerificationCode=null,j?.getAttributeVerificationCode(t,c,i));})}function So(t,e){return Ao.bind(this)("phone_number",t,e)}function vo(t,e){return Ao.bind(this)("email",t,e)}async function Ro(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 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)=>{Z.bind(this)().createCognitoUser(r.email).cognitoUser.forgotPassword({onSuccess:c=>{s("SUCCESS: Verification code has been sent.");},onFailure:c=>{let{parsed:u,code:l}=wr(c),d={UserNotFoundException:"NOT_EXISTS",InvalidParameterException:"INVALID_PARAMETER",NotAuthorizedException:"INVALID_REQUEST",LimitExceededException:"REQUEST_EXCEED",TooManyRequestsException:"REQUEST_EXCEED",CodeDeliveryFailureException:"CODE_DELIVERY_FAILURE"}[l]||u.code||l||"ERROR";o(new f(u.message,{code:d,cause:c}));}},n);})}async function To(t){if(await this.__connection,!this.session)throw new f("User login is required.",{code:"INVALID_REQUEST"});let e=_.Params(t,{current_password:"string",new_password:"string"});if(!e?.current_password)throw new f('"current_password" is required to change password.',{code:"INVALID_PARAMETER"});if(!e?.new_password)throw new f('"new_password" is required to change password.',{code:"INVALID_PARAMETER"});return _.Password(e.current_password),_.Password(e.new_password),F.call(this)&&await Hs.bind(this)(e.current_password,e.new_password),new Promise((r,n)=>{j.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}=wr(i);n(o);}return}F.call(this)&&Ws.bind(this)().catch(o=>this.log("encryption:prune:failed",o)),r("SUCCESS: Password has been changed.");});})}async function Io(t){if(await this.__connection,!this.session)throw new f("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+"-"+z.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 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 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 Se({Name:s,Value:e[s]}));return await new Promise((s,o)=>{j?.updateAttributes(i,(a,c)=>{a&&o([a?.code||a?.name,a?.message||"Failed to update user settings."]),s(c);});}),await Z.bind(this)().getSession({refreshToken:true}),this.user}return this.user}async function Po(t,e){t=K(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 f('Value of "locale" should be a country code.',{code:"INVALID_PARAMETER"});return i},name:"string",address:"string",gender:"string",birthdate:i=>_.Birthdate(i),subscribers:"number",timestamp:"number",access_group:"number",approved:"string"},n=["searchFor","value"];if(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 f(`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 f(`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 f("Conditions does not apply on range search.",{code:"INVALID_PARAMETER"});if(t.searchFor==="user_id"&&(t.condition!=="="||t.range))throw new f(`Conditions are not allowed on "${t.searchFor}"`,{code:"INVALID_PARAMETER"});if(typeof t?.value=="string"&&!t?.value)throw new f("Value should not be an empty string.",{code:"INVALID_PARAMETER"});if(typeof t?.searchFor=="string"&&!t?.searchFor)throw new f('"searchFor" should not be an empty string.',{code:"INVALID_PARAMETER"});return I.bind(this)("get-users",t,{auth:true,fetchOptions:e})}async function Uo(t){await this.__connection;let e=await I.bind(this)("last-verified-email",t,{auth:true});return e.includes("SUCCESS")?(await Z.bind(this)().getSession({refreshToken:true}),this.user):e}async function xo(t){return await this.__connection,t=_.Params(t,{username:_.Email,redirect:_.Url},["username"]),await I.bind(this)("request-username-change",t,{auth:true})}var Ed="1.2.1",Ad=class{constructor(t){we(this,"version",Ed);we(this,"items",[]);we(this,"nextJobId",1);we(this,"breakWhenError",false);we(this,"batchSize",1);we(this,"onProgress");we(this,"activeCount",0);we(this,"currentCycleCompleted",[]);we(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=[];}},kt=Ad;var ht=null,Do=typeof SubmitEvent<"u",Sd=typeof HTMLFormElement<"u",Ot=re(),jn=0;function ko(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 Hn(t,e){return e>0?t/e*100:0}var Co=t=>{let{auth:e,type:r,endpoints:n,stable:i}=t,s=n[0],o=n[1];if(jn++,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 f("No available admin gateways.",{code:"INVALID_REQUEST"});return a[jn%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 f("No available record gateways.",{code:"INVALID_REQUEST"});return i?a[0]:a[jn%a.length]}throw new f("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function vd(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 Co.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 Co.bind(this)({auth:e,type:"record",endpoints:n,stable:r})+t+a;default:return _.Url(t)+a}}var Nt={};function No(){ht&&(ht.terminate(),ht=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,l=null,d=await vd.bind(this)(t,!!i,!!r.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=r?.tokenHeaders?.idToken===true;(i||h)&&(l=await ft.bind(this)());let p={},{fetchMore:g=false,progress:m}=r?.fetchOptions||{};if(r?.fetchOptions&&Object.keys(r.fetchOptions).length){for(let U of ["limit","startKey","ascending"])if(r.fetchOptions.hasOwnProperty(U)){if(U==="startKey"&&r.fetchOptions[U]===null)continue;p[U]=r.fetchOptions[U];}p=_.Params(p,{limit:U=>{if(typeof U!="number")throw new f("Fetch limit should be a number.",{code:"INVALID_REQUEST"});if(U>1e3)throw new f("Fetch limit should be below 1000.",{code:"INVALID_REQUEST"});return U},startKey:U=>U,ascending:"boolean"});}let y=n?.ignoreService?{}:{service:c,owner:u};Object.assign(y,p),e=K(e).data,e?e&&typeof e=="object"&&(e=Object.assign(y,e)):e=y;let b=`${s}:${i?"auth":"public"}:${t}`,E=(()=>{if(e&&typeof e=="object"&&Object.keys(e).length&&!(Ot&&e instanceof FormData)){let U=function(C){return typeof C=="object"&&C!==null?Object.keys(C).sort().reduce((V,B)=>(typeof C[B]=="object"&&C[B]!==null?V[B]=U(C[B]):V[B]=C[B],V),{}):C};return z.hash(b+"/"+JSON.stringify(U(e)))}return z.hash(b+"/"+c)})(),{requestKey:v,requestKeyWithStartKey:x}=Rd.bind(this)({params:e,url:t,fetchMore:g,hashedParams:E});if(!v||v&&typeof v=="object")return v;if(this.log("requestKey",x),typeof x=="string"&&Nt[x]instanceof Promise)return this.log("request:returning pending",x),Nt[x];let P={Accept:"*/*"};if(Object.prototype.hasOwnProperty.call(r,"contentType")&&r.contentType!==void 0){let U=r.contentType===null?"application/x-www-form-urlencoded":r.contentType;U&&(P["Content-Type"]=U);}else P["Content-Type"]="application/json";if(l&&(P.Authorization=l),r?.tokenHeaders){let U=(B,Ue)=>typeof B=="string"?B:B===true?Ue:null,C=U(r.tokenHeaders.accessToken,this.session?.accessToken?.jwtToken||null),V=U(r.tokenHeaders.idToken,this.bearerToken||this.session?.idToken?.jwtToken||l||null);C&&(P["X-Access-Token"]=C),V&&(P["X-Id-Token"]=V);}let O={public_identifier:this.__public_identifier,service:c,owner:u};P["Content-Meta"]=JSON.stringify(O),r.revalidate&&(P["Cache-Control"]="no-cache",P.Pragma="no-cache");let M={headers:P};if(r?.responseType&&(M.responseType=r.responseType),s==="GET"){if(e){let U=[];if(Ot&&e instanceof FormData?U=Array.from(e.entries()).map(([C,V])=>{let B=typeof V=="string"?V:V.name;return encodeURIComponent(C)+"="+encodeURIComponent(B)}):U=Object.keys(e).map(C=>{let V=e[C];return typeof V!="string"&&(V=JSON.stringify(V)),encodeURIComponent(C)+"="+encodeURIComponent(V)}),U.length){let C=d.includes("?")?d.endsWith("?")||d.endsWith("&")?"":"&":"?";d+=C+U.join("&");}}M.body=null;}else if(Ot&&e instanceof FormData)M.body=e;else if(P["Content-Type"]==="application/x-www-form-urlencoded"&&e&&typeof e=="object"){let U=new URLSearchParams;for(let C of Object.keys(e)){let V=e[C];U.append(C,typeof V=="string"?V:JSON.stringify(V));}M.body=U.toString();}else typeof e=="string"?M.body=e:M.body=e?JSON.stringify(e):null;if(M.method=s,ht===null){let U={batchSize:this.requestBatchSize,breakWhenError:false,onProgress:C=>{this.onBatchProcess.forEach(V=>V(C));}};ht=new kt(U);}return this.log("request-opt",M),new Promise((U,C)=>{ht.add([async()=>{let V=Oo.bind(this)(d,M,m);Nt[x]=V;try{let B=Id.bind(this)({hashedParam:v,requestKeyWithStartKey:x,url:t,fetched:await V});return delete Nt[x],this.log("request:end",B),U(B),B}catch(B){throw delete Nt[x],this.log("request:err",B),C(B),B}}]);})}function Rd(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 f(`"${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+z.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+=z.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 Td(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 Oo(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=ko(a);c!==null?setTimeout(()=>{Oo(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 l=u.split(":"),d=l.splice(0,1)[0].trim(),h=l.join(":").trim();i(new f(h||u,{code:c.includes(d)?d:"ERROR"}));}else if(typeof u=="object"&&u?.message){let l=u?.code||(a?a.toString():null)||"ERROR",d=u.message,h=u?.cause;typeof d=="string"&&(d=d.trim()),i(new f(d,{cause:h,code:l}));}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:Hn(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{r({status:"upload",progress:Hn(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Id(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 Ar(t,e){await this.__connection;let{record_id:r,service:n=this.service,progress:i}=e;if(!r)throw new f('"record_id" is required.',{code:"INVALID_PARAMETER"});if(Do&&t instanceof SubmitEvent&&(t=t.target),Sd&&t instanceof HTMLFormElement&&(t=new FormData(t)),!Ot||!(t instanceof FormData))throw new f('"fileList" should be a FormData or HTMLFormElement.',{code:"INVALID_PARAMETER"});let o={reserved_key:We(),service:n,request:"post"};e?.record_id&&(o.id=e.record_id);let a,c=(p,g,m)=>new Promise((y,b)=>{a=new XMLHttpRequest,a.open("POST",p),a.onload=()=>{let E=a.responseText;try{E=JSON.parse(E);}catch{}if(a.status>=200&&a.status<300)y(E);else if(a.status===429){let v=a.getResponseHeader("Retry-After"),x=ko(v);x!==null?setTimeout(()=>{c(p,g,m).then(y,b);},x):b("Too many requests");}else b(E);},a.onerror=()=>b("Network error"),a.onabort=()=>b("Aborted"),a.ontimeout=()=>b("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 l=[],d=[],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,b=m.key,E=Object.assign({key:b+"/"+y.name,sizeKey:u(y.size),contentType:y.type||null},o),{fields:v=null,url:x,cdn:P}=await I.bind(this)("get-signed-url",E,{auth:!!this.__user});h.push(P);let N=new FormData;for(let O in v)N.append(O,v[O]);N.append("file",y);try{await c(x,N,typeof i=="function"?O=>i({status:"upload",progress:Hn(O.loaded,O.total),currentFile:g,completed:l,failed:d,loaded:O.loaded,total:O.total,abort:()=>a.abort()}):null),l.push(g);}catch{d.push(g);}}return {completed:l,failed:d,bin_endpoints:h}}var Er={};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,l="",d={},h=false;if(Do&&a instanceof SubmitEvent){a.preventDefault();let b=window.location.href;u=a.target;let E=new URL(u.action);l=E.href;let v=l?l.match(/(?<=\{).*?(?=\})/g):"";if(v)for(let x of v){if(!x)continue;let P=u.querySelector(`[name="${x}"]`);if(P)if(P.type==="file")for(let N=0;N<=P.files.length-1;N++)P.files[N]&&(d[x]||(d[x]=[]),d[x].push(new Promise((O,M)=>{let U=new FileReader;U.onload=function(){O(U.result);},U.readAsDataURL(P.files[N]),U.onerror=M;})));else l=l.replace(`{${x}}`,P.value);}u.getAttribute("action")===null?c=false:h=E.href===b;}let p=async b=>{if(l)for(let E in d)d[E].length&&(l=l.replace(`{${E}}`,(await Promise.all(d[E])).join(",")));if(u&&c){let E=F.call(this)?Td(b):b;window.sessionStorage.setItem(`${this.service}:${z.hash(l)}`,JSON.stringify(E)),h?window.location.replace(l):window.location.href=l;}return b},g,m=b=>{throw b instanceof f?b.name=n+"()":b=b instanceof Error?b:new f(b,{name:n+"()"}),b},y=async()=>{try{if(g=s.bind(this)(...o),g instanceof Promise){let b=await g;return p(b)}return p(g)}catch(b){throw m(b)}};if(e){let b=`${n}:${this?.__public_identifier||""}:${this?.service||""}:${this?.owner||""}`;return Er?.[b]||(Er[b]=y().finally(()=>{delete Er[b];})),Er[b]}return y()};}}async function Fo(){await this.__connection;let t=`${this.service}:${z.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 Pd=256,Ud=256,xd=256,Lo=256,Cd="\u{10FFFF}",Dd=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,kd={"/":"%2F","!":"%21","*":"%2A","#":"%23"},Nd={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function Od(t){return t.replace(/%/g,"%25").replace(/[\/!*#]/g,r=>kd[r]||r)}function se(t){return typeof t!="string"?t:t.replace(/%(2F|21|2A|23)/gi,r=>{let n=r.toUpperCase();return Nd[n]||r}).replace(/%25/gi,"%")}function ve(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 f(`"${e}" should be type: <string>.`,{code:"INVALID_PARAMETER"});if(a&&/[^a-zA-Z0-9]/.test(t))throw new f(`"${e}" should only contain alphanumeric characters.`,{code:"INVALID_PARAMETER"});if(!n&&t.length===0)throw new f(`"${e}" is required.`,{code:"INVALID_PARAMETER"});if(i&&t.length>i)throw new f(`"${e}" should be <= ${i} characters.`,{code:"INVALID_PARAMETER"});if(Dd.test(t)||t.includes(Cd))throw new f(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&(t=Od(t),i&&t.length>i))throw new f(`"${e}" should be <= ${i} characters. "/", "!", "*", "#" and "%" count as 3 characters each.`,{code:"INVALID_PARAMETER"});if(o&&t.startsWith("$"))throw new f(`"${e}" cannot start with "$".`,{code:"INVALID_PARAMETER"});return t}function gt(t,e="table.name",r={}){return ve(t,e,{allowEmpty:r.allowEmpty===true,maxLength:Pd,blockKeyDelimiters:true})}function vr(t,e="tag",r={}){return ve(t,e,{allowEmpty:r.allowEmpty===true,maxLength:Ud,blockKeyDelimiters:true})}function Ft(t,e="index.name",r={}){return ve(t,e,{allowEmpty:r.allowEmpty===true,maxLength:xd,blockKeyDelimiters:true,disallowLeadingDollar:true})}function Mo(t,e="index.value"){return ve(t,e,{allowEmpty:true,maxLength:Lo})}function Wn(t){return typeof t=="string"&&t.slice(-1)==="."}function Gn(t,e){return ve(t,e,{allowEmpty:true,maxLength:Lo,blockKeyDelimiters:true})}function Vo(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=ve(t.record_id,"record_id",{allowEmpty:false,onlyAlphanumeric:true}):t?.unique_id&&(e.unique_id=t.unique_id),e}function Jn(t){if(t===void 0)return 0;if(typeof t=="number"){if(t>99||t<0)throw new f('"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 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&&t)throw new f("Unsigned users have no access to records with access group.",{code:"INVALID_REQUEST"});return t}var Sr=4503599627370496;function Rr(t){if(typeof t=="number"){if(t>Sr||t<-Sr)throw new f(`Number value should be within range -${Sr} ~ +${Sr}`,{code:"INVALID_PARAMETER"});return t}if(typeof t=="boolean")return t;if(typeof t=="string")return Mo(t,"index.value");throw new f('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function qo(t,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 t)throw new f('"index.range" type should match the type of "index.value".',{code:"INVALID_PARAMETER"});return typeof t=="string"?Wn(e.index.name)?Gn(t,"index.range"):Mo(t,"index.range"):t}var Tr={},Fd=10080*60,Ld=3600,Bo=2;function Md(t,e){if(!e)return String(Bo);let r=Math.max(60,t-300)*1e3;return Bo+"."+Math.floor(Date.now()/r)}function Vd(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 $o(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 Ko(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 pt(t,e,r=false,n=false){let i={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:{}},s=false,o=[];function a(l){let d=l=="**"?"private":parseInt(l);return d=d==0?"public":d==1?"authorized":d==99?"admin":d,d}let c={ip:l=>{let d=l.split("#"),h=d[0];d.length>1&&(i.unique_id=d.slice(1).join("#")),h.slice(-1)==="R"?(i.readonly=true,h=h.slice(0,-1)):i.readonly=false,/^\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}$/.test(h)&&(h=h.split("-").join("."),s=true),i.ip=h;},rec:l=>{if(!l)return;i.record_id=l;let d=l.substring(0,l.length-9),h=fe(d);i.uploaded=h;},usr:l=>{i.user_id=l;},tbl:l=>{if(l&&!i.table.name){let d=l.split("/");i.table.name=se(d[0]),i.table.access_group=a(d[2]),d?.[3]&&(i.table.subscription.is_subscription_record=true);}},usr_tbl:l=>{let d=l.split("/");i.user_id||(i.user_id=d[0]),i.table.name||(i.table.name=se(d[1]),i.table.access_group=a(d[3]),d?.[4]&&(i.table.subscription.is_subscription_record=true));},idx:l=>{if(!l)return;let d=l.split("!"),h=se(d.splice(0,1)[0]),p=qd("!"+d.join("!"));i.index={name:h,value:p};},ref:l=>{l&&(i.reference=l.split("/")[0]);},tags:l=>{i.tags=Array.isArray(l)?l.map(d=>se(d)):l;},upd:l=>{i.updated=l;},acpt_mrf:l=>{i.source.prevent_multiple_referencing=!l;},ref_limt:l=>{i.source.referencing_limit=l;},rfd:l=>{i.referenced_count=l;},bin:async l=>{let d={},h=i?.reference||null;if(Array.isArray(l)){let p=await Promise.all(l.map(async g=>{try{let m=g.split("/").slice(3).join("/"),y=m.split("/");if(y.length<12)return null;let b=y[y.length-1],E=y[10];if(E==="__data__"&&b==="__json__.json")return {isDataFile:!0,rawUrl:g};let v=br(E),x=y[9],P=y[8],N=a(y[6]),O=g,M=N!=="public"&&Vd.call(this,y)?{expires:Ld,browserCache:Fd}:null;if(N!=="public")try{O=await Ye.bind(this)(g,{dataType:"endpoint",_ref:h});}catch(C){console.error("Error getting signed url for private file:",C),O=g;}let U={access_group:N,filename:b,url:O,path:m,size:v?v.plainSize:fe(x),uploaded:fe(P),getFile:(C,V)=>{let B={dataType:C||"download",progress:V,_ref:h},Ue=()=>Ye.bind(this)(O,Object.assign({},B,{_update:U}));return M?Ye.bind(this)(g,Object.assign({},B,M)).catch(()=>Ue()):Ue()}};return v&&(U.encrypted=!0,U.stored_size=fe(x)),{pathKey:v?v.key:E,obj:U}}catch{return null}}));for(let g of p)if(g&&!g.isDataFile){if(d[g.pathKey]){d[g.pathKey].push(g.obj);continue}d[g.pathKey]=[g.obj];}}i.bin=d;},prv_acs:l=>{for(let d in l)["notify_subscribers","upload_to_feed","feed_referencing_records","notify_referencing_records"].includes(d)?i.table.subscription[d]=l[d]:d==="referencing_index_restrictions"&&Array.isArray(l[d])?i.source[d]=l[d].map(p=>p&&typeof p=="object"&&typeof p.name=="string"?Object.assign({},p,{name:se(p.name)}):p):i.source[d]=l[d];},data:async l=>{let d={access_group:i.table.access_group,table_name:i.table.name,user_id:i.user_id,record_id:i.record_id,unique_id:i.unique_id},h=()=>{F.call(this)&&(i.encrypted={status:"failed",reason:"DATA_UNAVAILABLE"});},p=async m=>{if(n||!F.call(this)&&!mr(m))return m;let y=await Dn.bind(this)(m,d);return y.flag&&(i.encrypted=y.flag),y.value},g=$o(l);if(g!==l){i.data=await p(g);return}if(l&&typeof l=="object"&&!Array.isArray(l)&&typeof l.__data__=="string"&&Object.keys(l).length===1&&l.__data__.endsWith("/__data__/__json__.json")){let m=l.__data__,y=o.find(b=>b.endsWith(m))||null;if(!y&&!r&&h(),y){if(r){i.data=l;return}try{let b=await Ye.bind(this)(y,{dataType:"blob",_ref:i.reference||null}),E=await Ko(b);i.data=await p(JSON.parse(E));}catch(b){console.error("Failed to fetch offloaded record data:",b),i.data=null,h();}return}}i.data=await p(l);}};if(t.record_id)return t;if(Array.isArray(t.bin))for(let l of t.bin)try{if(typeof l!="string")continue;let d=l.split("/").slice(3);d.length>=12&&d[10]==="__data__"&&d[d.length-1]==="__json__.json"&&o.push(l);}catch{}let u=[];for(let l in c)if(t.hasOwnProperty(l)){let d=c[l](t[l]);d instanceof Promise&&u.push(d);}return s&&(i.user_id="anonymous:"+i.user_id),await Promise.all(u),i}function qd(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 f("Value parse error.",{code:"PARSE_ERROR"})}default:return t}}async function jo(t){let{endpoints:e}=t;if(typeof e=="string"&&(e=[e]),!Array.isArray(e))throw new f('"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(pt.bind(this)(r[i]));return Promise.all(n)}async function Ye(t,e){if(typeof t!="string")throw new f('"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("/"),l=c[2].split("."),d=null;l.length===3&&l[1]==="skapi"&&(d=l[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 f("Invalid file url.",{code:"INVALID_PARAMETER"})}let g=d?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:v=>v}),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:fe(h[9]),uploaded:fe(h[8])};let m=t.split("/").slice(-1)[0],y=e.expires;if(y){if(!a)throw new f("Expires option can only be used on skapi cdn endpoints.",{code:"INVALID_PARAMETER"});if(y<0)throw new f('"config.expires" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});let v={request:d?"get-host":"get",id:d||h[5],key:r.split("?")[0],expires:y};g&&(v.service=g);let x=e.browserCache,P={auth:true};if(x){if(x<0)throw new f('"config.browserCache" should be > 0. (seconds)',{code:"INVALID_PARAMETER"});P.method="get",P.stableGateway=true,v.browser_cache=x;let N=this.session?.idToken?.payload?.sub||this.user?.user_id;N&&(v.uid=N),v.nocache=Md(y,e.refresh);}t=(await I.bind(this)("get-signed-url",v,P)).url;}else if(p){let v=Math.floor(Date.now()/1e3);if(!this.bearerToken&&(!this.session?.idToken?.payload?.exp||this.session.idToken.payload.exp<v)){this.log("getFile:requesting new token",null);try{await Z.bind(this)().getSession({refreshToken:!0}),this.log("getFile:received new tokens",{exp:this.session?.idToken?.payload?.exp,currTime:v,expiresIn:this.session?.idToken?.payload?.exp-v,token:this.session?.accessToken?.jwtToken,refreshToken:this.session?.refreshToken?.token});}catch(O){throw this.log("getFile:new token error",O),new f("User login is required.",{code:"INVALID_REQUEST"})}}let x=this.bearerToken||this.session?.idToken?.jwtToken;if(!x||!this.user?.user_id)throw new f("User login is required.",{code:"INVALID_REQUEST"});t+=`${t.includes("?")?"&":"?"}t=${encodeURIComponent(x)}`;let P=h[6]==="**"?"**":parseInt(h[6]),N=this.user?.access_group??-1;if(this.user.user_id!==h[3]&&(P==="**"||N<P)){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 M=await this.requestPrivateRecordAccessKey({record_id:O,reference_id:e?._ref});t+=`&p=${encodeURIComponent(M)}`;}catch{}}}if((F.call(this)?Bn(t):null)&&e?.dataType!=="endpoint"&&e?.dataType!=="info"){let v=await I.bind(this)(t,null,{method:"get",contentType:null,responseType:"blob",fetchOptions:{progress:e?.progress}},{ignoreService:true}),x=await oo.bind(this)(t,v);if(e?.dataType==="blob")return x;if(e?.dataType==="text")return await Ko(x);if(e?.dataType==="base64")return await new Promise((O,M)=>{let U=new FileReader;U.onloadend=()=>O(U.result),U.onerror=()=>M(U.error),U.readAsDataURL(x);});let P=URL.createObjectURL(x),N=document.createElement("a");return N.href=P,document.body.appendChild(N),N.setAttribute("download",m),N.click(),document.body.removeChild(N),setTimeout(()=>URL.revokeObjectURL(P),6e4),null}if(e?.dataType==="endpoint")return e._update&&(e._update.url=t),t;if(e?.dataType==="download"){let v=document.createElement("a");return v.href=t,document.body.appendChild(v),v.setAttribute("download",m),v.target="_blank",v.click(),document.body.removeChild(v),null}return new Promise(async(v,x)=>{try{let P=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=()=>v(N.result),N.readAsDataURL(P);}else v(P);}catch(P){if(e?.browserCache&&!e?.refresh)try{v(await Ye.bind(this)(r,Object.assign({},e,{refresh:!0})));return}catch(N){x(N);return}x(P);}})}function Ir(t,e){return `${t||this.service}/${e||this.owner}`}function Yn(t,e){let r=this.__my_unique_ids[t];return r?r[e]:void 0}function Ho(t,e,r){this.__my_unique_ids[t]||(this.__my_unique_ids[t]={}),this.__my_unique_ids[t][e]=r;}function Bd(t,e){this.__my_unique_ids[t]&&delete this.__my_unique_ids[t][e];}async function Wo(t,e=false){t=K(t,{ignoreEmpty:true}).data||{};let r=Ir.bind(this)(t?.service,t?.owner),n="",i=Vo(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=Yn.bind(this)(r,n);s&&(e?Bd.bind(this)(r,n):t.record_id=s);}}else {let s=await Q.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)),typeof t?.table=="string"&&(t.table={name:t.table,access_group:0}),t.index&&t.index.hasOwnProperty("range")&&t.index.hasOwnProperty("condition")&&delete t.index.range;let c=u=>({table:{name:l=>gt(l,"table.name"),access_group:Jn.bind(this),subscription:l=>_.UserId(l,'User ID in "subscription"')},reference:"string",index:{name:["$updated","$uploaded","$referenced_count","$user_id",l=>Ft(l,"index.name")],value:l=>{let d={$updated:"number",$uploaded:"number",$referenced_count:"number",$user_id:_.UserId};if(d.hasOwnProperty(u.index.name)){let h=d[u.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"&&Wn(u.index.name)?Gn(l,"index.value"):Rr(l)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:l=>qo(l,u)},tag:l=>{if(l==null)return l;if(typeof l=="string")return vr(l,"tag");throw new f('"tag" should be type: string.',{code:"INVALID_PARAMETER"})},private_key:"string"});t=_.Params(t||{},c(t),a||s?[]:["table"],{ignoreEmpty:true});}return {query:t,is_reference_fetch:n}}async function Go(t,e){await this.__connection;let r=await Wo.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(pt.bind(this)(i.list[o]));return i.list=await Promise.all(s),i}function Jo(t){let e="",r=[],n=Ir.bind(this)(t?.service,t?.owner),i=_.Params(t||{},{record_id:o=>{let a=typeof o=="string"?Yn.bind(this)(n,o):void 0;return a||ve(o,"record_id",{allowEmpty:false})},unique_id:["string",null],readonly:"boolean",table:{name:o=>gt(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:Jn.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:u=>Ft(u,'"name" in "index_restrictions"'),value:u=>Rr(u),condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq","!=","ne",()=>null],range:u=>{if(u!==null&&typeof o.value!=typeof u)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 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=Yn.bind(this)(n,o);return a||o}if(typeof o!="object")throw new f('"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),ve(a,"reference.record_id",{allowEmpty:false,onlyAlphanumeric:true}))})}},index:[null,{name:o=>Ft(o,"index.name"),value:o=>Rr(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=>vr(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 l=c.url.split("/").slice(0,3).join("/")+"/"+c.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&&(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 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:r}}async function Yo(t){if(await this.__connection,!Array.isArray(t)||!t.length)throw new f('"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 f(`"params[${g}]" should be type: <object>.`,{code:"INVALID_PARAMETER"});let m=Jo.bind(this)(p),y=m.config;if(F.call(this)){let b=Object.prototype.hasOwnProperty.call(y,"data"),E=await Cn.bind(this)(y.data,p,b);E.encrypted&&(y.data=E.send,s[g]=E.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 f('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 f('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 l=await I.bind(this)("post-record",a,c),d=await Promise.all(l.map((p,g)=>pt.bind(this)(p,"called from postRecord",false,s.hasOwnProperty(g))));for(let p=0;p<d.length;p++)s.hasOwnProperty(p)&&d[p]&&!d[p].error&&(d[p].data=s[p],d[p].encrypted={status:"encrypted"});let h=Ir.bind(this)(r,n);for(let p=0;p<l.length;p++){let g=l[p],m=d[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&&Ho.bind(this)(h,m.unique_id,m.record_id);}return d}async function zo(t,e,r){if(await this.__connection,!e)throw new f('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=Jo.bind(this)(e),i=n.config,s=n.progress,o=n.is_reference_post,a={auth:!!this.__user,method:"post"},c=[],u=K(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 l=e?.data!==void 0?e.data:u.data,d=l!==void 0,h=await Cn.bind(this)(l,e,d),p=null;p=Object.assign({},i),delete p.data,h.omit||(p.data=h.send);let g={};typeof s=="function"&&(g.progress=s),Object.keys(g).length&&Object.assign(a,{fetchOptions:g});let m=await I.bind(this)("post-record",p,a);if(h.encrypted&&m?.rec&&Fs.bind(this)(m.rec,h.dek),re()&&c.length){let E=new FormData;for(let P of c)E.append(P.name,P.file,P.file.name);let v={record_id:m.rec,progress:s};i.hasOwnProperty("service")&&(v.service=i.service);let{bin_endpoints:x}=await Ar.bind(this)(E,v);m.bin?m.bin.push(...x):m.bin=x;}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"),b=await pt.bind(this)(m,"called from postRecord",true,h.encrypted);if(y&&(b.data=u.data),h.encrypted&&(b.data=h.plain,b.encrypted={status:"encrypted",recipients:Object.keys(h.send.k||{})}),b.unique_id){let E=Ir.bind(this)(i?.service,i?.owner);Ho.bind(this)(E,b.unique_id,b.record_id),re()&&(this.__uniqueIdsPersistTimer!==null&&clearTimeout(this.__uniqueIdsPersistTimer),this.__uniqueIdsPersistTimer=setTimeout(()=>{this.__uniqueIdsPersistTimer=null;try{window.sessionStorage.setItem(`${E}:uniqueids`,JSON.stringify(this.__my_unique_ids[E]||{}));}catch{}},500));}return b}async function Qo(t,e){let r=await I.bind(this)("get-table",_.Params(t||{},{table:i=>gt(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=se(i.table));}return r}async function Xo(t,e){if(!t?.table)throw new f('"table" is required.',{code:"INVALID_PARAMETER"});let r=_.Params(t||{},{table:s=>gt(s,"table",{allowEmpty:true}),index:s=>Ft(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 ve(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(r.hasOwnProperty("order")){if(!r.order?.by)throw new f('"order.by" is required.',{code:"INVALID_PARAMETER"});if(r.order.hasOwnProperty("condition")&&!r.order.hasOwnProperty("value"))throw new f('"value" is required for "condition".',{code:"INVALID_PARAMETER"});if(r.hasOwnProperty("index")&&r.index.substring(r.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 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:se(o[1]),index:se(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 Zo(t,e){let r=await I.bind(this)("get-tag",_.Params(t||{},{table:n=>gt(n,"table",{allowEmpty:true}),tag:n=>vr(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:se(i[1]),tag:se(i[0]),number_of_records:n.cnt_rec}})),r}async function ea(t,e){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}function $d(t){if(!t||typeof t!="object")return null;let e="",r="",n=0;if(typeof t.usr_tbl=="string"){let s=t.usr_tbl.split("/");e=s[0]||"",r=se(s[1]||""),n=s[3];}else if(typeof t.tbl=="string"){let s=t.tbl.split("/");r=se(s[0]||""),n=s[2],e=t.usr||"";}else return null;let i="";if(typeof t.ip=="string"){let s=t.ip.indexOf("#");s>=0&&(i=t.ip.slice(s+1));}return {access_group:n==="**"?"private":parseInt(n),table_name:r,user_id:e,record_id:t.rec||"",unique_id:i}}async function ta(t,e){await this.__connection;let r=await Wo.bind(this)(t,true),n=r.is_reference_fetch,i=await I.bind(this)("del-records",r.query,{auth:true,fetchOptions:e});if(n&&typeof i?.reference_private_key=="string"&&(this.__private_access_key[n]=i.reference_private_key),Array.isArray(i?.list)){for(let s of i.list)if(s&&typeof s=="object"&&"data"in s&&(s.data=$o(s.data),F.call(this)&&mr(s.data))){let o=$d(s);if(o){let a=await Dn.bind(this)(s.data,o);s.data=a.value,a.flag&&(s.encrypted=a.flag);}else s.data=null,s.encrypted={status:"failed",reason:"BINDING_MISMATCH"};}}return i?.message||i}async function ra(t){if(F.call(this)){let e=typeof t.user_id=="string"?[t.user_id]:t.user_id;Array.isArray(e)&&e.length&&await qn.bind(this)(t.record_id,e);}return oa.bind(this)({record_id:t.record_id,user_id:t.user_id,execute:"add"})}async function na(t){let e=await oa.bind(this)({record_id:t.record_id,user_id:t.user_id||null,execute:"remove"});if(F.call(this)){let r=typeof t.user_id=="string"?[t.user_id]:t.user_id;await zs.bind(this)(t.record_id,Array.isArray(r)&&r.length?r:null);}return e}async function ia(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 f("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 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 I.bind(this)("grant-private-access",r,{auth:true,fetchOptions:e});return i.list=i.list.map(n),i}function sa(t){let e=t.record_id,r=t.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(r&&typeof r!="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(Tr[e])return Tr[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 f("Invalid private access key response.",{code:"ERROR"});return this.__private_access_key[e]=s,s}).finally(()=>{delete Tr[e];});return Tr[e]=n,n}function oa(t){t.execute;let r=_.Params(t,{record_id:"string",user_id:n=>{if(!n)throw new f("User ID is required.",{code:"INVALID_PARAMETER"});let i=n;if(typeof i=="string"&&(i=[i]),i.length>100)throw new f("Cannot process more than 100 users at once.",{code:"INVALID_REQUEST"});for(let s of i)_.UserId(s,'User ID in "user_id"');return i},execute:["add","remove"]},["execute","record_id","user_id"]);return r.user_id||(r.user_id=null),I.bind(this)("grant-private-access",r,{auth:true})}var D={},Y={},_e={},Te={},Re={},Pr={},Ur={};function aa(t,e,r){t[e]||(t[e]=[]),t[e].push(r);}async function xr(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 Qn(t,e){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});let r=await this.__socket;async function n(i,s,o){this.log("answerSdpOffer from",s),await D[s].setRemoteDescription(new RTCSessionDescription(i));let a=await D[s].createAnswer();await D[s].setLocalDescription(a),o.send(JSON.stringify({action:"rtc",uid:s,content:{sdpanswer:a},token:this.session.accessToken.jwtToken}));}D?.[e]?t?(await xr(Ur,e,i=>n.bind(this)(i,e,r)),await n.bind(this)(t,e,r)):await xr(Ur,e,i=>n.bind(this)(i,e,r)):t&&aa(Ur,e,t);}async function Xn(t,e){if(this.log("receiveIceCandidate",t),D?.[e]&&D[e]?.remoteDescription&&D[e]?.remoteDescription?.type){if(!t)return xr(Pr,e,r=>D[e].addIceCandidate(r));await xr(Pr,e,r=>D[e].addIceCandidate(r)),await D[e].addIceCandidate(t);}else aa(Pr,e,t);}async function be(t){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebRTC is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});_.Params(t,{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:r,close_all:n=false}=t||{};if(!n&&!r)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 Ur[s],delete Pr[s],Y[s]&&Object.values(Y[s]).forEach(o=>{o.readyState!=="closed"&&o.close();}),delete Y[s],D?.[s]){D[s].connectionState!=="closed"&&(D[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:D[s],timestamp:new Date().toISOString(),state:D[s].connectionState,iceState:D[s].iceConnectionState,signalingState:D[s].signalingState};Re[s]&&Re[s](o),this.log("closeRTC",o);}delete Re[s],delete Te[s],delete _e[s],delete D[s];};if(n)for(let s in D)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 ca(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 ua(t,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"});t=_.Params(t,{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: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 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}]};D?.[r]||(D[r]=new RTCPeerConnection(s)),t?.media&&(this.__mediaStream=await ca(t.media),this.__mediaStream.getTracks().forEach(o=>{D[r].addTrack(o,this.__mediaStream);})),Re[r]=e,Y[r]||(Y[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(Y[r]).includes(c))throw new f(`Data channel with the protocol "${c}" already exists.`,{code:"INVALID_REQUEST"});let u=D[r].createDataChannel(c,a);Y[r][c]=u;}for(let o in Y[r]){let a=Y[r][o];fa.bind(this)(r,a);}return da.bind(this)(r,["onnegotiationneeded"]),await zn.bind(this)(r),{hangup:()=>_e[r]&&_e[r](false),connection:new Promise(o=>{_e[r]=(a=>{if(this.log("receiver picked up the call",r),!a)return be.bind(this)({cid:r}),null;D[r].onnegotiationneeded=()=>{this.log("onnegotiationneeded",`sending offer to "${r}".`),zn.bind(this)(r),Re[r]&&Re[r]({type:"negotiationneeded",target:D[r],timestamp:new Date().toISOString(),signalingState:D[r].signalingState,connectionState:D[r].iceConnectionState,gatheringState:D[r].iceGatheringState});},o({target:D[r],channels:Y[r],hangup:()=>be.bind(this)({cid:r}),media:this.__mediaStream});}).bind(this);})}}function la(t){return async(e,r)=>{e=e||{},e=K(e).data;let n=t.sender_cid,i=await this.__socket;if(!Te[n])return null;if(typeof r!="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 D?.[n]||(D[n]=new RTCPeerConnection({iceServers:[{urls:s}]})),e?.media&&(this.__mediaStream=await ca(e.media),this.__mediaStream.getTracks().forEach(o=>{D[n].addTrack(o,this.__mediaStream);})),delete Te[n],Re[n]=r,Y[n]||(Y[n]={}),D[n].ondatachannel=o=>{this.log("ondatachannel",`received data channel "${o.channel.label}".`);let a=o.channel;Y[n][a.label]=a,fa.bind(this)(n,a);},da.bind(this)(n,["onnegotiationneeded"]),await Qn.bind(this)(null,n),await Xn.bind(this)(null,n),i.send(JSON.stringify({action:"rtc",uid:n,content:{pickup:this.user.user_id},token:this.session.accessToken.jwtToken})),{target:D[n],channels:Y[n],hangup:()=>be.bind(this)({cid:n}),media:this.__mediaStream}}}async function zn(t){if(!this?.session?.accessToken?.jwtToken)throw new f("Access token is required.",{code:"INVALID_PARAMETER"});this.log("sendOffer",t);let e=await this.__socket,r=await D[t].createOffer();await D[t].setLocalDescription(r);let n=D[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 Kd(t,e){if(!this?.session?.accessToken?.jwtToken)throw new f("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=Re[e]||(()=>{}),i=t.candidate;this.log("ice gathering state set to",D[e].iceGatheringState),n({type:"icecandidate",target:D[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:D[e].iceGatheringState,connectionState:D[e].iceConnectionState}),r.send(JSON.stringify({action:"rtc",uid:e,content:{candidate:i},token:this.session.accessToken.jwtToken}));}function da(t,e){let r=new Set(e),n=Re[t]||(o=>{}),i=D[t],s={ontrack:o=>{n({type:"track",target:i,timeStamp:o.timeStamp,streams:o.streams,track:o.track});},onicecandidate:o=>{Kd.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:()=>{zn.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")&&be.bind(this)({cid:t});}};for(let[o,a]of Object.entries(s))r.has(o)||(i[o]=a);}function fa(t,e,r){let n=new Set(r),i=Re[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),Y[t]&&(delete Y[t][e.label],Object.keys(Y[t]).length===0&&be.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 $e,Be=null,Lt=true,mt=0;async function jd(){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 t=await this.record_endpoint;return new WebSocket(t.websocket_private+"?token="+this.session.accessToken.jwtToken)}var Zn=null;async function ha(){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});Lt=true;let t=this.__socket?await this.__socket:this.__socket;be.bind(this)({close_all:true}),$e&&ei.bind(this)({group:null}),mt=0,Be&&(Be.terminate(),Be=null);try{t&&t.close();}catch{}return window.removeEventListener("visibilitychange",Zn),this.__socket=null,null}async function Cr(t,e=50,r){if(typeof window>"u"||window._runningInNodeJS)throw new f("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});if(typeof t!="function")throw new f("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(Lt&&(Zn=()=>{!document.hidden&&!Lt&&Cr.bind(this)(t,0,"reconnect");},this.__socket instanceof Promise))return this.__socket;Be&&(Be.terminate(),Be=null),this.__socket=new Promise(async n=>{await ft.bind(this)(),setTimeout(async()=>{let i=await jd.bind(this)();i.onopen=()=>{Lt=false,mt=0,r!=="reconnect"&&window.addEventListener("visibilitychange",Zn),this.log("realtime onopen","Connected to WebSocket server."),t({type:"success",message:"Connected to WebSocket server."}),$e&&i.send(JSON.stringify({action:"joinRoom",rid:$e,token:this.session.accessToken.jwtToken}));let s=`
|
|
206
|
+
var Ec=Object.create;var et=Object.defineProperty;var mi=Object.getOwnPropertyDescriptor;var Sc=Object.getOwnPropertyNames;var vc=Object.getPrototypeOf,Rc=Object.prototype.hasOwnProperty;var Tc=(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),Wt=(t,e)=>{for(var r in e)et(t,r,{get:e[r],enumerable:true});},yi=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Sc(e))!Rc.call(t,i)&&i!==r&&et(t,i,{get:()=>e[i],enumerable:!(n=mi(e,i))||n.enumerable});return t};var rt=(t,e,r)=>(r=t!=null?Ec(vc(t)):{},yi(!t||!t.__esModule?et(r,"default",{value:t,enumerable:true}):r,t)),nt=t=>yi(et({},"__esModule",{value:true}),t),R=(t,e,r,n)=>{for(var i=mi(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)=>Tc(t,typeof e!="symbol"?e+"":e,r);var Ai=ne(Jt=>{Jt.byteLength=Uc;Jt.toByteArray=Cc;Jt.fromByteArray=Nc;var ve=[],ue=[],Pc=typeof Uint8Array<"u"?Uint8Array:Array,$r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(We=0,bi=$r.length;We<bi;++We)ve[We]=$r[We],ue[$r.charCodeAt(We)]=We;var We,bi;ue[45]=62;ue[95]=63;function wi(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 Uc(t){var e=wi(t),r=e[0],n=e[1];return (r+n)*3/4-n}function xc(t,e,r){return (e+r)*3/4-r}function Cc(t){var e,r=wi(t),n=r[0],i=r[1],s=new Pc(xc(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 Dc(t){return ve[t>>18&63]+ve[t>>12&63]+ve[t>>6&63]+ve[t&63]}function kc(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(Dc(n));return i.join("")}function Nc(t){for(var e,r=t.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(kc(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 Ei=ne(Kr=>{Kr.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)};Kr.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 vi=ne((Af,Si)=>{var Oc={}.toString;Si.exports=Array.isArray||function(t){return Oc.call(t)=="[object Array]"};});var er=ne(st=>{var jr=Ai(),it=Ei(),Ii=vi();st.Buffer=A;st.SlowBuffer=qc;st.INSPECT_MAX_BYTES=50;A.TYPED_ARRAY_SUPPORT=globalThis.TYPED_ARRAY_SUPPORT!==void 0?globalThis.TYPED_ARRAY_SUPPORT:Fc();st.kMaxLength=Yt();function Fc(){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 Yt(){return A.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function ke(t,e){if(Yt()<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 Wr(this,t)}return Pi(this,t,e,r)}A.poolSize=8192;A._augment=function(t){return t.__proto__=A.prototype,t};function Pi(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?Vc(t,e,r,n):typeof e=="string"?Mc(t,e,r):Bc(t,e)}A.from=function(t,e,r){return Pi(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 Ui(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 Lc(t,e,r,n){return Ui(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 Lc(null,t,e,r)};function Wr(t,e){if(Ui(e),t=ke(t,e<0?0:Gr(e)|0),!A.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}A.allocUnsafe=function(t){return Wr(null,t)};A.allocUnsafeSlow=function(t){return Wr(null,t)};function Mc(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=xi(e,r)|0;t=ke(t,n);var i=t.write(e,r);return i!==n&&(t=t.slice(0,i)),t}function Hr(t,e){var r=e.length<0?0:Gr(e.length)|0;t=ke(t,r);for(var n=0;n<r;n+=1)t[n]=e[n]&255;return t}function Vc(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=Hr(t,e),t}function Bc(t,e){if(A.isBuffer(e)){var r=Gr(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"||ou(e.length)?ke(t,0):Hr(t,e);if(e.type==="Buffer"&&Ii(e.data))return Hr(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Gr(t){if(t>=Yt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Yt().toString(16)+" bytes");return t|0}function qc(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(!Ii(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 xi(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 zt(t).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return r*2;case "hex":return r>>>1;case "base64":return Li(t).length;default:if(n)return zt(t).length;e=(""+e).toLowerCase(),n=true;}}A.byteLength=xi;function $c(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 Xc(this,e,r);case "utf8":case "utf-8":return ki(this,e,r);case "ascii":return zc(this,e,r);case "latin1":case "binary":return Qc(this,e,r);case "base64":return Jc(this,e,r);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Zc(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?ki(this,0,e):$c.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 Ci(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:Ri(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):Ri(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Ri(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 Ci(this,e,r,n,true)};A.prototype.lastIndexOf=function(e,r,n){return Ci(this,e,r,n,false)};function Kc(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 jc(t,e,r,n){return Zt(zt(e,t.length-r),t,r,n)}function Di(t,e,r,n){return Zt(iu(e),t,r,n)}function Hc(t,e,r,n){return Di(t,e,r,n)}function Wc(t,e,r,n){return Zt(Li(e),t,r,n)}function Gc(t,e,r,n){return Zt(su(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 Kc(this,e,r,n);case "utf8":case "utf-8":return jc(this,e,r,n);case "ascii":return Di(this,e,r,n);case "latin1":case "binary":return Hc(this,e,r,n);case "base64":return Wc(this,e,r,n);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return Gc(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 Jc(t,e,r){return e===0&&r===t.length?jr.fromByteArray(t):jr.fromByteArray(t.slice(e,r))}function ki(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 Yc(n)}var Ti=4096;function Yc(t){var e=t.length;if(e<=Ti)return String.fromCharCode.apply(String,t);for(var r="",n=0;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=Ti));return r}function zc(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 Qc(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 Xc(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+=nu(t[s]);return i}function Zc(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 Qt(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):Qt(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):Qt(this,e,r,false),r+2};function Xt(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):Xt(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):Xt(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):Qt(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):Qt(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):Xt(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):Xt(this,e,r,false),r+4};function Ni(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 Oi(t,e,r,n,i){return i||Ni(t,e,r,4),it.write(t,e,r,n,23,4),r+4}A.prototype.writeFloatLE=function(e,r,n){return Oi(this,e,r,true,n)};A.prototype.writeFloatBE=function(e,r,n){return Oi(this,e,r,false,n)};function Fi(t,e,r,n,i){return i||Ni(t,e,r,8),it.write(t,e,r,n,52,8),r+8}A.prototype.writeDoubleLE=function(e,r,n){return Fi(this,e,r,true,n)};A.prototype.writeDoubleBE=function(e,r,n){return Fi(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:zt(new A(e,i).toString()),c=a.length;for(o=0;o<n-r;++o)this[o+r]=a[o%c];}return this};var eu=/[^+\/0-9A-Za-z-_]/g;function tu(t){if(t=ru(t).replace(eu,""),t.length<2)return "";for(;t.length%4!==0;)t=t+"=";return t}function ru(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function nu(t){return t<16?"0"+t.toString(16):t.toString(16)}function zt(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 iu(t){for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r)&255);return e}function su(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 Li(t){return jr.toByteArray(tu(t))}function Zt(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 ou(t){return t!==t}});var Mi={};Wt(Mi,{default:()=>cu});var au,cu,Vi=tt(()=>{au={},cu=au;});var Zr={};Wt(Zr,{__assign:()=>Qr,__asyncDelegator:()=>Eu,__asyncGenerator:()=>Au,__asyncValues:()=>Su,__await:()=>Et,__awaiter:()=>gu,__classPrivateFieldGet:()=>Iu,__classPrivateFieldSet:()=>Pu,__createBinding:()=>yu,__decorate:()=>fu,__exportStar:()=>_u,__extends:()=>lu,__generator:()=>mu,__importDefault:()=>Tu,__importStar:()=>Ru,__makeTemplateObject:()=>vu,__metadata:()=>pu,__param:()=>hu,__read:()=>Bi,__rest:()=>du,__spread:()=>bu,__spreadArrays:()=>wu,__values:()=>Xr});function lu(t,e){zr(t,e);function r(){this.constructor=t;}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r);}function du(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 fu(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 hu(t,e){return function(r,n){e(r,n,t);}}function pu(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function gu(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 mu(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 yu(t,e,r,n){n===void 0&&(n=r),t[n]=e[r];}function _u(t,e){for(var r in t)r!=="default"&&!e.hasOwnProperty(r)&&(e[r]=t[r]);}function Xr(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 Bi(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 bu(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(Bi(arguments[e]));return t}function wu(){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 Au(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 Eu(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 Su(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 Xr=="function"?Xr(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 vu(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function Ru(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 Tu(t){return t&&t.__esModule?t:{default:t}}function Iu(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function Pu(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 zr,Qr,en=tt(()=>{zr=function(t,e){return zr=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]);},zr(t,e)};Qr=function(){return Qr=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},Qr.apply(this,arguments)};});var tn=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 qi=ne(tr=>{Object.defineProperty(tr,"__esModule",{value:true});tr.RawSha256=void 0;var fe=tn(),Uu=(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})();tr.RawSha256=Uu;});var $i,Ki,ji=tt(()=>{$i=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)},Ki=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 Hi(t){return new TextEncoder().encode(t)}function Wi(t){return new TextDecoder("utf-8").decode(t)}var Gi=tt(()=>{});var Ji={};Wt(Ji,{fromUtf8:()=>xu,toUtf8:()=>Cu});var xu,Cu,Yi=tt(()=>{ji();Gi();xu=t=>typeof TextEncoder=="function"?Hi(t):$i(t),Cu=t=>typeof TextDecoder=="function"?Wi(t):Ki(t);});var zi=ne(rr=>{Object.defineProperty(rr,"__esModule",{value:true});rr.convertToBuffer=void 0;var Du=(Yi(),nt(Ji)),ku=typeof Buffer<"u"&&Buffer.from?function(t){return Buffer.from(t,"utf8")}:Du.fromUtf8;function Nu(t){return t instanceof Uint8Array?t:typeof t=="string"?ku(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(t)}rr.convertToBuffer=Nu;});var Qi=ne(nr=>{Object.defineProperty(nr,"__esModule",{value:true});nr.isEmptyData=void 0;function Ou(t){return typeof t=="string"?t.length===0:t.byteLength===0}nr.isEmptyData=Ou;});var Xi=ne(ir=>{Object.defineProperty(ir,"__esModule",{value:true});ir.numToUint8=void 0;function Fu(t){return new Uint8Array([(t&4278190080)>>24,(t&16711680)>>16,(t&65280)>>8,t&255])}ir.numToUint8=Fu;});var Zi=ne(sr=>{Object.defineProperty(sr,"__esModule",{value:true});sr.uint32ArrayFrom=void 0;function Lu(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)}sr.uint32ArrayFrom=Lu;});var es=ne(Re=>{Object.defineProperty(Re,"__esModule",{value:true});Re.uint32ArrayFrom=Re.numToUint8=Re.isEmptyData=Re.convertToBuffer=void 0;var Mu=zi();Object.defineProperty(Re,"convertToBuffer",{enumerable:true,get:function(){return Mu.convertToBuffer}});var Vu=Qi();Object.defineProperty(Re,"isEmptyData",{enumerable:true,get:function(){return Vu.isEmptyData}});var Bu=Xi();Object.defineProperty(Re,"numToUint8",{enumerable:true,get:function(){return Bu.numToUint8}});var qu=Zi();Object.defineProperty(Re,"uint32ArrayFrom",{enumerable:true,get:function(){return qu.uint32ArrayFrom}});});var rs=ne(ar=>{Object.defineProperty(ar,"__esModule",{value:true});ar.Sha256=void 0;var ts=(en(),nt(Zr)),or=tn(),rn=qi(),nn=es(),$u=(function(){function t(e){if(this.hash=new rn.RawSha256,e){this.outer=new rn.RawSha256;var r=Ku(e),n=new Uint8Array(or.BLOCK_SIZE);n.set(r);for(var i=0;i<or.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, nn.isEmptyData)(e)||this.error))try{this.hash.update((0,nn.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, ts.__awaiter)(this,void 0,void 0,function(){return (0, ts.__generator)(this,function(e){return [2,this.digestSync()]})})},t})();ar.Sha256=$u;function Ku(t){var e=(0, nn.convertToBuffer)(t);if(e.byteLength>or.BLOCK_SIZE){var r=new rn.RawSha256;r.update(e),e=r.digest();}var n=new Uint8Array(or.BLOCK_SIZE);return n.set(e),n}});var on=ne(sn=>{Object.defineProperty(sn,"__esModule",{value:true});var ju=(en(),nt(Zr));(0, ju.__exportStar)(rs(),sn);});var gn={};Wt(gn,{default:()=>Ml});function Ml(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 mn=tt(()=>{});var ds=ne((ph,ls)=>{ls.exports=self.fetch||(self.fetch=(mn(),nt(gn)).default||(mn(),nt(gn)));});function _i(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 Lr,Mr,Vr=()=>Lr!==void 0?Lr:Lr=_i("fs"),Br=()=>Mr!==void 0?Mr:Mr=_i("path"),De=typeof globalThis<"u"?globalThis:void 0,Gt=De?.window;function Ic(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(Gt)Gt.global=Gt,Gt.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=Ic(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=Vr(),i=Br();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=Vr(),s=Br();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=Vr(),i=Br();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 qr=(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(er());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=(Vi(),nt(Mi));}catch{}function Jr(){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 uu(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 Yr=(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(Jr());return new t(i,n)},e.toString=function(){return uu(this)},t})();var ur=rt(on());var W=D;function D(t,e){t!=null&&this.fromString(t,e);}function ee(){return new D(null)}var Be,Hu=0xdeadbeefcafe,ns=(Hu&16777215)==15715070;function Wu(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 Gu(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 Ju(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 is=typeof navigator<"u";is&&ns&&navigator.appName=="Microsoft Internet Explorer"?(D.prototype.am=Gu,Be=30):is&&ns&&navigator.appName!="Netscape"?(D.prototype.am=Wu,Be=26):(D.prototype.am=Ju,Be=28);D.prototype.DB=Be;D.prototype.DM=(1<<Be)-1;D.prototype.DV=1<<Be;var an=52;D.prototype.FV=Math.pow(2,an);D.prototype.F1=an-Be;D.prototype.F2=2*Be-an;var Yu="0123456789abcdefghijklmnopqrstuvwxyz",cr=new Array,ot,he;ot=48;for(he=0;he<=9;++he)cr[ot++]=he;ot=97;for(he=10;he<36;++he)cr[ot++]=he;ot=65;for(he=10;he<36;++he)cr[ot++]=he;function ss(t){return Yu.charAt(t)}function zu(t,e){var r=cr[t.charCodeAt(e)];return r??-1}function Qu(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s;}function Xu(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 cn(t){var e=ee();return e.fromInt(t),e}function Zu(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=zu(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 el(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t;}function tl(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=ss(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+=ss(n));return i?s:"0"}function rl(){var t=ee();return D.ZERO.subTo(this,t),t}function nl(){return this.s<0?this.negate():this}function il(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 un(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 sl(){return this.t<=0?0:this.DB*(this.t-1)+un(this[this.t-1]^this.s&this.DM)}function ol(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 al(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 cl(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 ul(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 ll(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 dl(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 fl(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 hl(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-un(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 pl(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 gl(){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 ml(t){return this.compareTo(t)==0}function yl(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 _l(t){var e=ee();return this.addTo(t,e),e}function bl(t){var e=ee();return this.subTo(t,e),e}function wl(t){var e=ee();return this.multiplyTo(t,e),e}function Al(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 El(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 Sl(t){var e=ee();return t.copyTo(e),this.reduce(e),e}function vl(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 Rl(t,e){t.squareTo(e),this.reduce(e);}function Tl(t,e,r){t.multiplyTo(e,r),this.reduce(r);}at.prototype.convert=El;at.prototype.revert=Sl;at.prototype.reduce=vl;at.prototype.mulTo=Tl;at.prototype.sqrTo=Rl;function Il(t,e,r){var n=t.bitLength(),i,s=cn(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=un(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=Qu;D.prototype.fromInt=Xu;D.prototype.fromString=Zu;D.prototype.clamp=el;D.prototype.dlShiftTo=ol;D.prototype.drShiftTo=al;D.prototype.lShiftTo=cl;D.prototype.rShiftTo=ul;D.prototype.subTo=ll;D.prototype.multiplyTo=dl;D.prototype.squareTo=fl;D.prototype.divRemTo=hl;D.prototype.invDigit=gl;D.prototype.addTo=yl;D.prototype.toString=tl;D.prototype.negate=rl;D.prototype.abs=nl;D.prototype.compareTo=il;D.prototype.bitLength=sl;D.prototype.mod=pl;D.prototype.equals=ml;D.prototype.add=_l;D.prototype.subtract=bl;D.prototype.multiply=wl;D.prototype.divide=Al;D.prototype.modPow=Il;D.ZERO=cn(0);D.ONE=cn(1);function ln(t){return Ne.Buffer.from(new Yr().random(t).toString(),"hex")}var Pl=/^[89a-f]/i,Ul="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",xl="userAttributes.",qe=(function(){function t(r){this.N=new W(Ul,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=ln(128).toString("hex"),i=new W(n,16);return i},e.generateRandomString=function(){return ln(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=ln(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 ur.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 ur.Sha256(i);o.update(n);var a=o.digestSync(),c=new ur.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 xl},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=Pl.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 os=rt(er());var lr=(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(os.Buffer.from(n,"base64").toString("utf8"))}catch{return {}}},t})();function Cl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,dn(t,e);}function dn(t,e){return dn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},dn(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 Cl(e,t),e})(lr);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 ut=(function(t){function e(r){var n=r===void 0?{}:r,i=n.IdToken;return t.call(this,i||"")||this}return Dl(e,t),e})(lr);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(er()),pn=rt(on());var as="5.0.4";var kl="aws-amplify/"+as,hn={userAgent:kl,isReactNative:typeof navigator<"u"&&navigator.product==="ReactNative"},cs=function(){return hn.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 Nl=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ol=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dr=(function(){function t(){}var e=t.prototype;return e.getNowString=function(){var n=new Date,i=Ol[n.getUTCDay()],s=Nl[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={},Fl=(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})(),fr=(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=Fl;}}var e=t.prototype;return e.getStorage=function(){return this.storageWindow},t})();var Ll=typeof navigator<"u",us=Ll?hn.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 fr().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 dr,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 pn.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:us},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 dr,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 pn.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:us},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(ds());function ft(){}ft.prototype.userAgent=cs();var fs=function(e){var r=ft.category?" "+ft.category:"",n=ft.framework?" framework/"+ft.framework:"",i=""+ft.prototype.userAgent+r+n;return i};function Vl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,St(t,e);}function yn(t){var e=typeof Map=="function"?new Map:void 0;return yn=function(n){if(n===null||!ql(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 Bl(n,arguments,_n(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:false,writable:true,configurable:true}}),St(i,n)},yn(t)}function Bl(t,e,r){if(hs())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 hs(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch{}return (hs=function(){return !!t})()}function ql(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 _n(t){return _n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_n(t)}var $l=(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 Vl(e,t),e})(yn(Error)),ps=(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 $l(c.message,c.code,c.name,c.statusCode)):o(u);});})},e.requestWithRetry=function(n,i,s){var o=this,a=5*1e3;Wl(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":fs(),"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 hr={debug:function(){}};var Kl=function(e){var r="nonRetryable";return e&&e[r]};function gs(t,e,r,n){if(n===void 0&&(n=1),typeof t!="function")throw Error("functionToRetry must be a function");return hr.debug(t.name+" attempt #"+n+" with args: "+JSON.stringify(e)),t.apply(void 0,e).catch(function(i){if(hr.debug("error on "+t.name,i),Kl(i))throw hr.debug(t.name+" non retryable error",i),i;var s=r(n,e,i);if(hr.debug(t.name+" retrying in "+s+" ms"),s!==false)return new Promise(function(o){return setTimeout(o,s)}).then(function(){return gs(t,e,r,n+1)});throw i})}function jl(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 Wl(t,e,r){return gs(t,e,jl(r))}var Gl=55,bn=(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>Gl||!/^[\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 ps(d,a,c),this.advancedSecurityDataCollectionFlag=u!==false,this.storage=r.Storage||new fr().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 pr(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 Jl={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 wn(t,e){function r(i,s,o){if(!(typeof document>"u")){o=pr({},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,"",pr({},s,{expires:-1}));},withAttributes:function(i){return wn(this.converter,pr({},this.attributes,i))},withConverter:function(i){return wn(pr({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}wn(Jl,{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",An=BigInt(Fe.length),zl=2*1024*1024,Ql=["aud","cognito:username","event_id","exp","iat","iss","jti","origin_jti","secret_key","token_use"],ms={auth_time:"log",sub:"user_id"},Xl=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l"],As=["us31","us72","ap51","ap22","ap41","eu71","ap21","us32","us71","af51","ap31","ap43","ap23","ap42","ca01","eu01","eu72","eu51","eu73","eu11","me51","sa31"],ys=typeof TextEncoder<"u"?new TextEncoder:null;function Zl(){if(typeof globalThis<"u")return globalThis.Buffer}function G(t){if(ys)return ys.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 En(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=Zl();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 Es(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 Sn(){return typeof window>"u"||!!window?._runningInNodeJS}function se(){return !Sn()&&typeof document<"u"&&typeof document.createElement=="function"}function gr(t){let e;try{e=JSON.stringify(t);}catch{throw new l("Invalid data type.",{code:"INVALID_REQUEST"})}if(new Blob([e]).size>zl)throw new l("Data should not exceed 2MB",{code:"INVALID_REQUEST"})}function _s(t){return t===""||t==="on"||t==="true"}function bs(t){return t==="false"}function ws(t,e,r){e.name&&r(t,e.name,e.value);}var mr=se(),ed=typeof SubmitEvent<"u",td=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===""||_s(c.value)?s(n,c.name,true):bs(c.value)?s(n,c.name,false):c.value&&s(n,c.name,c.value):c.type==="checkbox"&&(_s(c.value)?s(n,c.name,false):bs(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(mr&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement))return a(t),gr(n),{data:n,files:i};if(mr&&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 gr(n),{data:n,files:i}}if(mr&&ed&&t instanceof SubmitEvent&&(t=t.target),mr&&td&&t instanceof HTMLFormElement){let c=t.querySelectorAll("input"),u=t.querySelectorAll("select"),d=t.querySelectorAll("textarea");for(let f=0;f<u.length;f++)ws(n,u[f],s);for(let f=0;f<d.length;f++)ws(n,d[f],s);for(let f=0;f<c.length;f++)a(c[f]);return gr(n),{data:n,files:i}}return gr(t),{data:t,files:i}}function vt(t){let e={};for(let r in t){let n=t[r];if(!Ql.includes(r))if(ms[r])e[ms[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 vn(t){if(t=ud(t),t.split("-").length===7){let e=t.split("-"),r,n;try{r=As[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 Rn(t,e){let r=As.indexOf(t.slice(0,4)),n=Xl[r],s=`${t.slice(4,-4)}-${n}${t.slice(-4)}-${e}`;return cd(s)}function rd(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*An+BigInt(n);}return e}function nd(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%An);r=Fe[i]+r,n/=An;}return r.length<e&&(r="0".repeat(e-r.length)+r),r}function id(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 sd(t){let e=0n;for(let r of t)e=(e<<8n)+BigInt(r);return e}function od(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 ad(t){let e=Array.from(En(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 cd(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=od(s),f=nd(sd(d));return `${u}-${f}`}function ud(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=rd(i),g=id(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=ad(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 Tn(...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 ld(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 dd(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 fd(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 hd(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 pd(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 gd(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 md(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:ld,PhoneNumber:dd,Birthdate:fd,Password:hd,Email:pd,Url:gd,Params:md};var oe="skapi.enc.v1",Rs=6e5,It=12,yr=null,ht=null;function Ts(){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 Is(){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 Ts()}function ge(){if(yr)return yr;let t=Is();if(!t.subtle)throw Ts();return yr=t.subtle,yr}function Pn(){try{return ge(),!0}catch{return false}}function ae(t){let e=Is(),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=En(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 _r(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 Ps(){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 br={name:"ECDH",namedCurve:"P-256"};async function Us(){let t=ge(),e=await t.generateKey(br,true,["deriveBits"]),r=new Uint8Array(await t.exportKey("raw",e.publicKey)),n=new Uint8Array(await t.exportKey("pkcs8",e.privateKey)),i=await Un(n);return {pubRaw:r,pkcs8:n,priv:i}}async function Un(t){return ge().importKey("pkcs8",t,br,false,["deriveBits"])}async function xs(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,br,false,[])}async function xn(t){return V(await _r(t))}async function Cs(t,e,r,n){let i=ge(),s=await xs(t),o=await i.generateKey(br,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 Ds(t,e,r,n,i,s){let o=ge(),a=await xs(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 yd(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 Cn(t){return G(JSON.stringify(t))}function Ct(t,e,r){return Tn(t,new Uint8Array([0]),G(e),new Uint8Array([0]),G(r))}var ze="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Pt=16,Ss=26,vs=28;function ks(t){let e=2166136261;for(let r=0;r<t.length;r++)e^=t[r],e=e*16777619>>>0;return e&1023}function Ns(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=ks(t);return e+=ze[i>>5&31]+ze[i&31],(e.match(/.{1,4}/g)||[]).join("-")}function Os(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!==vs)throw new l(`That does not look like a recovery code: expected ${vs} characters, got ${e.length}.`,{code:"ENCRYPTION_BAD_RECOVERY_CODE"});let r=e.slice(0,Ss),n=e.slice(Ss),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=ks(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 Dn(t,e,r){let n=await xt(t,e,r,32),i=await _e(n);return M(n),i}var In=[83,75,69,78,67,70],Fs=2,Ut=56,Ls=16,_d=4*1024*1024;function kn(t){if(!t||t.length<Ut)return false;for(let e=0;e<In.length;e++)if(t[e]!==In[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 bd(t,e,r){let n=Math.floor(r/4294967296);Qe(t,e,n),Qe(t,e+4,r>>>0);}function wd(t,e){return pt(t,e)*4294967296+pt(t,e+4)}async function Ms(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 Vs(t){return (await _r(Tn(G(`${oe}|dekid`),t))).subarray(0,8)}function Bs(t,e,r){return Cn([`${oe}|binchunk`,V(t),e,r])}function Ad(t,e,r,n,i,s){let o=new Uint8Array(Ut+s.length);return o.set(In,0),o[6]=Fs,o[7]=s.length?1:0,Qe(o,8,t),Qe(o,12,e),o.set(r,16),bd(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 qs(t,e,r,n,i=_d){let s=ae(Ls),o=await Ms(t,s,r.service,r.owner,r.recordOwner,r.recordId),a=await Vs(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=Ad(i,u,s,e.length,a,c),f=await _r(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,Bs(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 Ed(t){if(!kn(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+Ls),plainLen:wd(t,32),dekId:t.subarray(40,48),meta:n,headerLen:r}}async function $s(t,e,r){let n=Ed(e);if(n.version!==Fs)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 Vs(t);if(!yd(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 Ms(t,n.fileId,r.service,r.owner,r.recordOwner,r.recordId),o=await _r(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),Bs(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 Sd="skapi__keyring",Dt="__skapi_enc__",js=1,vd="skapi-enc",Ke="keys",On=new WeakMap;function Hs(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:Rs;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:Sd}}function L(){return On.get(this)||null}function Ws(t){if(!t){On.delete(this);return}On.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 Fn(){let t=L.call(this);if(t){t.user_id&&Gn.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 Gs(){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 Js(t,e){return typeof e=="string"&&e===t.cfg.table}function mt(){return `${this.service}/${this.owner}`}function Ln(t,e,r,n){let[i,s]=t.split("/");return Cn([oe,i,s,e,r,n])}function Ys(t,e,r,n,i){let[s,o]=t.split("/");return G(`${oe}|dekwrap|${s}|${o}|${e}|${r}|${n}|${i}`)}function Mn(t){return t.anch==="uid"?t.uid:t.anch==="rid"?t.rid:""}function Ar(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 zs="__skapi_no_access__";function ce(t,e,r){if(t.withheld!=="sentinel")return null;let n={[zs]:true,reason:e};return r&&(n.recipients=r),Object.freeze(n)}function Vn(t){return !!t&&typeof t=="object"&&t[zs]===true}var Rd=256*1024,Ot="__skenc_ct__",Qs="payload.bin",Td=`/${Ot}/${Qs}`;function Bn(t,e){return t===Ot&&e===Qs}async function Id(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:Ks(n.access_group),table:i,record:null};if(!r)return {group:n?.access_group!==void 0?Ks(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 Pd(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 Ks(t){return t==="private"||t==="**"?"private":t==="public"?0:t==="authorized"?1:t==="admin"?99:typeof t=="number"?t:0}function Nn(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 qn(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 Id.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(Nn.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(Ht=>(Z.bin[Ht]||[]).some(gi=>gi&&gi.encrypted));if(!At&&s){let Ht=n.dek.get(s);Ht&&(M(Ht.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&&Nn.call(this,re,i,"making it non-private");let pi=!!re&&!!re.bin&&Object.keys(re.bin).some(Z=>(re.bin[Z]||[]).some(At=>At&&At.encrypted));if(pi&&($=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:pi?"decrypt":void 0}}if(Js(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(Vn.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&&Nn.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 Ps();y=$.bytes,w=$.key,b={};}let E=o?"uid":s?"rid":"new",P=E==="uid"?o:E==="rid"?s:"",U=Ln(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||Mn(m)!==P)&&(b=await Ud.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]:js,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>Rd&&(F=K(ye),k.ct="",k.ct_ref=Td,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 Xs(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 Ud(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 Jn.call(this,c),d={[i]:r[i]};for(let f of c){let h=u[f];h&&(d[f]=await Zs.call(this,e,h,n,o,i,f,a));}return d}async function Zs(t,e,r,n,i,s,o){let a=Ys(r,n,i,s,e.fpr),c=Ct(o,s,e.fpr),u=await Cs(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 eo(t,e){if(!Ar(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(Js(r,e.table_name))return {value:t};if(t[Dt]!==js)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=Mn(t),a=Ln(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 Ds(r.ikPriv,K(i.epk),K(i.iv),K(i.ct),Ys(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 Pd.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 to(t,e){let[r,n]=t.split("/");return G(`${oe}|recovery|${r}|${n}|${e}`)}function ro(t,e,r){let[n,i]=t.split("/");return G(`${oe}|rk|${n}|${i}|${e}|HKDF-SHA256|${r}`)}function no(t,e){let[r,n]=t.split("/");return G(`${oe}|self|${r}|${n}|${e}`)}function io(t,e){let[r,n]=t.split("/");return G(`${oe}|ik|${r}|${n}|${e}`)}async function Er(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 $n(t,e,r){let n=ae(Pt),i=Ns(n),s=ae(16),o=V(s),a=await Dn(n,s,to(t,e)),c=await me(a,r,ro(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 xd(t,e,r,n){let i=Os(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 Dn(i,K(o.kdf.s),to(t,e)),c=await be(a,K(o.iv),K(o.ct),ro(t,e,o.kdf.s));return M(i),c}catch{}return M(i),null}async function Cd(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 Dd(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 Us(),f=await me(u,d.pkcs8,io(n,r));M(d.pkcs8);let h=null;t.cfg.recovery==="code"&&(h=await $n(n,r,a));let p=await me(u,a,no(n,r));M(a);let g=await xn(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 Er.call(this,t);if(E&&E.record_id!==b.record_id){await so.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 so(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 Kn.call(this,t,e,u);}async function Kn(t,e,r){let n=this.user.user_id,i=e.data,s=await be(r,K(i.ik.iv),K(i.ik.ct),io(t.scope,n)),o=await Un(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 Sr(t){let e=L.call(this);if(!e||!this.user?.user_id)return;if(!Pn()){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 Er.call(this,e);r?await so.call(this,e,r,t):await Dd.call(this,e,t),e.cfg.persistDevice&&await lo.call(this,e).catch(()=>{});}async function oo(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 Sr.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 ao(t){let e=L.call(this);return e?(t?.forgetDevice&&await Gn.call(this,e).catch(()=>{}),Fn.call(this),this.__cached_requests={},{status:e.status}):{status:"disabled"}}async function co(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 uo(){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 jn(){return typeof indexedDB<"u"&&!!indexedDB}function Hn(){return new Promise((t,e)=>{let r=indexedDB.open(vd,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 Wn(t){return `${t.scope}#${this.user?.user_id}`}async function lo(t){if(!jn()||!t.mk)return;let e=await Hn();await new Promise((r,n)=>{let i=e.transaction(Ke,"readwrite");i.objectStore(Ke).put({mk:t.mk,keyringRecordId:t.keyringRecordId,saved:Date.now()},Wn.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}async function kd(t){if(!jn())return null;let e=await Hn(),r=await new Promise((n,i)=>{let o=e.transaction(Ke,"readonly").objectStore(Ke).get(Wn.call(this,t));o.onsuccess=()=>n(o.result||null),o.onerror=()=>i(o.error);});return e.close(),r&&r.mk?r:null}async function Gn(t){if(!jn())return;let e=await Hn();await new Promise((r,n)=>{let i=e.transaction(Ke,"readwrite");i.objectStore(Ke).delete(Wn.call(this,t)),i.oncomplete=()=>r(),i.onerror=()=>n(i.error);}),e.close();}function fo(){let t=L.call(this);!t||t.ready||(t.unlocking=true,t.ready=Nd.bind(this)().catch(()=>false).then(()=>{t.unlocking=false;}));}async function Nd(){let t=L.call(this);if(!t||!this.user?.user_id||!t.cfg.persistDevice||!Pn())return false;t.scope=mt.call(this);try{let e=await kd.call(this,t);if(!e)return !1;let r=await Er.call(this,t);return r?(await Kn.call(this,t,r,e.mk),!0):(await Gn.call(this,t).catch(()=>{}),!1)}catch{return t.status="locked",t.reason="NO_SESSION_KEY",false}}async function Jn(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 xn(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 mo.call(this,e).catch(()=>{}),r}async function ho(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 Yn(t,e){let r=L.call(this);if(!r)return;let n=await ho.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 Jn.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=Mn(i),d=Ln(s,i.own,i.anch,u),f=Object.assign({},i.recipients);for(let h of e)h!==o&&(f[h]=await Zs.call(this,i.bytes,a[h],s,u,i.own,h,d));await Fd.call(this,r,t,i,f);}async function po(t,e){let r=L.call(this);if(!r)return;let n=await ho.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"});Od(a,t);let c={};if(o.length){c=await Jn.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 Yn.call(this,a.record_id||t,o);}function Od(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 Fd(t,e,r,n){let i=await Ld.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 Ld(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&&Ar(r.data)?r.data:null}async function go(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 mo.call(this,e);}async function mo(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 yo(){let t=L.call(this);if(!t||!t.pendingRecoveryCode)return null;let e=t.pendingRecoveryCode;return t.pendingRecoveryCode="",e}async function _o(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 Er.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 xd(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 Kn.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 Cd(e,e.scope,r,t.password,i)),o=true),e.cfg.recovery==="code"){let u=await $n(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 lo.call(this,e).catch(()=>{}),{status:e.status,repaired:o,recoveryCode:a}}async function bo(){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),no(t.scope,t.user_id)),s=await $n(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 wr="__skenc__",wo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function Md(t){if(t===0)return "0";let e="";for(;t>0;)e=wo[t%62]+e,t=Math.floor(t/62);return e}function Vd(t){let e=0;for(let r of t){let n=wo.indexOf(r);if(n<0)return NaN;e=e*62+n;}return e}function vr(t){if(typeof t!="string")return null;let e=t.lastIndexOf(wr);if(e<0)return null;let r=Vd(t.slice(e+wr.length));return Number.isFinite(r)?{key:t.slice(0,e),plainSize:r}:null}function zn(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=vr(e[10]);return r?{recordId:e[5],recordOwner:e[3],filename:e[e.length-1],plainSize:r.plainSize}:null}catch{return null}}function Ao(t,e){return {service:this.service,owner:this.owner,recordOwner:e,recordId:t}}async function Eo(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(vr(e))throw new l(`"${wr}" 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 qs(i.bytes,s,Ao.call(this,t,i.own),o);return M(s),{key:`${e}${wr}${Md(r.size)}`,file:new File([a],r.name,{type:"application/octet-stream"}),encrypted:true}}async function So(t,e){let r=L.call(this),n=zn(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(!kn(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 $s(i.bytes,s,Ao.call(this,n.recordId,n.recordOwner)),a=o.meta&&o.meta.t||"application/octet-stream";return new Blob([o.bytes],{type:a})}function Bd(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 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}async function Qn(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"?Bd(i):qd(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 Xn(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 Ro(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 Xn(r)}async function To(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(Xn),r}async function Io(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(Xn),r}async function Po(t){return I.bind(this)("register-ticket",Object.assign({exec:"reg"},t),{auth:true})}async function Uo(t){return I.bind(this)("register-ticket",Object.assign({exec:"unreg"},t),{auth:true})}var $d=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+$d){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 vo(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){vo.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())vo.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 qr({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 Sr.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 Sr.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}=Rr(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}=Rr(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 Rr(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 xo(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 Co(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 Kd(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 jd(t){let e=t.split(".");if(e.length!==3)throw new Error("Invalid JWT format");let n=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=Kd(n);return JSON.parse(i)}async function Do(t){await this.__authConnection,this.log("loginWithToken:params",t),t=_.Params(t,{idToken:"string",accessToken:"string",refreshToken:"string"},["idToken"]);let e=jd(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()),Fn.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 ko(){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 No(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 Zn(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 Oo(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?Zn.bind(this)({email:n.username||n.email,password:n.password}):"SUCCESS: The account has been created."}async function Fo(){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 Lo(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 Mo(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 Vo(t,e){return Mo.bind(this)("phone_number",t,e)}function Bo(t,e){return Mo.bind(this)("email",t,e)}async function qo(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}=Rr(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 $o(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 co.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}=Rr(i);n(o);}return}L.call(this)&&uo.bind(this)().catch(o=>this.log("encryption:prune:failed",o)),r("SUCCESS: Password has been changed.");});})}async function Ko(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 jo(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 Ho(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 Wo(t){return await this.__connection,t=_.Params(t,{username:_.Email,redirect:_.Url},["username"]),await I.bind(this)("request-username-change",t,{auth:true})}var Hd="1.2.1",Wd=class{constructor(t){Se(this,"version",Hd);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=Wd;var _t=null,Jo=typeof SubmitEvent<"u",Gd=typeof HTMLFormElement<"u",Vt=se(),ei=0;function Yo(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 ti(t,e){return e>0?t/e*100:0}var Go=t=>{let{auth:e,type:r,endpoints:n,stable:i}=t,s=n[0],o=n[1];if(ei++,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[ei%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[ei%a.length]}throw new l("Invalid gateway type.",{code:"INVALID_REQUEST"})};async function Jd(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 Go.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 Go.bind(this)({auth:e,type:"record",endpoints:n,stable:r})+t+a;default:return _.Url(t)+a}}var Mt={};function zo(){_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 Jd.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}=Yd.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=Qo.bind(this)(f,B,m);Mt[P]=F;try{let q=Qd.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 Yd(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 zd(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 Qo(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=Yo(a);c!==null?setTimeout(()=>{Qo(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:ti(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});},s.upload&&(s.upload.onprogress=a=>{r({status:"upload",progress:ti(a.loaded,a.total),loaded:a.loaded,total:a.total,abort:()=>s.abort()});})),s.send(e.body);})}function Qd(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(Jo&&t instanceof SubmitEvent&&(t=t.target),Gd&&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=Yo(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 Eo.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:ti(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 Tr={};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(Jo&&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)?zd(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 Tr?.[w]||(Tr[w]=y().finally(()=>{delete Tr[w];})),Tr[w]}return y()};}}async function Xo(){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 Xd=256,Zd=256,ef=256,Zo=256,tf="\u{10FFFF}",rf=/[\u0000-\u001F\u007F]|\u{10FFFF}/u,nf={"/":"%2F","!":"%21","*":"%2A","#":"%23"},sf={"%2F":"/","%21":"!","%2A":"*","%23":"#"};function of(t){return t.replace(/%/g,"%25").replace(/[\/!*#]/g,r=>nf[r]||r)}function we(t){return typeof t!="string"?t:t.replace(/%(2F|21|2A|23)/gi,r=>{let n=r.toUpperCase();return sf[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(rf.test(t)||t.includes(tf))throw new l(`"${e}" cannot include control characters or unsupported sentinel characters.`,{code:"INVALID_PARAMETER"});if(s&&(t=of(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:Xd,blockKeyDelimiters:true})}function Pr(t,e="tag",r={}){return Ie(t,e,{allowEmpty:r.allowEmpty===true,maxLength:Zd,blockKeyDelimiters:true})}function qt(t,e="index.name",r={}){return Ie(t,e,{allowEmpty:r.allowEmpty===true,maxLength:ef,blockKeyDelimiters:true,disallowLeadingDollar:true})}function ea(t,e="index.value"){return Ie(t,e,{allowEmpty:true,maxLength:Zo})}function ri(t){return typeof t=="string"&&t.slice(-1)==="."}function ni(t,e){return Ie(t,e,{allowEmpty:true,maxLength:Zo,blockKeyDelimiters:true})}function ta(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 ii(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 Ir=4503599627370496;function Ur(t){if(typeof t=="number"){if(t>Ir||t<-Ir)throw new l(`Number value should be within range -${Ir} ~ +${Ir}`,{code:"INVALID_PARAMETER"});return t}if(typeof t=="boolean")return t;if(typeof t=="string")return ea(t,"index.value");throw new l('"index.value" should be type: <number | boolean | string>.',{code:"INVALID_PARAMETER"})}function ra(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"?ri(e.index.name)?ni(t,"index.range"):ea(t,"index.range"):t}var xr={},af=10080*60,cf=3600,na=2;function uf(t,e){if(!e)return String(na);let r=Math.max(60,t-300)*1e3;return "g"+na+"w"+Math.floor(Date.now()/r)}function lf(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 df(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 ia(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=ff("!"+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(Bn(P,E))return {isDataFile:!0,rawUrl:y};let U=vr(P),N=b[9],O=b[8],B=u(b[6]),x=y,k=B!=="public"&&lf.call(this,b)?{expires:cf,browserCache:af}: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)&&!Ar(w))return w;let b=await eo.bind(this)(w,p);return b.flag&&(s.encrypted=b.flag),b.value},y=df(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 ia(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&&Bn(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 ff(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 sa(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=uf(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)?zn(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 So.bind(this)(t,E);if(e?.dataType==="blob")return P;if(e?.dataType==="text")return await ia(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 Cr(t,e){return `${t||this.service}/${e||this.owner}`}function si(t,e){let r=this.__my_unique_ids[t];return r?r[e]:void 0}function oa(t,e,r){this.__my_unique_ids[t]||(this.__my_unique_ids[t]={}),this.__my_unique_ids[t][e]=r;}function hf(t,e){this.__my_unique_ids[t]&&delete this.__my_unique_ids[t][e];}function aa(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 ca(t,e){return !e||e.table===void 0?t:Object.assign({},t,{table:e.table})}async function ua(t,e=false){t=j(t,{ignoreEmpty:true}).data||{};let r=Cr.bind(this)(t?.service,t?.owner),n="",i=ta(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=si.bind(this)(r,n);s&&(e?hf.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}),aa.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:ii.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"&&ri(d.index.name)?ni(f,"index.value"):Ur(f)},condition:["gt","gte","lt","lte",">",">=","<","<=","=","eq"],range:f=>ra(f,d)},tag:f=>{if(f==null)return f;if(typeof f=="string")return Pr(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 la(t,e){await this.__connection;let r=await ua.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 da(t){let e="",r=[],n=Cr.bind(this)(t?.service,t?.owner),i=_.Params(t||{},{record_id:o=>{let a=typeof o=="string"?si.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:ii.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=>Ur(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=si.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=>Ur(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=>Pr(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):aa.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 fa(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=da.bind(this)(p),y=m.config;if(L.call(this)){let w=Object.prototype.hasOwnProperty.call(y,"data"),b=await qn.bind(this)(y.data,ca(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=Cr.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&&oa.bind(this)(h,m.unique_id,m.record_id);}return f}async function oi(t,e,r){if(await this.__connection,!e)throw new l('"config" argument is required.',{code:"INVALID_PARAMETER"});let n=da.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 qn.bind(this)(d,ca(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 Qn.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&&Xs.bind(this)(m.rec,h.dek),h.files==="encrypt"&&m?.rec)try{let b=await Qn.bind(this)(m.rec,"encrypt",s);b.length&&await oi.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=Cr.bind(this)(i?.service,i?.owner);oa.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 ha(t,e){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 pa(t,e){if(!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 ga(t,e){let r=await I.bind(this)("get-tag",_.Params(t||{},{table:n=>bt(n,"table",{allowEmpty:true}),tag:n=>Pr(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 ma(t,e){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 ya(t,e){await this.__connection;let r=await ua.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 _a(t){if(L.call(this)){let e=typeof t.user_id=="string"?[t.user_id]:t.user_id;Array.isArray(e)&&e.length&&await Yn.bind(this)(t.record_id,e);}return Ea.bind(this)({record_id:t.record_id,user_id:t.user_id,execute:"add"})}async function ba(t){let e=await Ea.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 po.bind(this)(t.record_id,Array.isArray(r)&&r.length?r:null);}return e}async function wa(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 Aa(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(xr[e])return xr[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 xr[e];});return xr[e]=n,n}function Ea(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={},Dr={},kr={};function Sa(t,e,r){t[e]||(t[e]=[]),t[e].push(r);}async function Nr(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 ci(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 Nr(kr,e,i=>n.bind(this)(i,e,r)),await n.bind(this)(t,e,r)):await Nr(kr,e,i=>n.bind(this)(i,e,r)):t&&Sa(kr,e,t);}async function ui(t,e){if(this.log("receiveIceCandidate",t),C?.[e]&&C[e]?.remoteDescription&&C[e]?.remoteDescription?.type){if(!t)return Nr(Dr,e,r=>C[e].addIceCandidate(r));await Nr(Dr,e,r=>C[e].addIceCandidate(r)),await C[e].addIceCandidate(t);}else Sa(Dr,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 kr[s],delete Dr[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 va(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 Ra(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 va(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];Pa.bind(this)(r,a);}return Ia.bind(this)(r,["onnegotiationneeded"]),await ai.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}".`),ai.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 Ta(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 va(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,Pa.bind(this)(n,a);},Ia.bind(this)(n,["onnegotiationneeded"]),await ci.bind(this)(null,n),await ui.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 ai(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 pf(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 Ia(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=>{pf.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:()=>{ai.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 Pa(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,$t=true,wt=0;async function gf(){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 li=null;async function Ua(){if(typeof window>"u"||window._runningInNodeJS)throw new l("WebSocket is not supported in Node.js environment.",{code:"NOT_SUPPORTED"});$t=true;let t=this.__socket?await this.__socket:this.__socket;Ee.bind(this)({close_all:true}),He&&di.bind(this)({group:null}),wt=0,je&&(je.terminate(),je=null);try{t&&t.close();}catch{}return window.removeEventListener("visibilitychange",li),this.__socket=null,null}async function Or(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($t&&(li=()=>{!document.hidden&&!$t&&Or.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 gf.bind(this)();i.onopen=()=>{$t=false,wt=0,r!=="reconnect"&&window.addEventListener("visibilitychange",li),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 sc=Object.create;var ze=Object.defineProperty;var ii=Object.getOwnPropertyDe
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
runInterval(); // Start interval
|
|
216
|
-
`,o=new Blob([s],{type:"application/javascript"});Be=new Worker(URL.createObjectURL(o)),Be.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){_e[c.sender_cid]&&(_e[c.sender_cid](false),delete _e[c.sender_cid]),Te[c.sender_cid]&&delete Te[c.sender_cid],D?.[c.sender_cid]&&be.bind(this)({cid:c.sender_cid}),c.type="rtc:closed",t(c);return}if(u.candidate&&Xn.bind(this)(u.candidate,c.sender_cid),u.sdpoffer&&(Qn.bind(this)(u.sdpoffer,c.sender_cid),Te[c.sender_cid]||(Te[c.sender_cid]=c.sender_cid,delete c.message,c.connectRTC=la.bind(this)(c),c.type="rtc:incoming",c.hangup=(()=>{D[c.sender_cid]?be.bind(this)({cid:c.sender_cid}):Te[c.sender_cid]&&(delete Te[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&&_e[c.sender_cid]&&(_e[c.sender_cid](true),delete _e[c.sender_cid]),u.sdpanswer&&D[c.sender_cid])if(D[c.sender_cid].signalingState==="have-local-offer")await D[c.sender_cid].setRemoteDescription(new RTCSessionDescription(u.sdpanswer));else throw new f("Invalid signaling state.",{code:"INVALID_REQUEST"})}}else t(c);},i.onclose=()=>{Lt?(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."}),mt++,mt<3?(this.log("realtime onclose","Reconnecting to WebSocket server..."+mt),t({type:"reconnect",message:"Reconnecting to WebSocket server..."+mt}),Cr.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 ga(t,e,r){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 ft.bind(this)(),t=K(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 f("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}),$e!==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: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 f("Realtime connection is not open. Try reconnecting with connectRealtime().",{code:"INVALID_REQUEST"})}async function ei(t){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 ft.bind(this)(),t=K(t,{nullIfEmpty:true}).data;let{group:r=null}=t;if(!r&&!$e)return {type:"success",message:"Left realtime message group."};if(r!==null&&typeof r!="string")throw new f('"group" must be a string | null.',{code:"INVALID_PARAMETER"});return e.send(JSON.stringify({action:"joinRoom",rid:r,token:this.session.accessToken.jwtToken})),$e=r,{type:"success",message:r?`Joined realtime message group: "${r}".`:"Left realtime message group."}}async function pa(t,e){t=_.Params(t,{user_id:n=>_.UserId(n,'User ID in "user_id"'),group:["string",()=>{if(!$e)throw new f('No group has been joined. Otherwise "group" is required.',{code:"INVALID_REQUEST"});return $e}]});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 ma(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 f('"value" must be a number.',{code:"INVALID_PARAMETER"});if(t.searchFor==="group"&&typeof t.value!="string")throw new f('"value" must be a string.',{code:"INVALID_PARAMETER"});if(t.hasOwnProperty("range")&&typeof t.range!=typeof t.value)throw new f(`"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 ya=typeof FormData<"u",_a=typeof HTMLFormElement<"u",ba=typeof SubmitEvent<"u",Ie={},Mt={},Pe={};function ti(t){return Object.freeze({id:t,status:"stopped"})}function wa(t){return !!t&&typeof t=="object"&&t.status==="stopped"}function Ea({id:t,auth:e,service:r,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&&!Ie?.[s]&&(Ie[s]=new kt({breakWhenError:false,batchSize:1}));let c={stop:null,aborted:false,queue:s};Pe[t]=c;let u=()=>{Pe[t]===c&&delete Pe[t];},l=()=>new Promise((h,p)=>{let g=false;if(c.aborted){u(),h(ti(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(ti(t)));};}),d=()=>{let h=Pe[t];h&&(h.stop?h.stop():(h.aborted=true,delete Pe[t]));};if(s){let h=new Promise((p,g)=>{let m=false,y=Ie[s].add([async()=>{try{let b=await l();return m||(m=!0,p(b)),b}catch(b){throw m||(m=true,g(b)),b}}])[0];Mt[t]=y,c.stop=()=>{if(!m){c.aborted=true;try{Ie[s]&&Ie[s].remove(Mt[t]);}catch{}delete Mt[t],u(),m=true,p(ti(t));}};});return Object.assign(h,{stop:d})}else return Object.assign(l(),{stop:d})}function Aa(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 Pe)Pe[n]?.queue===t.queue&&r.push(n);else for(let n in Pe)r.push(n);for(let n of r){let i=Pe[n];i&&(i.stop?i.stop():(i.aborted=true,delete Pe[n]),e+=1);}return e}function Sa(t,e){if(!t.queue)throw new f('"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 va(t){let e=false;if(typeof t.poll=="number"&&t.poll<0)throw new f('"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")+"-"+We());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 f('"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 f('"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 f('"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 f('"headers" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},data:c=>{if(c&&typeof c!="object")throw new f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},params:c=>{if(c&&typeof c!="object")throw new f('"params" should be type: <object>.',{code:"INVALID_PARAMETER"});return s(c),c},expires:"number",queue:"string"},["clientSecretName","method","url"]),!e)throw new f(`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()}`,l=t.service||this.service,d=t.owner||this.owner,h=`${u}#${l}:${c.id}`;Object.assign(c,{poll:p=>Ea.call(this,{id:h,auth:o,service:l,owner:d,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 Ie?.[c]||(Ie[c]=new kt({breakWhenError:false,batchSize:1})),new Promise((u,l)=>{Ie[c].add([async()=>{try{let d=await a();if(i>0){let h=d.poll({latency:i});return u(h),h}return u(d),d}catch(d){throw l(d),d}}]);})}else return a()}async function Ra(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 l in u)u[l]===void 0&&delete u[l];return (u.status==="running"||u.status==="pending")&&(u.poll=l=>Ea.call(this,{id:s+u.id,auth:i,service:r,owner:n,latency:l?.latency||1e3,queue:c?.qid,onResponse:l?.onResponse,onError:l?.onError})),u}),a}async function Ta(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&&Ie?.[a]&&(Ie[a].remove(Mt[o]),delete Mt[o]),I.bind(this)("csr-cancel",{id:o,service:e,owner:r},{auth:n})}async function Ia(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 Pa(t,e){if(await this.__connection,ya&&t instanceof FormData||_a&&t instanceof HTMLFormElement||ba&&t instanceof SubmitEvent){if(!e)throw new f("Url string as a second argument is required when form is passed.",{code:"INVALID_PARAMETER"});let n=K(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 Ua(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 f('"data" should be type: <object>.',{code:"INVALID_PARAMETER"});return I.bind(this)("mock",t,e)}async function xa(t,e){if(await this.__connection,!e?.url||typeof e.url!="string")throw new f('"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 f("forwardRequest is not available on this service region yet.",{code:"NOT_EXISTS"});let i=null,s=null,o=ba&&t instanceof SubmitEvent?t.target:_a&&t instanceof HTMLFormElement?t:null;o?i=new FormData(o):ya&&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 f("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 f("User login is required.",{code:"INVALID_REQUEST"});let l={"Content-Meta":c,Authorization:u};s&&(l["Content-Type"]=s);let d=await fetch(n,{method:"POST",headers:l,body:i,signal:e.signal});if(e.responseType==="response")return d;if(!d.ok){let p=await d.text();try{p=JSON.parse(p);}catch{}throw new f(p?.message||(typeof p=="string"?p:JSON.stringify(p)),{code:p?.code||"ERROR"})}if(e.onStream&&d.body){let p=d.body.getReader(),g=new TextDecoder,m="";for(;;){let{done:y,value:b}=await p.read();if(y)break;let E=g.decode(b,{stream:true});m+=E;try{e.onStream(E);}catch(v){console.error(v);}}return m}let h=await d.text();if(e.responseType==="text")return h;try{return JSON.parse(h)}catch{return h}}async function Ca(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 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 r=await I.bind(this)("get-feed",t,{auth:true,fetchOptions:e});for(let n in r.list)r.list[n]=await pt.bind(this)(r.list[n]);return r}function Vt(t){if(t===this.__user.user_id)throw new f(`"user_id" cannot be the user's own ID.`,{code:"INVALID_PARAMETER"});return _.UserId(t,'"user_id"')}async function Da(t,e){if(t=K(t,{ignoreEmpty:true}).data,t=_.Params(t,{subscriber:n=>_.UserId(n,'User ID in "subscriber"'),subscription:Vt.bind(this),blocked:"boolean"}),!t.subscriber&&!t.subscription)throw new f('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 ka(t){await this.__connection,t=_.Params(t,{user_id:Vt.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 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 Na(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Vt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function Oa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Vt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{block:e},{auth:true})}async function Fa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:Vt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unblock:e},{auth:true})}async function La(t,e){await this.__connection;let r=await Q.bind(this)();t=_.Params(t,{user_id:o=>{if(o!==this.__user.user_id&&!r)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 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 Ma(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 f('"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 Va(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 qa(t,e){let r=await Q.bind(this)(),n={message_id:"string",timestamp:"number",read:"number",complaint:"number",subject:"string",bounced:"number"};t||(e=Object.assign({ascending:false},e||{})),t=K(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 f(`"value" type does not match the type of "${t.searchFor}" index.`,{code:"INVALID_PARAMETER"});if(typeof c=="string"&&!c)throw new f('"value" should not be empty string.',{code:"INVALID_PARAMETER"});return c},range:c=>{if(!t.hasOwnProperty("value")||typeof c!=typeof t.value)throw new f('"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 f("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 f("User has no access.",{code:"INVALID_REQUEST"});return c}throw new f('"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 l in o)u[l]=c[o[l]]||a[l];return u.bounced=String(u.bounced),u}),s}async function Ba(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 Q.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 I.bind(this)("block-account",e,{auth:true})}async function $a(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 Q.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 I.bind(this)("block-account",e,{auth:true})}async function Ka(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 Q.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 I.bind(this)("remove-account",e,{auth:true})}async function ja(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 f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof s!="number"||s<1||s>100)throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"});return s}},n=_.Params(t,r,["email"]);if(e=_.Params(e,{confirmation_url:s=>{let o=s;if(typeof s=="string")o=_.Url(s);else throw new f('"options.confirmation_url" should be type: <string>.',{code:"INVALID_PARAMETER"});if(o&&!n.email)throw new f('"email" is required for signup confirmation.',{code:"INVALID_PARAMETER"});return o},email_subscription:s=>{if(typeof s!="boolean")throw new f('"options.email_subscription" should be type: <boolean>.',{code:"INVALID_PARAMETER"});if(!e?.confirmation_url)throw new f('"options.confirmation_url" is required for email subscription.',{code:"INVALID_PARAMETER"});return s},template:s=>{if(typeof s!="object"||!s.url||!s.subject)throw new f('"options.template" should be type: <object> with "url" and "subject".',{code:"INVALID_PARAMETER"});return {url:_.Url(s.url),subject:s.subject}}}),n.signup_confirmation=e?.confirmation_url||true,n.email_subscription=e?.email_subscription||false,n.template=e?.template||{},!await Q.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 I.bind(this)("admin-signup",n,{auth:true})}async function Ha(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 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}},r=["email","password"],n=_.Params(t,e,r);if(!await Q.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 I.bind(this)("admin-signup",n,{auth:true})}async function Wa(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 f('"access_group" is invalid. Should be type <number>.',{code:"INVALID_PARAMETER"})}if(typeof r=="number"&&r>0&&r<100)return r;throw new f('"access_group" is invalid. Should be type <number> of range 1~99',{code:"INVALID_PARAMETER"})}},["user_id","access_group"]),!await Q.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 I.bind(this)("grant-access",t,{auth:true})}async function Ga(t,e){if(t=_.Params(t,{email:"string"}),!await Q.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 I.bind(this)("invitation-list",Object.assign({mode:"search"},t),{fetchOptions:e,auth:true});return n.list=n.list.map(i=>wt(i.user)),n}async function Ja(t){if(t=_.Params(t,{email:r=>_.Email(r)},["email"]),!await Q.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 I.bind(this)("invitation-list",Object.assign({mode:"cancel"},t),{auth:true})}async function Ya(t){if(t=_.Params(t,{email:r=>_.Email(r)},["email"]),!await Q.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 I.bind(this)("invitation-list",Object.assign({mode:"resend"},t),{auth:true})}async function za(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 f("At least one attribute to update is required.",{code:"INVALID_PARAMETER"});if(!await Q.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=(r||this.service)+"-"+z.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 Qa(t){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,!t.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!t.keys||!t.keys.p256dh||!t.keys.auth)throw new f("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 Xa(t){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,!t.endpoint)throw new f("Missing parameter: endpoint",{code:"INVALID_PARAMETER"});if(!t.keys||!t.keys.p256dh||!t.keys.auth)throw new f("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 Za(){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 I.bind(this)("get-vapid-public-key",null,{auth:true})}}async function ec(t,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:r,body:n}=K(t||{},{nullIfEmpty:true}).data;if(!r)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: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 tc(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 rc(t){return await this.__connection,t=_.Params(t||{},{search:["spell","name",()=>"spell"],value:"string"}),await I.bind(this)("getspell",t)}async function nc(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(re())r&&n&&window.alert(`${n} said: ${r}`),window.location.href=e.video;else return r&&n?`${n} said: ${r}
|
|
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&&ui.bind(this)(u.candidate,c.sender_cid),u.sdpoffer&&(ci.bind(this)(u.sdpoffer,c.sender_cid),Ue[c.sender_cid]||(Ue[c.sender_cid]=c.sender_cid,delete c.message,c.connectRTC=Ta.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=()=>{$t?(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}),Or.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 xa(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 di(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 Ca(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 Da(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 ka=typeof FormData<"u",Na=typeof HTMLFormElement<"u",Oa=typeof SubmitEvent<"u",xe={},Kt={},Ce={};function fi(t){return Object.freeze({id:t,status:"stopped"})}function Fa(t){return !!t&&typeof t=="object"&&t.status==="stopped"}function La({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(fi(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(fi(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];Kt[t]=y,c.stop=()=>{if(!m){c.aborted=true;try{xe[s]&&xe[s].remove(Kt[t]);}catch{}delete Kt[t],u(),m=true,p(fi(t));}};});return Object.assign(h,{stop:f})}else return Object.assign(d(),{stop:f})}function Ma(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 Va(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 Ba(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=>La.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 qa(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=>La.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 $a(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(Kt[o]),delete Kt[o]),I.bind(this)("csr-cancel",{id:o,service:e,owner:r},{auth:n})}async function Ka(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 ja(t,e){if(await this.__connection,ka&&t instanceof FormData||Na&&t instanceof HTMLFormElement||Oa&&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 Ha(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 Wa(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=Oa&&t instanceof SubmitEvent?t.target:Na&&t instanceof HTMLFormElement?t:null;o?i=new FormData(o):ka&&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 Ga(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 jt(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 Ja(t,e){if(t=j(t,{ignoreEmpty:true}).data,t=_.Params(t,{subscriber:n=>_.UserId(n,'User ID in "subscriber"'),subscription:jt.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 Ya(t){await this.__connection,t=_.Params(t,{user_id:jt.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 za(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:jt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unsubscribe:e},{auth:true})}async function Qa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:jt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{block:e},{auth:true})}async function Xa(t){await this.__connection;let{user_id:e}=_.Params(t,{user_id:jt.bind(this)},["user_id"]);return await I.bind(this)("subscription",{unblock:e},{auth:true})}async function Za(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 ec(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 tc(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 rc(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 nc(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 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,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 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,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 oc(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 ac(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 cc(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 uc(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 lc(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 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:"resend"},t),{auth:true})}async function fc(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 hc(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 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)("delete-subscription",{endpoint:t.endpoint,keys:t.keys},{auth:true}),"SUCCESS: Unsubscribed from notifications."}async function gc(){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 mc(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 yc(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 _c(t){return await this.__connection,t=_.Params(t||{},{search:["spell","name",()=>"spell"],value:"string"}),await I.bind(this)("getspell",t)}async function bc(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
|
|
218
|
+
Watch the video here: ${e.video}`}var wc=["public","private","authorized","admin"];function Ac(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"||wc.indexOf(t)!==-1)return t;throw new l(`"${e}" should be one of ${wc.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.9";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:Es,fromBase62:pe,decodeProjectId:vn,formatServiceId:Rn,extractFormData:j,terminatePendingRequests:zo,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=Po.bind(this);this.unregisterTicket=Uo.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=vn(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=Rn(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=Hs(n.encryption)),n.default_access_group!==void 0&&n.default_access_group!==null&&(this.__default_access_group=Ac(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)}`);}Ws.bind(this)(f),this.__authConnection=(async()=>{let b=await this.admin_endpoint,E={UserPoolId:b.userpool_id,ClientId:b.userpool_client};Sn()&&(E.Storage=window.localStorage),this.userPool=new bn(E);try{this.user||await te.bind(this)().getSession({skipUserUpdateEventTrigger:!0}),this.user&&(!m?.connection&&!u?Le.bind(this)():(f&&fo.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 Ac(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(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{
|
|
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 Ga.bind(this)(e,r)}closeRTC(e){return Ee.bind(this)(e)}connectRTC(e,r){return Ra.bind(this)(e,r)}connectRealtime(e){return Or.bind(this)(e)}spellcast(e){return yc.bind(this)(e)}getspell(e){return _c.bind(this)(e)}dopamine(e){return bc.bind(this)(e)}getUniqueId(e,r){return ma.bind(this)(e,r)}resendInvitation(e){return dc.bind(this)(e)}cancelInvitation(e){return lc.bind(this)(e)}getInvitations(e,r){return uc.bind(this)(e,r)}openIdLogin(e){return Co.bind(this)(e)}loginWithToken(e){return Do.bind(this)(e)}clientSecretRequest(e){return Ba.bind(this)(e)}clientSecretRequestHistory(e,r){return qa.bind(this)(e,r)}cancelClientSecretRequest(e){return $a.bind(this)(e)}stopClientSecretPolling(e){return Ma.bind(this)(e||{})}isPollStopped(e){return Fa(e)}clientSecretRequestQueueCount(e){return Va.bind(this)(e)}consumeTicket(e){return Ro.bind(this)(e)}getConsumedTickets(e,r){return Io.bind(this)(e,r)}getTickets(e,r){return To.bind(this)(e,r)}closeRealtime(){return Ua.bind(this)()}getRealtimeUsers(e,r){return Ca.bind(this)(e,r)}sendInquiry(e){return Ka.bind(this)(e)}blockAccount(e){return nc.bind(this)(e)}unblockAccount(e){return ic.bind(this)(e)}deleteAccount(e){return sc.bind(this)(e)}inviteUser(e,r){return oc.bind(this)(e,r)}createAccount(e){return ac.bind(this)(e)}grantAccess(e){return cc.bind(this)(e)}updateUserAttributes(e){return fc.bind(this)(e)}getRealtimeGroups(e,r){return Da.bind(this)(e,r)}postRealtime(e,r,n){return xa.bind(this)(e,r,n)}joinRealtime(e){return di.bind(this)(e)}getProfile(e){return xo.bind(this)(e)}getFile(e,r){return Xe.bind(this)(e,r)}secureRequest(e,r){return ja.bind(this)(e,r)}forwardRequest(e,r){return Wa.bind(this)(e,r)}getFormResponse(){return Xo.bind(this)()}getRecords(e,r){return la.bind(this)(e,r)}getTables(e,r){return ha.bind(this)(e,r)}getIndexes(e,r){return pa.bind(this)(e,r)}getTags(e,r){return ga.bind(this)(e,r)}deleteRecords(e,r){return ya.bind(this)(e,r)}resendSignupConfirmation(){return ko.bind(this)()}recoverAccount(e=false){return No.bind(this)(e)}getUsers(e,r){return jo.bind(this)(e,r)}disableAccount(){return Fo.bind(this)()}lastVerifiedEmail(e){return Ho.bind(this)(e)}unsubscribeNewsletter(e){return tc.bind(this)(e)}subscribeNotification(e,r){return hc.bind(this)({endpoint:e,keys:r})}unsubscribeNotification(e,r){return pc.bind(this)({endpoint:e,keys:r})}vapidPublicKey(){return gc.bind(this)()}pushNotification(e,r){return mc.bind(this)(e,r)}getNewsletters(e,r){return rc.bind(this)(e,r)}getNewsletterSubscription(e,r){return Za.bind(this)(e,r)}requestUsernameChange(e){return Wo.bind(this)(e)}getEncryptionStatus(){return Gs.bind(this)()}isWithheld(e){return Vn.call(this,e)}unlockEncryption(e){return oo.bind(this)(e)}lockEncryption(e){return ao.bind(this)(e)}takeRecoveryCode(){return yo.bind(this)()}unlockWithRecoveryCode(e){return _o.bind(this)(e)}regenerateRecoveryCode(){return bo.bind(this)()}pinPeerKey(e){return go.bind(this)(e)}grantPrivateRecordAccess(e){return _a.bind(this)(e)}removePrivateRecordAccess(e){return ba.bind(this)(e)}listPrivateRecordAccess(e,r){return wa.bind(this)(e,r)}requestPrivateRecordAccessKey(e){return Aa.bind(this)(e)}deleteFiles(e){return sa.bind(this)(e)}uploadFiles(e,r){return Bt.bind(this)(e,r)}mock(e,r){return Ha.bind(this)(e,r)}login(e){return Zn.bind(this)(e)}logout(e){return Ft.bind(this)(e)}signup(e,r){return Oo.bind(this)(e,r)}resetPassword(e){return Lo.bind(this)(e)}verifyEmail(e,r){return Bo.bind(this)(e,r)}verifyPhoneNumber(e,r){return Vo.bind(this)(e,r)}forgotPassword(e,r){return qo.bind(this)(e,r)}changePassword(e){return $o.bind(this)(e)}updateProfile(e){return Ko.bind(this)(e)}postRecord(e,r,n){return oi.bind(this)(e,r,n)}getSubscriptions(e,r){return Ja.bind(this)(e,r)}subscribe(e){return Ya.bind(this)(e)}unsubscribe(e){return za.bind(this)(e)}blockSubscriber(e){return Qa.bind(this)(e)}unblockSubscriber(e){return Xa.bind(this)(e)}subscribeNewsletter(e){return ec.bind(this)(e)}bulkPostRecords(e){return fa.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 hi={};var Fr=typeof globalThis<"u"?globalThis:void 0;Fr&&(Fr.Skapi=v,Fr.SkapiError=l,Fr.SkapiTypes=hi);/*! 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{
|
|
283
|
+
*/export{v as Skapi,l as SkapiError,hi as Types};//# sourceMappingURL=skapi.browser.mjs.map
|
|
284
284
|
//# sourceMappingURL=skapi.browser.mjs.map
|