@converse/skeletor 3.1.4 → 3.1.6
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/CHANGES.md +18 -0
- package/README.md +9 -3
- package/dist/skeletor.d.ts +22 -3
- package/dist/skeletor.esm.js +267 -242
- package/dist/skeletor.esm.js.map +1 -1
- package/dist/skeletor.js +267 -242
- package/dist/skeletor.js.map +1 -1
- package/dist/skeletor.min.js +4 -4
- package/dist/skeletor.node.d.ts +956 -0
- package/dist/skeletor.node.js +269 -243
- package/dist/skeletor.node.mjs +269 -243
- package/package.json +6 -2
- package/src/declarations.d.ts +11 -0
- package/src/drivers/nodeSQLiteStorage.ts +3 -7
- package/src/drivers/types.ts +8 -2
- package/src/index.ts +1 -0
- package/src/storage.ts +33 -28
package/dist/skeletor.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).skeletor={})}(this,function(t){var e=Object.prototype;function r(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}function n(t,e){return function(r){return t(e(r))}}var o=n(Object.keys,Object),i=Object.prototype.hasOwnProperty;function s(t){if(!r(t))return o(t);var e=[];for(var n in Object(t))i.call(t,n)&&"constructor"!=n&&e.push(n);return e}var a="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,c=a||u||Function("return this")(),l=c.Symbol,f=Object.prototype,h=f.hasOwnProperty,d=f.toString,v=l?l.toStringTag:void 0;var p=Object.prototype.toString;var y=l?l.toStringTag:void 0;function g(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":y&&y in Object(t)?function(t){var e=h.call(t,v),r=t[v];try{t[v]=void 0;var n=!0}catch(t){}var o=d.call(t);return n&&(e?t[v]=r:delete t[v]),o}(t):function(t){return p.call(t)}(t)}function b(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function m(t){if(!b(t))return!1;var e=g(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var _,w=c["__core-js_shared__"],j=(_=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||""))?"Symbol(src)_1."+_:"";var S=Function.prototype.toString;function I(t){if(null!=t){try{return S.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var O=/^\[object .+?Constructor\]$/,A=Function.prototype,E=Object.prototype,x=A.toString,k=E.hasOwnProperty,N=RegExp("^"+x.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function P(t){return!(!b(t)||(e=t,j&&j in e))&&(m(t)?N:O).test(I(t));var e}function R(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return P(r)?r:void 0}var B=R(c,"DataView"),z=R(c,"Map"),T=R(c,"Promise"),D=R(c,"Set"),C=R(c,"WeakMap"),M="[object Map]",F="[object Promise]",L="[object Set]",U="[object WeakMap]",W="[object DataView]",q=I(B),J=I(z),K=I(T),V=I(D),$=I(C),
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).skeletor={})}(this,function(t){var e=Object.prototype;function r(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}function n(t,e){return function(r){return t(e(r))}}var o=n(Object.keys,Object),i=Object.prototype.hasOwnProperty;function s(t){if(!r(t))return o(t);var e=[];for(var n in Object(t))i.call(t,n)&&"constructor"!=n&&e.push(n);return e}var a="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,c=a||u||Function("return this")(),l=c.Symbol,f=Object.prototype,h=f.hasOwnProperty,d=f.toString,v=l?l.toStringTag:void 0;var p=Object.prototype.toString;var y=l?l.toStringTag:void 0;function g(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":y&&y in Object(t)?function(t){var e=h.call(t,v),r=t[v];try{t[v]=void 0;var n=!0}catch(t){}var o=d.call(t);return n&&(e?t[v]=r:delete t[v]),o}(t):function(t){return p.call(t)}(t)}function b(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function m(t){if(!b(t))return!1;var e=g(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var _,w=c["__core-js_shared__"],j=(_=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||""))?"Symbol(src)_1."+_:"";var S=Function.prototype.toString;function I(t){if(null!=t){try{return S.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var O=/^\[object .+?Constructor\]$/,A=Function.prototype,E=Object.prototype,x=A.toString,k=E.hasOwnProperty,N=RegExp("^"+x.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function P(t){return!(!b(t)||(e=t,j&&j in e))&&(m(t)?N:O).test(I(t));var e}function R(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return P(r)?r:void 0}var B=R(c,"DataView"),z=R(c,"Map"),T=R(c,"Promise"),D=R(c,"Set"),C=R(c,"WeakMap"),M="[object Map]",F="[object Promise]",L="[object Set]",U="[object WeakMap]",W="[object DataView]",q=I(B),J=I(z),K=I(T),V=I(D),$=I(C),G=g;function Q(t){return null!=t&&"object"==typeof t}(B&&G(new B(new ArrayBuffer(1)))!=W||z&&G(new z)!=M||T&&G(T.resolve())!=F||D&&G(new D)!=L||C&&G(new C)!=U)&&(G=function(t){var e=g(t),r="[object Object]"==e?t.constructor:void 0,n=r?I(r):"";if(n)switch(n){case q:return W;case J:return M;case K:return F;case V:return L;case $:return U}return e});function H(t){return Q(t)&&"[object Arguments]"==g(t)}var X=Object.prototype,Y=X.hasOwnProperty,Z=X.propertyIsEnumerable,tt=H(function(){return arguments}())?H:function(t){return Q(t)&&Y.call(t,"callee")&&!Z.call(t,"callee")},et=Array.isArray;function rt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function nt(t){return null!=t&&rt(t.length)&&!m(t)}var ot="object"==typeof t&&t&&!t.nodeType&&t,it=ot&&"object"==typeof module&&module&&!module.nodeType&&module,st=it&&it.exports===ot?c.Buffer:void 0,at=(st?st.isBuffer:void 0)||function(){return!1},ut={};function ct(t){return function(e){return t(e)}}ut["[object Float32Array]"]=ut["[object Float64Array]"]=ut["[object Int8Array]"]=ut["[object Int16Array]"]=ut["[object Int32Array]"]=ut["[object Uint8Array]"]=ut["[object Uint8ClampedArray]"]=ut["[object Uint16Array]"]=ut["[object Uint32Array]"]=!0,ut["[object Arguments]"]=ut["[object Array]"]=ut["[object ArrayBuffer]"]=ut["[object Boolean]"]=ut["[object DataView]"]=ut["[object Date]"]=ut["[object Error]"]=ut["[object Function]"]=ut["[object Map]"]=ut["[object Number]"]=ut["[object Object]"]=ut["[object RegExp]"]=ut["[object Set]"]=ut["[object String]"]=ut["[object WeakMap]"]=!1;var lt="object"==typeof t&&t&&!t.nodeType&&t,ft=lt&&"object"==typeof module&&module&&!module.nodeType&&module,ht=ft&&ft.exports===lt&&a.process,dt=function(){try{var t=ft&&ft.require&&ft.require("util").types;return t||ht&&ht.binding&&ht.binding("util")}catch(t){}}(),vt=dt&&dt.isTypedArray,pt=vt?ct(vt):function(t){return Q(t)&&rt(t.length)&&!!ut[g(t)]},yt=Object.prototype.hasOwnProperty;function gt(t){if(null==t)return!0;if(nt(t)&&(et(t)||"string"==typeof t||"function"==typeof t.splice||at(t)||pt(t)||tt(t)))return!t.length;var e=G(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(r(t))return!s(t).length;for(var n in t)if(yt.call(t,n))return!1;return!0}var bt=/^(?:0|[1-9]\d*)$/;function mt(t,e){var r=typeof t;return!!(e=e??9007199254740991)&&("number"==r||"symbol"!=r&&bt.test(t))&&t>-1&&t%1==0&&t<e}var _t=Object.prototype.hasOwnProperty;function wt(t,e){var r=et(t),n=!r&&tt(t),o=!r&&!n&&at(t),i=!r&&!n&&!o&&pt(t),s=r||n||o||i,a=s?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],u=a.length;for(var c in t)!e&&!_t.call(t,c)||s&&("length"==c||o&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||mt(c,u))||a.push(c);return a}function jt(t){return nt(t)?wt(t):s(t)}function St(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o}function It(t){return"symbol"==typeof t||Q(t)&&"[object Symbol]"==g(t)}var Ot=l?l.prototype:void 0,At=Ot?Ot.toString:void 0;function Et(t){if("string"==typeof t)return t;if(et(t))return St(t,Et)+"";if(It(t))return At?At.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function xt(t){return null==t?"":Et(t)}var kt=0;function Nt(t){var e=++kt;return xt(t)+e}var Pt=/\s/;var Rt=/^\s+/;function Bt(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&Pt.test(t.charAt(e)););return e}(t)+1).replace(Rt,""):t}var zt=/^[-+]0x[0-9a-f]+$/i,Tt=/^0b[01]+$/i,Dt=/^0o[0-7]+$/i,Ct=parseInt;var Mt=1/0;function Ft(t){return t?(t=function(t){if("number"==typeof t)return t;if(It(t))return NaN;if(b(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=b(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Bt(t);var r=Tt.test(t);return r||Dt.test(t)?Ct(t.slice(2),r?2:8):zt.test(t)?NaN:+t}(t))===Mt||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function Lt(t,e){var r;if("function"!=typeof e)throw new TypeError("Expected a function");return t=function(t){var e=Ft(t),r=e%1;return e==e?r?e-r:e:0}(t),function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=void 0),r}}const Ut=/\s+/;function Wt(t,e,r,n,o){let i,s=0;if(r&&"object"==typeof r){void 0!==n&&"context"in o&&void 0===o.context&&(o.context=n);for(i=Object.keys(r);s<i.length;s++)e=Wt(t,e,i[s],r[i[s]],o)}else if(r&&"string"==typeof r&&Ut.test(r))for(i=r.split(Ut);s<i.length;s++){const r=t(e,i[s],n,o);void 0!==r&&(e=r)}else e=t(e,r,n,o);return e}function qt(t,e,r,n){if(r){const o=t[e]||(t[e]=[]),i=n.context,s=n.ctx,a=n.listening;a&&a.count++,o.push({callback:r,context:i,ctx:i||s,listening:a})}return t}function Jt(t,e,r,n){if(!t)return;const o=n.context,i=n.listeners;let s,a=0;if(e||o||r){for(s=e?[e]:Object.keys(t);a<s.length;a++){const e=s[a],n=t[e];if(!n)continue;const i=[];for(let t=0;t<n.length;t++){const s=n[t];if(r&&r!==s.callback&&r!==s.callback._callback||o&&o!==s.context)i.push(s);else{const t=s.listening;t&&t.stop(e,r)}}i.length?t[e]=i:delete t[e]}return t}if(i)for(s=Object.keys(i);a<s.length;a++)i[s[a]].cleanup()}function Kt(t,e,r,n){if(r){const o=Lt(2,function(...t){n(e,o),r.apply(this,t)});t[e]=o,o._callback=r}return t}function Vt(t,e,r,n){if(t){const r=t[e];let o=t.all;r&&o&&(o=o.slice()),r&&$t(r,n),o&&$t(o,[e].concat(n))}return t}function $t(t,e){let r,n=-1;const o=t.length,i=e[0],s=e[1],a=e[2];switch(e.length){case 0:for(;++n<o;)(r=t[n]).callback.call(r.ctx);return;case 1:for(;++n<o;)(r=t[n]).callback.call(r.ctx,i);return;case 2:for(;++n<o;)(r=t[n]).callback.call(r.ctx,i,s);return;case 3:for(;++n<o;)(r=t[n]).callback.call(r.ctx,i,s,a);return;default:for(;++n<o;)(r=t[n]).callback.apply(r.ctx,e);return}}class Gt{constructor(t,e){this.id=t._listenId,this.listener=t,this.obj=e,this.interop=!0,this.count=0,this._events=void 0}start(t,e,r,n){const o={context:this.obj,ctx:r,listening:n};if(this._events=Wt(qt,this._events||{},t,e,o),n){(this.obj._listeners||(this.obj._listeners={}))[this.id]=this,this.interop=!1}return this}stop(t,e){let r;this.interop?(this._events=Wt(Jt,this._events,t,e,{context:void 0,listeners:void 0}),r=!this._events):(this.count--,r=0===this.count),r&&this.cleanup()}cleanup(){this.listener._listeningTo&&delete this.listener._listeningTo[this.obj._listenId],!this.interop&&this.obj._listeners&&delete this.obj._listeners[this.id]}}
|
|
2
2
|
/**
|
|
3
3
|
* @copyright 2010-2019 Jeremy Ashkenas and DocumentCloud
|
|
4
4
|
* @copyright 2023 JC Brand
|
|
5
|
-
*/let
|
|
5
|
+
*/let Qt;function Ht(t){return class extends t{on(t,e,r){if(this._events=Wt(qt,this._events||{},t,e,{context:r,ctx:this,listening:Qt}),Qt){(this._listeners||(this._listeners={}))[Qt.id]=Qt,Qt.interop=!1}return this}listenTo(t,e,r){if(!t)return this;const n=t._listenId||(t._listenId=Nt("l")),o=this._listeningTo||(this._listeningTo={});let i=Qt=o[n];i||(this._listenId||(this._listenId=Nt("l")),i=Qt=o[n]=new Gt(this,t));const s=function(t,e,r,n){try{t.on(e,r,n)}catch(t){return t}}(t,e,r,this);if(Qt=void 0,s)throw s;return i.interop&&i.start(e,r,this,Qt),this}off(t,e,r){return this._events?(this._events=Wt(Jt,this._events,t,e,{context:r,listeners:this._listeners}),this):this}stopListening(t,e,r){const n=this._listeningTo;if(!n)return this;const o=t?[t._listenId]:jt(n);for(let t=0;t<o.length;t++){const i=n[o[t]];if(!i)break;i.obj.off(e,r,this),i.interop&&i.stop(e,r)}return gt(n)&&(this._listeningTo=void 0),this}once(t,e,r){const n=Wt(Kt,{},t,e,this.off.bind(this));return"string"==typeof t&&null==r&&(e=void 0),this.on(n,e,r)}listenToOnce(t,e,r){const n=Wt(Kt,{},e,r,this.stopListening.bind(this,t));return this.listenTo(t,n)}trigger(t,...e){return this._events?(Wt(Vt,this._events,t,void 0,e),this):this}subscribe(t,e,r){return this.on(t,e,r),()=>this.off(t,e,r)}}}const Xt=Ht(Object);function Yt(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function Zt(t,e,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(t,r):o?o.value=r:e.set(t,r),r}"function"==typeof SuppressedError&&SuppressedError;var te=/^~~local_forage_type~([^~]+)~/,ee=Object.prototype.toString;function re(t){var e=.75*t.length,r=t.length;"="===t[t.length-1]&&(e--,"="===t[t.length-2]&&e--);for(var n=new ArrayBuffer(e),o=new Uint8Array(n),i=0,s=0;i<r;i+=4){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t[i]),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t[i+1]),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t[i+2]),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t[i+3]);o[s++]=a<<2|u>>4,o[s++]=(15&u)<<4|c>>2,o[s++]=(3&c)<<6|63&l}return n}function ne(t){for(var e=new Uint8Array(t),r="",n=0;n<e.length;n+=3)r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[e[n]>>2],r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&e[n])<<4|e[n+1]>>4],r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&e[n+1])<<2|e[n+2]>>6],r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[63&e[n+2]];return e.length%3==2?r=r.substring(0,r.length-1)+"=":e.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function oe(t){var e,r;if(null===t||"object"!=typeof t||"isActiveClone"in t)return t;var n=t instanceof Date?new Date(t):t.constructor();try{for(var o=function(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)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.")}(Object.keys(t)),i=o.next();!i.done;i=o.next()){var s=i.value;Object.prototype.hasOwnProperty.call(t,s)&&(t.isActiveClone=null,n[s]=oe(t[s]),delete t.isActiveClone)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}return n}function ie(t,e){return(t.name||e.name)+"/"+(t.storeName||e.storeName)+"/"}function se(t,e){e&&t.then(function(t){e(null,t)},function(t){e(t)})}function ae(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function ue(t,e){var r=this;if(e=ae.apply(this,arguments),!(t="function"!=typeof t&&t||{}).name){var n=this.config();t.name=t.name||n.name,t.storeName=t.storeName||n.storeName}return{promise:t.name?new Promise(function(e){t.storeName?e(ie(t,r._defaultConfig)):e(t.name+"/")}):Promise.reject("Invalid arguments"),callback:e}}function ce(t){return"string"!=typeof t&&(console.warn(t+" used as a key, but it is not a string."),t=String(t)),t}var le={bufferToString:ne,deserialize:function(t){if("__lfsc__:"!==t.substring(0,9))return JSON.parse(t);var e,r=t.substring(13),n=t.substring(9,13);if("blob"===n&&te.test(r)){var o=r.match(te);e=o[1],r=r.substring(o[0].length)}var i=re(r);switch(n){case"arbf":return i;case"blob":
|
|
6
6
|
/*!
|
|
7
7
|
MIT License
|
|
8
8
|
|
|
@@ -51,11 +51,11 @@ return function(t,e){t=t||[],e=e||{};try{return new Blob(t,e)}catch(o){if("TypeE
|
|
|
51
51
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
52
52
|
SOFTWARE.
|
|
53
53
|
|
|
54
|
-
*/var ve=Object.freeze({__proto__:null,_driver:fe,_initStorage:function(t){var e=t?oe(t):{},r=ie(e,this._defaultConfig),n=de.resolve(r);return this._dbInfo=e,this._dbInfo.serializer=le,this._dbInfo.keyPrefix=r,this._dbInfo.mStore=n,Promise.resolve()},_support:!0,clear:function(t){var e=this,r=this.ready().then(function(){e._dbInfo.mStore.clear()});return se(r,t),r},dropInstance:function(t,e){var r=ue.apply(this,arguments),n=r.promise,o=r.callback;return se(n.then(function(t){de.resolve(t).drop()}),o),n},getItem:function(t,e){var r=this;t=ce(t);var n=this.ready().then(function(){var e=r._dbInfo.mStore.get(t);return null==e?null:r._dbInfo.serializer.deserialize(e)});return se(n,e),n},iterate:function(t,e){var r=this,n=this.ready().then(function(){for(var e=r._dbInfo.mStore,n=e.keys(),o=0;o<n.length;o++){var i=e.get(n[o]);if(i&&(i=r._dbInfo.serializer.deserialize(i)),void 0!==(i=t(i,n[o],o+1)))return i}});return se(n,e),n},key:function(t,e){var r=this,n=this.ready().then(function(){var e;try{void 0===(e=r._dbInfo.mStore.key(t))&&(e=null)}catch(t){e=null}return e});return se(n,e),n},keys:function(t){var e=this,r=this.ready().then(function(){return e._dbInfo.mStore.keys()});return se(r,t),r},length:function(t){var e=this.keys().then(function(t){return t.length});return se(e,t),e},removeItem:function(t,e){var r=this;t=ce(t);var n=this.ready().then(function(){r._dbInfo.mStore.rm(t)});return se(n,e),n},setItem:function(t,e,r){var n=this;t=ce(t);var o=this.ready().then(function(){void 0===e&&(e=null);var r=e;return new Promise(function(o,i){n._dbInfo.serializer.serialize(e,function(e,s){if(s)i(s);else try{n._dbInfo.mStore.set(t,e),o(r)}catch(t){i(t)}})})});return se(o,r),o}});function pe(t,e){return t===e||t!=t&&e!=e}function ye(t,e){for(var r=t.length;r--;)if(pe(t[r][0],e))return r;return-1}var ge=Array.prototype.splice;function be(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}be.prototype.clear=function(){this.__data__=[],this.size=0},be.prototype.delete=function(t){var e=this.__data__,r=ye(e,t);return!(r<0)&&(r==e.length-1?e.pop():ge.call(e,r,1),--this.size,!0)},be.prototype.get=function(t){var e=this.__data__,r=ye(e,t);return r<0?void 0:e[r][1]},be.prototype.has=function(t){return ye(this.__data__,t)>-1},be.prototype.set=function(t,e){var r=this.__data__,n=ye(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var me=R(Object,"create");var _e=Object.prototype.hasOwnProperty;var we=Object.prototype.hasOwnProperty;function je(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function Se(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function Ie(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}je.prototype.clear=function(){this.__data__=me?me(null):{},this.size=0},je.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},je.prototype.get=function(t){var e=this.__data__;if(me){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return _e.call(e,t)?e[t]:void 0},je.prototype.has=function(t){var e=this.__data__;return me?void 0!==e[t]:we.call(e,t)},je.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=me&&void 0===e?"__lodash_hash_undefined__":e,this},Ie.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(z||be),string:new je}},Ie.prototype.delete=function(t){var e=Se(this,t).delete(t);return this.size-=e?1:0,e},Ie.prototype.get=function(t){return Se(this,t).get(t)},Ie.prototype.has=function(t){return Se(this,t).has(t)},Ie.prototype.set=function(t,e){var r=Se(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Oe(t){var e=this.__data__=new be(t);this.size=e.size}Oe.prototype.clear=function(){this.__data__=new be,this.size=0},Oe.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},Oe.prototype.get=function(t){return this.__data__.get(t)},Oe.prototype.has=function(t){return this.__data__.has(t)},Oe.prototype.set=function(t,e){var r=this.__data__;if(r instanceof be){var n=r.__data__;if(!z||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Ie(n)}return r.set(t,e),this.size=r.size,this};var Ae=function(){try{var t=R(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();function Ee(t,e,r){"__proto__"==e&&Ae?Ae(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var xe=Object.prototype.hasOwnProperty;function ke(t,e,r){var n=t[e];xe.call(t,e)&&pe(n,r)&&(void 0!==r||e in t)||Ee(t,e,r)}function Ne(t,e,r,n){var o=!r;r||(r={});for(var i=-1,s=e.length;++i<s;){var a=e[i],u=void 0;void 0===u&&(u=t[a]),o?Ee(r,a,u):ke(r,a,u)}return r}var Pe=Object.prototype.hasOwnProperty;function Re(t){if(!b(t))return function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}(t);var e=r(t),n=[];for(var o in t)("constructor"!=o||!e&&Pe.call(t,o))&&n.push(o);return n}function Be(t){return nt(t)?wt(t,!0):Re(t)}var ze="object"==typeof t&&t&&!t.nodeType&&t,Te=ze&&"object"==typeof module&&module&&!module.nodeType&&module,De=Te&&Te.exports===ze?c.Buffer:void 0,Ce=De?De.allocUnsafe:void 0;function Me(t,e){if(e)return t.slice();var r=t.length,n=Ce?Ce(r):new t.constructor(r);return t.copy(n),n}function Fe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}function Le(){return[]}var Ue=Object.prototype.propertyIsEnumerable,We=Object.getOwnPropertySymbols,qe=We?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var s=t[r];e(s,r,t)&&(i[o++]=s)}return i}(We(t),function(e){return Ue.call(t,e)}))}:Le;function Je(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}var Ke=n(Object.getPrototypeOf,Object),Ve=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Je(e,qe(t)),t=Ke(t);return e}:Le;function $e(t,e,r){var n=e(t);return et(t)?n:Je(n,r(t))}function
|
|
54
|
+
*/var ve=Object.freeze({__proto__:null,_driver:fe,_initStorage:function(t){var e=t?oe(t):{},r=ie(e,this._defaultConfig),n=de.resolve(r);return this._dbInfo=e,this._dbInfo.serializer=le,this._dbInfo.keyPrefix=r,this._dbInfo.mStore=n,Promise.resolve()},_support:!0,clear:function(t){var e=this,r=this.ready().then(function(){e._dbInfo.mStore.clear()});return se(r,t),r},dropInstance:function(t,e){var r=ue.apply(this,arguments),n=r.promise,o=r.callback;return se(n.then(function(t){de.resolve(t).drop()}),o),n},getItem:function(t,e){var r=this;t=ce(t);var n=this.ready().then(function(){var e=r._dbInfo.mStore.get(t);return null==e?null:r._dbInfo.serializer.deserialize(e)});return se(n,e),n},iterate:function(t,e){var r=this,n=this.ready().then(function(){for(var e=r._dbInfo.mStore,n=e.keys(),o=0;o<n.length;o++){var i=e.get(n[o]);if(i&&(i=r._dbInfo.serializer.deserialize(i)),void 0!==(i=t(i,n[o],o+1)))return i}});return se(n,e),n},key:function(t,e){var r=this,n=this.ready().then(function(){var e;try{void 0===(e=r._dbInfo.mStore.key(t))&&(e=null)}catch(t){e=null}return e});return se(n,e),n},keys:function(t){var e=this,r=this.ready().then(function(){return e._dbInfo.mStore.keys()});return se(r,t),r},length:function(t){var e=this.keys().then(function(t){return t.length});return se(e,t),e},removeItem:function(t,e){var r=this;t=ce(t);var n=this.ready().then(function(){r._dbInfo.mStore.rm(t)});return se(n,e),n},setItem:function(t,e,r){var n=this;t=ce(t);var o=this.ready().then(function(){void 0===e&&(e=null);var r=e;return new Promise(function(o,i){n._dbInfo.serializer.serialize(e,function(e,s){if(s)i(s);else try{n._dbInfo.mStore.set(t,e),o(r)}catch(t){i(t)}})})});return se(o,r),o}});function pe(t,e){return t===e||t!=t&&e!=e}function ye(t,e){for(var r=t.length;r--;)if(pe(t[r][0],e))return r;return-1}var ge=Array.prototype.splice;function be(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}be.prototype.clear=function(){this.__data__=[],this.size=0},be.prototype.delete=function(t){var e=this.__data__,r=ye(e,t);return!(r<0)&&(r==e.length-1?e.pop():ge.call(e,r,1),--this.size,!0)},be.prototype.get=function(t){var e=this.__data__,r=ye(e,t);return r<0?void 0:e[r][1]},be.prototype.has=function(t){return ye(this.__data__,t)>-1},be.prototype.set=function(t,e){var r=this.__data__,n=ye(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var me=R(Object,"create");var _e=Object.prototype.hasOwnProperty;var we=Object.prototype.hasOwnProperty;function je(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function Se(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function Ie(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}je.prototype.clear=function(){this.__data__=me?me(null):{},this.size=0},je.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},je.prototype.get=function(t){var e=this.__data__;if(me){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return _e.call(e,t)?e[t]:void 0},je.prototype.has=function(t){var e=this.__data__;return me?void 0!==e[t]:we.call(e,t)},je.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=me&&void 0===e?"__lodash_hash_undefined__":e,this},Ie.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(z||be),string:new je}},Ie.prototype.delete=function(t){var e=Se(this,t).delete(t);return this.size-=e?1:0,e},Ie.prototype.get=function(t){return Se(this,t).get(t)},Ie.prototype.has=function(t){return Se(this,t).has(t)},Ie.prototype.set=function(t,e){var r=Se(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Oe(t){var e=this.__data__=new be(t);this.size=e.size}Oe.prototype.clear=function(){this.__data__=new be,this.size=0},Oe.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},Oe.prototype.get=function(t){return this.__data__.get(t)},Oe.prototype.has=function(t){return this.__data__.has(t)},Oe.prototype.set=function(t,e){var r=this.__data__;if(r instanceof be){var n=r.__data__;if(!z||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Ie(n)}return r.set(t,e),this.size=r.size,this};var Ae=function(){try{var t=R(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();function Ee(t,e,r){"__proto__"==e&&Ae?Ae(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var xe=Object.prototype.hasOwnProperty;function ke(t,e,r){var n=t[e];xe.call(t,e)&&pe(n,r)&&(void 0!==r||e in t)||Ee(t,e,r)}function Ne(t,e,r,n){var o=!r;r||(r={});for(var i=-1,s=e.length;++i<s;){var a=e[i],u=void 0;void 0===u&&(u=t[a]),o?Ee(r,a,u):ke(r,a,u)}return r}var Pe=Object.prototype.hasOwnProperty;function Re(t){if(!b(t))return function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}(t);var e=r(t),n=[];for(var o in t)("constructor"!=o||!e&&Pe.call(t,o))&&n.push(o);return n}function Be(t){return nt(t)?wt(t,!0):Re(t)}var ze="object"==typeof t&&t&&!t.nodeType&&t,Te=ze&&"object"==typeof module&&module&&!module.nodeType&&module,De=Te&&Te.exports===ze?c.Buffer:void 0,Ce=De?De.allocUnsafe:void 0;function Me(t,e){if(e)return t.slice();var r=t.length,n=Ce?Ce(r):new t.constructor(r);return t.copy(n),n}function Fe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}function Le(){return[]}var Ue=Object.prototype.propertyIsEnumerable,We=Object.getOwnPropertySymbols,qe=We?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var s=t[r];e(s,r,t)&&(i[o++]=s)}return i}(We(t),function(e){return Ue.call(t,e)}))}:Le;function Je(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}var Ke=n(Object.getPrototypeOf,Object),Ve=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Je(e,qe(t)),t=Ke(t);return e}:Le;function $e(t,e,r){var n=e(t);return et(t)?n:Je(n,r(t))}function Ge(t){return $e(t,jt,qe)}function Qe(t){return $e(t,Be,Ve)}var He=Object.prototype.hasOwnProperty;var Xe=c.Uint8Array;function Ye(t){var e=new t.constructor(t.byteLength);return new Xe(e).set(new Xe(t)),e}var Ze=/\w*$/;var tr=l?l.prototype:void 0,er=tr?tr.valueOf:void 0;function rr(t,e){var r=e?Ye(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function nr(t,e,r){var n,o=t.constructor;switch(e){case"[object ArrayBuffer]":return Ye(t);case"[object Boolean]":case"[object Date]":return new o(+t);case"[object DataView]":return function(t,e){var r=e?Ye(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return rr(t,r);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(t);case"[object RegExp]":return function(t){var e=new t.constructor(t.source,Ze.exec(t));return e.lastIndex=t.lastIndex,e}(t);case"[object Symbol]":return n=t,er?Object(er.call(n)):{}}}var or=Object.create,ir=function(){function t(){}return function(e){if(!b(e))return{};if(or)return or(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function sr(t){return"function"!=typeof t.constructor||r(t)?{}:ir(Ke(t))}var ar=dt&&dt.isMap,ur=ar?ct(ar):function(t){return Q(t)&&"[object Map]"==G(t)};var cr=dt&&dt.isSet,lr=cr?ct(cr):function(t){return Q(t)&&"[object Set]"==G(t)},fr="[object Arguments]",hr="[object Function]",dr="[object Object]",vr={};function pr(t,e,r,n,o,i){var s,a=1&e,u=2&e,c=4&e;if(r&&(s=o?r(t,n,o,i):r(t)),void 0!==s)return s;if(!b(t))return t;var l=et(t);if(l){if(s=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&He.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!a)return Fe(t,s)}else{var f=G(t),h=f==hr||"[object GeneratorFunction]"==f;if(at(t))return Me(t,a);if(f==dr||f==fr||h&&!o){if(s=u||h?{}:sr(t),!a)return u?function(t,e){return Ne(t,Ve(t),e)}(t,function(t,e){return t&&Ne(e,Be(e),t)}(s,t)):function(t,e){return Ne(t,qe(t),e)}(t,function(t,e){return t&&Ne(e,jt(e),t)}(s,t))}else{if(!vr[f])return o?t:{};s=nr(t,f,a)}}i||(i=new Oe);var d=i.get(t);if(d)return d;i.set(t,s),lr(t)?t.forEach(function(n){s.add(pr(n,e,r,n,t,i))}):ur(t)&&t.forEach(function(n,o){s.set(o,pr(n,e,r,o,t,i))});var v=l?void 0:(c?u?Qe:Ge:u?Be:jt)(t);return function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););}(v||t,function(n,o){v&&(n=t[o=n]),ke(s,o,pr(n,e,r,o,t,i))}),s}vr[fr]=vr["[object Array]"]=vr["[object ArrayBuffer]"]=vr["[object DataView]"]=vr["[object Boolean]"]=vr["[object Date]"]=vr["[object Float32Array]"]=vr["[object Float64Array]"]=vr["[object Int8Array]"]=vr["[object Int16Array]"]=vr["[object Int32Array]"]=vr["[object Map]"]=vr["[object Number]"]=vr[dr]=vr["[object RegExp]"]=vr["[object Set]"]=vr["[object String]"]=vr["[object Symbol]"]=vr["[object Uint8Array]"]=vr["[object Uint8ClampedArray]"]=vr["[object Uint16Array]"]=vr["[object Uint32Array]"]=!0,vr["[object Error]"]=vr[hr]=vr["[object WeakMap]"]=!1;function yr(t){return"string"==typeof t||!et(t)&&Q(t)&&"[object String]"==g(t)}var gr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function br(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function mr(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var _r,wr={exports:{}};
|
|
55
55
|
/*!
|
|
56
56
|
localForage -- Offline Storage, Improved
|
|
57
57
|
Version 1.10.0
|
|
58
58
|
https://localforage.github.io/localForage
|
|
59
59
|
(c) 2013-2017 Mozilla, Apache License 2.0
|
|
60
|
-
*/function jr(){return _r||(_r=1,function(t){t.exports=function t(e,r,n){function o(s,a){if(!r[s]){if(!e[s]){if(!a&&mr)return mr(s);if(i)return i(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=r[s]={exports:{}};e[s][0].call(c.exports,function(t){var r=e[s][1][t];return o(r||t)},c,c.exports,t,e,r,n)}return r[s].exports}for(var i=mr,s=0;s<n.length;s++)o(n[s]);return o}({1:[function(t,e,r){(function(t){var r,n,o=t.MutationObserver||t.WebKitMutationObserver;if(o){var i=0,s=new o(l),a=t.document.createTextNode("");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){l(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(l,0)};else{var u=new t.MessageChannel;u.port1.onmessage=l,r=function(){u.port2.postMessage(0)}}var c=[];function l(){var t,e;n=!0;for(var r=c.length;r;){for(e=c,c=[],t=-1;++t<r;)e[t]();r=c.length}n=!1}function f(t){1!==c.push(t)||n||r()}e.exports=f}).call(this,void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(t,e,r){var n=t(1);function o(){}var i={},s=["REJECTED"],a=["FULFILLED"],u=["PENDING"];function c(t){if("function"!=typeof t)throw new TypeError("resolver must be a function");this.state=u,this.queue=[],this.outcome=void 0,t!==o&&d(this,t)}function l(t,e,r){this.promise=t,"function"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,e,r){n(function(){var n;try{n=e(r)}catch(e){return i.reject(t,e)}n===t?i.reject(t,new TypeError("Cannot resolve promise with itself")):i.resolve(t,n)})}function h(t){var e=t&&t.then;if(t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof e)return function(){e.apply(t,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,i.reject(t,e))}function o(e){r||(r=!0,i.resolve(t,e))}function s(){e(o,n)}var a=v(s);"error"===a.status&&n(a.value)}function v(t,e){var r={};try{r.value=t(e),r.status="success"}catch(t){r.status="error",r.value=t}return r}function p(t){return t instanceof this?t:i.resolve(new this(o),t)}function y(t){var e=new this(o);return i.reject(e,t)}function g(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var r=t.length,n=!1;if(!r)return this.resolve([]);for(var s=new Array(r),a=0,u=-1,c=new this(o);++u<r;)l(t[u],u);return c;function l(t,o){function u(t){s[o]=t,++a!==r||n||(n=!0,i.resolve(c,s))}e.resolve(t).then(u,function(t){n||(n=!0,i.reject(c,t))})}}function b(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var r=t.length,n=!1;if(!r)return this.resolve([]);for(var s=-1,a=new this(o);++s<r;)u(t[s]);return a;function u(t){e.resolve(t).then(function(t){n||(n=!0,i.resolve(a,t))},function(t){n||(n=!0,i.reject(a,t))})}}e.exports=c,c.prototype.catch=function(t){return this.then(null,t)},c.prototype.then=function(t,e){if("function"!=typeof t&&this.state===a||"function"!=typeof e&&this.state===s)return this;var r=new this.constructor(o);return this.state!==u?f(r,this.state===a?t:e,this.outcome):this.queue.push(new l(r,t,e)),r},l.prototype.callFulfilled=function(t){i.resolve(this.promise,t)},l.prototype.otherCallFulfilled=function(t){f(this.promise,this.onFulfilled,t)},l.prototype.callRejected=function(t){i.reject(this.promise,t)},l.prototype.otherCallRejected=function(t){f(this.promise,this.onRejected,t)},i.resolve=function(t,e){var r=v(h,e);if("error"===r.status)return i.reject(t,r.value);var n=r.value;if(n)d(t,n);else{t.state=a,t.outcome=e;for(var o=-1,s=t.queue.length;++o<s;)t.queue[o].callFulfilled(e)}return t},i.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,n=t.queue.length;++r<n;)t.queue[r].callRejected(e);return t},c.resolve=p,c.reject=y,c.all=g,c.race=b},{1:1}],3:[function(t,e,r){(function(e){"function"!=typeof e.Promise&&(e.Promise=t(2))}).call(this,void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(t,e,r){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(t){return}}var s=i();function a(){try{if(!s||!s.open)return!1;var t="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),e="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!t||e)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(t){return!1}}function u(t,e){t=t||[],e=e||{};try{return new Blob(t,e)}catch(o){if("TypeError"!==o.name)throw o;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<t.length;n+=1)r.append(t[n]);return r.getBlob(e.type)}}"undefined"==typeof Promise&&t(3);var c=Promise;function l(t,e){e&&t.then(function(t){e(null,t)},function(t){e(t)})}function f(t,e,r){"function"==typeof e&&t.then(e),"function"==typeof r&&t.catch(r)}function h(t){return"string"!=typeof t&&(console.warn(t+" used as a key, but it is not a string."),t=String(t)),t}function d(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var v="local-forage-detect-blob-support",p=void 0,y={},g=Object.prototype.toString,b="readonly",m="readwrite";function _(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;o<e;o++)n[o]=t.charCodeAt(o);return r}function w(t){return new c(function(e){var r=t.transaction(v,m),n=u([""]);r.objectStore(v).put(n,"key"),r.onabort=function(t){t.preventDefault(),t.stopPropagation(),e(!1)},r.oncomplete=function(){var t=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);e(r||!t||parseInt(t[1],10)>=43)}}).catch(function(){return!1})}function j(t){return"boolean"==typeof p?c.resolve(p):w(t).then(function(t){return p=t})}function S(t){var e=y[t.name],r={};r.promise=new c(function(t,e){r.resolve=t,r.reject=e}),e.deferredOperations.push(r),e.dbReady?e.dbReady=e.dbReady.then(function(){return r.promise}):e.dbReady=r.promise}function I(t){var e=y[t.name].deferredOperations.pop();if(e)return e.resolve(),e.promise}function O(t,e){var r=y[t.name].deferredOperations.pop();if(r)return r.reject(e),r.promise}function A(t,e){return new c(function(r,n){if(y[t.name]=y[t.name]||D(),t.db){if(!e)return r(t.db);S(t),t.db.close()}var o=[t.name];e&&o.push(t.version);var i=s.open.apply(s,o);e&&(i.onupgradeneeded=function(e){var r=i.result;try{r.createObjectStore(t.storeName),e.oldVersion<=1&&r.createObjectStore(v)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+t.name+'" has been upgraded from version '+e.oldVersion+" to version "+e.newVersion+', but the storage "'+t.storeName+'" already exists.')}}),i.onerror=function(t){t.preventDefault(),n(i.error)},i.onsuccess=function(){var e=i.result;e.onversionchange=function(t){t.target.close()},r(e),I(t)}})}function E(t){return A(t,!1)}function x(t){return A(t,!0)}function k(t,e){if(!t.db)return!0;var r=!t.db.objectStoreNames.contains(t.storeName),n=t.version<t.db.version,o=t.version>t.db.version;if(n&&(t.version!==e&&console.warn('The database "'+t.name+"\" can't be downgraded from version "+t.db.version+" to version "+t.version+"."),t.version=t.db.version),o||r){if(r){var i=t.db.version+1;i>t.version&&(t.version=i)}return!0}return!1}function N(t){return new c(function(e,r){var n=new FileReader;n.onerror=r,n.onloadend=function(r){var n=btoa(r.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:t.type})},n.readAsBinaryString(t)})}function P(t){return u([_(atob(t.data))],{type:t.type})}function R(t){return t&&t.__local_forage_encoded_blob}function B(t){var e=this,r=e._initReady().then(function(){var t=y[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady});return f(r,t,t),r}function z(t){S(t);for(var e=y[t.name],r=e.forages,n=0;n<r.length;n++){var o=r[n];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return t.db=null,E(t).then(function(e){return t.db=e,k(t)?x(t):e}).then(function(n){t.db=e.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n}).catch(function(e){throw O(t,e),e})}function T(t,e,r,n){void 0===n&&(n=1);try{var o=t.db.transaction(t.storeName,e);r(null,o)}catch(o){if(n>0&&(!t.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then(function(){if(!t.db||"NotFoundError"===o.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),x(t)}).then(function(){return z(t).then(function(){T(t,e,r,n-1)})}).catch(r);r(o)}}function D(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function C(t){var e=this,r={db:null};if(t)for(var n in t)r[n]=t[n];var o=y[r.name];o||(o=D(),y[r.name]=o),o.forages.push(e),e._initReady||(e._initReady=e.ready,e.ready=B);var i=[];function s(){return c.resolve()}for(var a=0;a<o.forages.length;a++){var u=o.forages[a];u!==e&&i.push(u._initReady().catch(s))}var l=o.forages.slice(0);return c.all(i).then(function(){return r.db=o.db,E(r)}).then(function(t){return r.db=t,k(r,e._defaultConfig.version)?x(r):t}).then(function(t){r.db=o.db=t,e._dbInfo=r;for(var n=0;n<l.length;n++){var i=l[n];i!==e&&(i._dbInfo.db=r.db,i._dbInfo.version=r.version)}})}function M(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).get(t);s.onsuccess=function(){var t=s.result;void 0===t&&(t=null),R(t)&&(t=P(t)),e(t)},s.onerror=function(){n(s.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function F(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).openCursor(),a=1;s.onsuccess=function(){var r=s.result;if(r){var n=r.value;R(n)&&(n=P(n));var o=t(n,r.key,a++);void 0!==o?e(o):r.continue()}else e()},s.onerror=function(){n(s.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function L(t,e,r){var n=this;t=h(t);var o=new c(function(r,o){var i;n.ready().then(function(){return i=n._dbInfo,"[object Blob]"===g.call(e)?j(i.db).then(function(t){return t?e:N(e)}):e}).then(function(e){T(n._dbInfo,m,function(i,s){if(i)return o(i);try{var a=s.objectStore(n._dbInfo.storeName);null===e&&(e=void 0);var u=a.put(e,t);s.oncomplete=function(){void 0===e&&(e=null),r(e)},s.onabort=s.onerror=function(){var t=u.error?u.error:u.transaction.error;o(t)}}catch(t){o(t)}})}).catch(o)});return l(o,r),o}function U(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,m,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).delete(t);i.oncomplete=function(){e()},i.onerror=function(){n(s.error)},i.onabort=function(){var t=s.error?s.error:s.transaction.error;n(t)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function W(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,m,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).clear();o.oncomplete=function(){t()},o.onabort=o.onerror=function(){var t=i.error?i.error:i.transaction.error;r(t)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function q(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,b,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).count();i.onsuccess=function(){t(i.result)},i.onerror=function(){r(i.error)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function J(t,e){var r=this,n=new c(function(e,n){t<0?e(null):r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName),a=!1,u=s.openKeyCursor();u.onsuccess=function(){var r=u.result;r?0===t||a?e(r.key):(a=!0,r.advance(t)):e(null)},u.onerror=function(){n(u.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function K(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,b,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).openKeyCursor(),s=[];i.onsuccess=function(){var e=i.result;e?(s.push(e.key),e.continue()):t(s)},i.onerror=function(){r(i.error)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function V(t,e){e=d.apply(this,arguments);var r=this.config();(t="function"!=typeof t&&t||{}).name||(t.name=t.name||r.name,t.storeName=t.storeName||r.storeName);var n,o=this;if(t.name){var i=t.name===r.name&&o._dbInfo.db?c.resolve(o._dbInfo.db):E(t).then(function(e){var r=y[t.name],n=r.forages;r.db=e;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=e;return e});n=t.storeName?i.then(function(e){if(e.objectStoreNames.contains(t.storeName)){var r=e.version+1;S(t);var n=y[t.name],o=n.forages;e.close();for(var i=0;i<o.length;i++){var a=o[i];a._dbInfo.db=null,a._dbInfo.version=r}var u=new c(function(e,n){var o=s.open(t.name,r);o.onerror=function(t){o.result.close(),n(t)},o.onupgradeneeded=function(){o.result.deleteObjectStore(t.storeName)},o.onsuccess=function(){var t=o.result;t.close(),e(t)}});return u.then(function(t){n.db=t;for(var e=0;e<o.length;e++){var r=o[e];r._dbInfo.db=t,I(r._dbInfo)}}).catch(function(e){throw(O(t,e)||c.resolve()).catch(function(){}),e})}}):i.then(function(e){S(t);var r=y[t.name],n=r.forages;e.close();for(var o=0;o<n.length;o++)n[o]._dbInfo.db=null;var i=new c(function(e,r){var n=s.deleteDatabase(t.name);n.onerror=function(){var t=n.result;t&&t.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+t.name+'" until all open connections are closed')},n.onsuccess=function(){var t=n.result;t&&t.close(),e(t)}});return i.then(function(t){r.db=t;for(var e=0;e<n.length;e++)I(n[e]._dbInfo)}).catch(function(e){throw(O(t,e)||c.resolve()).catch(function(){}),e})})}else n=c.reject("Invalid arguments");return l(n,e),n}var $={_driver:"asyncStorage",_initStorage:C,_support:a(),iterate:F,getItem:M,setItem:L,removeItem:U,clear:W,length:q,key:J,keys:K,dropInstance:V};function Q(){return"function"==typeof openDatabase}var G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",H="~~local_forage_type~",X=/^~~local_forage_type~([^~]+)~/,Y="__lfsc__:",Z=Y.length,tt="arbf",et="blob",rt="si08",nt="ui08",ot="uic8",it="si16",st="si32",at="ur16",ut="ui32",ct="fl32",lt="fl64",ft=Z+tt.length,ht=Object.prototype.toString;function dt(t){var e,r,n,o,i,s=.75*t.length,a=t.length,u=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var c=new ArrayBuffer(s),l=new Uint8Array(c);for(e=0;e<a;e+=4)r=G.indexOf(t[e]),n=G.indexOf(t[e+1]),o=G.indexOf(t[e+2]),i=G.indexOf(t[e+3]),l[u++]=r<<2|n>>4,l[u++]=(15&n)<<4|o>>2,l[u++]=(3&o)<<6|63&i;return c}function vt(t){var e,r=new Uint8Array(t),n="";for(e=0;e<r.length;e+=3)n+=G[r[e]>>2],n+=G[(3&r[e])<<4|r[e+1]>>4],n+=G[(15&r[e+1])<<2|r[e+2]>>6],n+=G[63&r[e+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}function pt(t,e){var r="";if(t&&(r=ht.call(t)),t&&("[object ArrayBuffer]"===r||t.buffer&&"[object ArrayBuffer]"===ht.call(t.buffer))){var n,o=Y;t instanceof ArrayBuffer?(n=t,o+=tt):(n=t.buffer,"[object Int8Array]"===r?o+=rt:"[object Uint8Array]"===r?o+=nt:"[object Uint8ClampedArray]"===r?o+=ot:"[object Int16Array]"===r?o+=it:"[object Uint16Array]"===r?o+=at:"[object Int32Array]"===r?o+=st:"[object Uint32Array]"===r?o+=ut:"[object Float32Array]"===r?o+=ct:"[object Float64Array]"===r?o+=lt:e(new Error("Failed to get type for BinaryArray"))),e(o+vt(n))}else if("[object Blob]"===r){var i=new FileReader;i.onload=function(){var r=H+t.type+"~"+vt(this.result);e(Y+et+r)},i.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(r){console.error("Couldn't convert value into a JSON string: ",t),e(null,r)}}function yt(t){if(t.substring(0,Z)!==Y)return JSON.parse(t);var e,r=t.substring(ft),n=t.substring(Z,ft);if(n===et&&X.test(r)){var o=r.match(X);e=o[1],r=r.substring(o[0].length)}var i=dt(r);switch(n){case tt:return i;case et:return u([i],{type:e});case rt:return new Int8Array(i);case nt:return new Uint8Array(i);case ot:return new Uint8ClampedArray(i);case it:return new Int16Array(i);case at:return new Uint16Array(i);case st:return new Int32Array(i);case ut:return new Uint32Array(i);case ct:return new Float32Array(i);case lt:return new Float64Array(i);default:throw new Error("Unkown type: "+n)}}var gt={serialize:pt,deserialize:yt,stringToBuffer:dt,bufferToString:vt};function bt(t,e,r,n){t.executeSql("CREATE TABLE IF NOT EXISTS "+e.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function mt(t){var e=this,r={db:null};if(t)for(var n in t)r[n]="string"!=typeof t[n]?t[n].toString():t[n];var o=new c(function(t,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(t){return n(t)}r.db.transaction(function(o){bt(o,r,function(){e._dbInfo=r,t()},function(t,e){n(e)})},n)});return r.serializer=gt,o}function _t(t,e,r,n,o,i){t.executeSql(r,n,o,function(t,s){s.code===s.SYNTAX_ERR?t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[e.storeName],function(t,a){a.rows.length?i(t,s):bt(t,e,function(){t.executeSql(r,n,o,i)},i)},i):i(t,s)},i)}function wt(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[t],function(t,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=o.serializer.deserialize(n)),e(n)},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function jt(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT * FROM "+o.storeName,[],function(r,n){for(var i=n.rows,s=i.length,a=0;a<s;a++){var u=i.item(a),c=u.value;if(c&&(c=o.serializer.deserialize(c)),void 0!==(c=t(c,u.key,a+1)))return void e(c)}e()},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function St(t,e,r,n){var o=this;t=h(t);var i=new c(function(i,s){o.ready().then(function(){void 0===e&&(e=null);var a=e,u=o._dbInfo;u.serializer.serialize(e,function(e,c){c?s(c):u.db.transaction(function(r){_t(r,u,"INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",[t,e],function(){i(a)},function(t,e){s(e)})},function(e){if(e.code===e.QUOTA_ERR){if(n>0)return void i(St.apply(o,[t,a,r,n-1]));s(e)}})})}).catch(s)});return l(i,r),i}function It(t,e,r){return St.apply(this,[t,e,r,1])}function Ot(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[t],function(){e()},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function At(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"DELETE FROM "+n.storeName,[],function(){t()},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function Et(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],function(e,r){var n=r.rows.item(0).c;t(n)},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function xt(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[t+1],function(t,r){var n=r.rows.length?r.rows.item(0).key:null;e(n)},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function kt(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"SELECT key FROM "+n.storeName,[],function(e,r){for(var n=[],o=0;o<r.rows.length;o++)n.push(r.rows.item(o).key);t(n)},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function Nt(t){return new c(function(e,r){t.transaction(function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(r,n){for(var o=[],i=0;i<n.rows.length;i++)o.push(n.rows.item(i).name);e({db:t,storeNames:o})},function(t,e){r(e)})},function(t){r(t)})})}function Pt(t,e){e=d.apply(this,arguments);var r=this.config();(t="function"!=typeof t&&t||{}).name||(t.name=t.name||r.name,t.storeName=t.storeName||r.storeName);var n,o=this;return l(n=t.name?new c(function(e){var n;n=t.name===r.name?o._dbInfo.db:openDatabase(t.name,"","",0),t.storeName?e({db:n,storeNames:[t.storeName]}):e(Nt(n))}).then(function(t){return new c(function(e,r){t.db.transaction(function(n){function o(t){return new c(function(e,r){n.executeSql("DROP TABLE IF EXISTS "+t,[],function(){e()},function(t,e){r(e)})})}for(var i=[],s=0,a=t.storeNames.length;s<a;s++)i.push(o(t.storeNames[s]));c.all(i).then(function(){e()}).catch(function(t){r(t)})},function(t){r(t)})})}):c.reject("Invalid arguments"),e),n}var Rt={_driver:"webSQLStorage",_initStorage:mt,_support:Q(),iterate:jt,getItem:wt,setItem:It,removeItem:Ot,clear:At,length:Et,key:xt,keys:kt,dropInstance:Pt};function Bt(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(t){return!1}}function zt(t,e){var r=t.name+"/";return t.storeName!==e.storeName&&(r+=t.storeName+"/"),r}function Tt(){var t="_localforage_support_test";try{return localStorage.setItem(t,!0),localStorage.removeItem(t),!1}catch(t){return!0}}function Dt(){return!Tt()||localStorage.length>0}function Ct(t){var e=this,r={};if(t)for(var n in t)r[n]=t[n];return r.keyPrefix=zt(t,e._defaultConfig),Dt()?(e._dbInfo=r,r.serializer=gt,c.resolve()):c.reject()}function Mt(t){var e=this,r=e.ready().then(function(){for(var t=e._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(t)&&localStorage.removeItem(n)}});return l(r,t),r}function Ft(t,e){var r=this;t=h(t);var n=r.ready().then(function(){var e=r._dbInfo,n=localStorage.getItem(e.keyPrefix+t);return n&&(n=e.serializer.deserialize(n)),n});return l(n,e),n}function Lt(t,e){var r=this,n=r.ready().then(function(){for(var e=r._dbInfo,n=e.keyPrefix,o=n.length,i=localStorage.length,s=1,a=0;a<i;a++){var u=localStorage.key(a);if(0===u.indexOf(n)){var c=localStorage.getItem(u);if(c&&(c=e.serializer.deserialize(c)),void 0!==(c=t(c,u.substring(o),s++)))return c}}});return l(n,e),n}function Ut(t,e){var r=this,n=r.ready().then(function(){var e,n=r._dbInfo;try{e=localStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(n.keyPrefix.length)),e});return l(n,e),n}function Wt(t){var e=this,r=e.ready().then(function(){for(var t=e._dbInfo,r=localStorage.length,n=[],o=0;o<r;o++){var i=localStorage.key(o);0===i.indexOf(t.keyPrefix)&&n.push(i.substring(t.keyPrefix.length))}return n});return l(r,t),r}function qt(t){var e=this.keys().then(function(t){return t.length});return l(e,t),e}function Jt(t,e){var r=this;t=h(t);var n=r.ready().then(function(){var e=r._dbInfo;localStorage.removeItem(e.keyPrefix+t)});return l(n,e),n}function Kt(t,e,r){var n=this;t=h(t);var o=n.ready().then(function(){void 0===e&&(e=null);var r=e;return new c(function(o,i){var s=n._dbInfo;s.serializer.serialize(e,function(e,n){if(n)i(n);else try{localStorage.setItem(s.keyPrefix+t,e),o(r)}catch(t){"QuotaExceededError"!==t.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==t.name||i(t),i(t)}})})});return l(o,r),o}function Vt(t,e){if(e=d.apply(this,arguments),!(t="function"!=typeof t&&t||{}).name){var r=this.config();t.name=t.name||r.name,t.storeName=t.storeName||r.storeName}var n,o=this;return n=t.name?new c(function(e){t.storeName?e(zt(t,o._defaultConfig)):e(t.name+"/")}).then(function(t){for(var e=localStorage.length-1;e>=0;e--){var r=localStorage.key(e);0===r.indexOf(t)&&localStorage.removeItem(r)}}):c.reject("Invalid arguments"),l(n,e),n}var $t={_driver:"localStorageWrapper",_initStorage:Ct,_support:Bt(),iterate:Lt,getItem:Ft,setItem:Kt,removeItem:Jt,clear:Mt,length:qt,key:Ut,keys:Wt,dropInstance:Vt},Qt=function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)},Gt=function(t,e){for(var r=t.length,n=0;n<r;){if(Qt(t[n],e))return!0;n++}return!1},Ht=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},Xt={},Yt={},Zt={INDEXEDDB:$,WEBSQL:Rt,LOCALSTORAGE:$t},te=[Zt.INDEXEDDB._driver,Zt.WEBSQL._driver,Zt.LOCALSTORAGE._driver],ee=["dropInstance"],re=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(ee),ne={description:"",driver:te.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function oe(t,e){t[e]=function(){var r=arguments;return t.ready().then(function(){return t[e].apply(t,r)})}}function ie(){for(var t=1;t<arguments.length;t++){var e=arguments[t];if(e)for(var r in e)e.hasOwnProperty(r)&&(Ht(e[r])?arguments[0][r]=e[r].slice():arguments[0][r]=e[r])}return arguments[0]}var se=function(){function t(e){for(var r in o(this,t),Zt)if(Zt.hasOwnProperty(r)){var n=Zt[r],i=n._driver;this[r]=i,Xt[i]||this.defineDriver(n)}this._defaultConfig=ie({},ne),this._config=ie({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return t.prototype.config=function(t){if("object"===(void 0===t?"undefined":n(t))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var e in t){if("storeName"===e&&(t[e]=t[e].replace(/\W/g,"_")),"version"===e&&"number"!=typeof t[e])return new Error("Database version must be a number.");this._config[e]=t[e]}return!("driver"in t)||!t.driver||this.setDriver(this._config.driver)}return"string"==typeof t?this._config[t]:this._config},t.prototype.defineDriver=function(t,e,r){var n=new c(function(e,r){try{var n=t._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!t._driver)return void r(o);for(var i=re.concat("_initStorage"),s=0,a=i.length;s<a;s++){var u=i[s];if((!Gt(ee,u)||t[u])&&"function"!=typeof t[u])return void r(o)}var f=function(){for(var e=function(t){return function(){var e=new Error("Method "+t+" is not implemented by the current driver"),r=c.reject(e);return l(r,arguments[arguments.length-1]),r}},r=0,n=ee.length;r<n;r++){var o=ee[r];t[o]||(t[o]=e(o))}};f();var h=function(r){Xt[n]&&console.info("Redefining LocalForage driver: "+n),Xt[n]=t,Yt[n]=r,e()};"_support"in t?t._support&&"function"==typeof t._support?t._support().then(h,r):h(!!t._support):h(!0)}catch(t){r(t)}});return f(n,e,r),n},t.prototype.driver=function(){return this._driver||null},t.prototype.getDriver=function(t,e,r){var n=Xt[t]?c.resolve(Xt[t]):c.reject(new Error("Driver not found."));return f(n,e,r),n},t.prototype.getSerializer=function(t){var e=c.resolve(gt);return f(e,t),e},t.prototype.ready=function(t){var e=this,r=e._driverSet.then(function(){return null===e._ready&&(e._ready=e._initDriver()),e._ready});return f(r,t,t),r},t.prototype.setDriver=function(t,e,r){var n=this;Ht(t)||(t=[t]);var o=this._getSupportedDrivers(t);function i(){n._config.driver=n.driver()}function s(t){return n._extend(t),i(),n._ready=n._initStorage(n._config),n._ready}function a(t){return function(){var e=0;function r(){for(;e<t.length;){var o=t[e];return e++,n._dbInfo=null,n._ready=null,n.getDriver(o).then(s).catch(r)}i();var a=new Error("No available storage method found.");return n._driverSet=c.reject(a),n._driverSet}return r()}}var u=null!==this._driverSet?this._driverSet.catch(function(){return c.resolve()}):c.resolve();return this._driverSet=u.then(function(){var t=o[0];return n._dbInfo=null,n._ready=null,n.getDriver(t).then(function(t){n._driver=t._driver,i(),n._wrapLibraryMethodsWithReady(),n._initDriver=a(o)})}).catch(function(){i();var t=new Error("No available storage method found.");return n._driverSet=c.reject(t),n._driverSet}),f(this._driverSet,e,r),this._driverSet},t.prototype.supports=function(t){return!!Yt[t]},t.prototype._extend=function(t){ie(this,t)},t.prototype._getSupportedDrivers=function(t){for(var e=[],r=0,n=t.length;r<n;r++){var o=t[r];this.supports(o)&&e.push(o)}return e},t.prototype._wrapLibraryMethodsWithReady=function(){for(var t=0,e=re.length;t<e;t++)oe(this,re[t])},t.prototype.createInstance=function(e){return new t(e)},t}(),ae=new se;e.exports=ae},{3:3}]},{},[4])(4)}(wr)),wr.exports}var Sr=br(jr());function Ir(t,e,r){(void 0!==r&&!pe(t[e],r)||void 0===r&&!(e in t))&&Ee(t,e,r)}var Or=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),s=i.length;s--;){var a=i[++n];if(!1===e(o[a],a,o))break}return t};var Ar=Function.prototype,Er=Object.prototype,xr=Ar.toString,kr=Er.hasOwnProperty,Nr=xr.call(Object);function Pr(t){if(!G(t)||"[object Object]"!=g(t))return!1;var e=Ke(t);if(null===e)return!0;var r=kr.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&xr.call(r)==Nr}function Rr(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function Br(t,e,r,n,o,i,s){var a=Rr(t,r),u=Rr(e,r),c=s.get(u);if(c)Ir(t,r,c);else{var l,f=i?i(a,u,r+"",t,e,s):void 0,h=void 0===f;if(h){var d=et(u),v=!d&&at(u),p=!d&&!v&&pt(u);f=u,d||v||p?et(a)?f=a:G(l=a)&&nt(l)?f=Fe(a):v?(h=!1,f=Me(u,!0)):p?(h=!1,f=rr(u,!0)):f=[]:Pr(u)||tt(u)?(f=a,tt(a)?f=function(t){return Ne(t,Be(t))}(a):b(a)&&!m(a)||(f=sr(u))):h=!1}h&&(s.set(u,f),o(f,u,n,i,s),s.delete(u)),Ir(t,r,f)}}function zr(t,e,r,n,o){t!==e&&Or(e,function(i,s){if(o||(o=new Oe),b(i))Br(t,e,s,r,zr,n,o);else{var a=n?n(Rr(t,s),i,s+"",t,e,o):void 0;void 0===a&&(a=i),Ir(t,s,a)}},Be)}function Tr(t){return t}var Dr=Math.max;function Cr(t,e,r){return e=Dr(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=Dr(n.length-e,0),s=Array(i);++o<i;)s[o]=n[e+o];o=-1;for(var a=Array(e+1);++o<e;)a[o]=n[o];return a[e]=r(s),function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}(t,this,a)}}function Mr(t){return function(){return t}}var Fr=Ae?function(t,e){return Ae(t,"toString",{configurable:!0,enumerable:!1,value:Mr(e),writable:!0})}:Tr,Lr=Date.now;var Ur,Wr,qr,Jr=(Ur=Fr,Wr=0,qr=0,function(){var t=Lr(),e=16-(t-qr);if(qr=t,e>0){if(++Wr>=800)return arguments[0]}else Wr=0;return Ur.apply(void 0,arguments)});function Kr(t,e){return Jr(Cr(t,e,Tr),t+"")}function Vr(t,e,r){if(!b(r))return!1;var n=typeof e;return!!("number"==n?nt(r)&&mt(e,r.length):"string"==n&&e in r)&&pe(r[e],t)}function $r(t){return Kr(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,s=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,s&&Vr(r[0],r[1],s)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var a=r[n];a&&t(e,a,n,i)}return e})}var Qr=$r(function(t,e,r){zr(t,e,r)}),Gr=$r(function(t,e,r,n){zr(t,e,r,n)});function Hr(){let t,e=()=>{},r=()=>{};if("function"==typeof Promise.withResolvers){const{promise:n,resolve:o,reject:i}=Promise.withResolvers();t=n,e=o,r=i}else t=new Promise((t,n)=>{e=t,r=n});return Object.assign(t,{isResolved:!1,isPending:!0,isRejected:!1,resolve:e,reject:r}),t.then(e=>(t.isResolved=!0,t.isPending=!1,t.isRejected=!1,e),e=>{throw t.isResolved=!1,t.isPending=!1,t.isRejected=!0,e}),t}const Xr=Math.max,Yr=Math.min;function Zr(t){if("number"==typeof t)return t;if("string"==typeof t){const e=parseFloat(t);return isNaN(e)?0:e}return 0}function tn(t,e,r={}){let n,o,i,s,a,u,c=0,l=!1,f=r.promise?Hr():null;if("function"!=typeof t)throw new TypeError("Expected a function");function h(e){const i=n,a=o,u=f;return n=o=void 0,c=e,s=t.apply(a,i),r.promise&&(u.resolve(s),f=Hr()),r.promise?u:s}function d(t){const r=t-u;return void 0===u||r>=e||r<0||l&&t-c>=i}function v(){const t=Date.now();if(d(t))return p(t);a=setTimeout(v,function(t){const r=e-(t-u);return l?Yr(r,i-(t-c)):r}(t))}function p(t){return a=void 0,n?h(t):(n=o=void 0,r.promise?f:s)}function y(t,e){if(Array.isArray(t)&&Array.isArray(e))return r?.dedupeArrays?t.concat(e.filter(e=>-1===t.indexOf(e))):t.concat(e)}function g(){const t=Date.now(),i=d(t);var p;if(p=Array.from(arguments),n=n?.length?p.length?r?.concatArrays||r?.dedupeArrays?Gr(n,p,y):Qr(n,p):n:p||[],o=this,u=t,i){if(void 0===a)return function(t){return c=t,a=setTimeout(v,e),r.promise?f:s}(u);if(l)return clearTimeout(a),a=setTimeout(v,e),h(u)}return void 0===a&&(a=setTimeout(v,e)),r.promise?f:s}return e=Zr(e)||0,function(t){const e=typeof t;return null!=t&&("object"===e||"function"===e)}(r)&&(l="maxWait"in r,i=l?Xr(Zr(r.maxWait)||0,e):i),g.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=o=a=void 0},g.flush=function(){return void 0===a?s:p(Date.now())},g}function en(t,e){e&&t.then(t=>e(null,t),t=>e(t))}function rn(t){return"string"!=typeof t&&(console.warn(`${t} used as a key, but it is not a string.`),t=String(t)),t}function nn(t,e){let r=t.name+"/";return t.storeName!==e.storeName&&(r+=t.storeName+"/"),r}const on={keyPrefix:"",serializer:{serialize:function(t,e){try{e(function(t){return JSON.stringify(t,(t,e)=>e instanceof Date?e.toISOString():e)}(t),null)}catch(t){e("",t)}},deserialize:function(t){return JSON.parse(t)}}};const sn={_driver:"sessionStorageWrapper",_initStorage:function(t){if(on.keyPrefix=nn(t,this._defaultConfig),t)for(const e in t)on[e]=t[e]},_support:function(){try{if(sessionStorage&&"setItem"in sessionStorage)return!0}catch(t){console.log(t)}return!1}(),iterate:function(t,e){const r=this.ready().then(function(){const e=on.keyPrefix,r=e.length,n=sessionStorage.length;let o=1;for(let i=0;i<n;i++){const n=sessionStorage.key(i);if(!n||0!==n.indexOf(e))continue;const s=sessionStorage.getItem(n),a=s?on.serializer.deserialize(s):s,u=t(a,n.substring(r),o++);if(void 0!==u)return u}});return en(r,e),r},getItem:function(t,e){t=rn(t);const r=this.ready().then(function(){const e=sessionStorage.getItem(on.keyPrefix+t);return e?on.serializer.deserialize(e):null});return en(r,e),r},setItem:async function(t,e,r){t=rn(t),await this.ready();const n=e=e??null;return new Promise((o,i)=>{on.serializer.serialize(e,(e,s)=>{if(s)return i(s),void en(Promise.reject(s),r);try{sessionStorage.setItem(on.keyPrefix+t,e),o(n),en(Promise.resolve(n),r)}catch(t){"QuotaExceededError"!==t.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==t.name||console.error("Your sessionStorage capacity is used up."),i(t),en(Promise.reject(t),r)}})})},removeItem:function(t,e){t=rn(t);const r=this.ready().then(function(){sessionStorage.removeItem(on.keyPrefix+t)});return en(r,e),r},clear:function(t){const e=this.ready().then(function(){const t=on.keyPrefix;for(let e=sessionStorage.length-1;e>=0;e--){const r=sessionStorage.key(e);r&&0===r.indexOf(t)&&sessionStorage.removeItem(r)}});return en(e,t),e},length:function(t){const e=this.keys().then(function(t){return t.length});return en(e,t),e},key:function(t,e){const r=this.ready().then(function(){let e;try{e=sessionStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(on.keyPrefix.length)),e});return en(r,e),r},keys:function(t){const e=this.ready().then(function(){const t=sessionStorage.length,e=[];for(let r=0;r<t;r++){const t=sessionStorage.key(r);t&&0===t.indexOf(on.keyPrefix)&&e.push(t.substring(on.keyPrefix.length))}return e});return en(e,t),e},dropInstance:function(...t){const e=function(...t){if(t.length&&"function"==typeof t[t.length-1])return t[t.length-1]}(...t);let r="function"!=typeof t[0]&&t[0]||{};if(!r.name){const t=this.config();r.name=r.name||t.name,r.storeName=r.storeName||t.storeName}const n=this;let o;return o=r.name?new Promise(function(t){r.storeName?t(nn(r,n._defaultConfig)):t(`${r.name}/`)}).then(function(t){for(let e=sessionStorage.length-1;e>=0;e--){const r=sessionStorage.key(e);r&&0===r.indexOf(t)&&sessionStorage.removeItem(r)}}):Promise.reject(new Error("Invalid arguments")),en(o,e),o}};var an,un={exports:{}};var cn=(an||(an=1,function(t,e){!function(t,e){function r(t){return r.result?r.result:t&&"function"==typeof t.getSerializer?(r.result=t.getSerializer(),r.result):Promise.reject(new Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function n(t,e){e&&t.then(function(t){e(null,t)},function(t){e(t)})}function o(t,e,r,n){function o(t,e){var r=t||e;return t&&"function"==typeof t||"string"!=typeof r||(t=function(t){return t[r]}),t}var i=[];if("[object Array]"===Object.prototype.toString.call(t)){e=o(e,"key"),r=o(r,"value");for(var s=0,a=t.length;s<a;s++){var u=t[s];i.push(n(e(u),r(u)))}}else for(var c in t)t.hasOwnProperty(c)&&i.push(n(c,t[c]));return i}function i(t,e,r,i){var s=this,a=s.ready().then(function(){return new Promise(function(n,i){var a,u=s._dbInfo,c=u.db.transaction(u.storeName,"readwrite"),l=c.objectStore(u.storeName);function f(t){var e=t.target||this;a=e.error||e.transaction.error,i(a)}c.oncomplete=function(){n(t)},c.onabort=c.onerror=function(t){i(a||t.target)},o(t,e,r,function(t,e){null===e&&(e=void 0),l.put(e,t).onerror=f})})});return n(a,i),a}function s(t,e,i,s){var a=this,u=new Promise(function(n,s){a.ready().then(function(){return r(a)}).then(function(r){var u=a._dbInfo;u.db.transaction(function(a){var c="INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",l=o(t,e,i,function(t,e){return new Promise(function(n,o){r.serialize(e,function(e,r){r?o(r):a.executeSql(c,[t,e],function(){n()},function(t,e){o(e)})})})});Promise.all(l).then(function(){n(t)},s)},function(t){s(t)})}).catch(s)});return n(u,s),u}function a(t,e,r,i){var s=this,a=o(t,e,r,function(t,e){return s.setItem(t,e)}),u=Promise.all(a);return n(u,i),u}function u(t,e,r,n){var o=this,u=o.driver();return u===o.INDEXEDDB?i.call(o,t,e,r,n):u===o.WEBSQL?s.call(o,t,e,r,n):a.call(o,t,e,r,n)}function c(t){var e=Object.getPrototypeOf(t);e&&(e.setItems=u,e.setItems.indexedDB=function(){return i.apply(this,arguments)},e.setItems.websql=function(){return s.apply(this,arguments)},e.setItems.generic=function(){return a.apply(this,arguments)})}var l=c(e="default"in e?e.default:e);t.setItemsGeneric=a,t.localforageSetItems=u,t.extendPrototype=c,t.extendPrototypeResult=l,Object.defineProperty(t,"__esModule",{value:!0})}(e,jr())}(0,un.exports)),un.exports);function ln(t){return ln.result?ln.result:t&&"function"==typeof t.getSerializer?(ln.result=t.getSerializer(),ln.result):Promise.reject(new Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function fn(t,e){return e&&t.then(function(t){e(null,t)},function(t){e(t)}),t}function hn(t,e){var r=this.getItem(t).then(function(e){return{key:t,value:e}});return fn(r,e),r}function dn(t){var e=this,r=new Promise(function(r,n){for(var o=[],i=0,s=t.length;i<s;i++)o.push(hn.call(e,t[i]));Promise.all(o).then(function(t){for(var e={},n=0,o=t.length;n<o;n++){var i=t[n];e[i.key]=i.value}r(e)}).catch(n)});return r}function vn(){var t={};return this.iterate(function(e,r){t[r]=e}).then(function(){return t})}var pn="undefined"!=typeof IDBKeyRange?IDBKeyRange:"undefined"!=typeof webkitIDBKeyRange?webkitIDBKeyRange:"undefined"!=typeof mozIDBKeyRange?mozIDBKeyRange:void 0;function yn(t){t=t.slice();var e=this;function r(t,e){return t<e?-1:t>e?1:0}var n=new Promise(function(n,o){e.ready().then(function(){var i,s=e._dbInfo,a=s.db.transaction(s.storeName,"readonly").objectStore(s.storeName),u=t.sort(r),c=pn.bound(t[0],t[t.length-1],!1,!1);if("getAll"in a)(i=a.getAll(c)).onsuccess=function(){var t=i.result;void 0===t&&(t=null),n(t)};else{i=a.openCursor(c);var l={},f=0;i.onsuccess=function(){var t=i.result;if(t){for(var e=t.key;e>u[f];)if(++f===u.length)return void n(l);if(e===u[f]){var r=t.value;void 0===r&&(r=null),l[e]=r,t.continue()}else t.continue(u[f])}else n(l)}}i.onerror=function(){o(i.error)}}).catch(o)});return n}function gn(t){var e=this,r=new Promise(function(r,n){e.ready().then(function(){return ln(e)}).then(function(o){var i=e._dbInfo;i.db.transaction(function(e){for(var s=new Array(t.length),a=0,u=t.length;a<u;a++)s[a]="?";e.executeSql("SELECT * FROM "+i.storeName+" WHERE (key IN ("+s.join(",")+"))",t,function(t,e){for(var n={},i=e.rows,s=0,a=i.length;s<a;s++){var u=i.item(s),c=u.value;c&&(c=o.deserialize(c)),n[u.key]=c}r(n)},function(t,e){n(e)})})}).catch(n)});return r}function bn(t,e){var r,n=this;if(arguments.length&&null!==t){var o=n.driver();r=o===n.INDEXEDDB?yn.apply(n,arguments):o===n.WEBSQL?gn.apply(n,arguments):dn.apply(n,arguments)}else r=vn.apply(n);return fn(r,e),r}function mn(t){var e=Object.getPrototypeOf(t);e&&(e.getItems=bn,e.getItems.indexedDB=function(){return yn.apply(this,arguments)},e.getItems.websql=function(){return gn.apply(this,arguments)},e.getItems.generic=function(){return dn.apply(this,arguments)})}mn(Sr);var _n=Object.prototype.hasOwnProperty;function wn(t,e){return null!=t&&_n.call(t,e)}var jn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sn=/^\w*$/;function In(t,e){if(et(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!It(t))||(Sn.test(t)||!jn.test(t)||null!=e&&t in Object(e))}function On(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var s=t.apply(this,n);return r.cache=i.set(o,s)||i,s};return r.cache=new(On.Cache||Ie),r}On.Cache=Ie;var An=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,En=/\\(\\)?/g,xn=function(t){var e=On(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(An,function(t,r,n,o){e.push(n?o.replace(En,"$1"):r||t)}),e});function kn(t,e){return et(t)?t:In(t,e)?[t]:xn(xt(t))}function Nn(t){if("string"==typeof t||It(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Pn(t,e,r){for(var n=-1,o=(e=kn(e,t)).length,i=!1;++n<o;){var s=Nn(e[n]);if(!(i=null!=t&&r(t,s)))break;t=t[s]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&rt(o)&&mt(s,o)&&(et(t)||tt(t))}function Rn(t,e,r){var n=-1,o=(e=kn(e,t)).length;for(o||(o=1,t=void 0);++n<o;){var i=null==t?void 0:t[Nn(e[n])];void 0===i&&(n=o,i=r),t=m(i)?i.call(t):i}return t}function Bn(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function zn(){const t={isResolved:!1,isPending:!0,isRejected:!1,resolve:null,reject:null},e=new Promise((e,r)=>{t.resolve=e,t.reject=r});return Object.assign(e,t),e.then(function(){e.isResolved=!0,e.isPending=!1,e.isRejected=!1},function(){e.isResolved=!1,e.isPending=!1,e.isRejected=!0}),e}function Tn(){throw new Error('A "url" property or function must be specified')}function Dn(t,e,r){const n=e.error;e.error=function(o){n&&n.call(e.context,t,o,e),t.trigger("error",t,o,e),r&&r.reject&&r.reject(o)}}const Cn={create:"POST",update:"PUT",patch:"PATCH",delete:"DELETE",read:"GET"},Mn=new WeakSet;function Fn(t){const e=t?.constructor;if(!e||Mn.has(e))return;Mn.add(e);const r=e.name;console.warn(`Skeletor: \`browserStorage\` is deprecated and will be removed in a future major version; use \`storage\` instead${r?` (on \`${r}\`)`:""}.`)}function Ln(t){if(!t)return;const e=Rn(t,"storage");if(null!=e)return e;const r=Rn(t,"browserStorage");return null!=r&&Fn(t),r}function Un(t){const e=Ln(t)||Ln(t.collection);return e?e.sync():Wn}function Wn(t,e,r={}){let n=r.data;null!=n||!e||"create"!==t&&"update"!==t&&"patch"!==t||(n=r.attrs||e.toJSON());const o={method:Cn[t],body:n?JSON.stringify(n):"",headers:{"Content-Type":"application/json"},success:r.success,error:r.error},i=r.url||Rn(e,"url")||Tn(),s=fetch(i,o);return r&&(r.xhr=s),e.trigger("request",e,s,{...o,xhr:s}),s}const qn=fe;Sr.defineDriver(ve),cn.extendPrototype(Sr),mn(Sr);const Jn=new Set,Kn=new WeakSet;class Vn{static register(t){Kn.has(t)||(Kn.add(t),Jn.add(new WeakRef(t)))}static flushAll(){for(const t of Jn){const e=t.deref();e?e.flush():Jn.delete(t)}}constructor(t,e,r=!1){if(this.storeReady=!1,this.name=t,"local"===e&&"undefined"!=typeof window&&!window.localStorage)throw new Error("Skeletor.storage: Environment does not support localStorage.");if("session"===e&&"undefined"!=typeof window&&!window.sessionStorage)throw new Error("Skeletor.storage: Environment does not support sessionStorage.");yr(e)?this.storeInitialized=this.initStore(e,r):(this.store=e,r&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0})),this.storeInitialized=Promise.resolve()),this.storeInitialized.then(()=>this.storeReady=!0).catch(()=>{})}async initStore(t,e){if("session"===t)await Sr.setDriver(sn._driver);else if("local"===t)await Sr.config({driver:Sr.LOCALSTORAGE});else if("in_memory"===t)await Sr.config({driver:qn});else{if("node"===t){const t=Vn.nodeStorage;if(!t)throw new Error("Skeletor.storage: the 'node' storage type is only available in Node.js builds. Import from '@converse/skeletor/node' instead of '@converse/skeletor'.");return this.store=new t(this.name),void(e&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0})))}if("indexed"!==t)throw new Error("Skeletor.storage: No storage type was specified")}this.store=Sr,e&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0}))}flush(){this.store.debouncedSetItems&&"function"==typeof this.store.debouncedSetItems.flush&&this.store.debouncedSetItems.flush()}async clear(){await this.storeInitialized,await this.store.removeItem(this.name).catch(t=>console.error(t));const t=new RegExp(`^${this.name}-`),e=(await this.store.keys()).filter(e=>t.test(e));await Promise.all(e.map(t=>this.store.removeItem(t).catch(t=>console.error(t))))}sync(){const t=this;async function e(e,r,n){let o,i,s,a;const u=n.collection??r.collection;["patch","update"].includes(e)&&(a=pr(r.attributes,5)),t.storeReady||await t.storeInitialized;try{const i=r.attributes;switch(e){case"read":o=void 0!==r.id?await t.find(r):await t.findAll();break;case"create":o=await t.create(r,n);break;case"patch":case"update":n.wait&&(r.attributes=a),s=t.update(r),n.wait&&(r.attributes=i),o=await s;break;case"delete":o=await t.destroy(r,u)}}catch(e){const r=await t.getStorageSize();i=22===e.code&&0===r?new Error("Private browsing is unsupported"):e instanceof Error?e:new Error(e?.message??String(e))}if(o){if(n&&n.success){const t="read"===e?o:null;n.success(t,n)}}else"read"!==e||i?n&&n.error&&n.error(i??new Error("Record Not Found")):n&&n.success&&n.success(null,n)}return e.__name__="localSync",e}removeCollectionReference(t,e){if(!e)return;const r=e.filter(e=>e.id!==t.id).map(t=>this.getItemName(t.id));return this.store.setItem(this.name,r)}addCollectionReference(t,e){if(!e)return;const r=e.map(t=>this.getItemName(t.id)),n=this.getItemName(t.id);return r.includes(n)||r.push(n),this.store.setItem(this.name,r)}getCollectionReferenceData(t){if(!t.collection)return{};const e=t.collection.map(t=>this.getItemName(t.id)),r=this.getItemName(t.id);e.includes(r)||e.push(r);const n={};return n[this.name]=e,n}async save(t){if(this.store.setItems){const e={};return e[this.getItemName(t.id)]=t.toJSON(),Object.assign(e,this.getCollectionReferenceData(t)),this.store.debouncedSetItems?this.store.debouncedSetItems(e):this.store.setItems(e)}{const e=this.getItemName(t.id),r=await this.store.setItem(e,t.toJSON());return await this.addCollectionReference(t,t.collection),r}}create(t,e){return t.id||(t.id=Bn()+Bn()+"-"+Bn()+"-"+Bn()+"-"+Bn()+"-"+Bn()+Bn()+Bn(),t.set(t.idAttribute,t.id,e)),this.save(t)}update(t){return this.save(t)}find(t){return this.store.getItem(this.getItemName(t.id))}async findAll(){const t=await this.store.getItem(this.name);if(t?.length){const e=await this.store.getItems(t);return Object.values(e)}return[]}async destroy(t,e){return await this.flush(),await this.store.removeItem(this.getItemName(t.id)),await this.removeCollectionReference(t,e),t}async getStorageSize(){return await this.store.length()}getItemName(t){return this.name+"-"+t}}Vn.nodeStorage=null,Vn.sessionStorageInitialized=Sr.defineDriver(sn),Vn.localForage=Sr;function $n(t){return pr(t,4)}function Qn(t,e,r,n){for(var o=-1,i=null==t?0:t.length;++o<i;){var s=t[o];e(n,s,r(s),t)}return n}function Gn(t,e){return t&&Or(t,e,jt)}var Hn,Xn=(Hn=Gn,function(t,e){if(null==t)return t;if(!nt(t))return Hn(t,e);for(var r=t.length,n=-1,o=Object(t);++n<r&&!1!==e(o[n],n,o););return t});function Yn(t,e,r,n){return Xn(t,function(t,o,i){e(n,t,r(t),i)}),n}function Zn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Ie;++e<r;)this.add(t[e])}function to(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}function eo(t,e){return t.has(e)}Zn.prototype.add=Zn.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Zn.prototype.has=function(t){return this.__data__.has(t)};function ro(t,e,r,n,o,i){var s=1&r,a=t.length,u=e.length;if(a!=u&&!(s&&u>a))return!1;var c=i.get(t),l=i.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=2&r?new Zn:void 0;for(i.set(t,e),i.set(e,t);++f<a;){var v=t[f],p=e[f];if(n)var y=s?n(p,v,f,e,t,i):n(v,p,f,t,e,i);if(void 0!==y){if(y)continue;h=!1;break}if(d){if(!to(e,function(t,e){if(!eo(d,e)&&(v===t||o(v,t,r,n,i)))return d.push(e)})){h=!1;break}}else if(v!==p&&!o(v,p,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h}function no(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}function oo(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var io=l?l.prototype:void 0,so=io?io.valueOf:void 0;var ao=Object.prototype.hasOwnProperty;var uo="[object Arguments]",co="[object Array]",lo="[object Object]",fo=Object.prototype.hasOwnProperty;function ho(t,e,r,n,o,i){var s=et(t),a=et(e),u=s?co:Q(t),c=a?co:Q(e),l=(u=u==uo?lo:u)==lo,f=(c=c==uo?lo:c)==lo,h=u==c;if(h&&at(t)){if(!at(e))return!1;s=!0,l=!1}if(h&&!l)return i||(i=new Oe),s||pt(t)?ro(t,e,r,n,o,i):function(t,e,r,n,o,i,s){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new Xe(t),new Xe(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return pe(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var a=no;case"[object Set]":var u=1&n;if(a||(a=oo),t.size!=e.size&&!u)return!1;var c=s.get(t);if(c)return c==e;n|=2,s.set(t,e);var l=ro(a(t),a(e),n,o,i,s);return s.delete(t),l;case"[object Symbol]":if(so)return so.call(t)==so.call(e)}return!1}(t,e,u,r,n,o,i);if(!(1&r)){var d=l&&fo.call(t,"__wrapped__"),v=f&&fo.call(e,"__wrapped__");if(d||v){var p=d?t.value():t,y=v?e.value():e;return i||(i=new Oe),o(p,y,r,n,i)}}return!!h&&(i||(i=new Oe),function(t,e,r,n,o,i){var s=1&r,a=Qe(t),u=a.length;if(u!=Qe(e).length&&!s)return!1;for(var c=u;c--;){var l=a[c];if(!(s?l in e:ao.call(e,l)))return!1}var f=i.get(t),h=i.get(e);if(f&&h)return f==e&&h==t;var d=!0;i.set(t,e),i.set(e,t);for(var v=s;++c<u;){var p=t[l=a[c]],y=e[l];if(n)var g=s?n(y,p,l,e,t,i):n(p,y,l,t,e,i);if(!(void 0===g?p===y||o(p,y,r,n,i):g)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var b=t.constructor,m=e.constructor;b==m||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof m&&m instanceof m||(d=!1)}return i.delete(t),i.delete(e),d}(t,e,r,n,o,i))}function vo(t,e,r,n,o){return t===e||(null==t||null==e||!G(t)&&!G(e)?t!=t&&e!=e:ho(t,e,r,n,vo,o))}function po(t){return t==t&&!b(t)}function yo(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}function go(t){var e=function(t){for(var e=jt(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,po(o)]}return e}(t);return 1==e.length&&e[0][2]?yo(e[0][0],e[0][1]):function(r){return r===t||function(t,e,r,n){var o=r.length,i=o;if(null==t)return!i;for(t=Object(t);o--;){var s=r[o];if(s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<i;){var a=(s=r[o])[0],u=t[a],c=s[1];if(s[2]){if(void 0===u&&!(a in t))return!1}else if(!vo(c,u,3,n,new Oe))return!1}return!0}(r,0,e)}}function bo(t,e){for(var r=0,n=(e=kn(e,t)).length;null!=t&&r<n;)t=t[Nn(e[r++])];return r&&r==n?t:void 0}function mo(t,e){return null!=t&&e in Object(t)}function _o(t,e){return null!=t&&Pn(t,e,mo)}function wo(t,e){return In(t)&&po(e)?yo(Nn(t),e):function(r){var n=function(t,e,r){var n=null==t?void 0:bo(t,e);return void 0===n?r:n}(r,t);return void 0===n&&n===e?_o(r,t):vo(e,n,3)}}function jo(t){return In(t)?function(t){return function(e){return null==e?void 0:e[t]}}(Nn(t)):function(t){return function(e){return bo(e,t)}}(t)}function So(t){return"function"==typeof t?t:null==t?Tr:"object"==typeof t?et(t)?wo(t[0],t[1]):go(t):jo(t)}function Io(t,e){return function(e,r){return(et(e)?Qn:Yn)(e,t,So(r),{})}}var Oo=Object.prototype.hasOwnProperty,Ao=Io(function(t,e,r){Oo.call(t,r)?++t[r]:Ee(t,r,1)}),Eo=Object.prototype.hasOwnProperty,xo=Io(function(t,e,r){Eo.call(t,r)?t[r].push(e):Ee(t,r,[e])}),ko=Io(function(t,e,r){Ee(t,r,e)}),No=l?l.isConcatSpreadable:void 0;function Po(t){return et(t)||tt(t)||!!(No&&t&&t[No])}function Ro(t,e,r,n,o){var i=-1,s=t.length;for(r||(r=Po),o||(o=[]);++i<s;){var a=t[i];r(a)?Je(o,a):o[o.length]=a}return o}function Bo(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,i=It(t),s=void 0!==e,a=null===e,u=e==e,c=It(e);if(!a&&!c&&!i&&t>e||i&&s&&u&&!a&&!c||n&&s&&u||!r&&u||!o)return 1;if(!n&&!i&&!c&&t<e||c&&r&&o&&!n&&!i||a&&r&&o||!s&&o||!u)return-1}return 0}function zo(t,e,r){e=e.length?St(e,function(t){return et(t)?function(e){return bo(e,1===t.length?t[0]:t)}:t}):[Tr];var n=-1;e=St(e,ct(So));var o=function(t,e){var r=-1,n=nt(t)?Array(t.length):[];return Xn(t,function(t,o,i){n[++r]=e(t,o,i)}),n}(t,function(t,r,o){var i=St(e,function(e){return e(t)});return{criteria:i,index:++n,value:t}});return function(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}(o,function(t,e){return function(t,e,r){for(var n=-1,o=t.criteria,i=e.criteria,s=o.length,a=r.length;++n<s;){var u=Bo(o[n],i[n]);if(u)return n>=a?u:u*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)})}var To=Kr(function(t,e){if(null==t)return[];var r=e.length;return r>1&&Vr(t,e[0],e[1])?e=[]:r>2&&Vr(e[0],e[1],e[2])&&(e=[e[0]]),zo(t,Ro(e),[])});const Do=new Map,Co=new Set,Mo=new Map;let Fo=!1;function Lo(t,e){const r=Promise.resolve(e()).catch(e=>{console.error("Skeletor autoSync save error:",e),t?.trigger?.("error",t,e)});let n;Co.add(r),t&&(n=Mo.get(t),n||(n=new Set,Mo.set(t,n)),n.add(r)),r.finally(()=>{Co.delete(r),n&&(n.delete(r),0===n.size&&Mo.delete(t))})}function Uo(t){if(Fo||"undefined"==typeof window)return;Fo=!0;const e=()=>function({storage:t,wait:e=!1}={}){for(const[t,{timerId:e,run:r}]of Do.entries())clearTimeout(e),Lo(t,r);if(Do.clear(),t&&t.flushAll(),e)return Promise.all([...Co]).then(()=>{})}({storage:t});window.addEventListener("pagehide",e),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&e()})}var Wo=Object.prototype,qo=Wo.hasOwnProperty,Jo=Kr(function(t,e){t=Object(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&Vr(e[0],e[1],o)&&(n=1);++r<n;)for(var i=e[r],s=Be(i),a=-1,u=s.length;++a<u;){var c=s[a],l=t[c];(void 0===l||pe(l,Wo[c])&&!qo.call(t,c))&&(t[c]=i[c])}return t});var Ko=Kr(function(t,e){return function(t,e,r){if("function"!=typeof t)throw new TypeError("Expected a function");return setTimeout(function(){t.apply(void 0,r)},e)}(t,1,e)});var Vo,$o,Qo=Object.prototype.toString,Go=(Vo=function(t,e,r){null!=e&&"function"!=typeof e.toString&&(e=Qo.call(e)),t[e]=r},$o=Mr(Tr),function(t,e){return function(t,e,r,n){return Gn(t,function(t,o,i){e(n,r(t),o,i)}),n}(t,Vo,$o(e),{})});function Ho(t,e){return vo(t,e)}function Xo(t,e){return e.length<2?t:bo(t,function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i}(e,0,-1))}var Yo=Object.prototype.hasOwnProperty;function Zo(t,e){var r=-1,n=(e=kn(e,t)).length;if(!n)return!0;for(;++r<n;){var o=Nn(e[r]);if("__proto__"===o&&!Yo.call(t,"__proto__"))return!1;if(("constructor"===o||"prototype"===o)&&r<n-1)return!1}var i=Xo(t,e);return null==i||delete i[Nn(function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}(e))]}function ti(t){return Pr(t)?void 0:t}function ei(t){return(null==t?0:t.length)?Ro(t):[]}function ri(t){return Jr(Cr(t,void 0,ei),t+"")}var ni=ri(function(t,e){var r={};if(null==t)return r;var n=!1;e=St(e,function(e){return e=kn(e,t),n||(n=e.length>1),e}),Ne(t,Ge(t),r),n&&(r=pr(r,7,ti));for(var o=e.length;o--;)Zo(r,e[o]);return r});function oi(t,e,r,n){if(!b(t))return t;for(var o=-1,i=(e=kn(e,t)).length,s=i-1,a=t;null!=a&&++o<i;){var u=Nn(e[o]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return t;if(o!=s){var l=a[u];void 0===(c=void 0)&&(c=b(l)?l:mt(e[o+1])?[]:{})}ke(a,u,c),a=a[u]}return t}function ii(t,e){return function(t,e,r){for(var n=-1,o=e.length,i={};++n<o;){var s=e[n],a=bo(t,s);r(a,s)&&oi(i,kn(s,t),a)}return i}(t,e,function(e,r){return _o(t,r)})}var si,ai,ui,ci,li,fi,hi,di,vi,pi,yi,gi=ri(function(t,e){return null==t?{}:ii(t,e)});class bi extends Xt{constructor(t,e){super(),si.add(this),ai.set(this,void 0),ui.set(this,void 0),ci.set(this,"constructing"),this._changing=!1,this._pending=!1,this._url="",this.changed={},this.validationError=null;let r=t||{};e=e||{},this.preinitialize.apply(this,arguments),this.cid=Nt(this.cidPrefix),this.attributes={},e.collection&&(this.collection=e.collection),e.parse&&(r=this.parse(r,e)||{});const n=Rn(this,"defaults");r=Jo(Object.assign({},n,r),n),this.set(r,e),Yt(this,si,"m",di).call(this),this.attrs=new Proxy(this.attributes,{get:(t,e)=>"symbol"!=typeof e&&Yt(this,ai,"f")&&e in Yt(this,ai,"f")?Yt(this,ai,"f")[e]:this.attributes[e],set:(t,e,r)=>(this.set(e,r),!0)}),this.initialize.apply(this,arguments),this.changed={},this.autoSync?Ln(this)&&!this.isNew()?(Zt(this,ci,"hydrating","f"),this.hydrated=Yt(this,si,"m",li).call(this)):(Zt(this,ci,"ready","f"),this.hydrated=Promise.resolve()):Zt(this,ci,"ready","f")}get storage(){return this._storage}set storage(t){this._storage=t,Vn.register(t)}get browserStorage(){return this._storage}set browserStorage(t){Fn(this),this.storage=t}get autoSync(){return!1}get autoSyncDelay(){return 100}get idAttribute(){return"id"}get cidPrefix(){return"c"}preinitialize(...t){}initialize(t,e){}validate(t,e){return null}defaults(){return{}}get computed(){return{}}toJSON(){return $n(this.attributes)}sync(t,e,r){return Un(e)(t,e,r)}get(t){return Yt(this,ai,"f")&&t in Yt(this,ai,"f")?Yt(this,ai,"f")[t]:this.attributes[t]}keys(){return Object.keys(this.attributes)}values(){return Object.values(this.attributes)}pairs(){return this.entries()}entries(){return Object.entries(this.attributes)}invert(){return Go(this.attributes)}pick(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),gi(this.attributes,t)}omit(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),ni(this.attributes,t)}isEmpty(){return gt(this.attributes)}has(t){return null!=this.get(t)}matches(t){return!!function(t){return So("function"==typeof t?t:pr(t,1))}(t)(this.attributes)}set(t,e,r){if(null==t)return this;let n;if("object"==typeof t?(n=t,r=e):(n={},n[t]=e),r=r||{},this.autoSync&&"hydrating"===Yt(this,ci,"f")&&!r.fromStorage)throw new Error("Skeletor: set() called on an autoSync model before hydration resolved. Await model.hydrated first.");if(!this._validate(n,r))return null;const o=r.unset,i=r.silent,s=[],a=this._changing;this._changing=!0,a||(this._previousAttributes=$n(this.attributes),this.changed={});const u=this.attributes,c=this.changed,l=this._previousAttributes;for(const t in n)e=n[t],Ho(u[t],e)||s.push(t),Ho(l[t],e)?delete c[t]:c[t]=e,o?delete u[t]:u[t]=e;if(this.idAttribute in n&&(this.id=this.get(this.idAttribute)),!i){s.length&&(this._pending=r);for(let t=0;t<s.length;t++)this.trigger("change:"+s[t],this,u[s[t]],r)}if(s.length&&Yt(this,ui,"f"))for(const[t,e]of Object.entries(Yt(this,ui,"f")))e.deps.some(t=>s.includes(t))&&Yt(this,si,"m",hi).call(this,t,e,i,r);if(a)return this;if(!i)for(;this._pending;)r=this._pending,this._pending=!1,this.trigger("change",this,r);return this._pending=!1,this._changing=!1,"ready"===Yt(this,ci,"f")&&this.autoSync&&Ln(this)&&s.length&&!r.fromStorage&&!r.noAutoSave&&function(t,e,r){const n=Do.get(t);n&&clearTimeout(n.timerId);const o=setTimeout(()=>{Do.delete(t),Lo(t,e)},r);Do.set(t,{timerId:o,run:e})}(this,()=>Yt(this,si,"m",fi).call(this),this.autoSyncDelay),this}unset(t,e){return this.set(t,void 0,Object.assign({},e,{unset:!0}))}clear(t){const e={};for(const t in this.attributes)e[t]=void 0;return this.set(e,Object.assign({},t,{unset:!0}))}hasChanged(t){return null==t?!gt(this.changed):(e=this.changed,r=t,null!=e&&Pn(e,r,wn));var e,r}changedAttributes(t){if(!t)return!!this.hasChanged()&&$n(this.changed);const e=this._changing?this._previousAttributes:this.attributes,r={};let n=!1;for(const o in t){const i=t[o];Ho(e[o],i)||(r[o]=i,n=!0)}return!!n&&r}previous(t){return null!=t&&this._previousAttributes?this._previousAttributes[t]:null}previousAttributes(){return this._previousAttributes?$n(this._previousAttributes):void 0}fetch(t={}){const e=(t=Object.assign({parse:!0},t)).success,r=t.promise?zn():void 0;let n=!1;if(t.success=o=>{n=!0;const i=t.parse?this.parse(o,t):o;if(!this.set(i,Object.assign({},t,{fromStorage:!0})))return!1;e&&e.call(t.context,this,o,t),this.trigger("sync",this,o,t),r&&r.resolve(o)},Dn(this,t,r),r){const e=t.error;t.error=t=>{n=!0,e(t)}}const o=this.sync("read",this,t);return r?(Promise.resolve(o).then(e=>{n||t.success(e)},t=>r.reject(t)),r):o}save(t,e,r){let n;null==t||"object"==typeof t?(n=t,r=e):(n={},n[t]=e);const o=(r=Object.assign({validate:!0,parse:!0},r)).wait,i=r.promise,s=i&&zn();if(n&&!o){if(!this.set(n,r))return!1}else if(!this._validate(n||{},r))return!1;const a=r.success,u=r.error,c=this.attributes;r.success=t=>{this.attributes=c;let e=r.parse?this.parse(t,r):t;if(o&&(e=Object.assign({},n,e)),e&&!this.set(e,r))return!1;a&&a.call(r.context,this,t,r),this.trigger("sync",this,t,r),i&&s.resolve()},r.error=(t,e,r)=>{u&&u.call(r.context,t,e,r),i&&s.reject(e)},Dn(this,r),n&&o&&(this.attributes=Object.assign({},c,n));const l=this.isNew()?"create":r.patch?"patch":"update";"patch"!==l||r.attrs||(r.attrs=n);const f=this.sync(l,this,r);return this.attributes=c,i?s:f}destroy(t){!function(t){const e=Do.get(t);e&&(clearTimeout(e.timerId),Do.delete(t))}(this);const e=(t=t?$n(t):{}).success,r=t.wait,n=()=>{this.stopListening(),this.trigger("destroy",this,this.collection,t)};t.success=o=>{r&&n(),e&&e.call(t.context,this,o,t),this.isNew()||this.trigger("sync",this,o,t)};const o=function(t){const e=Mo.get(t);return e&&0!==e.size?Promise.all([...e]).then(()=>{}):null}(this);o&&this.collection&&(t.collection=this.collection);let i=!1;return this.isNew()?Ko(t.success):(Dn(this,t),i=o?o.then(()=>this.sync("delete",this,t)):this.sync("delete",this,t)),r||n(),i}get urlRoot(){return this._urlRoot}set urlRoot(t){this._urlRoot=t}get url(){if(this._url)return this._url;const t=Rn(this,"urlRoot")||Rn(this.collection,"url")||Tn();if(this.isNew())return t;const e=this.get(this.idAttribute);return t.replace(/[^\/]$/,"$&/")+encodeURIComponent(String(e))}set url(t){this._url=t}parse(t,e){return t}isNew(){return!this.has(this.idAttribute)}isValid(t){return this._validate({},Object.assign({},t,{validate:!0}))}subscribe(t,e,r){if("function"==typeof t){const e=e=>t(e,this.changed);return this.on("change",e),()=>this.off("change",e)}return super.subscribe(t,e,r)}_validate(t,e){if(!e?.validate||!this.validate)return!0;t=Object.assign({},this.attributes,t);const r=this.validationError=this.validate(t,e)||null;return!r||(this.trigger("invalid",this,r,Object.assign(e,{validationError:r})),!1)}}ai=new WeakMap,ui=new WeakMap,ci=new WeakMap,si=new WeakSet,li=async function(){Uo(Vn);try{await this.fetch({fromStorage:!0,promise:!0})}finally{Zt(this,ci,"ready","f")}},fi=function(){return this.save(null,{noAutoSave:!0})},hi=function(t,e,r,n){const o=e.fn(this);Ho(Yt(this,ai,"f")[t],o)||(Yt(this,ai,"f")[t]=o,r||(this.changed[t]=o,this.trigger("change:"+t,this,o,n)))},di=function(){const t=Rn(this,"computed");if(t&&!gt(t)){Zt(this,ui,t,"f"),Zt(this,ai,{},"f");for(const[e,r]of Object.entries(t))Yt(this,ai,"f")[e]=r.fn(this)}};const mi={add:!0,remove:!0,merge:!0},_i={add:!0,remove:!1};class wi extends Xt{constructor(t,e){super(),vi.add(this),this._url="",this[yi]=this.values,e=e||{},this.preinitialize.apply(this,arguments),e.model&&(this._model=e.model),void 0!==e.comparator&&(this.comparator=e.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,Object.assign({silent:!0},e)),this[Symbol.iterator]=this.values,this.autoSync&&(this.hydrated=Ln(this)?Yt(this,vi,"m",pi).call(this):Promise.resolve())}get comparator(){return this._comparator}set comparator(t){this._comparator=t}get storage(){return this._storage}set storage(t){this._storage=t,Vn.register(t)}get browserStorage(){return this._storage}set browserStorage(t){Fn(this),this.storage=t}get autoSync(){return!1}get model(){return this._model??bi}set model(t){this._model=t}get length(){return this.models.length}get url(){return this._url}set url(t){this._url=t}preinitialize(...t){}initialize(...t){}toJSON(){return this.map(function(t){return t.toJSON()})}sync(t,e,r){return Un(this)(t,e,r)}add(t,e){return this.set(t,Object.assign({merge:!1},e,_i))}remove(t,e){e=Object.assign({},e);const r=!Array.isArray(t),n=r?[t]:t.slice(),o=this._removeModels(n,e);return!e.silent&&o.length&&(e.changes={added:[],merged:[],removed:o},this.trigger("update",this,e)),r?o[0]:o}set(t,e){if(null==t)return;(e=Object.assign({},mi,e)).parse&&!this._isModel(t)&&(t=this.parse(t,e)||[]);const r=!Array.isArray(t);t=r?[t]:t.slice();let n=e.at;null!=n&&(n=+n),n>this.length&&(n=this.length),n<0&&(n+=this.length+1);const o=[],i=[],s=[],a=[],u={},c=e.add,l=e.merge,f=e.remove;let h=!1;const d=this.comparator&&null==n&&!1!==e.sort,v=yr(this.comparator)?this.comparator:null;let p,y;for(y=0;y<t.length;y++){p=t[y];const r=this.get(p);if(r){if(l&&p!==r){let t=this._isModel(p)?p.attributes:p;e.parse&&(t=r.parse(t,e)),r.set(t,e),s.push(r),d&&!h&&(h=r.hasChanged(v))}u[r.cid]||(u[r.cid]=!0,o.push(r)),t[y]=r}else c&&(p=t[y]=this._prepareModel(p,e),p&&(i.push(p),this._addReference(p,e),u[p.cid]=!0,o.push(p)))}if(f){for(y=0;y<this.length;y++)p=this.models[y],u[p.cid]||a.push(p);a.length&&this._removeModels(a,e)}let g=!1;const b=!d&&c&&f;if(o.length&&b)g=this.length!==o.length||this.models.some((t,e)=>t!==o[e]),this.models.length=0,this.models.splice(0,0,...o);else if(i.length){d&&(h=!0);let t=n??this.length;t=Math.min(Math.max(t,0),this.models.length),this.models.splice(t,0,...i)}if(h&&this.sort({silent:!0}),!e.silent){for(y=0;y<i.length;y++)null!=n&&(e.index=n+y),p=i[y],p.trigger("add",p,this,e);(h||g)&&this.trigger("sort",this,e),(i.length||a.length||s.length)&&(e.changes={added:i,removed:a,merged:s},this.trigger("update",this,e))}return r?t[0]:t}async clearStore(t={},e=()=>!0){await Promise.all(this.models.filter(e).map(e=>new Promise(r=>{e.destroy(Object.assign(t,{success:r,error:(t,e)=>{console.error(e),r()}}))}))),await(Ln(this)?.clear()),this.reset()}reset(t,e){e=e?$n(e):{};for(let t=0;t<this.models.length;t++)this._removeReference(this.models[t],e);return e.previousModels=this.models,this._reset(),t=this.add(t,Object.assign({silent:!0},e)),e.silent||this.trigger("reset",this,e),t}push(t,e){return this.add(t,Object.assign({at:this.length},e))}pop(t){const e=this.at(this.length-1);return this.remove(e,t)}unshift(t,e){return this.add(t,Object.assign({at:0},e))}shift(t){const e=this.at(0);return this.remove(e,t)}slice(t,e){return this.models.slice(t,e)}filter(t,e){return this.models.filter(m(t)?t:e=>e.matches(t),e)}every(t){return m(t)?this.models.map(t=>t.attributes).every(t):this.models.every(e=>e.matches(t))}difference(t){return this.models.filter(e=>!t.includes(e))}max(){return Math.max.apply(Math,this.models)}min(){return Math.min.apply(Math,this.models)}drop(t=1){return this.models.slice(t)}some(t){return m(t)?this.models.map(t=>t.attributes).some(t):this.models.some(e=>e.matches(t))}sortBy(t){return To(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}isEmpty(){return!this.models.length}keyBy(t){return ko(this.models,t)}each(t,e){return this.forEach(t,e)}forEach(t,e){return this.models.forEach(t,e)}includes(t){return this.models.includes(t)}size(){return this.models.length}countBy(t){return Ao(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}groupBy(t){return xo(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}indexOf(t,e){return this.models.indexOf(t,e)}findLastIndex(t,e){return this.models.findLastIndex(m(t)?t:e=>yr(t)?e.get(t):e.matches(t),e)}lastIndexOf(t,e){return this.models.lastIndexOf(t,e)}findIndex(t){return this.models.findIndex(m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}last(){const t=null==this.models?0:this.models.length;return t?this.models[t-1]:void 0}head(){return this.models[0]}first(){return this.head()}map(t,e){return this.models.map(m(t)?t:e=>yr(t)?e.get(t):e.matches(t),e)}reduce(t,e){return this.models.reduce(t,e||this.models[0])}reduceRight(t,e){return this.models.reduceRight(t,e||this.models[0])}toArray(){return Array.from(this.models)}get(t){if(null!=t)return this._byId[t]||this._byId[this.modelId(this._isModel(t)?t.attributes:t)]||t.cid&&this._byId[t.cid]}has(t){return null!=this.get(t)}at(t){return t<0&&(t+=this.length),this.models[t]}where(t,e){return this[e?"find":"filter"](t)}findWhere(t){return this.where(t,!0)}find(t,e){const r=m(t)?t:e=>e.matches(t);return this.models.find(r,e)}sort(t){let e=this.comparator;if(!e)throw new Error("Cannot sort a set without a comparator");t=t||{};const r=m(e)?e.length:0;return m(e)&&(e=e.bind(this)),1===r||yr(e)?this.models=this.sortBy(e):this.models.sort(e),t.silent||this.trigger("sort",this,t),this}pluck(t){return this.map(t+"")}fetch(t){const e=(t=Object.assign({parse:!0},t)).success,r=this,n=t.promise?zn():void 0;let o=!1;if(t.success=function(i){o=!0;const s=t.reset?"reset":"set";r[s](i,Object.assign({},t,{fromStorage:!0})),e&&e.call(t.context,r,i,t),n&&n.resolve(),r.trigger("sync",r,i,t)},Dn(this,t,n),n){const e=t.error;t.error=t=>{o=!0,e(t)}}const i=this.sync("read",this,t);return n?(Promise.resolve(i).then(e=>{o||t.success(e)},t=>n.reject(t)),n):i}create(t,e){const r=(e=e?$n(e):{}).wait,n=e.promise,o=n&&zn(),i=this._prepareModel(t,e);if(!i)return null;r||this.add(i,e);const s=this,a=e.success,u=e.error;return e.success=function(t,e,i){r&&s.add(t,i),a&&a.call(i.context,t,e,i),n&&o.resolve(t)},e.error=function(t,e,r){u&&u.call(r.context,t,e,r),n&&o.reject(e)},i.save(null,Object.assign(e,{promise:!1})),n?o:i}subscribe(t,e,r){if("function"==typeof t){const e=()=>t(this);return this.on("update reset sort",e),()=>this.off("update reset sort",e)}return super.subscribe(t,e,r)}parse(t,e){return t}modelId(t){return t[this.model.prototype?.idAttribute||"id"]}values(){return new Oi(this,ji)}keys(){return new Oi(this,Si)}entries(){return new Oi(this,Ii)}_reset(){this.models=[],this._byId={}}createModel(t,e){return new(0,this.model)(t,e)}_prepareModel(t,e){if(this._isModel(t))return t.collection||(t.collection=this),t;(e=e?$n(e):{}).collection=this;const r=this.createModel(t,e);return r.validationError?(this.trigger("invalid",this,r.validationError,e),null):r}_removeModels(t,e){const r=[];for(let n=0;n<t.length;n++){const o=this.get(t[n]);if(!o)continue;const i=this.indexOf(o);this.models.splice(i,1),delete this._byId[o.cid];const s=this.modelId(o.attributes);null!=s&&delete this._byId[s],e?.silent||((e=e||{}).index=i,o.trigger("remove",o,this,e)),r.push(o),this._removeReference(o,e)}return r}_isModel(t){return t instanceof bi}_addReference(t,e){this._byId[t.cid]=t;const r=this.modelId(t.attributes);null!=r&&(this._byId[r]=t),t.on("all",this._onModelEvent,this)}_removeReference(t,e){delete this._byId[t.cid];const r=this.modelId(t.attributes);null!=r&&delete this._byId[r],this===t.collection&&delete t.collection,t.off("all",this._onModelEvent,this)}_onModelEvent(t,e,r,n){if(e){if(("add"===t||"remove"===t)&&r!==this)return;if("destroy"===t&&this.remove(e,n),"change"===t){const t=this.modelId(e.previousAttributes()),r=this.modelId(e.attributes);t!==r&&(null!=t&&delete this._byId[t],null!=r&&(this._byId[r]=e))}}this.trigger.apply(this,arguments)}}vi=new WeakSet,pi=async function(){Uo(Vn),await this.fetch({fromStorage:!0,promise:!0})},yi=Symbol.iterator;const ji=1,Si=2,Ii=3;class Oi{constructor(t,e){this._collection=t,this._kind=e,this._index=0}next(){if(this._collection){if(this._index<this._collection.length){const t=this._collection.at(this._index);if(this._index++,!t)return{value:void 0,done:!0};let e;if(this._kind===ji)e=t;else{const r=this._collection.modelId(t.attributes);e=this._kind===Si?r:[r,t]}return{value:e,done:!1}}this._collection=void 0}return{value:void 0,done:!0}}[Symbol.iterator](){return this}}const Ai={Collection:wi,EventEmitter:Ht,Model:bi,sync:Wn},Ei="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global;Ai.VERSION="0.0.1";const xi=Ei.Skeletor;function ki(){return Ei.Skeletor=xi,this}Ai.noConflict=ki,Ei.Skeletor=Ai;const Ni=Vn;t.BrowserStorage=Ni,t.Collection=wi,t.EventEmitter=Ht,t.Model=bi,t.PersistentStorage=Vn,t.default=Ai,t.getStorage=Ln,t.noConflict=ki,t.sync=Wn,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
60
|
+
*/function jr(){return _r||(_r=1,function(t){t.exports=function t(e,r,n){function o(s,a){if(!r[s]){if(!e[s]){if(!a&&mr)return mr(s);if(i)return i(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=r[s]={exports:{}};e[s][0].call(c.exports,function(t){var r=e[s][1][t];return o(r||t)},c,c.exports,t,e,r,n)}return r[s].exports}for(var i=mr,s=0;s<n.length;s++)o(n[s]);return o}({1:[function(t,e,r){(function(t){var r,n,o=t.MutationObserver||t.WebKitMutationObserver;if(o){var i=0,s=new o(l),a=t.document.createTextNode("");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){l(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(l,0)};else{var u=new t.MessageChannel;u.port1.onmessage=l,r=function(){u.port2.postMessage(0)}}var c=[];function l(){var t,e;n=!0;for(var r=c.length;r;){for(e=c,c=[],t=-1;++t<r;)e[t]();r=c.length}n=!1}function f(t){1!==c.push(t)||n||r()}e.exports=f}).call(this,void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(t,e,r){var n=t(1);function o(){}var i={},s=["REJECTED"],a=["FULFILLED"],u=["PENDING"];function c(t){if("function"!=typeof t)throw new TypeError("resolver must be a function");this.state=u,this.queue=[],this.outcome=void 0,t!==o&&d(this,t)}function l(t,e,r){this.promise=t,"function"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,e,r){n(function(){var n;try{n=e(r)}catch(e){return i.reject(t,e)}n===t?i.reject(t,new TypeError("Cannot resolve promise with itself")):i.resolve(t,n)})}function h(t){var e=t&&t.then;if(t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof e)return function(){e.apply(t,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,i.reject(t,e))}function o(e){r||(r=!0,i.resolve(t,e))}function s(){e(o,n)}var a=v(s);"error"===a.status&&n(a.value)}function v(t,e){var r={};try{r.value=t(e),r.status="success"}catch(t){r.status="error",r.value=t}return r}function p(t){return t instanceof this?t:i.resolve(new this(o),t)}function y(t){var e=new this(o);return i.reject(e,t)}function g(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var r=t.length,n=!1;if(!r)return this.resolve([]);for(var s=new Array(r),a=0,u=-1,c=new this(o);++u<r;)l(t[u],u);return c;function l(t,o){function u(t){s[o]=t,++a!==r||n||(n=!0,i.resolve(c,s))}e.resolve(t).then(u,function(t){n||(n=!0,i.reject(c,t))})}}function b(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var r=t.length,n=!1;if(!r)return this.resolve([]);for(var s=-1,a=new this(o);++s<r;)u(t[s]);return a;function u(t){e.resolve(t).then(function(t){n||(n=!0,i.resolve(a,t))},function(t){n||(n=!0,i.reject(a,t))})}}e.exports=c,c.prototype.catch=function(t){return this.then(null,t)},c.prototype.then=function(t,e){if("function"!=typeof t&&this.state===a||"function"!=typeof e&&this.state===s)return this;var r=new this.constructor(o);return this.state!==u?f(r,this.state===a?t:e,this.outcome):this.queue.push(new l(r,t,e)),r},l.prototype.callFulfilled=function(t){i.resolve(this.promise,t)},l.prototype.otherCallFulfilled=function(t){f(this.promise,this.onFulfilled,t)},l.prototype.callRejected=function(t){i.reject(this.promise,t)},l.prototype.otherCallRejected=function(t){f(this.promise,this.onRejected,t)},i.resolve=function(t,e){var r=v(h,e);if("error"===r.status)return i.reject(t,r.value);var n=r.value;if(n)d(t,n);else{t.state=a,t.outcome=e;for(var o=-1,s=t.queue.length;++o<s;)t.queue[o].callFulfilled(e)}return t},i.reject=function(t,e){t.state=s,t.outcome=e;for(var r=-1,n=t.queue.length;++r<n;)t.queue[r].callRejected(e);return t},c.resolve=p,c.reject=y,c.all=g,c.race=b},{1:1}],3:[function(t,e,r){(function(e){"function"!=typeof e.Promise&&(e.Promise=t(2))}).call(this,void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(t,e,r){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(t){return}}var s=i();function a(){try{if(!s||!s.open)return!1;var t="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),e="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!t||e)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(t){return!1}}function u(t,e){t=t||[],e=e||{};try{return new Blob(t,e)}catch(o){if("TypeError"!==o.name)throw o;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<t.length;n+=1)r.append(t[n]);return r.getBlob(e.type)}}"undefined"==typeof Promise&&t(3);var c=Promise;function l(t,e){e&&t.then(function(t){e(null,t)},function(t){e(t)})}function f(t,e,r){"function"==typeof e&&t.then(e),"function"==typeof r&&t.catch(r)}function h(t){return"string"!=typeof t&&(console.warn(t+" used as a key, but it is not a string."),t=String(t)),t}function d(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var v="local-forage-detect-blob-support",p=void 0,y={},g=Object.prototype.toString,b="readonly",m="readwrite";function _(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;o<e;o++)n[o]=t.charCodeAt(o);return r}function w(t){return new c(function(e){var r=t.transaction(v,m),n=u([""]);r.objectStore(v).put(n,"key"),r.onabort=function(t){t.preventDefault(),t.stopPropagation(),e(!1)},r.oncomplete=function(){var t=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);e(r||!t||parseInt(t[1],10)>=43)}}).catch(function(){return!1})}function j(t){return"boolean"==typeof p?c.resolve(p):w(t).then(function(t){return p=t})}function S(t){var e=y[t.name],r={};r.promise=new c(function(t,e){r.resolve=t,r.reject=e}),e.deferredOperations.push(r),e.dbReady?e.dbReady=e.dbReady.then(function(){return r.promise}):e.dbReady=r.promise}function I(t){var e=y[t.name].deferredOperations.pop();if(e)return e.resolve(),e.promise}function O(t,e){var r=y[t.name].deferredOperations.pop();if(r)return r.reject(e),r.promise}function A(t,e){return new c(function(r,n){if(y[t.name]=y[t.name]||D(),t.db){if(!e)return r(t.db);S(t),t.db.close()}var o=[t.name];e&&o.push(t.version);var i=s.open.apply(s,o);e&&(i.onupgradeneeded=function(e){var r=i.result;try{r.createObjectStore(t.storeName),e.oldVersion<=1&&r.createObjectStore(v)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+t.name+'" has been upgraded from version '+e.oldVersion+" to version "+e.newVersion+', but the storage "'+t.storeName+'" already exists.')}}),i.onerror=function(t){t.preventDefault(),n(i.error)},i.onsuccess=function(){var e=i.result;e.onversionchange=function(t){t.target.close()},r(e),I(t)}})}function E(t){return A(t,!1)}function x(t){return A(t,!0)}function k(t,e){if(!t.db)return!0;var r=!t.db.objectStoreNames.contains(t.storeName),n=t.version<t.db.version,o=t.version>t.db.version;if(n&&(t.version!==e&&console.warn('The database "'+t.name+"\" can't be downgraded from version "+t.db.version+" to version "+t.version+"."),t.version=t.db.version),o||r){if(r){var i=t.db.version+1;i>t.version&&(t.version=i)}return!0}return!1}function N(t){return new c(function(e,r){var n=new FileReader;n.onerror=r,n.onloadend=function(r){var n=btoa(r.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:t.type})},n.readAsBinaryString(t)})}function P(t){return u([_(atob(t.data))],{type:t.type})}function R(t){return t&&t.__local_forage_encoded_blob}function B(t){var e=this,r=e._initReady().then(function(){var t=y[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady});return f(r,t,t),r}function z(t){S(t);for(var e=y[t.name],r=e.forages,n=0;n<r.length;n++){var o=r[n];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return t.db=null,E(t).then(function(e){return t.db=e,k(t)?x(t):e}).then(function(n){t.db=e.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n}).catch(function(e){throw O(t,e),e})}function T(t,e,r,n){void 0===n&&(n=1);try{var o=t.db.transaction(t.storeName,e);r(null,o)}catch(o){if(n>0&&(!t.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return c.resolve().then(function(){if(!t.db||"NotFoundError"===o.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),x(t)}).then(function(){return z(t).then(function(){T(t,e,r,n-1)})}).catch(r);r(o)}}function D(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function C(t){var e=this,r={db:null};if(t)for(var n in t)r[n]=t[n];var o=y[r.name];o||(o=D(),y[r.name]=o),o.forages.push(e),e._initReady||(e._initReady=e.ready,e.ready=B);var i=[];function s(){return c.resolve()}for(var a=0;a<o.forages.length;a++){var u=o.forages[a];u!==e&&i.push(u._initReady().catch(s))}var l=o.forages.slice(0);return c.all(i).then(function(){return r.db=o.db,E(r)}).then(function(t){return r.db=t,k(r,e._defaultConfig.version)?x(r):t}).then(function(t){r.db=o.db=t,e._dbInfo=r;for(var n=0;n<l.length;n++){var i=l[n];i!==e&&(i._dbInfo.db=r.db,i._dbInfo.version=r.version)}})}function M(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).get(t);s.onsuccess=function(){var t=s.result;void 0===t&&(t=null),R(t)&&(t=P(t)),e(t)},s.onerror=function(){n(s.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function F(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).openCursor(),a=1;s.onsuccess=function(){var r=s.result;if(r){var n=r.value;R(n)&&(n=P(n));var o=t(n,r.key,a++);void 0!==o?e(o):r.continue()}else e()},s.onerror=function(){n(s.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function L(t,e,r){var n=this;t=h(t);var o=new c(function(r,o){var i;n.ready().then(function(){return i=n._dbInfo,"[object Blob]"===g.call(e)?j(i.db).then(function(t){return t?e:N(e)}):e}).then(function(e){T(n._dbInfo,m,function(i,s){if(i)return o(i);try{var a=s.objectStore(n._dbInfo.storeName);null===e&&(e=void 0);var u=a.put(e,t);s.oncomplete=function(){void 0===e&&(e=null),r(e)},s.onabort=s.onerror=function(){var t=u.error?u.error:u.transaction.error;o(t)}}catch(t){o(t)}})}).catch(o)});return l(o,r),o}function U(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){T(r._dbInfo,m,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName).delete(t);i.oncomplete=function(){e()},i.onerror=function(){n(s.error)},i.onabort=function(){var t=s.error?s.error:s.transaction.error;n(t)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function W(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,m,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).clear();o.oncomplete=function(){t()},o.onabort=o.onerror=function(){var t=i.error?i.error:i.transaction.error;r(t)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function q(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,b,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).count();i.onsuccess=function(){t(i.result)},i.onerror=function(){r(i.error)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function J(t,e){var r=this,n=new c(function(e,n){t<0?e(null):r.ready().then(function(){T(r._dbInfo,b,function(o,i){if(o)return n(o);try{var s=i.objectStore(r._dbInfo.storeName),a=!1,u=s.openKeyCursor();u.onsuccess=function(){var r=u.result;r?0===t||a?e(r.key):(a=!0,r.advance(t)):e(null)},u.onerror=function(){n(u.error)}}catch(t){n(t)}})}).catch(n)});return l(n,e),n}function K(t){var e=this,r=new c(function(t,r){e.ready().then(function(){T(e._dbInfo,b,function(n,o){if(n)return r(n);try{var i=o.objectStore(e._dbInfo.storeName).openKeyCursor(),s=[];i.onsuccess=function(){var e=i.result;e?(s.push(e.key),e.continue()):t(s)},i.onerror=function(){r(i.error)}}catch(t){r(t)}})}).catch(r)});return l(r,t),r}function V(t,e){e=d.apply(this,arguments);var r=this.config();(t="function"!=typeof t&&t||{}).name||(t.name=t.name||r.name,t.storeName=t.storeName||r.storeName);var n,o=this;if(t.name){var i=t.name===r.name&&o._dbInfo.db?c.resolve(o._dbInfo.db):E(t).then(function(e){var r=y[t.name],n=r.forages;r.db=e;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=e;return e});n=t.storeName?i.then(function(e){if(e.objectStoreNames.contains(t.storeName)){var r=e.version+1;S(t);var n=y[t.name],o=n.forages;e.close();for(var i=0;i<o.length;i++){var a=o[i];a._dbInfo.db=null,a._dbInfo.version=r}var u=new c(function(e,n){var o=s.open(t.name,r);o.onerror=function(t){o.result.close(),n(t)},o.onupgradeneeded=function(){o.result.deleteObjectStore(t.storeName)},o.onsuccess=function(){var t=o.result;t.close(),e(t)}});return u.then(function(t){n.db=t;for(var e=0;e<o.length;e++){var r=o[e];r._dbInfo.db=t,I(r._dbInfo)}}).catch(function(e){throw(O(t,e)||c.resolve()).catch(function(){}),e})}}):i.then(function(e){S(t);var r=y[t.name],n=r.forages;e.close();for(var o=0;o<n.length;o++)n[o]._dbInfo.db=null;var i=new c(function(e,r){var n=s.deleteDatabase(t.name);n.onerror=function(){var t=n.result;t&&t.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+t.name+'" until all open connections are closed')},n.onsuccess=function(){var t=n.result;t&&t.close(),e(t)}});return i.then(function(t){r.db=t;for(var e=0;e<n.length;e++)I(n[e]._dbInfo)}).catch(function(e){throw(O(t,e)||c.resolve()).catch(function(){}),e})})}else n=c.reject("Invalid arguments");return l(n,e),n}var $={_driver:"asyncStorage",_initStorage:C,_support:a(),iterate:F,getItem:M,setItem:L,removeItem:U,clear:W,length:q,key:J,keys:K,dropInstance:V};function G(){return"function"==typeof openDatabase}var Q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",H="~~local_forage_type~",X=/^~~local_forage_type~([^~]+)~/,Y="__lfsc__:",Z=Y.length,tt="arbf",et="blob",rt="si08",nt="ui08",ot="uic8",it="si16",st="si32",at="ur16",ut="ui32",ct="fl32",lt="fl64",ft=Z+tt.length,ht=Object.prototype.toString;function dt(t){var e,r,n,o,i,s=.75*t.length,a=t.length,u=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var c=new ArrayBuffer(s),l=new Uint8Array(c);for(e=0;e<a;e+=4)r=Q.indexOf(t[e]),n=Q.indexOf(t[e+1]),o=Q.indexOf(t[e+2]),i=Q.indexOf(t[e+3]),l[u++]=r<<2|n>>4,l[u++]=(15&n)<<4|o>>2,l[u++]=(3&o)<<6|63&i;return c}function vt(t){var e,r=new Uint8Array(t),n="";for(e=0;e<r.length;e+=3)n+=Q[r[e]>>2],n+=Q[(3&r[e])<<4|r[e+1]>>4],n+=Q[(15&r[e+1])<<2|r[e+2]>>6],n+=Q[63&r[e+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}function pt(t,e){var r="";if(t&&(r=ht.call(t)),t&&("[object ArrayBuffer]"===r||t.buffer&&"[object ArrayBuffer]"===ht.call(t.buffer))){var n,o=Y;t instanceof ArrayBuffer?(n=t,o+=tt):(n=t.buffer,"[object Int8Array]"===r?o+=rt:"[object Uint8Array]"===r?o+=nt:"[object Uint8ClampedArray]"===r?o+=ot:"[object Int16Array]"===r?o+=it:"[object Uint16Array]"===r?o+=at:"[object Int32Array]"===r?o+=st:"[object Uint32Array]"===r?o+=ut:"[object Float32Array]"===r?o+=ct:"[object Float64Array]"===r?o+=lt:e(new Error("Failed to get type for BinaryArray"))),e(o+vt(n))}else if("[object Blob]"===r){var i=new FileReader;i.onload=function(){var r=H+t.type+"~"+vt(this.result);e(Y+et+r)},i.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(r){console.error("Couldn't convert value into a JSON string: ",t),e(null,r)}}function yt(t){if(t.substring(0,Z)!==Y)return JSON.parse(t);var e,r=t.substring(ft),n=t.substring(Z,ft);if(n===et&&X.test(r)){var o=r.match(X);e=o[1],r=r.substring(o[0].length)}var i=dt(r);switch(n){case tt:return i;case et:return u([i],{type:e});case rt:return new Int8Array(i);case nt:return new Uint8Array(i);case ot:return new Uint8ClampedArray(i);case it:return new Int16Array(i);case at:return new Uint16Array(i);case st:return new Int32Array(i);case ut:return new Uint32Array(i);case ct:return new Float32Array(i);case lt:return new Float64Array(i);default:throw new Error("Unkown type: "+n)}}var gt={serialize:pt,deserialize:yt,stringToBuffer:dt,bufferToString:vt};function bt(t,e,r,n){t.executeSql("CREATE TABLE IF NOT EXISTS "+e.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function mt(t){var e=this,r={db:null};if(t)for(var n in t)r[n]="string"!=typeof t[n]?t[n].toString():t[n];var o=new c(function(t,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(t){return n(t)}r.db.transaction(function(o){bt(o,r,function(){e._dbInfo=r,t()},function(t,e){n(e)})},n)});return r.serializer=gt,o}function _t(t,e,r,n,o,i){t.executeSql(r,n,o,function(t,s){s.code===s.SYNTAX_ERR?t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[e.storeName],function(t,a){a.rows.length?i(t,s):bt(t,e,function(){t.executeSql(r,n,o,i)},i)},i):i(t,s)},i)}function wt(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[t],function(t,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=o.serializer.deserialize(n)),e(n)},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function jt(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT * FROM "+o.storeName,[],function(r,n){for(var i=n.rows,s=i.length,a=0;a<s;a++){var u=i.item(a),c=u.value;if(c&&(c=o.serializer.deserialize(c)),void 0!==(c=t(c,u.key,a+1)))return void e(c)}e()},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function St(t,e,r,n){var o=this;t=h(t);var i=new c(function(i,s){o.ready().then(function(){void 0===e&&(e=null);var a=e,u=o._dbInfo;u.serializer.serialize(e,function(e,c){c?s(c):u.db.transaction(function(r){_t(r,u,"INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",[t,e],function(){i(a)},function(t,e){s(e)})},function(e){if(e.code===e.QUOTA_ERR){if(n>0)return void i(St.apply(o,[t,a,r,n-1]));s(e)}})})}).catch(s)});return l(i,r),i}function It(t,e,r){return St.apply(this,[t,e,r,1])}function Ot(t,e){var r=this;t=h(t);var n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[t],function(){e()},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function At(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"DELETE FROM "+n.storeName,[],function(){t()},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function Et(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],function(e,r){var n=r.rows.item(0).c;t(n)},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function xt(t,e){var r=this,n=new c(function(e,n){r.ready().then(function(){var o=r._dbInfo;o.db.transaction(function(r){_t(r,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[t+1],function(t,r){var n=r.rows.length?r.rows.item(0).key:null;e(n)},function(t,e){n(e)})})}).catch(n)});return l(n,e),n}function kt(t){var e=this,r=new c(function(t,r){e.ready().then(function(){var n=e._dbInfo;n.db.transaction(function(e){_t(e,n,"SELECT key FROM "+n.storeName,[],function(e,r){for(var n=[],o=0;o<r.rows.length;o++)n.push(r.rows.item(o).key);t(n)},function(t,e){r(e)})})}).catch(r)});return l(r,t),r}function Nt(t){return new c(function(e,r){t.transaction(function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(r,n){for(var o=[],i=0;i<n.rows.length;i++)o.push(n.rows.item(i).name);e({db:t,storeNames:o})},function(t,e){r(e)})},function(t){r(t)})})}function Pt(t,e){e=d.apply(this,arguments);var r=this.config();(t="function"!=typeof t&&t||{}).name||(t.name=t.name||r.name,t.storeName=t.storeName||r.storeName);var n,o=this;return l(n=t.name?new c(function(e){var n;n=t.name===r.name?o._dbInfo.db:openDatabase(t.name,"","",0),t.storeName?e({db:n,storeNames:[t.storeName]}):e(Nt(n))}).then(function(t){return new c(function(e,r){t.db.transaction(function(n){function o(t){return new c(function(e,r){n.executeSql("DROP TABLE IF EXISTS "+t,[],function(){e()},function(t,e){r(e)})})}for(var i=[],s=0,a=t.storeNames.length;s<a;s++)i.push(o(t.storeNames[s]));c.all(i).then(function(){e()}).catch(function(t){r(t)})},function(t){r(t)})})}):c.reject("Invalid arguments"),e),n}var Rt={_driver:"webSQLStorage",_initStorage:mt,_support:G(),iterate:jt,getItem:wt,setItem:It,removeItem:Ot,clear:At,length:Et,key:xt,keys:kt,dropInstance:Pt};function Bt(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(t){return!1}}function zt(t,e){var r=t.name+"/";return t.storeName!==e.storeName&&(r+=t.storeName+"/"),r}function Tt(){var t="_localforage_support_test";try{return localStorage.setItem(t,!0),localStorage.removeItem(t),!1}catch(t){return!0}}function Dt(){return!Tt()||localStorage.length>0}function Ct(t){var e=this,r={};if(t)for(var n in t)r[n]=t[n];return r.keyPrefix=zt(t,e._defaultConfig),Dt()?(e._dbInfo=r,r.serializer=gt,c.resolve()):c.reject()}function Mt(t){var e=this,r=e.ready().then(function(){for(var t=e._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(t)&&localStorage.removeItem(n)}});return l(r,t),r}function Ft(t,e){var r=this;t=h(t);var n=r.ready().then(function(){var e=r._dbInfo,n=localStorage.getItem(e.keyPrefix+t);return n&&(n=e.serializer.deserialize(n)),n});return l(n,e),n}function Lt(t,e){var r=this,n=r.ready().then(function(){for(var e=r._dbInfo,n=e.keyPrefix,o=n.length,i=localStorage.length,s=1,a=0;a<i;a++){var u=localStorage.key(a);if(0===u.indexOf(n)){var c=localStorage.getItem(u);if(c&&(c=e.serializer.deserialize(c)),void 0!==(c=t(c,u.substring(o),s++)))return c}}});return l(n,e),n}function Ut(t,e){var r=this,n=r.ready().then(function(){var e,n=r._dbInfo;try{e=localStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(n.keyPrefix.length)),e});return l(n,e),n}function Wt(t){var e=this,r=e.ready().then(function(){for(var t=e._dbInfo,r=localStorage.length,n=[],o=0;o<r;o++){var i=localStorage.key(o);0===i.indexOf(t.keyPrefix)&&n.push(i.substring(t.keyPrefix.length))}return n});return l(r,t),r}function qt(t){var e=this.keys().then(function(t){return t.length});return l(e,t),e}function Jt(t,e){var r=this;t=h(t);var n=r.ready().then(function(){var e=r._dbInfo;localStorage.removeItem(e.keyPrefix+t)});return l(n,e),n}function Kt(t,e,r){var n=this;t=h(t);var o=n.ready().then(function(){void 0===e&&(e=null);var r=e;return new c(function(o,i){var s=n._dbInfo;s.serializer.serialize(e,function(e,n){if(n)i(n);else try{localStorage.setItem(s.keyPrefix+t,e),o(r)}catch(t){"QuotaExceededError"!==t.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==t.name||i(t),i(t)}})})});return l(o,r),o}function Vt(t,e){if(e=d.apply(this,arguments),!(t="function"!=typeof t&&t||{}).name){var r=this.config();t.name=t.name||r.name,t.storeName=t.storeName||r.storeName}var n,o=this;return n=t.name?new c(function(e){t.storeName?e(zt(t,o._defaultConfig)):e(t.name+"/")}).then(function(t){for(var e=localStorage.length-1;e>=0;e--){var r=localStorage.key(e);0===r.indexOf(t)&&localStorage.removeItem(r)}}):c.reject("Invalid arguments"),l(n,e),n}var $t={_driver:"localStorageWrapper",_initStorage:Ct,_support:Bt(),iterate:Lt,getItem:Ft,setItem:Kt,removeItem:Jt,clear:Mt,length:qt,key:Ut,keys:Wt,dropInstance:Vt},Gt=function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)},Qt=function(t,e){for(var r=t.length,n=0;n<r;){if(Gt(t[n],e))return!0;n++}return!1},Ht=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},Xt={},Yt={},Zt={INDEXEDDB:$,WEBSQL:Rt,LOCALSTORAGE:$t},te=[Zt.INDEXEDDB._driver,Zt.WEBSQL._driver,Zt.LOCALSTORAGE._driver],ee=["dropInstance"],re=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(ee),ne={description:"",driver:te.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function oe(t,e){t[e]=function(){var r=arguments;return t.ready().then(function(){return t[e].apply(t,r)})}}function ie(){for(var t=1;t<arguments.length;t++){var e=arguments[t];if(e)for(var r in e)e.hasOwnProperty(r)&&(Ht(e[r])?arguments[0][r]=e[r].slice():arguments[0][r]=e[r])}return arguments[0]}var se=function(){function t(e){for(var r in o(this,t),Zt)if(Zt.hasOwnProperty(r)){var n=Zt[r],i=n._driver;this[r]=i,Xt[i]||this.defineDriver(n)}this._defaultConfig=ie({},ne),this._config=ie({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return t.prototype.config=function(t){if("object"===(void 0===t?"undefined":n(t))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var e in t){if("storeName"===e&&(t[e]=t[e].replace(/\W/g,"_")),"version"===e&&"number"!=typeof t[e])return new Error("Database version must be a number.");this._config[e]=t[e]}return!("driver"in t)||!t.driver||this.setDriver(this._config.driver)}return"string"==typeof t?this._config[t]:this._config},t.prototype.defineDriver=function(t,e,r){var n=new c(function(e,r){try{var n=t._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!t._driver)return void r(o);for(var i=re.concat("_initStorage"),s=0,a=i.length;s<a;s++){var u=i[s];if((!Qt(ee,u)||t[u])&&"function"!=typeof t[u])return void r(o)}var f=function(){for(var e=function(t){return function(){var e=new Error("Method "+t+" is not implemented by the current driver"),r=c.reject(e);return l(r,arguments[arguments.length-1]),r}},r=0,n=ee.length;r<n;r++){var o=ee[r];t[o]||(t[o]=e(o))}};f();var h=function(r){Xt[n]&&console.info("Redefining LocalForage driver: "+n),Xt[n]=t,Yt[n]=r,e()};"_support"in t?t._support&&"function"==typeof t._support?t._support().then(h,r):h(!!t._support):h(!0)}catch(t){r(t)}});return f(n,e,r),n},t.prototype.driver=function(){return this._driver||null},t.prototype.getDriver=function(t,e,r){var n=Xt[t]?c.resolve(Xt[t]):c.reject(new Error("Driver not found."));return f(n,e,r),n},t.prototype.getSerializer=function(t){var e=c.resolve(gt);return f(e,t),e},t.prototype.ready=function(t){var e=this,r=e._driverSet.then(function(){return null===e._ready&&(e._ready=e._initDriver()),e._ready});return f(r,t,t),r},t.prototype.setDriver=function(t,e,r){var n=this;Ht(t)||(t=[t]);var o=this._getSupportedDrivers(t);function i(){n._config.driver=n.driver()}function s(t){return n._extend(t),i(),n._ready=n._initStorage(n._config),n._ready}function a(t){return function(){var e=0;function r(){for(;e<t.length;){var o=t[e];return e++,n._dbInfo=null,n._ready=null,n.getDriver(o).then(s).catch(r)}i();var a=new Error("No available storage method found.");return n._driverSet=c.reject(a),n._driverSet}return r()}}var u=null!==this._driverSet?this._driverSet.catch(function(){return c.resolve()}):c.resolve();return this._driverSet=u.then(function(){var t=o[0];return n._dbInfo=null,n._ready=null,n.getDriver(t).then(function(t){n._driver=t._driver,i(),n._wrapLibraryMethodsWithReady(),n._initDriver=a(o)})}).catch(function(){i();var t=new Error("No available storage method found.");return n._driverSet=c.reject(t),n._driverSet}),f(this._driverSet,e,r),this._driverSet},t.prototype.supports=function(t){return!!Yt[t]},t.prototype._extend=function(t){ie(this,t)},t.prototype._getSupportedDrivers=function(t){for(var e=[],r=0,n=t.length;r<n;r++){var o=t[r];this.supports(o)&&e.push(o)}return e},t.prototype._wrapLibraryMethodsWithReady=function(){for(var t=0,e=re.length;t<e;t++)oe(this,re[t])},t.prototype.createInstance=function(e){return new t(e)},t}(),ae=new se;e.exports=ae},{3:3}]},{},[4])(4)}(wr)),wr.exports}var Sr=br(jr());function Ir(t,e,r){(void 0!==r&&!pe(t[e],r)||void 0===r&&!(e in t))&&Ee(t,e,r)}var Or=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),s=i.length;s--;){var a=i[++n];if(!1===e(o[a],a,o))break}return t};var Ar=Function.prototype,Er=Object.prototype,xr=Ar.toString,kr=Er.hasOwnProperty,Nr=xr.call(Object);function Pr(t){if(!Q(t)||"[object Object]"!=g(t))return!1;var e=Ke(t);if(null===e)return!0;var r=kr.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&xr.call(r)==Nr}function Rr(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function Br(t,e,r,n,o,i,s){var a=Rr(t,r),u=Rr(e,r),c=s.get(u);if(c)Ir(t,r,c);else{var l,f=i?i(a,u,r+"",t,e,s):void 0,h=void 0===f;if(h){var d=et(u),v=!d&&at(u),p=!d&&!v&&pt(u);f=u,d||v||p?et(a)?f=a:Q(l=a)&&nt(l)?f=Fe(a):v?(h=!1,f=Me(u,!0)):p?(h=!1,f=rr(u,!0)):f=[]:Pr(u)||tt(u)?(f=a,tt(a)?f=function(t){return Ne(t,Be(t))}(a):b(a)&&!m(a)||(f=sr(u))):h=!1}h&&(s.set(u,f),o(f,u,n,i,s),s.delete(u)),Ir(t,r,f)}}function zr(t,e,r,n,o){t!==e&&Or(e,function(i,s){if(o||(o=new Oe),b(i))Br(t,e,s,r,zr,n,o);else{var a=n?n(Rr(t,s),i,s+"",t,e,o):void 0;void 0===a&&(a=i),Ir(t,s,a)}},Be)}function Tr(t){return t}var Dr=Math.max;function Cr(t,e,r){return e=Dr(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=Dr(n.length-e,0),s=Array(i);++o<i;)s[o]=n[e+o];o=-1;for(var a=Array(e+1);++o<e;)a[o]=n[o];return a[e]=r(s),function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}(t,this,a)}}function Mr(t){return function(){return t}}var Fr=Ae?function(t,e){return Ae(t,"toString",{configurable:!0,enumerable:!1,value:Mr(e),writable:!0})}:Tr,Lr=Date.now;var Ur,Wr,qr,Jr=(Ur=Fr,Wr=0,qr=0,function(){var t=Lr(),e=16-(t-qr);if(qr=t,e>0){if(++Wr>=800)return arguments[0]}else Wr=0;return Ur.apply(void 0,arguments)});function Kr(t,e){return Jr(Cr(t,e,Tr),t+"")}function Vr(t,e,r){if(!b(r))return!1;var n=typeof e;return!!("number"==n?nt(r)&&mt(e,r.length):"string"==n&&e in r)&&pe(r[e],t)}function $r(t){return Kr(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,s=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,s&&Vr(r[0],r[1],s)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var a=r[n];a&&t(e,a,n,i)}return e})}var Gr=$r(function(t,e,r){zr(t,e,r)}),Qr=$r(function(t,e,r,n){zr(t,e,r,n)});function Hr(){let t,e=()=>{},r=()=>{};if("function"==typeof Promise.withResolvers){const{promise:n,resolve:o,reject:i}=Promise.withResolvers();t=n,e=o,r=i}else t=new Promise((t,n)=>{e=t,r=n});return Object.assign(t,{isResolved:!1,isPending:!0,isRejected:!1,resolve:e,reject:r}),t.then(e=>(t.isResolved=!0,t.isPending=!1,t.isRejected=!1,e),e=>{throw t.isResolved=!1,t.isPending=!1,t.isRejected=!0,e}),t}const Xr=Math.max,Yr=Math.min;function Zr(t){if("number"==typeof t)return t;if("string"==typeof t){const e=parseFloat(t);return isNaN(e)?0:e}return 0}function tn(t,e,r={}){let n,o,i,s,a,u,c=0,l=!1,f=r.promise?Hr():null;if("function"!=typeof t)throw new TypeError("Expected a function");function h(e){const i=n,a=o,u=f;return n=o=void 0,c=e,s=t.apply(a,i),r.promise&&(u.resolve(s),f=Hr()),r.promise?u:s}function d(t){const r=t-u;return void 0===u||r>=e||r<0||l&&t-c>=i}function v(){const t=Date.now();if(d(t))return p(t);a=setTimeout(v,function(t){const r=e-(t-u);return l?Yr(r,i-(t-c)):r}(t))}function p(t){return a=void 0,n?h(t):(n=o=void 0,r.promise?f:s)}function y(t,e){if(Array.isArray(t)&&Array.isArray(e))return r?.dedupeArrays?t.concat(e.filter(e=>-1===t.indexOf(e))):t.concat(e)}function g(){const t=Date.now(),i=d(t);var p;if(p=Array.from(arguments),n=n?.length?p.length?r?.concatArrays||r?.dedupeArrays?Qr(n,p,y):Gr(n,p):n:p||[],o=this,u=t,i){if(void 0===a)return function(t){return c=t,a=setTimeout(v,e),r.promise?f:s}(u);if(l)return clearTimeout(a),a=setTimeout(v,e),h(u)}return void 0===a&&(a=setTimeout(v,e)),r.promise?f:s}return e=Zr(e)||0,function(t){const e=typeof t;return null!=t&&("object"===e||"function"===e)}(r)&&(l="maxWait"in r,i=l?Xr(Zr(r.maxWait)||0,e):i),g.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=u=o=a=void 0},g.flush=function(){return void 0===a?s:p(Date.now())},g}function en(t,e){e&&t.then(t=>e(null,t),t=>e(t))}function rn(t){return"string"!=typeof t&&(console.warn(`${t} used as a key, but it is not a string.`),t=String(t)),t}function nn(t,e){let r=t.name+"/";return t.storeName!==e.storeName&&(r+=t.storeName+"/"),r}const on={keyPrefix:"",serializer:{serialize:function(t,e){try{e(function(t){return JSON.stringify(t,(t,e)=>e instanceof Date?e.toISOString():e)}(t),null)}catch(t){e("",t)}},deserialize:function(t){return JSON.parse(t)}}};const sn={_driver:"sessionStorageWrapper",_initStorage:function(t){if(on.keyPrefix=nn(t,this._defaultConfig),t)for(const e in t)on[e]=t[e]},_support:function(){try{if(sessionStorage&&"setItem"in sessionStorage)return!0}catch(t){console.log(t)}return!1}(),iterate:function(t,e){const r=this.ready().then(function(){const e=on.keyPrefix,r=e.length,n=sessionStorage.length;let o=1;for(let i=0;i<n;i++){const n=sessionStorage.key(i);if(!n||0!==n.indexOf(e))continue;const s=sessionStorage.getItem(n),a=s?on.serializer.deserialize(s):s,u=t(a,n.substring(r),o++);if(void 0!==u)return u}});return en(r,e),r},getItem:function(t,e){t=rn(t);const r=this.ready().then(function(){const e=sessionStorage.getItem(on.keyPrefix+t);return e?on.serializer.deserialize(e):null});return en(r,e),r},setItem:async function(t,e,r){t=rn(t),await this.ready();const n=e=e??null;return new Promise((o,i)=>{on.serializer.serialize(e,(e,s)=>{if(s)return i(s),void en(Promise.reject(s),r);try{sessionStorage.setItem(on.keyPrefix+t,e),o(n),en(Promise.resolve(n),r)}catch(t){"QuotaExceededError"!==t.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==t.name||console.error("Your sessionStorage capacity is used up."),i(t),en(Promise.reject(t),r)}})})},removeItem:function(t,e){t=rn(t);const r=this.ready().then(function(){sessionStorage.removeItem(on.keyPrefix+t)});return en(r,e),r},clear:function(t){const e=this.ready().then(function(){const t=on.keyPrefix;for(let e=sessionStorage.length-1;e>=0;e--){const r=sessionStorage.key(e);r&&0===r.indexOf(t)&&sessionStorage.removeItem(r)}});return en(e,t),e},length:function(t){const e=this.keys().then(function(t){return t.length});return en(e,t),e},key:function(t,e){const r=this.ready().then(function(){let e;try{e=sessionStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(on.keyPrefix.length)),e});return en(r,e),r},keys:function(t){const e=this.ready().then(function(){const t=sessionStorage.length,e=[];for(let r=0;r<t;r++){const t=sessionStorage.key(r);t&&0===t.indexOf(on.keyPrefix)&&e.push(t.substring(on.keyPrefix.length))}return e});return en(e,t),e},dropInstance:function(...t){const e=function(...t){if(t.length&&"function"==typeof t[t.length-1])return t[t.length-1]}(...t);let r="function"!=typeof t[0]&&t[0]||{};if(!r.name){const t=this.config();r.name=r.name||t.name,r.storeName=r.storeName||t.storeName}const n=this;let o;return o=r.name?new Promise(function(t){r.storeName?t(nn(r,n._defaultConfig)):t(`${r.name}/`)}).then(function(t){for(let e=sessionStorage.length-1;e>=0;e--){const r=sessionStorage.key(e);r&&0===r.indexOf(t)&&sessionStorage.removeItem(r)}}):Promise.reject(new Error("Invalid arguments")),en(o,e),o}};var an,un={exports:{}};var cn,ln=(an||(an=1,function(t,e){!function(t,e){function r(t){return r.result?r.result:t&&"function"==typeof t.getSerializer?(r.result=t.getSerializer(),r.result):Promise.reject(new Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function n(t,e){e&&t.then(function(t){e(null,t)},function(t){e(t)})}function o(t,e,r,n){function o(t,e){var r=t||e;return t&&"function"==typeof t||"string"!=typeof r||(t=function(t){return t[r]}),t}var i=[];if("[object Array]"===Object.prototype.toString.call(t)){e=o(e,"key"),r=o(r,"value");for(var s=0,a=t.length;s<a;s++){var u=t[s];i.push(n(e(u),r(u)))}}else for(var c in t)t.hasOwnProperty(c)&&i.push(n(c,t[c]));return i}function i(t,e,r,i){var s=this,a=s.ready().then(function(){return new Promise(function(n,i){var a,u=s._dbInfo,c=u.db.transaction(u.storeName,"readwrite"),l=c.objectStore(u.storeName);function f(t){var e=t.target||this;a=e.error||e.transaction.error,i(a)}c.oncomplete=function(){n(t)},c.onabort=c.onerror=function(t){i(a||t.target)},o(t,e,r,function(t,e){null===e&&(e=void 0),l.put(e,t).onerror=f})})});return n(a,i),a}function s(t,e,i,s){var a=this,u=new Promise(function(n,s){a.ready().then(function(){return r(a)}).then(function(r){var u=a._dbInfo;u.db.transaction(function(a){var c="INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",l=o(t,e,i,function(t,e){return new Promise(function(n,o){r.serialize(e,function(e,r){r?o(r):a.executeSql(c,[t,e],function(){n()},function(t,e){o(e)})})})});Promise.all(l).then(function(){n(t)},s)},function(t){s(t)})}).catch(s)});return n(u,s),u}function a(t,e,r,i){var s=this,a=o(t,e,r,function(t,e){return s.setItem(t,e)}),u=Promise.all(a);return n(u,i),u}function u(t,e,r,n){var o=this,u=o.driver();return u===o.INDEXEDDB?i.call(o,t,e,r,n):u===o.WEBSQL?s.call(o,t,e,r,n):a.call(o,t,e,r,n)}function c(t){var e=Object.getPrototypeOf(t);e&&(e.setItems=u,e.setItems.indexedDB=function(){return i.apply(this,arguments)},e.setItems.websql=function(){return s.apply(this,arguments)},e.setItems.generic=function(){return a.apply(this,arguments)})}var l=c(e="default"in e?e.default:e);t.setItemsGeneric=a,t.localforageSetItems=u,t.extendPrototype=c,t.extendPrototypeResult=l,Object.defineProperty(t,"__esModule",{value:!0})}(e,jr())}(0,un.exports)),un.exports),fn={exports:{}};var hn=(cn||(cn=1,function(t,e){!function(t,e){function r(t){return r.result?r.result:t&&"function"==typeof t.getSerializer?(r.result=t.getSerializer(),r.result):Promise.reject(new Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function n(t,e){return e&&t.then(function(t){e(null,t)},function(t){e(t)}),t}function o(t,e){var r=this.getItem(t).then(function(e){return{key:t,value:e}});return n(r,e),r}function i(t){var e=this,r=new Promise(function(r,n){for(var i=[],s=0,a=t.length;s<a;s++)i.push(o.call(e,t[s]));Promise.all(i).then(function(t){for(var e={},n=0,o=t.length;n<o;n++){var i=t[n];e[i.key]=i.value}r(e)}).catch(n)});return r}function s(){var t={};return this.iterate(function(e,r){t[r]=e}).then(function(){return t})}function a(){return"undefined"!=typeof IDBKeyRange?IDBKeyRange:"undefined"!=typeof webkitIDBKeyRange?webkitIDBKeyRange:"undefined"!=typeof mozIDBKeyRange?mozIDBKeyRange:void 0}e="default"in e?e.default:e;var u=a();function c(t){t=t.slice();var e=this;function r(t,e){return t<e?-1:t>e?1:0}var n=new Promise(function(n,o){e.ready().then(function(){var i,s=e._dbInfo,a=s.db.transaction(s.storeName,"readonly").objectStore(s.storeName),c=t.sort(r),l=u.bound(t[0],t[t.length-1],!1,!1);if("getAll"in a)(i=a.getAll(l)).onsuccess=function(){var t=i.result;void 0===t&&(t=null),n(t)};else{i=a.openCursor(l);var f={},h=0;i.onsuccess=function(){var t=i.result;if(t){for(var e=t.key;e>c[h];)if(++h===c.length)return void n(f);if(e===c[h]){var r=t.value;void 0===r&&(r=null),f[e]=r,t.continue()}else t.continue(c[h])}else n(f)}}i.onerror=function(){o(i.error)}}).catch(o)});return n}function l(t){var e=this,n=new Promise(function(n,o){e.ready().then(function(){return r(e)}).then(function(r){var i=e._dbInfo;i.db.transaction(function(e){for(var s=new Array(t.length),a=0,u=t.length;a<u;a++)s[a]="?";e.executeSql("SELECT * FROM "+i.storeName+" WHERE (key IN ("+s.join(",")+"))",t,function(t,e){for(var o={},i=e.rows,s=0,a=i.length;s<a;s++){var u=i.item(s),c=u.value;c&&(c=r.deserialize(c)),o[u.key]=c}n(o)},function(t,e){o(e)})})}).catch(o)});return n}function f(t,e){var r,o=this;if(arguments.length&&null!==t){var a=o.driver();r=a===o.INDEXEDDB?c.apply(o,arguments):a===o.WEBSQL?l.apply(o,arguments):i.apply(o,arguments)}else r=s.apply(o);return n(r,e),r}function h(t){var e=Object.getPrototypeOf(t);e&&(e.getItems=f,e.getItems.indexedDB=function(){return c.apply(this,arguments)},e.getItems.websql=function(){return l.apply(this,arguments)},e.getItems.generic=function(){return i.apply(this,arguments)})}var d=h(e);t.localforageGetItems=f,t.extendPrototype=h,t.extendPrototypeResult=d,t.getItemsGeneric=i,Object.defineProperty(t,"__esModule",{value:!0})}(e,jr())}(0,fn.exports)),fn.exports),dn=Object.prototype.hasOwnProperty;function vn(t,e){return null!=t&&dn.call(t,e)}var pn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,yn=/^\w*$/;function gn(t,e){if(et(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!It(t))||(yn.test(t)||!pn.test(t)||null!=e&&t in Object(e))}function bn(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var s=t.apply(this,n);return r.cache=i.set(o,s)||i,s};return r.cache=new(bn.Cache||Ie),r}bn.Cache=Ie;var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_n=/\\(\\)?/g,wn=function(t){var e=bn(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(mn,function(t,r,n,o){e.push(n?o.replace(_n,"$1"):r||t)}),e});function jn(t,e){return et(t)?t:gn(t,e)?[t]:wn(xt(t))}function Sn(t){if("string"==typeof t||It(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function In(t,e,r){for(var n=-1,o=(e=jn(e,t)).length,i=!1;++n<o;){var s=Sn(e[n]);if(!(i=null!=t&&r(t,s)))break;t=t[s]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&rt(o)&&mt(s,o)&&(et(t)||tt(t))}function On(t,e,r){var n=-1,o=(e=jn(e,t)).length;for(o||(o=1,t=void 0);++n<o;){var i=null==t?void 0:t[Sn(e[n])];void 0===i&&(n=o,i=r),t=m(i)?i.call(t):i}return t}function An(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function En(){const t={isResolved:!1,isPending:!0,isRejected:!1,resolve:null,reject:null},e=new Promise((e,r)=>{t.resolve=e,t.reject=r});return Object.assign(e,t),e.then(function(){e.isResolved=!0,e.isPending=!1,e.isRejected=!1},function(){e.isResolved=!1,e.isPending=!1,e.isRejected=!0}),e}function xn(){throw new Error('A "url" property or function must be specified')}function kn(t,e,r){const n=e.error;e.error=function(o){n&&n.call(e.context,t,o,e),t.trigger("error",t,o,e),r&&r.reject&&r.reject(o)}}const Nn={create:"POST",update:"PUT",patch:"PATCH",delete:"DELETE",read:"GET"},Pn=new WeakSet;function Rn(t){const e=t?.constructor;if(!e||Pn.has(e))return;Pn.add(e);const r=e.name;console.warn(`Skeletor: \`browserStorage\` is deprecated and will be removed in a future major version; use \`storage\` instead${r?` (on \`${r}\`)`:""}.`)}function Bn(t){if(!t)return;const e=On(t,"storage");if(null!=e)return e;const r=On(t,"browserStorage");return null!=r&&Rn(t),r}function zn(t){const e=Bn(t)||Bn(t.collection);return e?e.sync():Tn}function Tn(t,e,r={}){let n=r.data;null!=n||!e||"create"!==t&&"update"!==t&&"patch"!==t||(n=r.attrs||e.toJSON());const o={method:Nn[t],body:n?JSON.stringify(n):"",headers:{"Content-Type":"application/json"},success:r.success,error:r.error},i=r.url||On(e,"url")||xn(),s=fetch(i,o);return r&&(r.xhr=s),e.trigger("request",e,s,{...o,xhr:s}),s}const Dn=fe;Sr.defineDriver(ve),ln.extendPrototype(Sr),hn.extendPrototype(Sr);const Cn=new Set,Mn=new WeakSet;class Fn{static register(t){Mn.has(t)||(Mn.add(t),Cn.add(new WeakRef(t)))}static flushAll(){for(const t of Cn){const e=t.deref();e?e.flush():Cn.delete(t)}}constructor(t,e,r=!1){if(this.storeReady=!1,this.name=t,"local"===e&&"undefined"!=typeof window&&!window.localStorage)throw new Error("Skeletor.storage: Environment does not support localStorage.");if("session"===e&&"undefined"!=typeof window&&!window.sessionStorage)throw new Error("Skeletor.storage: Environment does not support sessionStorage.");yr(e)?this.storeInitialized=this.initStore(e,r):(this.store=e,r&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0})),this.storeInitialized=Promise.resolve()),this.storeInitialized.then(()=>this.storeReady=!0).catch(()=>{})}async initStore(t,e){if("session"===t)await Sr.setDriver(sn._driver);else if("local"===t)await Sr.config({driver:Sr.LOCALSTORAGE});else if("in_memory"===t)await Sr.config({driver:Dn});else{if("node"===t){const t=Fn.nodeStorage;if(!t)throw new Error("Skeletor.storage: the 'node' storage type is only available in Node.js builds. Import from '@converse/skeletor/node' instead of '@converse/skeletor'.");return this.store=new t(this.name,Fn.nodeStorageDir??void 0),void(e&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0})))}if("indexed"!==t)throw new Error("Skeletor.storage: No storage type was specified")}this.store=Sr,e&&(this.store.debouncedSetItems=tn(t=>this.store.setItems(t),50,{promise:!0}))}flush(){this.store.debouncedSetItems&&"function"==typeof this.store.debouncedSetItems.flush&&this.store.debouncedSetItems.flush()}async clear(){await this.storeInitialized,await this.store.removeItem(this.name).catch(t=>console.error(t));const t=new RegExp(`^${this.name}-`),e=(await this.store.keys()).filter(e=>t.test(e));await Promise.all(e.map(t=>this.store.removeItem(t).catch(t=>console.error(t))))}sync(){const t=this;async function e(e,r,n){let o,i,s,a;const u=n.collection??r.collection;["patch","update"].includes(e)&&(a=pr(r.attributes,5)),t.storeReady||await t.storeInitialized;try{const i=r.attributes;switch(e){case"read":o=void 0!==r.id?await t.find(r):await t.findAll();break;case"create":o=await t.create(r,n);break;case"patch":case"update":n.wait&&(r.attributes=a),s=t.update(r),n.wait&&(r.attributes=i),o=await s;break;case"delete":o=await t.destroy(r,u)}}catch(e){const r=await t.getStorageSize();i=22===e.code&&0===r?new Error("Private browsing is unsupported"):e instanceof Error?e:new Error(e?.message??String(e))}if(i)n?.error?.(i);else if(n?.success){const t="read"===e?o??null:null;n.success(t,n)}}return e.__name__="localSync",e}removeCollectionReference(t,e){if(!e)return;const r=e.filter(e=>e.id!==t.id).map(t=>this.getItemName(t.id));return this.store.setItem(this.name,r)}addCollectionReference(t,e){if(!e)return;const r=e.map(t=>this.getItemName(t.id)),n=this.getItemName(t.id);return r.includes(n)||r.push(n),this.store.setItem(this.name,r)}getCollectionReferenceData(t){if(!t.collection)return{};const e=t.collection.map(t=>this.getItemName(t.id)),r=this.getItemName(t.id);e.includes(r)||e.push(r);const n={};return n[this.name]=e,n}async save(t){if(this.store.setItems){const e={};return e[this.getItemName(t.id)]=t.toJSON(),Object.assign(e,this.getCollectionReferenceData(t)),this.store.debouncedSetItems?this.store.debouncedSetItems(e):this.store.setItems(e)}{const e=this.getItemName(t.id),r=await this.store.setItem(e,t.toJSON());return await this.addCollectionReference(t,t.collection),r}}create(t,e){return t.id||(t.id=An()+An()+"-"+An()+"-"+An()+"-"+An()+"-"+An()+An()+An(),t.set(t.idAttribute,t.id,e)),this.save(t)}update(t){return this.save(t)}find(t){return this.store.getItem(this.getItemName(t.id))}async findAll(){const t=await this.store.getItem(this.name);if(t?.length){const e=await this.store.getItems(t);return Object.values(e)}return[]}async destroy(t,e){return await this.flush(),await this.store.removeItem(this.getItemName(t.id)),await this.removeCollectionReference(t,e),t}async getStorageSize(){return await this.store.length()}getItemName(t){return this.name+"-"+t}}Fn.nodeStorage=null,Fn.nodeStorageDir=null,Fn.sessionStorageInitialized=Sr.defineDriver(sn),Fn.localForage=Sr;function Ln(t){return pr(t,4)}function Un(t,e,r,n){for(var o=-1,i=null==t?0:t.length;++o<i;){var s=t[o];e(n,s,r(s),t)}return n}function Wn(t,e){return t&&Or(t,e,jt)}var qn,Jn=(qn=Wn,function(t,e){if(null==t)return t;if(!nt(t))return qn(t,e);for(var r=t.length,n=-1,o=Object(t);++n<r&&!1!==e(o[n],n,o););return t});function Kn(t,e,r,n){return Jn(t,function(t,o,i){e(n,t,r(t),i)}),n}function Vn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Ie;++e<r;)this.add(t[e])}function $n(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}function Gn(t,e){return t.has(e)}Vn.prototype.add=Vn.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Vn.prototype.has=function(t){return this.__data__.has(t)};function Qn(t,e,r,n,o,i){var s=1&r,a=t.length,u=e.length;if(a!=u&&!(s&&u>a))return!1;var c=i.get(t),l=i.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=2&r?new Vn:void 0;for(i.set(t,e),i.set(e,t);++f<a;){var v=t[f],p=e[f];if(n)var y=s?n(p,v,f,e,t,i):n(v,p,f,t,e,i);if(void 0!==y){if(y)continue;h=!1;break}if(d){if(!$n(e,function(t,e){if(!Gn(d,e)&&(v===t||o(v,t,r,n,i)))return d.push(e)})){h=!1;break}}else if(v!==p&&!o(v,p,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h}function Hn(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}function Xn(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var Yn=l?l.prototype:void 0,Zn=Yn?Yn.valueOf:void 0;var to=Object.prototype.hasOwnProperty;var eo="[object Arguments]",ro="[object Array]",no="[object Object]",oo=Object.prototype.hasOwnProperty;function io(t,e,r,n,o,i){var s=et(t),a=et(e),u=s?ro:G(t),c=a?ro:G(e),l=(u=u==eo?no:u)==no,f=(c=c==eo?no:c)==no,h=u==c;if(h&&at(t)){if(!at(e))return!1;s=!0,l=!1}if(h&&!l)return i||(i=new Oe),s||pt(t)?Qn(t,e,r,n,o,i):function(t,e,r,n,o,i,s){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new Xe(t),new Xe(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return pe(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var a=Hn;case"[object Set]":var u=1&n;if(a||(a=Xn),t.size!=e.size&&!u)return!1;var c=s.get(t);if(c)return c==e;n|=2,s.set(t,e);var l=Qn(a(t),a(e),n,o,i,s);return s.delete(t),l;case"[object Symbol]":if(Zn)return Zn.call(t)==Zn.call(e)}return!1}(t,e,u,r,n,o,i);if(!(1&r)){var d=l&&oo.call(t,"__wrapped__"),v=f&&oo.call(e,"__wrapped__");if(d||v){var p=d?t.value():t,y=v?e.value():e;return i||(i=new Oe),o(p,y,r,n,i)}}return!!h&&(i||(i=new Oe),function(t,e,r,n,o,i){var s=1&r,a=Ge(t),u=a.length;if(u!=Ge(e).length&&!s)return!1;for(var c=u;c--;){var l=a[c];if(!(s?l in e:to.call(e,l)))return!1}var f=i.get(t),h=i.get(e);if(f&&h)return f==e&&h==t;var d=!0;i.set(t,e),i.set(e,t);for(var v=s;++c<u;){var p=t[l=a[c]],y=e[l];if(n)var g=s?n(y,p,l,e,t,i):n(p,y,l,t,e,i);if(!(void 0===g?p===y||o(p,y,r,n,i):g)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var b=t.constructor,m=e.constructor;b==m||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof m&&m instanceof m||(d=!1)}return i.delete(t),i.delete(e),d}(t,e,r,n,o,i))}function so(t,e,r,n,o){return t===e||(null==t||null==e||!Q(t)&&!Q(e)?t!=t&&e!=e:io(t,e,r,n,so,o))}function ao(t){return t==t&&!b(t)}function uo(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}function co(t){var e=function(t){for(var e=jt(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,ao(o)]}return e}(t);return 1==e.length&&e[0][2]?uo(e[0][0],e[0][1]):function(r){return r===t||function(t,e,r,n){var o=r.length,i=o;if(null==t)return!i;for(t=Object(t);o--;){var s=r[o];if(s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<i;){var a=(s=r[o])[0],u=t[a],c=s[1];if(s[2]){if(void 0===u&&!(a in t))return!1}else if(!so(c,u,3,n,new Oe))return!1}return!0}(r,0,e)}}function lo(t,e){for(var r=0,n=(e=jn(e,t)).length;null!=t&&r<n;)t=t[Sn(e[r++])];return r&&r==n?t:void 0}function fo(t,e){return null!=t&&e in Object(t)}function ho(t,e){return null!=t&&In(t,e,fo)}function vo(t,e){return gn(t)&&ao(e)?uo(Sn(t),e):function(r){var n=function(t,e,r){var n=null==t?void 0:lo(t,e);return void 0===n?r:n}(r,t);return void 0===n&&n===e?ho(r,t):so(e,n,3)}}function po(t){return gn(t)?function(t){return function(e){return null==e?void 0:e[t]}}(Sn(t)):function(t){return function(e){return lo(e,t)}}(t)}function yo(t){return"function"==typeof t?t:null==t?Tr:"object"==typeof t?et(t)?vo(t[0],t[1]):co(t):po(t)}function go(t,e){return function(e,r){return(et(e)?Un:Kn)(e,t,yo(r),{})}}var bo=Object.prototype.hasOwnProperty,mo=go(function(t,e,r){bo.call(t,r)?++t[r]:Ee(t,r,1)}),_o=Object.prototype.hasOwnProperty,wo=go(function(t,e,r){_o.call(t,r)?t[r].push(e):Ee(t,r,[e])}),jo=go(function(t,e,r){Ee(t,r,e)}),So=l?l.isConcatSpreadable:void 0;function Io(t){return et(t)||tt(t)||!!(So&&t&&t[So])}function Oo(t,e,r,n,o){var i=-1,s=t.length;for(r||(r=Io),o||(o=[]);++i<s;){var a=t[i];r(a)?Je(o,a):o[o.length]=a}return o}function Ao(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,i=It(t),s=void 0!==e,a=null===e,u=e==e,c=It(e);if(!a&&!c&&!i&&t>e||i&&s&&u&&!a&&!c||n&&s&&u||!r&&u||!o)return 1;if(!n&&!i&&!c&&t<e||c&&r&&o&&!n&&!i||a&&r&&o||!s&&o||!u)return-1}return 0}function Eo(t,e,r){e=e.length?St(e,function(t){return et(t)?function(e){return lo(e,1===t.length?t[0]:t)}:t}):[Tr];var n=-1;e=St(e,ct(yo));var o=function(t,e){var r=-1,n=nt(t)?Array(t.length):[];return Jn(t,function(t,o,i){n[++r]=e(t,o,i)}),n}(t,function(t,r,o){var i=St(e,function(e){return e(t)});return{criteria:i,index:++n,value:t}});return function(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}(o,function(t,e){return function(t,e,r){for(var n=-1,o=t.criteria,i=e.criteria,s=o.length,a=r.length;++n<s;){var u=Ao(o[n],i[n]);if(u)return n>=a?u:u*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)})}var xo=Kr(function(t,e){if(null==t)return[];var r=e.length;return r>1&&Vr(t,e[0],e[1])?e=[]:r>2&&Vr(e[0],e[1],e[2])&&(e=[e[0]]),Eo(t,Oo(e),[])});const ko=new Map,No=new Set,Po=new Map;let Ro=!1;function Bo(t,e){const r=Promise.resolve(e()).catch(e=>{console.error("Skeletor autoSync save error:",e),t?.trigger?.("error",t,e)});let n;No.add(r),t&&(n=Po.get(t),n||(n=new Set,Po.set(t,n)),n.add(r)),r.finally(()=>{No.delete(r),n&&(n.delete(r),0===n.size&&Po.delete(t))})}function zo(t){if(Ro||"undefined"==typeof window)return;Ro=!0;const e=()=>function({storage:t,wait:e=!1}={}){for(const[t,{timerId:e,run:r}]of ko.entries())clearTimeout(e),Bo(t,r);if(ko.clear(),t&&t.flushAll(),e)return Promise.all([...No]).then(()=>{})}({storage:t});window.addEventListener("pagehide",e),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&e()})}var To=Object.prototype,Do=To.hasOwnProperty,Co=Kr(function(t,e){t=Object(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&Vr(e[0],e[1],o)&&(n=1);++r<n;)for(var i=e[r],s=Be(i),a=-1,u=s.length;++a<u;){var c=s[a],l=t[c];(void 0===l||pe(l,To[c])&&!Do.call(t,c))&&(t[c]=i[c])}return t});var Mo=Kr(function(t,e){return function(t,e,r){if("function"!=typeof t)throw new TypeError("Expected a function");return setTimeout(function(){t.apply(void 0,r)},e)}(t,1,e)});var Fo,Lo,Uo=Object.prototype.toString,Wo=(Fo=function(t,e,r){null!=e&&"function"!=typeof e.toString&&(e=Uo.call(e)),t[e]=r},Lo=Mr(Tr),function(t,e){return function(t,e,r,n){return Wn(t,function(t,o,i){e(n,r(t),o,i)}),n}(t,Fo,Lo(e),{})});function qo(t,e){return so(t,e)}function Jo(t,e){return e.length<2?t:lo(t,function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i}(e,0,-1))}var Ko=Object.prototype.hasOwnProperty;function Vo(t,e){var r=-1,n=(e=jn(e,t)).length;if(!n)return!0;for(;++r<n;){var o=Sn(e[r]);if("__proto__"===o&&!Ko.call(t,"__proto__"))return!1;if(("constructor"===o||"prototype"===o)&&r<n-1)return!1}var i=Jo(t,e);return null==i||delete i[Sn(function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}(e))]}function $o(t){return Pr(t)?void 0:t}function Go(t){return(null==t?0:t.length)?Oo(t):[]}function Qo(t){return Jr(Cr(t,void 0,Go),t+"")}var Ho=Qo(function(t,e){var r={};if(null==t)return r;var n=!1;e=St(e,function(e){return e=jn(e,t),n||(n=e.length>1),e}),Ne(t,Qe(t),r),n&&(r=pr(r,7,$o));for(var o=e.length;o--;)Vo(r,e[o]);return r});function Xo(t,e,r,n){if(!b(t))return t;for(var o=-1,i=(e=jn(e,t)).length,s=i-1,a=t;null!=a&&++o<i;){var u=Sn(e[o]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return t;if(o!=s){var l=a[u];void 0===(c=void 0)&&(c=b(l)?l:mt(e[o+1])?[]:{})}ke(a,u,c),a=a[u]}return t}function Yo(t,e){return function(t,e,r){for(var n=-1,o=e.length,i={};++n<o;){var s=e[n],a=lo(t,s);r(a,s)&&Xo(i,jn(s,t),a)}return i}(t,e,function(e,r){return ho(t,r)})}var Zo,ti,ei,ri,ni,oi,ii,si,ai,ui,ci,li=Qo(function(t,e){return null==t?{}:Yo(t,e)});class fi extends Xt{constructor(t,e){super(),Zo.add(this),ti.set(this,void 0),ei.set(this,void 0),ri.set(this,"constructing"),this._changing=!1,this._pending=!1,this._url="",this.changed={},this.validationError=null;let r=t||{};e=e||{},this.preinitialize.apply(this,arguments),this.cid=Nt(this.cidPrefix),this.attributes={},e.collection&&(this.collection=e.collection),e.parse&&(r=this.parse(r,e)||{});const n=On(this,"defaults");r=Co(Object.assign({},n,r),n),this.set(r,e),Yt(this,Zo,"m",si).call(this),this.attrs=new Proxy(this.attributes,{get:(t,e)=>"symbol"!=typeof e&&Yt(this,ti,"f")&&e in Yt(this,ti,"f")?Yt(this,ti,"f")[e]:this.attributes[e],set:(t,e,r)=>(this.set(e,r),!0)}),this.initialize.apply(this,arguments),this.changed={},this.autoSync?Bn(this)&&!this.isNew()?(Zt(this,ri,"hydrating","f"),this.hydrated=Yt(this,Zo,"m",ni).call(this)):(Zt(this,ri,"ready","f"),this.hydrated=Promise.resolve()):Zt(this,ri,"ready","f")}get storage(){return this._storage}set storage(t){this._storage=t,Fn.register(t)}get browserStorage(){return this._storage}set browserStorage(t){Rn(this),this.storage=t}get autoSync(){return!1}get autoSyncDelay(){return 100}get idAttribute(){return"id"}get cidPrefix(){return"c"}preinitialize(...t){}initialize(t,e){}validate(t,e){return null}defaults(){return{}}get computed(){return{}}toJSON(){return Ln(this.attributes)}sync(t,e,r){return zn(e)(t,e,r)}get(t){return Yt(this,ti,"f")&&t in Yt(this,ti,"f")?Yt(this,ti,"f")[t]:this.attributes[t]}keys(){return Object.keys(this.attributes)}values(){return Object.values(this.attributes)}pairs(){return this.entries()}entries(){return Object.entries(this.attributes)}invert(){return Wo(this.attributes)}pick(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),li(this.attributes,t)}omit(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),Ho(this.attributes,t)}isEmpty(){return gt(this.attributes)}has(t){return null!=this.get(t)}matches(t){return!!function(t){return yo("function"==typeof t?t:pr(t,1))}(t)(this.attributes)}set(t,e,r){if(null==t)return this;let n;if("object"==typeof t?(n=t,r=e):(n={},n[t]=e),r=r||{},this.autoSync&&"hydrating"===Yt(this,ri,"f")&&!r.fromStorage)throw new Error("Skeletor: set() called on an autoSync model before hydration resolved. Await model.hydrated first.");if(!this._validate(n,r))return null;const o=r.unset,i=r.silent,s=[],a=this._changing;this._changing=!0,a||(this._previousAttributes=Ln(this.attributes),this.changed={});const u=this.attributes,c=this.changed,l=this._previousAttributes;for(const t in n)e=n[t],qo(u[t],e)||s.push(t),qo(l[t],e)?delete c[t]:c[t]=e,o?delete u[t]:u[t]=e;if(this.idAttribute in n&&(this.id=this.get(this.idAttribute)),!i){s.length&&(this._pending=r);for(let t=0;t<s.length;t++)this.trigger("change:"+s[t],this,u[s[t]],r)}if(s.length&&Yt(this,ei,"f"))for(const[t,e]of Object.entries(Yt(this,ei,"f")))e.deps.some(t=>s.includes(t))&&Yt(this,Zo,"m",ii).call(this,t,e,i,r);if(a)return this;if(!i)for(;this._pending;)r=this._pending,this._pending=!1,this.trigger("change",this,r);return this._pending=!1,this._changing=!1,"ready"===Yt(this,ri,"f")&&this.autoSync&&Bn(this)&&s.length&&!r.fromStorage&&!r.noAutoSave&&function(t,e,r){const n=ko.get(t);n&&clearTimeout(n.timerId);const o=setTimeout(()=>{ko.delete(t),Bo(t,e)},r);ko.set(t,{timerId:o,run:e})}(this,()=>Yt(this,Zo,"m",oi).call(this),this.autoSyncDelay),this}unset(t,e){return this.set(t,void 0,Object.assign({},e,{unset:!0}))}clear(t){const e={};for(const t in this.attributes)e[t]=void 0;return this.set(e,Object.assign({},t,{unset:!0}))}hasChanged(t){return null==t?!gt(this.changed):(e=this.changed,r=t,null!=e&&In(e,r,vn));var e,r}changedAttributes(t){if(!t)return!!this.hasChanged()&&Ln(this.changed);const e=this._changing?this._previousAttributes:this.attributes,r={};let n=!1;for(const o in t){const i=t[o];qo(e[o],i)||(r[o]=i,n=!0)}return!!n&&r}previous(t){return null!=t&&this._previousAttributes?this._previousAttributes[t]:null}previousAttributes(){return this._previousAttributes?Ln(this._previousAttributes):void 0}fetch(t={}){const e=(t=Object.assign({parse:!0},t)).success,r=t.promise?En():void 0;let n=!1;if(t.success=o=>{n=!0;const i=t.parse?this.parse(o,t):o;if(!this.set(i,Object.assign({},t,{fromStorage:!0})))return!1;e&&e.call(t.context,this,o,t),this.trigger("sync",this,o,t),r&&r.resolve(o)},kn(this,t,r),r){const e=t.error;t.error=t=>{n=!0,e(t)}}const o=this.sync("read",this,t);return r?(Promise.resolve(o).then(e=>{n||t.success(e)},t=>r.reject(t)),r):o}save(t,e,r){let n;null==t||"object"==typeof t?(n=t,r=e):(n={},n[t]=e);const o=(r=Object.assign({validate:!0,parse:!0},r)).wait,i=r.promise,s=i&&En();if(n&&!o){if(!this.set(n,r))return!1}else if(!this._validate(n||{},r))return!1;const a=r.success,u=r.error,c=this.attributes;r.success=t=>{this.attributes=c;let e=r.parse?this.parse(t,r):t;if(o&&(e=Object.assign({},n,e)),e&&!this.set(e,r))return!1;a&&a.call(r.context,this,t,r),this.trigger("sync",this,t,r),i&&s.resolve()},r.error=(t,e,r)=>{u&&u.call(r.context,t,e,r),i&&s.reject(e)},kn(this,r),n&&o&&(this.attributes=Object.assign({},c,n));const l=this.isNew()?"create":r.patch?"patch":"update";"patch"!==l||r.attrs||(r.attrs=n);const f=this.sync(l,this,r);return this.attributes=c,i?s:f}destroy(t){!function(t){const e=ko.get(t);e&&(clearTimeout(e.timerId),ko.delete(t))}(this);const e=(t=t?Ln(t):{}).success,r=t.wait,n=()=>{this.stopListening(),this.trigger("destroy",this,this.collection,t)};t.success=o=>{r&&n(),e&&e.call(t.context,this,o,t),this.isNew()||this.trigger("sync",this,o,t)};const o=function(t){const e=Po.get(t);return e&&0!==e.size?Promise.all([...e]).then(()=>{}):null}(this);o&&this.collection&&(t.collection=this.collection);let i=!1;return this.isNew()?Mo(t.success):(kn(this,t),i=o?o.then(()=>this.sync("delete",this,t)):this.sync("delete",this,t)),r||n(),i}get urlRoot(){return this._urlRoot}set urlRoot(t){this._urlRoot=t}get url(){if(this._url)return this._url;const t=On(this,"urlRoot")||On(this.collection,"url")||xn();if(this.isNew())return t;const e=this.get(this.idAttribute);return t.replace(/[^\/]$/,"$&/")+encodeURIComponent(String(e))}set url(t){this._url=t}parse(t,e){return t}isNew(){return!this.has(this.idAttribute)}isValid(t){return this._validate({},Object.assign({},t,{validate:!0}))}subscribe(t,e,r){if("function"==typeof t){const e=e=>t(e,this.changed);return this.on("change",e),()=>this.off("change",e)}return super.subscribe(t,e,r)}_validate(t,e){if(!e?.validate||!this.validate)return!0;t=Object.assign({},this.attributes,t);const r=this.validationError=this.validate(t,e)||null;return!r||(this.trigger("invalid",this,r,Object.assign(e,{validationError:r})),!1)}}ti=new WeakMap,ei=new WeakMap,ri=new WeakMap,Zo=new WeakSet,ni=async function(){zo(Fn);try{await this.fetch({fromStorage:!0,promise:!0})}finally{Zt(this,ri,"ready","f")}},oi=function(){return this.save(null,{noAutoSave:!0})},ii=function(t,e,r,n){const o=e.fn(this);qo(Yt(this,ti,"f")[t],o)||(Yt(this,ti,"f")[t]=o,r||(this.changed[t]=o,this.trigger("change:"+t,this,o,n)))},si=function(){const t=On(this,"computed");if(t&&!gt(t)){Zt(this,ei,t,"f"),Zt(this,ti,{},"f");for(const[e,r]of Object.entries(t))Yt(this,ti,"f")[e]=r.fn(this)}};const hi={add:!0,remove:!0,merge:!0},di={add:!0,remove:!1};class vi extends Xt{constructor(t,e){super(),ai.add(this),this._url="",this[ci]=this.values,e=e||{},this.preinitialize.apply(this,arguments),e.model&&(this._model=e.model),void 0!==e.comparator&&(this.comparator=e.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,Object.assign({silent:!0},e)),this[Symbol.iterator]=this.values,this.autoSync&&(this.hydrated=Bn(this)?Yt(this,ai,"m",ui).call(this):Promise.resolve())}get comparator(){return this._comparator}set comparator(t){this._comparator=t}get storage(){return this._storage}set storage(t){this._storage=t,Fn.register(t)}get browserStorage(){return this._storage}set browserStorage(t){Rn(this),this.storage=t}get autoSync(){return!1}get model(){return this._model??fi}set model(t){this._model=t}get length(){return this.models.length}get url(){return this._url}set url(t){this._url=t}preinitialize(...t){}initialize(...t){}toJSON(){return this.map(function(t){return t.toJSON()})}sync(t,e,r){return zn(this)(t,e,r)}add(t,e){return this.set(t,Object.assign({merge:!1},e,di))}remove(t,e){e=Object.assign({},e);const r=!Array.isArray(t),n=r?[t]:t.slice(),o=this._removeModels(n,e);return!e.silent&&o.length&&(e.changes={added:[],merged:[],removed:o},this.trigger("update",this,e)),r?o[0]:o}set(t,e){if(null==t)return;(e=Object.assign({},hi,e)).parse&&!this._isModel(t)&&(t=this.parse(t,e)||[]);const r=!Array.isArray(t);t=r?[t]:t.slice();let n=e.at;null!=n&&(n=+n),n>this.length&&(n=this.length),n<0&&(n+=this.length+1);const o=[],i=[],s=[],a=[],u={},c=e.add,l=e.merge,f=e.remove;let h=!1;const d=this.comparator&&null==n&&!1!==e.sort,v=yr(this.comparator)?this.comparator:null;let p,y;for(y=0;y<t.length;y++){p=t[y];const r=this.get(p);if(r){if(l&&p!==r){let t=this._isModel(p)?p.attributes:p;e.parse&&(t=r.parse(t,e)),r.set(t,e),s.push(r),d&&!h&&(h=r.hasChanged(v))}u[r.cid]||(u[r.cid]=!0,o.push(r)),t[y]=r}else c&&(p=t[y]=this._prepareModel(p,e),p&&(i.push(p),this._addReference(p,e),u[p.cid]=!0,o.push(p)))}if(f){for(y=0;y<this.length;y++)p=this.models[y],u[p.cid]||a.push(p);a.length&&this._removeModels(a,e)}let g=!1;const b=!d&&c&&f;if(o.length&&b)g=this.length!==o.length||this.models.some((t,e)=>t!==o[e]),this.models.length=0,this.models.splice(0,0,...o);else if(i.length){d&&(h=!0);let t=n??this.length;t=Math.min(Math.max(t,0),this.models.length),this.models.splice(t,0,...i)}if(h&&this.sort({silent:!0}),!e.silent){for(y=0;y<i.length;y++)null!=n&&(e.index=n+y),p=i[y],p.trigger("add",p,this,e);(h||g)&&this.trigger("sort",this,e),(i.length||a.length||s.length)&&(e.changes={added:i,removed:a,merged:s},this.trigger("update",this,e))}return r?t[0]:t}async clearStore(t={},e=()=>!0){await Promise.all(this.models.filter(e).map(e=>new Promise(r=>{e.destroy(Object.assign(t,{success:r,error:(t,e)=>{console.error(e),r()}}))}))),await(Bn(this)?.clear()),this.reset()}reset(t,e){e=e?Ln(e):{};for(let t=0;t<this.models.length;t++)this._removeReference(this.models[t],e);return e.previousModels=this.models,this._reset(),t=this.add(t,Object.assign({silent:!0},e)),e.silent||this.trigger("reset",this,e),t}push(t,e){return this.add(t,Object.assign({at:this.length},e))}pop(t){const e=this.at(this.length-1);return this.remove(e,t)}unshift(t,e){return this.add(t,Object.assign({at:0},e))}shift(t){const e=this.at(0);return this.remove(e,t)}slice(t,e){return this.models.slice(t,e)}filter(t,e){return this.models.filter(m(t)?t:e=>e.matches(t),e)}every(t){return m(t)?this.models.map(t=>t.attributes).every(t):this.models.every(e=>e.matches(t))}difference(t){return this.models.filter(e=>!t.includes(e))}max(){return Math.max.apply(Math,this.models)}min(){return Math.min.apply(Math,this.models)}drop(t=1){return this.models.slice(t)}some(t){return m(t)?this.models.map(t=>t.attributes).some(t):this.models.some(e=>e.matches(t))}sortBy(t){return xo(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}isEmpty(){return!this.models.length}keyBy(t){return jo(this.models,t)}each(t,e){return this.forEach(t,e)}forEach(t,e){return this.models.forEach(t,e)}includes(t){return this.models.includes(t)}size(){return this.models.length}countBy(t){return mo(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}groupBy(t){return wo(this.models,m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}indexOf(t,e){return this.models.indexOf(t,e)}findLastIndex(t,e){return this.models.findLastIndex(m(t)?t:e=>yr(t)?e.get(t):e.matches(t),e)}lastIndexOf(t,e){return this.models.lastIndexOf(t,e)}findIndex(t){return this.models.findIndex(m(t)?t:e=>yr(t)?e.get(t):e.matches(t))}last(){const t=null==this.models?0:this.models.length;return t?this.models[t-1]:void 0}head(){return this.models[0]}first(){return this.head()}map(t,e){return this.models.map(m(t)?t:e=>yr(t)?e.get(t):e.matches(t),e)}reduce(t,e){return this.models.reduce(t,e||this.models[0])}reduceRight(t,e){return this.models.reduceRight(t,e||this.models[0])}toArray(){return Array.from(this.models)}get(t){if(null!=t)return this._byId[t]||this._byId[this.modelId(this._isModel(t)?t.attributes:t)]||t.cid&&this._byId[t.cid]}has(t){return null!=this.get(t)}at(t){return t<0&&(t+=this.length),this.models[t]}where(t,e){return this[e?"find":"filter"](t)}findWhere(t){return this.where(t,!0)}find(t,e){const r=m(t)?t:e=>e.matches(t);return this.models.find(r,e)}sort(t){let e=this.comparator;if(!e)throw new Error("Cannot sort a set without a comparator");t=t||{};const r=m(e)?e.length:0;return m(e)&&(e=e.bind(this)),1===r||yr(e)?this.models=this.sortBy(e):this.models.sort(e),t.silent||this.trigger("sort",this,t),this}pluck(t){return this.map(t+"")}fetch(t){const e=(t=Object.assign({parse:!0},t)).success,r=this,n=t.promise?En():void 0;let o=!1;if(t.success=function(i){o=!0;const s=t.reset?"reset":"set";r[s](i,Object.assign({},t,{fromStorage:!0})),e&&e.call(t.context,r,i,t),n&&n.resolve(),r.trigger("sync",r,i,t)},kn(this,t,n),n){const e=t.error;t.error=t=>{o=!0,e(t)}}const i=this.sync("read",this,t);return n?(Promise.resolve(i).then(e=>{o||t.success(e)},t=>n.reject(t)),n):i}create(t,e){const r=(e=e?Ln(e):{}).wait,n=e.promise,o=n&&En(),i=this._prepareModel(t,e);if(!i)return null;r||this.add(i,e);const s=this,a=e.success,u=e.error;return e.success=function(t,e,i){r&&s.add(t,i),a&&a.call(i.context,t,e,i),n&&o.resolve(t)},e.error=function(t,e,r){u&&u.call(r.context,t,e,r),n&&o.reject(e)},i.save(null,Object.assign(e,{promise:!1})),n?o:i}subscribe(t,e,r){if("function"==typeof t){const e=()=>t(this);return this.on("update reset sort",e),()=>this.off("update reset sort",e)}return super.subscribe(t,e,r)}parse(t,e){return t}modelId(t){return t[this.model.prototype?.idAttribute||"id"]}values(){return new bi(this,pi)}keys(){return new bi(this,yi)}entries(){return new bi(this,gi)}_reset(){this.models=[],this._byId={}}createModel(t,e){return new(0,this.model)(t,e)}_prepareModel(t,e){if(this._isModel(t))return t.collection||(t.collection=this),t;(e=e?Ln(e):{}).collection=this;const r=this.createModel(t,e);return r.validationError?(this.trigger("invalid",this,r.validationError,e),null):r}_removeModels(t,e){const r=[];for(let n=0;n<t.length;n++){const o=this.get(t[n]);if(!o)continue;const i=this.indexOf(o);this.models.splice(i,1),delete this._byId[o.cid];const s=this.modelId(o.attributes);null!=s&&delete this._byId[s],e?.silent||((e=e||{}).index=i,o.trigger("remove",o,this,e)),r.push(o),this._removeReference(o,e)}return r}_isModel(t){return t instanceof fi}_addReference(t,e){this._byId[t.cid]=t;const r=this.modelId(t.attributes);null!=r&&(this._byId[r]=t),t.on("all",this._onModelEvent,this)}_removeReference(t,e){delete this._byId[t.cid];const r=this.modelId(t.attributes);null!=r&&delete this._byId[r],this===t.collection&&delete t.collection,t.off("all",this._onModelEvent,this)}_onModelEvent(t,e,r,n){if(e){if(("add"===t||"remove"===t)&&r!==this)return;if("destroy"===t&&this.remove(e,n),"change"===t){const t=this.modelId(e.previousAttributes()),r=this.modelId(e.attributes);t!==r&&(null!=t&&delete this._byId[t],null!=r&&(this._byId[r]=e))}}this.trigger.apply(this,arguments)}}ai=new WeakSet,ui=async function(){zo(Fn),await this.fetch({fromStorage:!0,promise:!0})},ci=Symbol.iterator;const pi=1,yi=2,gi=3;class bi{constructor(t,e){this._collection=t,this._kind=e,this._index=0}next(){if(this._collection){if(this._index<this._collection.length){const t=this._collection.at(this._index);if(this._index++,!t)return{value:void 0,done:!0};let e;if(this._kind===pi)e=t;else{const r=this._collection.modelId(t.attributes);e=this._kind===yi?r:[r,t]}return{value:e,done:!1}}this._collection=void 0}return{value:void 0,done:!0}}[Symbol.iterator](){return this}}const mi={Collection:vi,EventEmitter:Ht,Model:fi,sync:Tn},_i="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global;mi.VERSION="0.0.1";const wi=_i.Skeletor;function ji(){return _i.Skeletor=wi,this}mi.noConflict=ji,_i.Skeletor=mi;const Si=Fn;t.BrowserStorage=Si,t.Collection=vi,t.EventEmitter=Ht,t.Model=fi,t.PersistentStorage=Fn,t.default=mi,t.getStorage=Bn,t.noConflict=ji,t.sync=Tn,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
61
61
|
//# sourceMappingURL=skeletor.min.js.map
|