!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.Dexie=t()}(this,function(){"use strict";function n(n,t){return"object"!=typeof t?n:(In(t).forEach(function(e){n[e]=t[e]}),n)}function t(n,t){return Bn.call(n,t)}function e(n,t){"function"==typeof t&&(t=t(Tn(n))),In(t).forEach(function(e){r(n,e,t[e])})}function r(e,r,i,o){Fn(e,r,n(i&&t(i,"get")&&"function"==typeof i.get?{get:i.get,set:i.set,configurable:!0}:{value:i,configurable:!0,writable:!0},o))}function i(n){return{from:function(t){return n.prototype=Object.create(t.prototype),r(n.prototype,"constructor",n),{extend:e.bind(null,n.prototype)}}}}function o(n,t){var e,r=Nn(n,t);return r||(e=Tn(n))&&o(e,t)}function u(n,t,e){return Mn.call(n,t,e)}function a(n,t){return t(n)}function c(n){if(!n)throw new Error("Assertion Failed")}function s(n){Kn.setImmediate?setImmediate(n):setTimeout(n,0)}function f(n,t){return n.reduce(function(n,e,r){var i=t(e,r);return i&&(n[i[0]]=i[1]),n},{})}function l(n,t){return function(){try{n.apply(this,arguments)}catch(n){t(n)}}}function h(n,t,e){try{n.apply(null,e)}catch(n){t&&t(n)}}function d(n,e){if(t(n,e))return n[e];if(!e)return n;if("string"!=typeof e){for(var r=[],i=0,o=e.length;i=0)e=n;else{e=n.constructor?Object.create(n.constructor.prototype):{};for(var o in n)t(n,o)&&(e[o]=g(n[o]))}return e}function b(n,e,r,i){return r=r||{},i=i||"",In(n).forEach(function(o){if(t(e,o)){var u=n[o],a=e[o];"object"==typeof u&&"object"==typeof a&&u&&a&&""+u.constructor==""+a.constructor?b(u,a,r,i+o+"."):u!==a&&(r[i+o]=e[o])}else r[i+o]=void 0}),In(e).forEach(function(o){t(n,o)||(r[i+o]=e[o])}),r}function w(n){var t,e,r,i;if(1===arguments.length){if(Cn(n))return n.slice();if(this===zn&&"string"==typeof n)return[n];if(i=Vn(n)){for(e=[];r=i.next(),!r.done;)e.push(r.value);return e}if(null==n)return[n];if("number"==typeof(t=n.length)){for(e=new Array(t);t--;)e[t]=n[t];return e}return[n]}for(t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return e}function _(n,t){Ln=n,Wn=t}function k(){if(Qn)try{throw k.arguments,new Error}catch(n){return n}return new Error}function x(n,t){var e=n.stack;return e?(t=t||0,0===e.indexOf(n.name)&&(t+=(n.name+n.message).split("\n").length),e.split("\n").slice(t).filter(Wn).map(function(n){return"\n"+n}).join("")):""}function j(n,t){return function(){return console.warn(n+" is deprecated. See https://github.com/dfahlander/Dexie.js/wiki/Deprecations. "+x(k(),1)),t.apply(this,arguments)}}function P(n,t){this._e=k(),this.name=n,this.message=t}function E(n,t){return n+". Errors: "+t.map(function(n){return n.toString()}).filter(function(n,t,e){return e.indexOf(n)===t}).join("\n")}function A(n,t,e,r){this._e=k(),this.failures=t,this.failedKeys=r,this.successCount=e}function O(n,t){this._e=k(),this.name="BulkError",this.failures=t,this.message=E(n,t)}function S(n,t){if(!n||n instanceof P||n instanceof TypeError||n instanceof SyntaxError||!n.name||!nt[n.name])return n;var e=new nt[n.name](t||n.message,n);return"stack"in n&&r(e,"stack",{get:function(){return this.inner.stack}}),e}function D(){}function I(n){return n}function C(n,t){return null==n||n===I?t:function(e){return t(n(e))}}function K(n,t){return function(){n.apply(this,arguments),t.apply(this,arguments)}}function T(n,t){return n===D?t:function(){var e=n.apply(this,arguments);void 0!==e&&(arguments[0]=e);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var o=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?K(r,this.onsuccess):r),i&&(this.onerror=this.onerror?K(i,this.onerror):i),void 0!==o?o:e}}function B(n,t){return n===D?t:function(){n.apply(this,arguments);var e=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?K(e,this.onsuccess):e),r&&(this.onerror=this.onerror?K(r,this.onerror):r)}}function F(t,e){return t===D?e:function(r){var i=t.apply(this,arguments);n(r,i);var o=this.onsuccess,u=this.onerror;this.onsuccess=null,this.onerror=null;var a=e.apply(this,arguments);return o&&(this.onsuccess=this.onsuccess?K(o,this.onsuccess):o),u&&(this.onerror=this.onerror?K(u,this.onerror):u),void 0===i?void 0===a?void 0:a:n(i,a)}}function N(n,t){return n===D?t:function(){return!1!==t.apply(this,arguments)&&n.apply(this,arguments)}}function M(n,t){return n===D?t:function(){var e=n.apply(this,arguments);if(e&&"function"==typeof e.then){for(var r=this,i=arguments.length,o=new Array(i);i--;)o[i]=arguments[i];return e.then(function(){return t.apply(r,o)})}return t.apply(this,arguments)}}function q(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=D,this._lib=!1;var t=this._PSD=xt;if(Ln&&(this._stackHolder=k(),this._prev=null,this._numPrev=0),"function"!=typeof n){if(n!==et)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(!1===this._state&&V(this,this._value))}this._state=null,this._value=null,++t.ref,U(this,n)}function R(n,t,e,r,i){this.onFulfilled="function"==typeof n?n:null,this.onRejected="function"==typeof t?t:null,this.resolve=e,this.reject=r,this.psd=i}function U(n,t){try{t(function(t){if(null===n._state){if(t===n)throw new TypeError("A promise cannot be resolved with itself.");var e=n._lib&&J();t&&"function"==typeof t.then?U(n,function(n,e){t instanceof q?t._then(n,e):t.then(n,e)}):(n._state=!0,n._value=t,z(n)),e&&Y()}},V.bind(null,n))}catch(t){V(n,t)}}function V(n,t){if(bt.push(t),null===n._state){var e=n._lib&&J();t=_t(t),n._state=!1,n._value=t,Ln&&null!==t&&"object"==typeof t&&!t._promise&&h(function(){var e=o(t,"stack");t._promise=n,r(t,"stack",{get:function(){return dt?e&&(e.get?e.get.apply(t):e.value):n.stack}})}),Z(n),z(n),e&&Y()}}function z(n){var t=n._listeners;n._listeners=[];for(var e=0,r=t.length;e0;)for(n=jt,jt=[],e=n.length,t=0;t0);yt=!0,mt=!0}function $(){var n=gt;gt=[],n.forEach(function(n){n._PSD.onunhandled.call(null,n._value,n)});for(var t=Et.slice(0),e=t.length;e;)t[--e]()}function X(n){function t(){n(),Et.splice(Et.indexOf(t),1)}Et.push(t),++Pt,pt(function(){0==--Pt&&$()},[])}function Z(n){gt.some(function(t){return t._value===n._value})||gt.push(n)}function nn(n){for(var t=gt.length;t;)if(gt[--t]._value===n._value)return void gt.splice(t,1)}function tn(n){return new q(et,!1,n)}function en(n,t){var e=xt;return function(){var r=J(),i=xt;try{return fn(e,!0),n.apply(this,arguments)}catch(n){t&&t(n)}finally{fn(i,!1),r&&Y()}}}function rn(t,e,r,i){var o=xt,u=Object.create(o);u.parent=o,u.ref=0,u.global=!1,u.id=++Tt;var a=kt.env;u.env=ht?{Promise:q,PromiseProp:{value:q,configurable:!0,writable:!0},all:q.all,race:q.race,resolve:q.resolve,reject:q.reject,nthen:pn(a.nthen,u),gthen:pn(a.gthen,u)}:{},e&&n(u,e),++o.ref,u.finalize=function(){--this.parent.ref||this.parent.finalize()};var c=hn(u,t,r,i);return 0===u.ref&&u.finalize(),c}function on(){return St.id||(St.id=++Dt),++St.awaits,St.echoes+=it,St.id}function un(n){!St.awaits||n&&n!==St.id||(0==--St.awaits&&(St.id=0),St.echoes=St.awaits*it)}function an(n){return St.echoes&&n&&n.constructor===ft?(on(),n.then(function(n){return un(),n},function(n){return un(),Ft(n)})):n}function cn(n){++Kt,St.echoes&&0!=--St.echoes||(St.echoes=St.id=0),It.push(xt),fn(n,!0)}function sn(){var n=It[It.length-1];It.pop(),fn(n,!1)}function fn(n,t){var e=xt;if((t?!St.echoes||Ct++&&n===xt:!Ct||--Ct&&n===xt)||dn(t?cn.bind(null,n):sn),n!==xt&&(xt=n,e===kt&&(kt.env=ln()),ht)){var r=kt.env.Promise,i=n.env;at.then=i.nthen,r.prototype.then=i.gthen,(e.global||n.global)&&(Object.defineProperty(Kn,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject)}}function ln(){var n=Kn.Promise;return ht?{Promise:n,PromiseProp:Object.getOwnPropertyDescriptor(Kn,"Promise"),all:n.all,race:n.race,resolve:n.resolve,reject:n.reject,nthen:at.then,gthen:n.prototype.then}:{}}function hn(n,t,e,r,i){var o=xt;try{return fn(n,!0),t(e,r,i)}finally{fn(o,!1)}}function dn(n){st.call(ut,n)}function vn(n,t,e){return"function"!=typeof n?n:function(){var r=xt;e&&on(),fn(t,!0);try{return n.apply(this,arguments)}finally{fn(r,!1)}}}function pn(n,t){return function(e,r){return n.call(this,vn(e,t,!1),vn(r,t,!1))}}function yn(t,e){var r;try{r=e.onuncatched(t)}catch(n){}if(!1!==r)try{var i,o={promise:e,reason:t};if(Kn.document&&document.createEvent?(i=document.createEvent("Event"),i.initEvent(Bt,!0,!0),n(i,o)):Kn.CustomEvent&&(i=new CustomEvent(Bt,{detail:o}),n(i,o)),i&&Kn.dispatchEvent&&(dispatchEvent(i),!Kn.PromiseRejectionEvent&&Kn.onunhandledrejection))try{Kn.onunhandledrejection(i)}catch(n){}i.defaultPrevented||console.warn("Unhandled rejection: "+(t.stack||t))}catch(n){}}function mn(n){function t(n,t,o){if("object"==typeof n)return e(n);t||(t=N),o||(o=D);var u={subscribers:[],fire:o,subscribe:function(n){-1===u.subscribers.indexOf(n)&&(u.subscribers.push(n),u.fire=t(u.fire,n))},unsubscribe:function(n){u.subscribers=u.subscribers.filter(function(t){return t!==n}),u.fire=u.subscribers.reduce(t,o)}};return r[n]=i[n]=u,u}function e(n){In(n).forEach(function(e){var r=n[e];if(Cn(r))t(e,n[e][0],n[e][1]);else{if("asap"!==r)throw new Zn.InvalidArgument("Invalid event config");var i=t(e,I,function(){for(var n=arguments.length,t=new Array(n);n--;)t[n]=arguments[n];i.subscribers.forEach(function(n){s(function(){n.apply(null,t)})})})}})}var r={},i=function(t,e){if(e){for(var i=arguments.length,o=new Array(i-1);--i;)o[i-1]=arguments[i];return r[t].subscribe.apply(null,o),n}if("string"==typeof t)return r[t]};i.addEventType=t;for(var o=1,u=arguments.length;on}).forEach(function(n){i.push(function(){var r=Un,i=n._cfg.dbschema;vn(r,e),vn(i,e),Un=nt._dbSchema=i;var o=x(r,i);if(o.add.forEach(function(n){P(e,n[0],n[1].primKey,n[1].indexes)}),o.change.forEach(function(n){if(n.recreate)throw new Zn.Upgrade("Not yet support for changing primary key");var t=e.objectStore(n.name);n.add.forEach(function(n){K(t,n)}),n.change.forEach(function(n){t.deleteIndex(n.name),K(t,n)}),n.del.forEach(function(n){t.deleteIndex(n)})}),n._cfg.contentUpgrade)return u=!0,q.follow(function(){n._cfg.contentUpgrade(t)})}),i.push(function(t){u&&Wt||S(n._cfg.dbschema,t)})}),r().then(function(){E(Un,e)})}function x(n,t){var e={del:[],add:[],change:[]};for(var r in n)t[r]||e.del.push(r);for(r in t){var i=n[r],o=t[r];if(i){var u={name:r,def:o,recreate:!1,del:[],add:[],change:[]};if(i.primKey.src!==o.primKey.src)u.recreate=!0,e.change.push(u);else{var a=i.idxByName,c=o.idxByName;for(var s in a)c[s]||u.del.push(s);for(s in c){var f=a[s],l=c[s];f?f.src!==l.src&&u.change.push(l):u.add.push(l)}(u.del.length>0||u.add.length>0||u.change.length>0)&&e.change.push(u)}}else e.add.push([r,o])}return e}function P(n,t,e,r){var i=n.db.createObjectStore(t,e.keyPath?{keyPath:e.keyPath,autoIncrement:e.auto}:{autoIncrement:e.auto});return r.forEach(function(n){K(i,n)}),i}function E(n,t){In(n).forEach(function(e){t.db.objectStoreNames.contains(e)||P(t,e,n[e].primKey,n[e].indexes)})}function S(n,t){for(var e=0;e0?n:t}function an(n,t){return qn.cmp(n,t)}function cn(n,t){return qn.cmp(t,n)}function sn(n,t){return nt?-1:n===t?0:1}function ln(n,t){return n?t?function(){return n.apply(this,arguments)&&t.apply(this,arguments)}:n:t}function dn(){if(nt.verno=Hn.version/10,nt._dbSchema=Un={},Wn=u(Hn.objectStoreNames,0),0!==Wn.length){var n=Hn.transaction(Sn(Wn),"readonly");Wn.forEach(function(t){for(var e=n.objectStore(t),r=e.keyPath,i=r&&"string"==typeof r&&-1!==r.indexOf("."),o=new An(r,r||"",!1,!1,!!e.autoIncrement,r&&"string"!=typeof r,i),u=[],a=0;aMath.pow(2,62)?0:n.oldVersion)/10,t,e)}},e),r.onsuccess=en(function(){if(t=null,Hn=r.result,zt.push(nt),rt)dn();else if(Hn.objectStoreNames.length>0)try{vn(Un,Hn.transaction(Sn(Hn.objectStoreNames),"readonly"))}catch(n){}Hn.onversionchange=en(function(n){nt._vcFired=!0,nt.on("versionchange").fire(n)}),it||"__dbnames"===i||Ot.dbnames.put({name:i}).catch(D),n()},e)})]).then(function(){return Yn=[],q.resolve(gn.vip(nt.on.ready.fire)).then(function n(){if(Yn.length>0){var t=Yn.reduce(M,D);return Yn=[],q.resolve(gn.vip(t)).then(n)}})}).finally(function(){Yn=null}).then(function(){return Jn=!1,nt}).catch(function(n){try{t&&t.abort()}catch(n){}return Jn=!1,nt.close(),Gn=n,Ft(Gn)}).finally(function(){$n=!0,n()})},this.close=function(){var n=zt.indexOf(nt);if(n>=0&&zt.splice(n,1),Hn){try{Hn.close()}catch(n){}Hn=null}Mn=!1,Gn=new Zn.DatabaseClosed,Jn&&bn(Gn),tt=new q(function(n){yn=n}),et=new q(function(n,t){bn=t})},this.delete=function(){var n=arguments.length>0;return new q(function(t,e){function r(){nt.close();var n=qn.deleteDatabase(i);n.onsuccess=en(function(){it||Ot.dbnames.delete(i).catch(D),t()}),n.onerror=kn(e),n.onblocked=pn}if(n)throw new Zn.InvalidArgument("Arguments not allowed in db.delete()");Jn?tt.then(r):r()})},this.backendDB=function(){return Hn},this.isOpen=function(){return null!==Hn},this.hasBeenClosed=function(){return Gn&&Gn instanceof Zn.DatabaseClosed},this.hasFailed=function(){return null!==Gn},this.dynamicallyOpened=function(){return rt},this.name=i,e(this,{tables:{get:function(){return In(Qn).map(function(n){return Qn[n]})}}}),this.on=mn(this,"populate","blocked","versionchange",{ready:[M,D]}),this.on.ready.subscribe=a(this.on.ready.subscribe,function(n){return function(t,e){gn.vip(function(){$n?(Gn||q.resolve().then(t),e&&n(t)):Yn?(Yn.push(t),e&&n(t)):(n(t),e||n(function n(){nt.on.ready.unsubscribe(t),nt.on.ready.unsubscribe(n)}))})}}),this.transaction=function(){var n=R.apply(this,arguments);return this._transaction.apply(this,n)},this._transaction=function(n,t,e){function r(){return q.resolve().then(function(){var t=xt.transless||xt,r=nt._createTransaction(n,u,Un,i),o={trans:r,transless:t};i?r.idbtrans=i.idbtrans:r.create(),e.constructor===lt&&on();var a,c=q.follow(function(){if(a=e.call(r,r))if(a.constructor===ft){var n=un.bind(null,null);a.then(n,n)}else"function"==typeof a.next&&"function"==typeof a.throw&&(a=En(a))},o);return(a&&"function"==typeof a.then?q.resolve(a).then(function(n){return r.active?n:Ft(new Zn.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):c.then(function(){return a})).then(function(n){return i&&r._resolve(),r._completion.then(function(){return n})}).catch(function(n){return r._reject(n),Ft(n)})})}var i=xt.trans;i&&i.db===nt&&-1===n.indexOf("!")||(i=null);var o=-1!==n.indexOf("?");n=n.replace("!","").replace("?","");try{var u=t.map(function(n){var t=n instanceof U?n.name:n;if("string"!=typeof t)throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return t});if("r"==n||"readonly"==n)n="readonly";else{if("rw"!=n&&n!=Xn)throw new Zn.InvalidArgument("Invalid transaction mode: "+n);n=Xn}if(i){if("readonly"===i.mode&&n===Xn){if(!o)throw new Zn.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");i=null}i&&u.forEach(function(n){if(i&&-1===i.storeNames.indexOf(n)){if(!o)throw new Zn.SubTransaction("Table "+n+" not included in parent transaction.");i=null}}),o&&i&&!i.active&&(i=null)}}catch(n){return i?i._promise(null,function(t,e){e(n)}):Ft(n)}return i?i._promise(n,r,"lock"):xt.trans?hn(xt.transless,function(){return nt._whenReady(r)}):nt._whenReady(r)},this.table=function(n){if(!t(Qn,n))throw new Zn.InvalidTable("Table "+n+" does not exist");return Qn[n]},e(U.prototype,{_trans:function(n,t,e){var r=this._tx||xt.trans;return r&&r.db===nt?r===xt.trans?r._promise(n,t,e):rn(function(){return r._promise(n,t,e)},{trans:r,transless:xt.transless||xt}):N(n,[this.name],t)},_idbstore:function(n,t,e){function r(n,e,r){if(-1===r.storeNames.indexOf(i))throw new Zn.NotFound("Table"+i+" not part of transaction");return t(n,e,r.idbtrans.objectStore(i),r)}var i=this.name;return this._trans(n,r,e)},get:function(n,t){if(n&&n.constructor===Object)return this.where(n).first(t);var e=this;return this._idbstore("readonly",function(t,r,i){var o=i.get(n);o.onerror=kn(r),o.onsuccess=en(function(){t(e.hook.reading.fire(o.result))},r)}).then(t)},where:function(n){if("string"==typeof n)return new W(this,n);if(Cn(n))return new W(this,"["+n.join("+")+"]");var t=In(n);if(1===t.length)return this.where(t[0]).equals(n[t[0]]);var e=this.schema.indexes.concat(this.schema.primKey).filter(function(n){return n.compound&&t.every(function(t){return n.keyPath.indexOf(t)>=0})&&n.keyPath.every(function(n){return t.indexOf(n)>=0})})[0];if(e&&qt!==Mt)return this.where(e.name).equals(e.keyPath.map(function(t){return n[t]}));e||console.warn("The query "+JSON.stringify(n)+" on "+this.name+" would benefit of a compound index ["+t.join("+")+"]");var r=this.schema.idxByName,i=t.reduce(function(t,e){return[t[0]||r[e],t[0]||!r[e]?ln(t[1],function(t){return""+d(t,e)==""+n[e]}):t[1]]},[null,null]),o=i[0];return o?this.where(o.name).equals(n[o.keyPath]).filter(i[1]):e?this.filter(i[1]):this.where(t).equals("")},count:function(n){return this.toCollection().count(n)},offset:function(n){return this.toCollection().offset(n)},limit:function(n){return this.toCollection().limit(n)},reverse:function(){return this.toCollection().reverse()},filter:function(n){return this.toCollection().and(n)},each:function(n){return this.toCollection().each(n)},toArray:function(n){return this.toCollection().toArray(n)},orderBy:function(n){return new Q(new W(this,Cn(n)?"["+n.join("+")+"]":n))},toCollection:function(){return new Q(new W(this))},mapToClass:function(n,e){this.schema.mappedClass=n;var r=Object.create(n.prototype);e&&wn(r,e),this.schema.instanceTemplate=r;var i=function(e){if(!e)return e;var r=Object.create(n.prototype);for(var i in e)if(t(e,i))try{r[i]=e[i]}catch(n){}return r};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=i,this.hook("reading",i),n},defineClass:function(n){return this.mapToClass(gn.defineClass(n),n)},bulkDelete:function(n){return this.hook.deleting.fire===D?this._idbstore(Xn,function(t,e,r,i){t(z(r,i,n,!1,D))}):this.where(":id").anyOf(n).delete().then(function(){})},bulkPut:function(n,t){var e=this;return this._idbstore(Xn,function(r,i,o){if(!o.keyPath&&!e.schema.primKey.auto&&!t)throw new Zn.InvalidArgument("bulkPut() with non-inbound keys requires keys array in second argument");if(o.keyPath&&t)throw new Zn.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(t&&t.length!==n.length)throw new Zn.InvalidArgument("Arguments objects and keys must have the same length");if(0===n.length)return r();var u,a,c=function(n){0===s.length?r(n):i(new O(e.name+".bulkPut(): "+s.length+" of "+l+" operations failed",s))},s=[],l=n.length,h=e;if(e.hook.creating.fire===D&&e.hook.updating.fire===D){a=V(s);for(var v=0,p=n.length;v=0;--i){var o=y[i];(null==o||m[o])&&(e.push(n[i]),t&&r.push(o),null!=o&&(m[o]=null))}return e.reverse(),t&&r.reverse(),h.bulkAdd(e,r)}).then(function(n){var t=y[y.length-1];return null!=t?t:n}):h.bulkAdd(n)).then(c).catch(O,function(n){s=s.concat(n.failures),c()}).catch(i)}},"locked")},bulkAdd:function(n,t){var e=this,r=this.hook.creating.fire;return this._idbstore(Xn,function(i,o,u,a){function c(n){0===p.length?i(n):o(new O(e.name+".bulkAdd(): "+p.length+" of "+y+" operations failed",p))}if(!u.keyPath&&!e.schema.primKey.auto&&!t)throw new Zn.InvalidArgument("bulkAdd() with non-inbound keys requires keys array in second argument");if(u.keyPath&&t)throw new Zn.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(t&&t.length!==n.length)throw new Zn.InvalidArgument("Arguments objects and keys must have the same length");if(0===n.length)return i();var s,f,l,p=[],y=n.length;if(r!==D){var m,b=u.keyPath;f=V(p,null,!0),l=_n(null),h(function(){for(var e=0,i=n.length;e0&&!this._locked();){var n=this._blockedFuncs.shift();try{hn(n[1],n[0])}catch(n){}}return this},_locked:function(){return this._reculock&&xt.lockOwnerFor!==this},create:function(n){var t=this;if(!this.mode)return this;if(c(!this.idbtrans),!n&&!Hn)switch(Gn&&Gn.name){case"DatabaseClosedError":throw new Zn.DatabaseClosed(Gn);case"MissingAPIError":throw new Zn.MissingAPI(Gn.message,Gn);default:throw new Zn.OpenFailed(Gn)}if(!this.active)throw new Zn.TransactionInactive;return c(null===this._completion._state),n=this.idbtrans=n||Hn.transaction(Sn(this.storeNames),this.mode),n.onerror=en(function(e){Pn(e),t._reject(n.error)}),n.onabort=en(function(e){Pn(e),t.active&&t._reject(new Zn.Abort(n.error)),t.active=!1,t.on("abort").fire(e)}),n.oncomplete=en(function(){t.active=!1,t._resolve()}),this},_promise:function(n,t,e){var r=this;if(n===Xn&&this.mode!==Xn)return Ft(new Zn.ReadOnly("Transaction is readonly"));if(!this.active)return Ft(new Zn.TransactionInactive);if(this._locked())return new q(function(i,o){r._blockedFuncs.push([function(){r._promise(n,t,e).then(i,o)},xt])});if(e)return rn(function(){var n=new q(function(n,e){r._lock();var i=t(n,e,r);i&&i.then&&i.then(n,e)});return n.finally(function(){return r._unlock()}),n._lib=!0,n});var i=new q(function(n,e){var i=t(n,e,r);i&&i.then&&i.then(n,e)});return i._lib=!0,i},_root:function(){return this.parent?this.parent._root():this},waitFor:function(n){var t=this._root();if(n=q.resolve(n),t._waitingFor)t._waitingFor=t._waitingFor.then(function(){return n});else{t._waitingFor=n,t._waitingQueue=[];var e=t.idbtrans.objectStore(t.storeNames[0]);!function n(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(e.get(-1/0).onsuccess=n)}()}var r=t._waitingFor;return new q(function(e,i){n.then(function(n){return t._waitingQueue.push(en(e.bind(null,n)))},function(n){return t._waitingQueue.push(en(i.bind(null,n)))}).finally(function(){t._waitingFor===r&&(t._waitingFor=null)})})},abort:function(){this.active&&this._reject(new Zn.Abort),this.active=!1},tables:{get:j("Transaction.tables",function(){return Qn})},table:function(n){return new U(n,nt.table(n).schema,this)}}),e(W.prototype,function(){function n(n,t,e){var r=n instanceof W?new Q(n):n;return r._ctx.error=e?new e(t):new TypeError(t),r}function t(n){return new Q(n,function(){return Rn.only("")}).limit(0)}function e(n){return"next"===n?function(n){return n.toUpperCase()}:function(n){return n.toLowerCase()}}function r(n){return"next"===n?function(n){return n.toLowerCase()}:function(n){return n.toUpperCase()}}function i(n,t,e,r,i,o){for(var u=Math.min(n.length,r.length),a=-1,c=0;c=0?n.substr(0,a)+t[a]+e.substr(a+1):null;i(n[c],s)<0&&(a=c)}return u0)&&(a=s)}return t(null!==a?function(){n.continue(a+p)}:e),!1}),m}return{between:function(e,r,i,o){i=!1!==i,o=!0===o;try{return Z(e,r)>0||0===Z(e,r)&&(i||o)&&(!i||!o)?t(this):new Q(this,function(){return Rn.bound(e,r,!i,!o)})}catch(t){return n(this,Ut)}},equals:function(n){return new Q(this,function(){return Rn.only(n)})},above:function(n){return new Q(this,function(){return Rn.lowerBound(n,!0)})},aboveOrEqual:function(n){return new Q(this,function(){return Rn.lowerBound(n)})},below:function(n){return new Q(this,function(){return Rn.upperBound(n,!0)})},belowOrEqual:function(n){return new Q(this,function(){return Rn.upperBound(n)})},startsWith:function(t){return"string"!=typeof t?n(this,Vt):this.between(t,t+Mt,!0,!0)},startsWithIgnoreCase:function(n){return""===n?this.startsWith(n):o(this,function(n,t){return 0===n.indexOf(t[0])},[n],Mt)},equalsIgnoreCase:function(n){return o(this,function(n,t){return n===t[0]},[n],"")},anyOfIgnoreCase:function(){var n=w.apply(zn,arguments);return 0===n.length?t(this):o(this,function(n,t){return-1!==t.indexOf(n)},n,"")},startsWithAnyOfIgnoreCase:function(){var n=w.apply(zn,arguments);return 0===n.length?t(this):o(this,function(n,t){return t.some(function(t){return 0===n.indexOf(t)})},n,Mt)},anyOf:function(){var e=w.apply(zn,arguments),r=an;try{e.sort(r)}catch(t){return n(this,Ut)}if(0===e.length)return t(this);var i=new Q(this,function(){return Rn.bound(e[0],e[e.length-1])});i._ondirectionchange=function(n){r="next"===n?an:cn,e.sort(r)};var o=0;return i._addAlgorithm(function(n,t,i){for(var u=n.key;r(u,e[o])>0;)if(++o===e.length)return t(i),!1;return 0===r(u,e[o])||(t(function(){n.continue(e[o])}),!1)}),i},notEqual:function(n){return this.inAnyRange([[Rt,n],[n,qt]],{includeLowers:!1,includeUppers:!1})},noneOf:function(){var t=w.apply(zn,arguments);if(0===t.length)return new Q(this);try{t.sort(an)}catch(t){return n(this,Ut)}var e=t.reduce(function(n,t){return n?n.concat([[n[n.length-1][1],t]]):[[Rt,t]]},null);return e.push([t[t.length-1],qt]),this.inAnyRange(e,{includeLowers:!1,includeUppers:!1})},inAnyRange:function(e,r){function i(n,t){for(var e=0,r=n.length;e0){i[0]=nn(i[0],t[0]),i[1]=tn(i[1],t[1]);break}}return e===r&&n.push(t),n}function o(n,t){return f(n[0],t[0])}function u(n){return!h(n)&&!d(n)}if(0===e.length)return t(this);if(!e.every(function(n){return void 0!==n[0]&&void 0!==n[1]&&an(n[0],n[1])<=0}))return n(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",Zn.InvalidArgument);var a,c=!r||!1!==r.includeLowers,s=r&&!0===r.includeUppers,f=an;try{a=e.reduce(i,[]),a.sort(o)}catch(t){return n(this,Ut)}var l=0,h=s?function(n){return an(n,a[l][1])>0}:function(n){return an(n,a[l][1])>=0},d=c?function(n){return cn(n,a[l][0])>0}:function(n){return cn(n,a[l][0])>=0},v=h,p=new Q(this,function(){return Rn.bound(a[0][0],a[a.length-1][1],!c,!s)});return p._ondirectionchange=function(n){"next"===n?(v=h,f=an):(v=d,f=cn),a.sort(o)},p._addAlgorithm(function(n,t,e){for(var r=n.key;v(r);)if(++l===a.length)return t(e),!1;return!!u(r)||0!==Z(r,a[l][1])&&0!==Z(r,a[l][0])&&(t(function(){f===an?n.continue(a[l][0]):n.continue(a[l][1])}),!1)}),p},startsWithAnyOf:function(){var e=w.apply(zn,arguments);return e.every(function(n){return"string"==typeof n})?0===e.length?t(this):this.inAnyRange(e.map(function(n){return[n,n+Mt]})):n(this,"startsWithAnyOf() only works with strings")}}}),e(Q.prototype,function(){function e(n,t){n.filter=ln(n.filter,t)}function r(n,t,e){var r=n.replayFilter;n.replayFilter=r?function(){return ln(r(),t())}:t,n.justLimit=e&&!r}function i(n,t){n.isMatch=ln(n.isMatch,t)}function o(n,t){if(n.isPrimKey)return t;var e=n.table.schema.idxByName[n.index];if(!e)throw new Zn.Schema("KeyPath "+n.index+" on object store "+t.name+" is not indexed");return t.index(e.name)}function u(n,t){var e=o(n,t);return n.keysOnly&&"openKeyCursor"in e?e.openKeyCursor(n.range||null,n.dir+n.unique):e.openCursor(n.range||null,n.dir+n.unique)}function a(n,e,r,i,o){var a=n.replayFilter?ln(n.filter,n.replayFilter()):n.filter;n.or?function(){function c(){2==++l&&r()}function s(n,r,o){if(!a||a(r,o,c,i)){var u=r.primaryKey,s=""+u;"[object ArrayBuffer]"===s&&(s=""+new Uint8Array(u)),t(f,s)||(f[s]=!0,e(n,r,o))}}var f={},l=0;n.or._iterate(s,c,i,o),$(u(n,o),n.algorithm,s,c,i,!n.keysOnly&&n.valueMapper)}():$(u(n,o),ln(n.algorithm,a),e,r,i,!n.keysOnly&&n.valueMapper)}return{_read:function(n,t){var e=this._ctx;return e.error?e.table._trans(null,Ft.bind(null,e.error)):e.table._idbstore("readonly",n).then(t)},_write:function(n){var t=this._ctx;return t.error?t.table._trans(null,Ft.bind(null,t.error)):t.table._idbstore(Xn,n,"locked")},_addAlgorithm:function(n){var t=this._ctx;t.algorithm=ln(t.algorithm,n)},_iterate:function(n,t,e,r){return a(this._ctx,n,t,e,r)},clone:function(t){var e=Object.create(this.constructor.prototype),r=Object.create(this._ctx);return t&&n(r,t),e._ctx=r,e},raw:function(){return this._ctx.valueMapper=null,this},each:function(n){var t=this._ctx;return this._read(function(e,r,i){a(t,n,e,r,i)})},count:function(n){var t=this._ctx;if(H(t,!0))return this._read(function(n,e,r){var i=o(t,r),u=t.range?i.count(t.range):i.count();u.onerror=kn(e),u.onsuccess=function(e){n(Math.min(e.target.result,t.limit))}},n);var e=0;return this._read(function(n,r,i){a(t,function(){return++e,!1},function(){n(e)},r,i)},n)},sortBy:function(n,t){function e(n,t){return t?e(n[i[t]],t-1):n[o]}function r(n,t){var r=e(n,u),i=e(t,u);return ri?a:0}var i=n.split(".").reverse(),o=i[0],u=i.length-1,a="next"===this._ctx.dir?1:-1;return this.toArray(function(n){return n.sort(r)}).then(t)},toArray:function(n){var t=this._ctx;return this._read(function(n,e,r){if(Tn&&"next"===t.dir&&H(t,!0)&&t.limit>0){var i=t.table.hook.reading.fire,u=o(t,r),c=t.limit<1/0?u.getAll(t.range,t.limit):u.getAll(t.range);c.onerror=kn(e),c.onsuccess=xn(i===I?n:function(t){try{n(t.map(i))}catch(n){e(n)}})}else{var s=[];a(t,function(n){s.push(n)},function(){n(s)},e,r)}},n)},offset:function(n){var t=this._ctx;return n<=0?this:(t.offset+=n,H(t)?r(t,function(){var t=n;return function(n,e){return 0===t||(1===t?(--t,!1):(e(function(){n.advance(t),t=0}),!1))}}):r(t,function(){var t=n;return function(){return--t<0}}),this)},limit:function(n){return this._ctx.limit=Math.min(this._ctx.limit,n),r(this._ctx,function(){var t=n;return function(n,e,r){return--t<=0&&e(r),t>=0}},!0),this},until:function(n,t){return e(this._ctx,function(e,r,i){return!n(e.value)||(r(i),t)}),this},first:function(n){return this.limit(1).toArray(function(n){return n[0]}).then(n)},last:function(n){return this.reverse().first(n)},filter:function(n){return e(this._ctx,function(t){return n(t.value)}),i(this._ctx,n),this},and:function(n){return this.filter(n)},or:function(n){return new W(this._ctx.table,n,this)},reverse:function(){return this._ctx.dir="prev"===this._ctx.dir?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},desc:function(){return this.reverse()},eachKey:function(n){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each(function(t,e){n(e.key,e)})},eachUniqueKey:function(n){return this._ctx.unique="unique",this.eachKey(n)},eachPrimaryKey:function(n){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each(function(t,e){n(e.primaryKey,e)})},keys:function(n){var t=this._ctx;t.keysOnly=!t.isMatch;var e=[];return this.each(function(n,t){e.push(t.key)}).then(function(){return e}).then(n)},primaryKeys:function(n){var t=this._ctx;if(Tn&&"next"===t.dir&&H(t,!0)&&t.limit>0)return this._read(function(n,e,r){var i=o(t,r),u=t.limit<1/0?i.getAllKeys(t.range,t.limit):i.getAllKeys(t.range);u.onerror=kn(e),u.onsuccess=xn(n)}).then(n);t.keysOnly=!t.isMatch;var e=[];return this.each(function(n,t){e.push(t.primaryKey)}).then(function(){return e}).then(n)},uniqueKeys:function(n){return this._ctx.unique="unique",this.keys(n)},firstKey:function(n){return this.limit(1).keys(function(n){return n[0]}).then(n)},lastKey:function(n){return this.reverse().firstKey(n)},distinct:function(){var n=this._ctx,r=n.index&&n.table.schema.idxByName[n.index];if(!r||!r.multi)return this;var i={};return e(this._ctx,function(n){var e=n.primaryKey.toString(),r=t(i,e);return i[e]=!0,!r}),this},modify:function(e){var r=this,i=this._ctx,o=i.table.hook,u=o.updating.fire,a=o.deleting.fire;return this._write(function(i,o,c,s){function f(n,e){function r(n){return E.push(n),O.push(i.primKey),p(),!0}S=e.primaryKey;var i={primKey:e.primaryKey,value:n,onsuccess:null,onerror:null};if(!1!==m.call(i,n,i)){var o=!t(i,"value");++x,h(function(){var n=o?e.delete():e.update(i.value);n._hookCtx=i,n.onerror=jn(r),n.onsuccess=_n(function(){++j,p()})},r)}else i.onsuccess&&i.onsuccess(i.value)}function l(n){return n&&(E.push(n),O.push(S)),o(new A("Error modifying one or more objects",E,j,O))}function p(){P&&j+E.length===x&&(E.length>0?l():i(j))}var m;if("function"==typeof e)m=u===D&&a===D?e:function(n){var r=g(n);if(!1===e.call(this,n,this))return!1;if(t(this,"value")){var i=b(r,this.value),o=u.call(this,i,this.primKey,r,s);o&&(n=this.value,In(o).forEach(function(t){v(n,t,o[t])}))}else a.call(this,this.primKey,n,s)};else if(u===D){var w=In(e),_=w.length;m=function(n){for(var t=!1,r=0;r<_;++r){var i=w[r],o=e[i];d(n,i)!==o&&(v(n,i,o),t=!0)}return t}}else{var k=e;e=y(k),m=function(t){var r=!1,i=u.call(this,e,this.primKey,g(t),s);return i&&n(e,i),In(e).forEach(function(n){var i=e[n];d(t,n)!==i&&(v(t,n,i),r=!0)}),i&&(e=y(k)),r}}var x=0,j=0,P=!1,E=[],O=[],S=null;r.clone().raw()._iterate(f,function(){P=!0,p()},l,c)})},delete:function(){var n=this,t=this._ctx,e=t.range,r=t.table.hook.deleting.fire,i=r!==D;if(!i&&H(t)&&(t.isPrimKey&&!Qt||!e))return this._write(function(n,t,r){var i=kn(t),o=e?r.count(e):r.count();o.onerror=i,o.onsuccess=function(){var u=o.result;h(function(){var t=e?r.delete(e):r.clear();t.onerror=i,t.onsuccess=function(){return n(u)}},function(n){return t(n)})}});var o=i?2e3:1e4;return this._write(function(e,u,a,c){var s=0,f=n.clone({keysOnly:!t.isMatch&&!i}).distinct().limit(o).raw(),l=[],h=function(){return f.each(i?function(n,t){l.push([t.primaryKey,t.value])}:function(n,t){l.push(t.primaryKey)}).then(function(){return i?l.sort(function(n,t){return an(n[0],t[0])}):l.sort(an),z(a,c,l,i,r)}).then(function(){var n=l.length;return s+=n,l=[],n0?console.warn("Another connection wants to upgrade database '"+nt.name+"'. Closing db now to resume the upgrade."):console.warn("Another connection wants to delete database '"+nt.name+"'. Closing db now to resume the delete request."),nt.close()}),nt.on("blocked",function(n){!n.newVersion||n.newVersion{},p=F();return [p,Object.getPrototypeOf(p),Promise.resolve(),F.constructor];")()}catch(t){var n=Kn.Promise;return n?[n.resolve(),n.prototype,n.resolve()]:[]}}(),ut=ot[0],at=ot[1],ct=ot[2],st=at&&at.then,ft=ut&&ut.constructor,lt=ot[3],ht=!!ct,dt=!1,vt=ct?function(){ct.then(G)}:Kn.setImmediate?setImmediate.bind(null,G):Kn.MutationObserver?function(){var n=document.createElement("div");new MutationObserver(function(){G(),n=null}).observe(n,{attributes:!0}),n.setAttribute("i","1")}:function(){setTimeout(G,0)},pt=function(n,t){jt.push([n,t]),mt&&(vt(),mt=!1)},yt=!0,mt=!0,gt=[],bt=[],wt=null,_t=I,kt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:yn,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach(function(n){try{yn(n[0],n[1])}catch(n){}})}},xt=kt,jt=[],Pt=0,Et=[],At={get:function(){function n(n,r){var i=this,o=!t.global&&(t!==xt||e!==Kt);o&&un();var u=new q(function(e,u){L(i,new R(vn(n,t,o),vn(r,t,o),e,u,t))});return Ln&&H(u,this),u}var t=xt,e=Kt;return n.prototype=et,n},set:function(n){r(this,"then",n&&n.prototype===et?At:{get:function(){return n},set:At.set})}};e(q.prototype,{then:At,_then:function(n,t){L(this,new R(null,null,n,t,xt))},catch:function(n){if(1===arguments.length)return this.then(null,n);var t=arguments[0],e=arguments[1];return"function"==typeof t?this.then(null,function(n){return n instanceof t?e(n):tn(n)}):this.then(null,function(n){return n&&n.name===t?e(n):tn(n)})},finally:function(n){return this.then(function(t){return n(),t},function(t){return n(),tn(t)})},stack:{get:function(){if(this._stack)return this._stack;try{dt=!0;var n=Q(this,[],20),t=n.join("\nFrom previous: ");return null!==this._state&&(this._stack=t),t}finally{dt=!1}}},timeout:function(n,t){var e=this;return n<1/0?new q(function(r,i){var o=setTimeout(function(){return i(new Zn.Timeout(t))},n);e.then(r,i).finally(clearTimeout.bind(null,o))}):this}}),"undefined"!=typeof Symbol&&Symbol.toStringTag&&r(q.prototype,Symbol.toStringTag,"Promise"),kt.env=ln(),e(q,{all:function(){var n=w.apply(null,arguments).map(an);return new q(function(t,e){0===n.length&&t([]);var r=n.length;n.forEach(function(i,o){return q.resolve(i).then(function(e){n[o]=e,--r||t(n)},e)})})},resolve:function(n){if(n instanceof q)return n;if(n&&"function"==typeof n.then)return new q(function(t,e){n.then(t,e)});var t=new q(et,!0,n);return H(t,wt),t},reject:tn,race:function(){var n=w.apply(null,arguments).map(an);return new q(function(t,e){n.map(function(n){return q.resolve(n).then(t,e)})})},PSD:{get:function(){return xt},set:function(n){return xt=n}},newPSD:rn,usePSD:hn,scheduler:{get:function(){return pt},set:function(n){pt=n}},rejectionMapper:{get:function(){return _t},set:function(n){_t=n}},follow:function(n,t){return new q(function(e,r){return rn(function(t,e){var r=xt;r.unhandleds=[],r.onunhandled=e,r.finalize=K(function(){var n=this;X(function(){0===n.unhandleds.length?t():e(n.unhandleds[0])})},r.finalize),n()},t,e,r)})}});var Ot,St={awaits:0,echoes:0,id:0},Dt=0,It=[],Ct=0,Kt=0,Tt=0,Bt="unhandledrejection",Ft=q.reject,Nt="2.0.4",Mt=String.fromCharCode(65535),qt=function(){try{return IDBKeyRange.only([[]]),[[]]}catch(n){return Mt}}(),Rt=-1/0,Ut="Invalid key provided. Keys must be of type string, number, Date or Array.",Vt="String expected.",zt=[],Lt="undefined"!=typeof navigator&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),Wt=Lt,Qt=Lt,Ht=function(n){return!/(dexie\.js|dexie\.min\.js)/.test(n)};return _(Ln,Ht),e(gn,tt),e(gn,{delete:function(n){var t=new gn(n),e=t.delete();return e.onblocked=function(n){return t.on("blocked",n),this},e},exists:function(n){return new gn(n).open().then(function(n){return n.close(),!0}).catch(gn.NoSuchDatabaseError,function(){return!1})},getDatabaseNames:function(n){var t=Dn(gn.dependencies.indexedDB);return t?new q(function(n,e){var r=t();r.onsuccess=function(t){n(u(t.target.result,0))},r.onerror=kn(e)}).then(n):Ot.dbnames.toCollection().primaryKeys(n)},defineClass:function(){function t(t){t&&n(this,t)}return t},applyStructure:wn,ignoreTransaction:function(n){return xt.trans?hn(xt.transless,n):n()},vip:function(n){return rn(function(){return xt.letThrough=!0,n()})},async:function(n){return function(){try{var t=En(n.apply(this,arguments));return t&&"function"==typeof t.then?t:q.resolve(t)}catch(n){return Ft(n)}}},spawn:function(n,t,e){try{var r=En(n.apply(e,t||[]));return r&&"function"==typeof r.then?r:q.resolve(r)}catch(n){return Ft(n)}},currentTransaction:{get:function(){return xt.trans||null}},waitFor:function(n,t){var e=q.resolve("function"==typeof n?gn.ignoreTransaction(n):n).timeout(t||6e4);return xt.trans?xt.trans.waitFor(e):e},Promise:q,debug:{get:function(){return Ln},set:function(n){_(n,"dexie"===n?function(){return!0}:Ht)}},derive:i,extend:n,props:e,override:a,Events:mn,getByKeyPath:d,setByKeyPath:v,delByKeyPath:p,shallowClone:y,deepClone:g,getObjectDiff:b,asap:s,maxKey:qt,minKey:Rt,addons:[],connections:zt,MultiModifyError:Zn.Modify,errnames:$n,IndexSpec:An,TableSchema:On,dependencies:function(){try{return{indexedDB:Kn.indexedDB||Kn.mozIndexedDB||Kn.webkitIndexedDB||Kn.msIndexedDB,IDBKeyRange:Kn.IDBKeyRange||Kn.webkitIDBKeyRange}}catch(n){return{indexedDB:null,IDBKeyRange:null}}}(),semVer:Nt,version:Nt.split(".").map(function(n){return parseInt(n)}).reduce(function(n,t,e){return n+t/Math.pow(10,2*e)}),default:gn,Dexie:gn}),q.rejectionMapper=S,Ot=new gn("__dbnames"),Ot.version(1).stores({dbnames:"name"}),function(){try{void 0!==typeof localStorage&&void 0!==Kn.document&&(JSON.parse(localStorage.getItem("Dexie.DatabaseNames")||"[]").forEach(function(n){return Ot.dbnames.put({name:n}).catch(D)}),localStorage.removeItem("Dexie.DatabaseNames"))}catch(n){}}(),gn}); //# sourceMappingURL=dexie.min.js.map