(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Dexie=factory())})(this,function(){"use strict";var __assign=function(){__assign=Object.assign||function __assign(t){for(var s,i=1,n=arguments.length;i=0){rv=any}else{var proto=getProto(any);rv=proto===Object.prototype?{}:Object.create(proto);circularRefs&&circularRefs.set(any,rv);for(var prop in any){if(hasOwn(any,prop)){rv[prop]=innerDeepClone(any[prop])}}}return rv}var toString={}.toString;function toStringTag(o){return toString.call(o).slice(8,-1)}var iteratorSymbol=typeof Symbol!=="undefined"?Symbol.iterator:"@@iterator";var getIteratorOf=typeof iteratorSymbol==="symbol"?function(x){var i;return x!=null&&(i=x[iteratorSymbol])&&i.apply(x)}:function(){return null};var NO_CHAR_ARRAY={};function getArrayOf(arrayLike){var i,a,x,it;if(arguments.length===1){if(isArray(arrayLike))return arrayLike.slice();if(this===NO_CHAR_ARRAY&&typeof arrayLike==="string")return[arrayLike];if(it=getIteratorOf(arrayLike)){a=[];while(x=it.next(),!x.done)a.push(x.value);return a}if(arrayLike==null)return[arrayLike];i=arrayLike.length;if(typeof i==="number"){a=new Array(i);while(i--)a[i]=arrayLike[i];return a}return[arrayLike]}i=arguments.length;a=new Array(i);while(i--)a[i]=arguments[i];return a}var isAsyncFunction=typeof Symbol!=="undefined"?function(fn){return fn[Symbol.toStringTag]==="AsyncFunction"}:function(){return false};var debug=typeof location!=="undefined"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function setDebug(value,filter){debug=value;libraryFilter=filter}var libraryFilter=function(){return true};var NEEDS_THROW_FOR_STACK=!new Error("").stack;function getErrorWithStack(){if(NEEDS_THROW_FOR_STACK)try{getErrorWithStack.arguments;throw new Error}catch(e){return e}return new Error}function prettyStack(exception,numIgnoredFrames){var stack=exception.stack;if(!stack)return"";numIgnoredFrames=numIgnoredFrames||0;if(stack.indexOf(exception.name)===0)numIgnoredFrames+=(exception.name+exception.message).split("\n").length;return stack.split("\n").slice(numIgnoredFrames).filter(libraryFilter).map(function(frame){return"\n"+frame}).join("")}var dexieErrorNames=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"];var idbDomErrorNames=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"];var errorList=dexieErrorNames.concat(idbDomErrorNames);var defaultTexts={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function DexieError(name,msg){this._e=getErrorWithStack();this.name=name;this.message=msg}derive(DexieError).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+prettyStack(this._e,2))}},toString:function(){return this.name+": "+this.message}});function getMultiErrorMessage(msg,failures){return msg+". Errors: "+Object.keys(failures).map(function(key){return failures[key].toString()}).filter(function(v,i,s){return s.indexOf(v)===i}).join("\n")}function ModifyError(msg,failures,successCount,failedKeys){this._e=getErrorWithStack();this.failures=failures;this.failedKeys=failedKeys;this.successCount=successCount;this.message=getMultiErrorMessage(msg,failures)}derive(ModifyError).from(DexieError);function BulkError(msg,failures){this._e=getErrorWithStack();this.name="BulkError";this.failures=Object.keys(failures).map(function(pos){return failures[pos]});this.failuresByPos=failures;this.message=getMultiErrorMessage(msg,failures)}derive(BulkError).from(DexieError);var errnames=errorList.reduce(function(obj,name){return obj[name]=name+"Error",obj},{});var BaseException=DexieError;var exceptions=errorList.reduce(function(obj,name){var fullName=name+"Error";function DexieError(msgOrInner,inner){this._e=getErrorWithStack();this.name=fullName;if(!msgOrInner){this.message=defaultTexts[name]||fullName;this.inner=null}else if(typeof msgOrInner==="string"){this.message=""+msgOrInner+(!inner?"":"\n "+inner);this.inner=inner||null}else if(typeof msgOrInner==="object"){this.message=msgOrInner.name+" "+msgOrInner.message;this.inner=msgOrInner}}derive(DexieError).from(BaseException);obj[name]=DexieError;return obj},{});exceptions.Syntax=SyntaxError;exceptions.Type=TypeError;exceptions.Range=RangeError;var exceptionMap=idbDomErrorNames.reduce(function(obj,name){obj[name+"Error"]=exceptions[name];return obj},{});function mapError(domError,message){if(!domError||domError instanceof DexieError||domError instanceof TypeError||domError instanceof SyntaxError||!domError.name||!exceptionMap[domError.name])return domError;var rv=new exceptionMap[domError.name](message||domError.message,domError);if("stack"in domError){setProp(rv,"stack",{get:function(){return this.inner.stack}})}return rv}var fullNameExceptions=errorList.reduce(function(obj,name){if(["Syntax","Type","Range"].indexOf(name)===-1)obj[name+"Error"]=exceptions[name];return obj},{});fullNameExceptions.ModifyError=ModifyError;fullNameExceptions.DexieError=DexieError;fullNameExceptions.BulkError=BulkError;function nop(){}function mirror(val){return val}function pureFunctionChain(f1,f2){if(f1==null||f1===mirror)return f2;return function(val){return f2(f1(val))}}function callBoth(on1,on2){return function(){on1.apply(this,arguments);on2.apply(this,arguments)}}function hookCreatingChain(f1,f2){if(f1===nop)return f2;return function(){var res=f1.apply(this,arguments);if(res!==undefined)arguments[0]=res;var onsuccess=this.onsuccess,onerror=this.onerror;this.onsuccess=null;this.onerror=null;var res2=f2.apply(this,arguments);if(onsuccess)this.onsuccess=this.onsuccess?callBoth(onsuccess,this.onsuccess):onsuccess;if(onerror)this.onerror=this.onerror?callBoth(onerror,this.onerror):onerror;return res2!==undefined?res2:res}}function hookDeletingChain(f1,f2){if(f1===nop)return f2;return function(){f1.apply(this,arguments);var onsuccess=this.onsuccess,onerror=this.onerror;this.onsuccess=this.onerror=null;f2.apply(this,arguments);if(onsuccess)this.onsuccess=this.onsuccess?callBoth(onsuccess,this.onsuccess):onsuccess;if(onerror)this.onerror=this.onerror?callBoth(onerror,this.onerror):onerror}}function hookUpdatingChain(f1,f2){if(f1===nop)return f2;return function(modifications){var res=f1.apply(this,arguments);extend(modifications,res);var onsuccess=this.onsuccess,onerror=this.onerror;this.onsuccess=null;this.onerror=null;var res2=f2.apply(this,arguments);if(onsuccess)this.onsuccess=this.onsuccess?callBoth(onsuccess,this.onsuccess):onsuccess;if(onerror)this.onerror=this.onerror?callBoth(onerror,this.onerror):onerror;return res===undefined?res2===undefined?undefined:res2:extend(res,res2)}}function reverseStoppableEventChain(f1,f2){if(f1===nop)return f2;return function(){if(f2.apply(this,arguments)===false)return false;return f1.apply(this,arguments)}}function promisableChain(f1,f2){if(f1===nop)return f2;return function(){var res=f1.apply(this,arguments);if(res&&typeof res.then==="function"){var thiz=this,i=arguments.length,args=new Array(i);while(i--)args[i]=arguments[i];return res.then(function(){return f2.apply(thiz,args)})}return f2.apply(this,arguments)}}var INTERNAL={};var LONG_STACKS_CLIP_LIMIT=100,MAX_LONG_STACKS=20,ZONE_ECHO_LIMIT=100,_a$1=typeof Promise==="undefined"?[]:function(){var globalP=Promise.resolve();if(typeof crypto==="undefined"||!crypto.subtle)return[globalP,getProto(globalP),globalP];var nativeP=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[nativeP,getProto(nativeP),globalP]}(),resolvedNativePromise=_a$1[0],nativePromiseProto=_a$1[1],resolvedGlobalPromise=_a$1[2],nativePromiseThen=nativePromiseProto&&nativePromiseProto.then;var NativePromise=resolvedNativePromise&&resolvedNativePromise.constructor;var patchGlobalPromise=!!resolvedGlobalPromise;var stack_being_generated=false;var schedulePhysicalTick=resolvedGlobalPromise?function(){resolvedGlobalPromise.then(physicalTick)}:_global.setImmediate?setImmediate.bind(null,physicalTick):_global.MutationObserver?function(){var hiddenDiv=document.createElement("div");new MutationObserver(function(){physicalTick();hiddenDiv=null}).observe(hiddenDiv,{attributes:true});hiddenDiv.setAttribute("i","1")}:function(){setTimeout(physicalTick,0)};var asap=function(callback,args){microtickQueue.push([callback,args]);if(needsNewPhysicalTick){schedulePhysicalTick();needsNewPhysicalTick=false}};var isOutsideMicroTick=true,needsNewPhysicalTick=true,unhandledErrors=[],rejectingErrors=[],currentFulfiller=null,rejectionMapper=mirror;var globalPSD={id:"global",global:true,ref:0,unhandleds:[],onunhandled:globalError,pgp:false,env:{},finalize:function(){this.unhandleds.forEach(function(uh){try{globalError(uh[0],uh[1])}catch(e){}})}};var PSD=globalPSD;var microtickQueue=[];var numScheduledCalls=0;var tickFinalizers=[];function DexiePromise(fn){if(typeof this!=="object")throw new TypeError("Promises must be constructed via new");this._listeners=[];this.onuncatched=nop;this._lib=false;var psd=this._PSD=PSD;if(debug){this._stackHolder=getErrorWithStack();this._prev=null;this._numPrev=0}if(typeof fn!=="function"){if(fn!==INTERNAL)throw new TypeError("Not a function");this._state=arguments[1];this._value=arguments[2];if(this._state===false)handleRejection(this,this._value);return}this._state=null;this._value=null;++psd.ref;executePromiseTask(this,fn)}var thenProp={get:function(){var psd=PSD,microTaskId=totalEchoes;function then(onFulfilled,onRejected){var _this=this;var possibleAwait=!psd.global&&(psd!==PSD||microTaskId!==totalEchoes);var cleanup=possibleAwait&&!decrementExpectedAwaits();var rv=new DexiePromise(function(resolve,reject){propagateToListener(_this,new Listener(nativeAwaitCompatibleWrap(onFulfilled,psd,possibleAwait,cleanup),nativeAwaitCompatibleWrap(onRejected,psd,possibleAwait,cleanup),resolve,reject,psd))});debug&&linkToPreviousPromise(rv,this);return rv}then.prototype=INTERNAL;return then},set:function(value){setProp(this,"then",value&&value.prototype===INTERNAL?thenProp:{get:function(){return value},set:thenProp.set})}};props(DexiePromise.prototype,{then:thenProp,_then:function(onFulfilled,onRejected){propagateToListener(this,new Listener(null,null,onFulfilled,onRejected,PSD))},catch:function(onRejected){if(arguments.length===1)return this.then(null,onRejected);var type=arguments[0],handler=arguments[1];return typeof type==="function"?this.then(null,function(err){return err instanceof type?handler(err):PromiseReject(err)}):this.then(null,function(err){return err&&err.name===type?handler(err):PromiseReject(err)})},finally:function(onFinally){return this.then(function(value){onFinally();return value},function(err){onFinally();return PromiseReject(err)})},stack:{get:function(){if(this._stack)return this._stack;try{stack_being_generated=true;var stacks=getStack(this,[],MAX_LONG_STACKS);var stack=stacks.join("\nFrom previous: ");if(this._state!==null)this._stack=stack;return stack}finally{stack_being_generated=false}}},timeout:function(ms,msg){var _this=this;return ms0){callbacks=microtickQueue;microtickQueue=[];l=callbacks.length;for(i=0;i0);isOutsideMicroTick=true;needsNewPhysicalTick=true}function finalizePhysicalTick(){var unhandledErrs=unhandledErrors;unhandledErrors=[];unhandledErrs.forEach(function(p){p._PSD.onunhandled.call(null,p._value,p)});var finalizers=tickFinalizers.slice(0);var i=finalizers.length;while(i)finalizers[--i]()}function run_at_end_of_this_or_next_physical_tick(fn){function finalizer(){fn();tickFinalizers.splice(tickFinalizers.indexOf(finalizer),1)}tickFinalizers.push(finalizer);++numScheduledCalls;asap(function(){if(--numScheduledCalls===0)finalizePhysicalTick()},[])}function addPossiblyUnhandledError(promise){if(!unhandledErrors.some(function(p){return p._value===promise._value}))unhandledErrors.push(promise)}function markErrorAsHandled(promise){var i=unhandledErrors.length;while(i)if(unhandledErrors[--i]._value===promise._value){unhandledErrors.splice(i,1);return}}function PromiseReject(reason){return new DexiePromise(INTERNAL,false,reason)}function wrap(fn,errorCatcher){var psd=PSD;return function(){var wasRootExec=beginMicroTickScope(),outerScope=PSD;try{switchToZone(psd,true);return fn.apply(this,arguments)}catch(e){errorCatcher&&errorCatcher(e)}finally{switchToZone(outerScope,false);if(wasRootExec)endMicroTickScope()}}}var task={awaits:0,echoes:0,id:0};var taskCounter=0;var zoneStack=[];var zoneEchoes=0;var totalEchoes=0;var zone_id_counter=0;function newScope(fn,props,a1,a2){var parent=PSD,psd=Object.create(parent);psd.parent=parent;psd.ref=0;psd.global=false;psd.id=++zone_id_counter;var globalEnv=globalPSD.env;psd.env=patchGlobalPromise?{Promise:DexiePromise,PromiseProp:{value:DexiePromise,configurable:true,writable:true},all:DexiePromise.all,race:DexiePromise.race,allSettled:DexiePromise.allSettled,any:DexiePromise.any,resolve:DexiePromise.resolve,reject:DexiePromise.reject,nthen:getPatchedPromiseThen(globalEnv.nthen,psd),gthen:getPatchedPromiseThen(globalEnv.gthen,psd)}:{};if(props)extend(psd,props);++parent.ref;psd.finalize=function(){--this.parent.ref||this.parent.finalize()};var rv=usePSD(psd,fn,a1,a2);if(psd.ref===0)psd.finalize();return rv}function incrementExpectedAwaits(){if(!task.id)task.id=++taskCounter;++task.awaits;task.echoes+=ZONE_ECHO_LIMIT;return task.id}function decrementExpectedAwaits(){if(!task.awaits)return false;if(--task.awaits===0)task.id=0;task.echoes=task.awaits*ZONE_ECHO_LIMIT;return true}if((""+nativePromiseThen).indexOf("[native code]")===-1){incrementExpectedAwaits=decrementExpectedAwaits=nop}function onPossibleParallellAsync(possiblePromise){if(task.echoes&&possiblePromise&&possiblePromise.constructor===NativePromise){incrementExpectedAwaits();return possiblePromise.then(function(x){decrementExpectedAwaits();return x},function(e){decrementExpectedAwaits();return rejection(e)})}return possiblePromise}function zoneEnterEcho(targetZone){++totalEchoes;if(!task.echoes||--task.echoes===0){task.echoes=task.id=0}zoneStack.push(PSD);switchToZone(targetZone,true)}function zoneLeaveEcho(){var zone=zoneStack[zoneStack.length-1];zoneStack.pop();switchToZone(zone,false)}function switchToZone(targetZone,bEnteringZone){var currentZone=PSD;if(bEnteringZone?task.echoes&&(!zoneEchoes++||targetZone!==PSD):zoneEchoes&&(!--zoneEchoes||targetZone!==PSD)){enqueueNativeMicroTask(bEnteringZone?zoneEnterEcho.bind(null,targetZone):zoneLeaveEcho)}if(targetZone===PSD)return;PSD=targetZone;if(currentZone===globalPSD)globalPSD.env=snapShot();if(patchGlobalPromise){var GlobalPromise_1=globalPSD.env.Promise;var targetEnv=targetZone.env;nativePromiseProto.then=targetEnv.nthen;GlobalPromise_1.prototype.then=targetEnv.gthen;if(currentZone.global||targetZone.global){Object.defineProperty(_global,"Promise",targetEnv.PromiseProp);GlobalPromise_1.all=targetEnv.all;GlobalPromise_1.race=targetEnv.race;GlobalPromise_1.resolve=targetEnv.resolve;GlobalPromise_1.reject=targetEnv.reject;if(targetEnv.allSettled)GlobalPromise_1.allSettled=targetEnv.allSettled;if(targetEnv.any)GlobalPromise_1.any=targetEnv.any}}}function snapShot(){var GlobalPromise=_global.Promise;return patchGlobalPromise?{Promise:GlobalPromise,PromiseProp:Object.getOwnPropertyDescriptor(_global,"Promise"),all:GlobalPromise.all,race:GlobalPromise.race,allSettled:GlobalPromise.allSettled,any:GlobalPromise.any,resolve:GlobalPromise.resolve,reject:GlobalPromise.reject,nthen:nativePromiseProto.then,gthen:GlobalPromise.prototype.then}:{}}function usePSD(psd,fn,a1,a2,a3){var outerScope=PSD;try{switchToZone(psd,true);return fn(a1,a2,a3)}finally{switchToZone(outerScope,false)}}function enqueueNativeMicroTask(job){nativePromiseThen.call(resolvedNativePromise,job)}function nativeAwaitCompatibleWrap(fn,zone,possibleAwait,cleanup){return typeof fn!=="function"?fn:function(){var outerZone=PSD;if(possibleAwait)incrementExpectedAwaits();switchToZone(zone,true);try{return fn.apply(this,arguments)}finally{switchToZone(outerZone,false);if(cleanup)enqueueNativeMicroTask(decrementExpectedAwaits)}}}function getPatchedPromiseThen(origThen,zone){return function(onResolved,onRejected){return origThen.call(this,nativeAwaitCompatibleWrap(onResolved,zone),nativeAwaitCompatibleWrap(onRejected,zone))}}var UNHANDLEDREJECTION="unhandledrejection";function globalError(err,promise){var rv;try{rv=promise.onuncatched(err)}catch(e){}if(rv!==false)try{var event,eventData={promise:promise,reason:err};if(_global.document&&document.createEvent){event=document.createEvent("Event");event.initEvent(UNHANDLEDREJECTION,true,true);extend(event,eventData)}else if(_global.CustomEvent){event=new CustomEvent(UNHANDLEDREJECTION,{detail:eventData});extend(event,eventData)}if(event&&_global.dispatchEvent){dispatchEvent(event);if(!_global.PromiseRejectionEvent&&_global.onunhandledrejection)try{_global.onunhandledrejection(event)}catch(_){}}if(debug&&event&&!event.defaultPrevented){console.warn("Unhandled rejection: "+(err.stack||err))}}catch(e){}}var rejection=DexiePromise.reject;function tempTransaction(db,mode,storeNames,fn){if(!db.idbdb||!db._state.openComplete&&(!PSD.letThrough&&!db._vip)){if(db._state.openComplete){return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError))}if(!db._state.isBeingOpened){if(!db._options.autoOpen)return rejection(new exceptions.DatabaseClosed);db.open().catch(nop)}return db._state.dbReadyPromise.then(function(){return tempTransaction(db,mode,storeNames,fn)})}else{var trans=db._createTransaction(mode,storeNames,db._dbSchema);try{trans.create();db._state.PR1398_maxLoop=3}catch(ex){if(ex.name===errnames.InvalidState&&db.isOpen()&&--db._state.PR1398_maxLoop>0){console.warn("Dexie: Need to reopen db");db._close();return db.open().then(function(){return tempTransaction(db,mode,storeNames,fn)})}return rejection(ex)}return trans._promise(mode,function(resolve,reject){return newScope(function(){PSD.trans=trans;return fn(resolve,reject,trans)})}).then(function(result){return trans._completion.then(function(){return result})})}}var DEXIE_VERSION="3.2.4";var maxString=String.fromCharCode(65535);var minKey=-Infinity;var INVALID_KEY_ARGUMENT="Invalid key provided. Keys must be of type string, number, Date or Array.";var STRING_EXPECTED="String expected.";var connections=[];var isIEOrEdge=typeof navigator!=="undefined"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent);var hasIEDeleteObjectStoreBug=isIEOrEdge;var hangsOnDeleteLargeKeyRange=isIEOrEdge;var dexieStackFrameFilter=function(frame){return!/(dexie\.js|dexie\.min\.js)/.test(frame)};var DBNAMES_DB="__dbnames";var READONLY="readonly";var READWRITE="readwrite";function combine(filter1,filter2){return filter1?filter2?function(){return filter1.apply(this,arguments)&&filter2.apply(this,arguments)}:filter1:filter2}var AnyRange={type:3,lower:-Infinity,lowerOpen:false,upper:[[]],upperOpen:false};function workaroundForUndefinedPrimKey(keyPath){return typeof keyPath==="string"&&!/\./.test(keyPath)?function(obj){if(obj[keyPath]===undefined&&keyPath in obj){obj=deepClone(obj);delete obj[keyPath]}return obj}:function(obj){return obj}}var Table=function(){function Table(){}Table.prototype._trans=function(mode,fn,writeLocked){var trans=this._tx||PSD.trans;var tableName=this.name;function checkTableInTransaction(resolve,reject,trans){if(!trans.schema[tableName])throw new exceptions.NotFound("Table "+tableName+" not part of transaction");return fn(trans.idbtrans,trans)}var wasRootExec=beginMicroTickScope();try{return trans&&trans.db===this.db?trans===PSD.trans?trans._promise(mode,checkTableInTransaction,writeLocked):newScope(function(){return trans._promise(mode,checkTableInTransaction,writeLocked)},{trans:trans,transless:PSD.transless||PSD}):tempTransaction(this.db,mode,[this.name],checkTableInTransaction)}finally{if(wasRootExec)endMicroTickScope()}};Table.prototype.get=function(keyOrCrit,cb){var _this=this;if(keyOrCrit&&keyOrCrit.constructor===Object)return this.where(keyOrCrit).first(cb);return this._trans("readonly",function(trans){return _this.core.get({trans:trans,key:keyOrCrit}).then(function(res){return _this.hook.reading.fire(res)})}).then(cb)};Table.prototype.where=function(indexOrCrit){if(typeof indexOrCrit==="string")return new this.db.WhereClause(this,indexOrCrit);if(isArray(indexOrCrit))return new this.db.WhereClause(this,"["+indexOrCrit.join("+")+"]");var keyPaths=keys(indexOrCrit);if(keyPaths.length===1)return this.where(keyPaths[0]).equals(indexOrCrit[keyPaths[0]]);var compoundIndex=this.schema.indexes.concat(this.schema.primKey).filter(function(ix){return ix.compound&&keyPaths.every(function(keyPath){return ix.keyPath.indexOf(keyPath)>=0})&&ix.keyPath.every(function(keyPath){return keyPaths.indexOf(keyPath)>=0})})[0];if(compoundIndex&&this.db._maxKey!==maxString)return this.where(compoundIndex.name).equals(compoundIndex.keyPath.map(function(kp){return indexOrCrit[kp]}));if(!compoundIndex&&debug)console.warn("The query "+JSON.stringify(indexOrCrit)+" on "+this.name+" would benefit of a "+("compound index ["+keyPaths.join("+")+"]"));var idxByName=this.schema.idxByName;var idb=this.db._deps.indexedDB;function equals(a,b){try{return idb.cmp(a,b)===0}catch(e){return false}}var _a=keyPaths.reduce(function(_a,keyPath){var prevIndex=_a[0],prevFilterFn=_a[1];var index=idxByName[keyPath];var value=indexOrCrit[keyPath];return[prevIndex||index,prevIndex||!index?combine(prevFilterFn,index&&index.multi?function(x){var prop=getByKeyPath(x,keyPath);return isArray(prop)&&prop.some(function(item){return equals(value,item)})}:function(x){return equals(value,getByKeyPath(x,keyPath))}):prevFilterFn]},[null,null]),idx=_a[0],filterFunction=_a[1];return idx?this.where(idx.name).equals(indexOrCrit[idx.keyPath]).filter(filterFunction):compoundIndex?this.filter(filterFunction):this.where(keyPaths).equals("")};Table.prototype.filter=function(filterFunction){return this.toCollection().and(filterFunction)};Table.prototype.count=function(thenShortcut){return this.toCollection().count(thenShortcut)};Table.prototype.offset=function(offset){return this.toCollection().offset(offset)};Table.prototype.limit=function(numRows){return this.toCollection().limit(numRows)};Table.prototype.each=function(callback){return this.toCollection().each(callback)};Table.prototype.toArray=function(thenShortcut){return this.toCollection().toArray(thenShortcut)};Table.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))};Table.prototype.orderBy=function(index){return new this.db.Collection(new this.db.WhereClause(this,isArray(index)?"["+index.join("+")+"]":index))};Table.prototype.reverse=function(){return this.toCollection().reverse()};Table.prototype.mapToClass=function(constructor){this.schema.mappedClass=constructor;var readHook=function(obj){if(!obj)return obj;var res=Object.create(constructor.prototype);for(var m in obj)if(hasOwn(obj,m))try{res[m]=obj[m]}catch(_){}return res};if(this.schema.readHook){this.hook.reading.unsubscribe(this.schema.readHook)}this.schema.readHook=readHook;this.hook("reading",readHook);return constructor};Table.prototype.defineClass=function(){function Class(content){extend(this,content)}return this.mapToClass(Class)};Table.prototype.add=function(obj,key){var _this=this;var _a=this.schema.primKey,auto=_a.auto,keyPath=_a.keyPath;var objToAdd=obj;if(keyPath&&auto){objToAdd=workaroundForUndefinedPrimKey(keyPath)(obj)}return this._trans("readwrite",function(trans){return _this.core.mutate({trans:trans,type:"add",keys:key!=null?[key]:null,values:[objToAdd]})}).then(function(res){return res.numFailures?DexiePromise.reject(res.failures[0]):res.lastResult}).then(function(lastResult){if(keyPath){try{setByKeyPath(obj,keyPath,lastResult)}catch(_){}}return lastResult})};Table.prototype.update=function(keyOrObject,modifications){if(typeof keyOrObject==="object"&&!isArray(keyOrObject)){var key=getByKeyPath(keyOrObject,this.schema.primKey.keyPath);if(key===undefined)return rejection(new exceptions.InvalidArgument("Given object does not contain its primary key"));try{if(typeof modifications!=="function"){keys(modifications).forEach(function(keyPath){setByKeyPath(keyOrObject,keyPath,modifications[keyPath])})}else{modifications(keyOrObject,{value:keyOrObject,primKey:key})}}catch(_a){}return this.where(":id").equals(key).modify(modifications)}else{return this.where(":id").equals(keyOrObject).modify(modifications)}};Table.prototype.put=function(obj,key){var _this=this;var _a=this.schema.primKey,auto=_a.auto,keyPath=_a.keyPath;var objToAdd=obj;if(keyPath&&auto){objToAdd=workaroundForUndefinedPrimKey(keyPath)(obj)}return this._trans("readwrite",function(trans){return _this.core.mutate({trans:trans,type:"put",values:[objToAdd],keys:key!=null?[key]:null})}).then(function(res){return res.numFailures?DexiePromise.reject(res.failures[0]):res.lastResult}).then(function(lastResult){if(keyPath){try{setByKeyPath(obj,keyPath,lastResult)}catch(_){}}return lastResult})};Table.prototype.delete=function(key){var _this=this;return this._trans("readwrite",function(trans){return _this.core.mutate({trans:trans,type:"delete",keys:[key]})}).then(function(res){return res.numFailures?DexiePromise.reject(res.failures[0]):undefined})};Table.prototype.clear=function(){var _this=this;return this._trans("readwrite",function(trans){return _this.core.mutate({trans:trans,type:"deleteRange",range:AnyRange})}).then(function(res){return res.numFailures?DexiePromise.reject(res.failures[0]):undefined})};Table.prototype.bulkGet=function(keys){var _this=this;return this._trans("readonly",function(trans){return _this.core.getMany({keys:keys,trans:trans}).then(function(result){return result.map(function(res){return _this.hook.reading.fire(res)})})})};Table.prototype.bulkAdd=function(objects,keysOrOptions,options){var _this=this;var keys=Array.isArray(keysOrOptions)?keysOrOptions:undefined;options=options||(keys?undefined:keysOrOptions);var wantResults=options?options.allKeys:undefined;return this._trans("readwrite",function(trans){var _a=_this.schema.primKey,auto=_a.auto,keyPath=_a.keyPath;if(keyPath&&keys)throw new exceptions.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(keys&&keys.length!==objects.length)throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length");var numObjects=objects.length;var objectsToAdd=keyPath&&auto?objects.map(workaroundForUndefinedPrimKey(keyPath)):objects;return _this.core.mutate({trans:trans,type:"add",keys:keys,values:objectsToAdd,wantResults:wantResults}).then(function(_a){var numFailures=_a.numFailures,results=_a.results,lastResult=_a.lastResult,failures=_a.failures;var result=wantResults?results:lastResult;if(numFailures===0)return result;throw new BulkError(_this.name+".bulkAdd(): "+numFailures+" of "+numObjects+" operations failed",failures)})})};Table.prototype.bulkPut=function(objects,keysOrOptions,options){var _this=this;var keys=Array.isArray(keysOrOptions)?keysOrOptions:undefined;options=options||(keys?undefined:keysOrOptions);var wantResults=options?options.allKeys:undefined;return this._trans("readwrite",function(trans){var _a=_this.schema.primKey,auto=_a.auto,keyPath=_a.keyPath;if(keyPath&&keys)throw new exceptions.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(keys&&keys.length!==objects.length)throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length");var numObjects=objects.length;var objectsToPut=keyPath&&auto?objects.map(workaroundForUndefinedPrimKey(keyPath)):objects;return _this.core.mutate({trans:trans,type:"put",keys:keys,values:objectsToPut,wantResults:wantResults}).then(function(_a){var numFailures=_a.numFailures,results=_a.results,lastResult=_a.lastResult,failures=_a.failures;var result=wantResults?results:lastResult;if(numFailures===0)return result;throw new BulkError(_this.name+".bulkPut(): "+numFailures+" of "+numObjects+" operations failed",failures)})})};Table.prototype.bulkDelete=function(keys){var _this=this;var numKeys=keys.length;return this._trans("readwrite",function(trans){return _this.core.mutate({trans:trans,type:"delete",keys:keys})}).then(function(_a){var numFailures=_a.numFailures,lastResult=_a.lastResult,failures=_a.failures;if(numFailures===0)return lastResult;throw new BulkError(_this.name+".bulkDelete(): "+numFailures+" of "+numKeys+" operations failed",failures)})};return Table}();function Events(ctx){var evs={};var rv=function(eventName,subscriber){if(subscriber){var i=arguments.length,args=new Array(i-1);while(--i)args[i-1]=arguments[i];evs[eventName].subscribe.apply(null,args);return ctx}else if(typeof eventName==="string"){return evs[eventName]}};rv.addEventType=add;for(var i=1,l=arguments.length;ib?1:abVal?order:0}return this.toArray(function(a){return a.sort(sorter)}).then(cb)};Collection.prototype.toArray=function(cb){var _this=this;return this._read(function(trans){var ctx=_this._ctx;if(ctx.dir==="next"&&isPlainKeyRange(ctx,true)&&ctx.limit>0){var valueMapper_1=ctx.valueMapper;var index=getIndexOrStore(ctx,ctx.table.core.schema);return ctx.table.core.query({trans:trans,limit:ctx.limit,values:true,query:{index:index,range:ctx.range}}).then(function(_a){var result=_a.result;return valueMapper_1?result.map(valueMapper_1):result})}else{var a_1=[];return iter(ctx,function(item){return a_1.push(item)},trans,ctx.table.core).then(function(){return a_1})}},cb)};Collection.prototype.offset=function(offset){var ctx=this._ctx;if(offset<=0)return this;ctx.offset+=offset;if(isPlainKeyRange(ctx)){addReplayFilter(ctx,function(){var offsetLeft=offset;return function(cursor,advance){if(offsetLeft===0)return true;if(offsetLeft===1){--offsetLeft;return false}advance(function(){cursor.advance(offsetLeft);offsetLeft=0});return false}})}else{addReplayFilter(ctx,function(){var offsetLeft=offset;return function(){return--offsetLeft<0}})}return this};Collection.prototype.limit=function(numRows){this._ctx.limit=Math.min(this._ctx.limit,numRows);addReplayFilter(this._ctx,function(){var rowsLeft=numRows;return function(cursor,advance,resolve){if(--rowsLeft<=0)advance(resolve);return rowsLeft>=0}},true);return this};Collection.prototype.until=function(filterFunction,bIncludeStopEntry){addFilter(this._ctx,function(cursor,advance,resolve){if(filterFunction(cursor.value)){advance(resolve);return bIncludeStopEntry}else{return true}});return this};Collection.prototype.first=function(cb){return this.limit(1).toArray(function(a){return a[0]}).then(cb)};Collection.prototype.last=function(cb){return this.reverse().first(cb)};Collection.prototype.filter=function(filterFunction){addFilter(this._ctx,function(cursor){return filterFunction(cursor.value)});addMatchFilter(this._ctx,filterFunction);return this};Collection.prototype.and=function(filter){return this.filter(filter)};Collection.prototype.or=function(indexName){return new this.db.WhereClause(this._ctx.table,indexName,this)};Collection.prototype.reverse=function(){this._ctx.dir=this._ctx.dir==="prev"?"next":"prev";if(this._ondirectionchange)this._ondirectionchange(this._ctx.dir);return this};Collection.prototype.desc=function(){return this.reverse()};Collection.prototype.eachKey=function(cb){var ctx=this._ctx;ctx.keysOnly=!ctx.isMatch;return this.each(function(val,cursor){cb(cursor.key,cursor)})};Collection.prototype.eachUniqueKey=function(cb){this._ctx.unique="unique";return this.eachKey(cb)};Collection.prototype.eachPrimaryKey=function(cb){var ctx=this._ctx;ctx.keysOnly=!ctx.isMatch;return this.each(function(val,cursor){cb(cursor.primaryKey,cursor)})};Collection.prototype.keys=function(cb){var ctx=this._ctx;ctx.keysOnly=!ctx.isMatch;var a=[];return this.each(function(item,cursor){a.push(cursor.key)}).then(function(){return a}).then(cb)};Collection.prototype.primaryKeys=function(cb){var ctx=this._ctx;if(ctx.dir==="next"&&isPlainKeyRange(ctx,true)&&ctx.limit>0){return this._read(function(trans){var index=getIndexOrStore(ctx,ctx.table.core.schema);return ctx.table.core.query({trans:trans,values:false,limit:ctx.limit,query:{index:index,range:ctx.range}})}).then(function(_a){var result=_a.result;return result}).then(cb)}ctx.keysOnly=!ctx.isMatch;var a=[];return this.each(function(item,cursor){a.push(cursor.primaryKey)}).then(function(){return a}).then(cb)};Collection.prototype.uniqueKeys=function(cb){this._ctx.unique="unique";return this.keys(cb)};Collection.prototype.firstKey=function(cb){return this.limit(1).keys(function(a){return a[0]}).then(cb)};Collection.prototype.lastKey=function(cb){return this.reverse().firstKey(cb)};Collection.prototype.distinct=function(){var ctx=this._ctx,idx=ctx.index&&ctx.table.schema.idxByName[ctx.index];if(!idx||!idx.multi)return this;var set={};addFilter(this._ctx,function(cursor){var strKey=cursor.primaryKey.toString();var found=hasOwn(set,strKey);set[strKey]=true;return!found});return this};Collection.prototype.modify=function(changes){var _this=this;var ctx=this._ctx;return this._write(function(trans){var modifyer;if(typeof changes==="function"){modifyer=changes}else{var keyPaths=keys(changes);var numKeys=keyPaths.length;modifyer=function(item){var anythingModified=false;for(var i=0;i0&&coreTable.mutate({trans:trans,type:"add",values:addValues}).then(function(res){for(var pos in res.failures){deleteKeys.splice(parseInt(pos),1)}applyMutateResult(addValues.length,res)})).then(function(){return(putValues.length>0||criteria&&typeof changes==="object")&&coreTable.mutate({trans:trans,type:"put",keys:putKeys,values:putValues,criteria:criteria,changeSpec:typeof changes!=="function"&&changes}).then(function(res){return applyMutateResult(putValues.length,res)})}).then(function(){return(deleteKeys.length>0||criteria&&changes===deleteCallback)&&coreTable.mutate({trans:trans,type:"delete",keys:deleteKeys,criteria:criteria}).then(function(res){return applyMutateResult(deleteKeys.length,res)})}).then(function(){return keys.length>offset+count&&nextChunk(offset+limit)})})};return nextChunk(0).then(function(){if(totalFailures.length>0)throw new ModifyError("Error modifying one or more objects",totalFailures,successCount,failedKeys);return keys.length})})})};Collection.prototype.delete=function(){var ctx=this._ctx,range=ctx.range;if(isPlainKeyRange(ctx)&&(ctx.isPrimKey&&!hangsOnDeleteLargeKeyRange||range.type===3)){return this._write(function(trans){var primaryKey=ctx.table.core.schema.primaryKey;var coreRange=range;return ctx.table.core.count({trans:trans,query:{index:primaryKey,range:coreRange}}).then(function(count){return ctx.table.core.mutate({trans:trans,type:"deleteRange",range:coreRange}).then(function(_a){var failures=_a.failures;_a.lastResult;_a.results;var numFailures=_a.numFailures;if(numFailures)throw new ModifyError("Could not delete some values",Object.keys(failures).map(function(pos){return failures[pos]}),count-numFailures);return count-numFailures})})})}return this.modify(deleteCallback)};return Collection}();var deleteCallback=function(value,ctx){return ctx.value=null};function createCollectionConstructor(db){return makeClassConstructor(Collection.prototype,function Collection(whereClause,keyRangeGenerator){this.db=db;var keyRange=AnyRange,error=null;if(keyRangeGenerator)try{keyRange=keyRangeGenerator()}catch(ex){error=ex}var whereCtx=whereClause._ctx;var table=whereCtx.table;var readingHook=table.hook.reading.fire;this._ctx={table:table,index:whereCtx.index,isPrimKey:!whereCtx.index||table.schema.primKey.keyPath&&whereCtx.index===table.schema.primKey.name,range:keyRange,keysOnly:false,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:true,isMatch:null,offset:0,limit:Infinity,error:error,or:whereCtx.or,valueMapper:readingHook!==mirror?readingHook:null}})}function simpleCompare(a,b){return ab?-1:a===b?0:1}function fail(collectionOrWhereClause,err,T){var collection=collectionOrWhereClause instanceof WhereClause?new collectionOrWhereClause.Collection(collectionOrWhereClause):collectionOrWhereClause;collection._ctx.error=T?new T(err):new TypeError(err);return collection}function emptyCollection(whereClause){return new whereClause.Collection(whereClause,function(){return rangeEqual("")}).limit(0)}function upperFactory(dir){return dir==="next"?function(s){return s.toUpperCase()}:function(s){return s.toLowerCase()}}function lowerFactory(dir){return dir==="next"?function(s){return s.toLowerCase()}:function(s){return s.toUpperCase()}}function nextCasing(key,lowerKey,upperNeedle,lowerNeedle,cmp,dir){var length=Math.min(key.length,lowerNeedle.length);var llp=-1;for(var i=0;i=0)return key.substr(0,llp)+lowerKey[llp]+upperNeedle.substr(llp+1);return null}if(cmp(key[i],lwrKeyChar)<0)llp=i}if(length0){lowestPossibleCasing=casing}}if(lowestPossibleCasing!==null){advance(function(){cursor.continue(lowestPossibleCasing+nextKeySuffix)})}else{advance(resolve)}return false}});return c}function createRange(lower,upper,lowerOpen,upperOpen){return{type:2,lower:lower,upper:upper,lowerOpen:lowerOpen,upperOpen:upperOpen}}function rangeEqual(value){return{type:1,lower:value,upper:value}}var WhereClause=function(){function WhereClause(){}Object.defineProperty(WhereClause.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:false,configurable:true});WhereClause.prototype.between=function(lower,upper,includeLower,includeUpper){includeLower=includeLower!==false;includeUpper=includeUpper===true;try{if(this._cmp(lower,upper)>0||this._cmp(lower,upper)===0&&(includeLower||includeUpper)&&!(includeLower&&includeUpper))return emptyCollection(this);return new this.Collection(this,function(){return createRange(lower,upper,!includeLower,!includeUpper)})}catch(e){return fail(this,INVALID_KEY_ARGUMENT)}};WhereClause.prototype.equals=function(value){if(value==null)return fail(this,INVALID_KEY_ARGUMENT);return new this.Collection(this,function(){return rangeEqual(value)})};WhereClause.prototype.above=function(value){if(value==null)return fail(this,INVALID_KEY_ARGUMENT);return new this.Collection(this,function(){return createRange(value,undefined,true)})};WhereClause.prototype.aboveOrEqual=function(value){if(value==null)return fail(this,INVALID_KEY_ARGUMENT);return new this.Collection(this,function(){return createRange(value,undefined,false)})};WhereClause.prototype.below=function(value){if(value==null)return fail(this,INVALID_KEY_ARGUMENT);return new this.Collection(this,function(){return createRange(undefined,value,false,true)})};WhereClause.prototype.belowOrEqual=function(value){if(value==null)return fail(this,INVALID_KEY_ARGUMENT);return new this.Collection(this,function(){return createRange(undefined,value)})};WhereClause.prototype.startsWith=function(str){if(typeof str!=="string")return fail(this,STRING_EXPECTED);return this.between(str,str+maxString,true,true)};WhereClause.prototype.startsWithIgnoreCase=function(str){if(str==="")return this.startsWith(str);return addIgnoreCaseAlgorithm(this,function(x,a){return x.indexOf(a[0])===0},[str],maxString)};WhereClause.prototype.equalsIgnoreCase=function(str){return addIgnoreCaseAlgorithm(this,function(x,a){return x===a[0]},[str],"")};WhereClause.prototype.anyOfIgnoreCase=function(){var set=getArrayOf.apply(NO_CHAR_ARRAY,arguments);if(set.length===0)return emptyCollection(this);return addIgnoreCaseAlgorithm(this,function(x,a){return a.indexOf(x)!==-1},set,"")};WhereClause.prototype.startsWithAnyOfIgnoreCase=function(){var set=getArrayOf.apply(NO_CHAR_ARRAY,arguments);if(set.length===0)return emptyCollection(this);return addIgnoreCaseAlgorithm(this,function(x,a){return a.some(function(n){return x.indexOf(n)===0})},set,maxString)};WhereClause.prototype.anyOf=function(){var _this=this;var set=getArrayOf.apply(NO_CHAR_ARRAY,arguments);var compare=this._cmp;try{set.sort(compare)}catch(e){return fail(this,INVALID_KEY_ARGUMENT)}if(set.length===0)return emptyCollection(this);var c=new this.Collection(this,function(){return createRange(set[0],set[set.length-1])});c._ondirectionchange=function(direction){compare=direction==="next"?_this._ascending:_this._descending;set.sort(compare)};var i=0;c._addAlgorithm(function(cursor,advance,resolve){var key=cursor.key;while(compare(key,set[i])>0){++i;if(i===set.length){advance(resolve);return false}}if(compare(key,set[i])===0){return true}else{advance(function(){cursor.continue(set[i])});return false}});return c};WhereClause.prototype.notEqual=function(value){return this.inAnyRange([[minKey,value],[value,this.db._maxKey]],{includeLowers:false,includeUppers:false})};WhereClause.prototype.noneOf=function(){var set=getArrayOf.apply(NO_CHAR_ARRAY,arguments);if(set.length===0)return new this.Collection(this);try{set.sort(this._ascending)}catch(e){return fail(this,INVALID_KEY_ARGUMENT)}var ranges=set.reduce(function(res,val){return res?res.concat([[res[res.length-1][1],val]]):[[minKey,val]]},null);ranges.push([set[set.length-1],this.db._maxKey]);return this.inAnyRange(ranges,{includeLowers:false,includeUppers:false})};WhereClause.prototype.inAnyRange=function(ranges,options){var _this=this;var cmp=this._cmp,ascending=this._ascending,descending=this._descending,min=this._min,max=this._max;if(ranges.length===0)return emptyCollection(this);if(!ranges.every(function(range){return range[0]!==undefined&&range[1]!==undefined&&ascending(range[0],range[1])<=0})){return fail(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",exceptions.InvalidArgument)}var includeLowers=!options||options.includeLowers!==false;var includeUppers=options&&options.includeUppers===true;function addRange(ranges,newRange){var i=0,l=ranges.length;for(;i0){range[0]=min(range[0],newRange[0]);range[1]=max(range[1],newRange[1]);break}}if(i===l)ranges.push(newRange);return ranges}var sortDirection=ascending;function rangeSorter(a,b){return sortDirection(a[0],b[0])}var set;try{set=ranges.reduce(addRange,[]);set.sort(rangeSorter)}catch(ex){return fail(this,INVALID_KEY_ARGUMENT)}var rangePos=0;var keyIsBeyondCurrentEntry=includeUppers?function(key){return ascending(key,set[rangePos][1])>0}:function(key){return ascending(key,set[rangePos][1])>=0};var keyIsBeforeCurrentEntry=includeLowers?function(key){return descending(key,set[rangePos][0])>0}:function(key){return descending(key,set[rangePos][0])>=0};function keyWithinCurrentRange(key){return!keyIsBeyondCurrentEntry(key)&&!keyIsBeforeCurrentEntry(key)}var checkKey=keyIsBeyondCurrentEntry;var c=new this.Collection(this,function(){return createRange(set[0][0],set[set.length-1][1],!includeLowers,!includeUppers)});c._ondirectionchange=function(direction){if(direction==="next"){checkKey=keyIsBeyondCurrentEntry;sortDirection=ascending}else{checkKey=keyIsBeforeCurrentEntry;sortDirection=descending}set.sort(rangeSorter)};c._addAlgorithm(function(cursor,advance,resolve){var key=cursor.key;while(checkKey(key)){++rangePos;if(rangePos===set.length){advance(resolve);return false}}if(keyWithinCurrentRange(key)){return true}else if(_this._cmp(key,set[rangePos][1])===0||_this._cmp(key,set[rangePos][0])===0){return false}else{advance(function(){if(sortDirection===ascending)cursor.continue(set[rangePos][0]);else cursor.continue(set[rangePos][1])});return false}});return c};WhereClause.prototype.startsWithAnyOf=function(){var set=getArrayOf.apply(NO_CHAR_ARRAY,arguments);if(!set.every(function(s){return typeof s==="string"})){return fail(this,"startsWithAnyOf() only works with strings")}if(set.length===0)return emptyCollection(this);return this.inAnyRange(set.map(function(str){return[str,str+maxString]}))};return WhereClause}();function createWhereClauseConstructor(db){return makeClassConstructor(WhereClause.prototype,function WhereClause(table,index,orCollection){this.db=db;this._ctx={table:table,index:index===":id"?null:index,or:orCollection};var indexedDB=db._deps.indexedDB;if(!indexedDB)throw new exceptions.MissingAPI;this._cmp=this._ascending=indexedDB.cmp.bind(indexedDB);this._descending=function(a,b){return indexedDB.cmp(b,a)};this._max=function(a,b){return indexedDB.cmp(a,b)>0?a:b};this._min=function(a,b){return indexedDB.cmp(a,b)<0?a:b};this._IDBKeyRange=db._deps.IDBKeyRange})}function eventRejectHandler(reject){return wrap(function(event){preventDefault(event);reject(event.target.error);return false})}function preventDefault(event){if(event.stopPropagation)event.stopPropagation();if(event.preventDefault)event.preventDefault()}var DEXIE_STORAGE_MUTATED_EVENT_NAME="storagemutated";var STORAGE_MUTATED_DOM_EVENT_NAME="x-storagemutated-1";var globalEvents=Events(null,DEXIE_STORAGE_MUTATED_EVENT_NAME);var Transaction=function(){function Transaction(){}Transaction.prototype._lock=function(){assert(!PSD.global);++this._reculock;if(this._reculock===1&&!PSD.global)PSD.lockOwnerFor=this;return this};Transaction.prototype._unlock=function(){assert(!PSD.global);if(--this._reculock===0){if(!PSD.global)PSD.lockOwnerFor=null;while(this._blockedFuncs.length>0&&!this._locked()){var fnAndPSD=this._blockedFuncs.shift();try{usePSD(fnAndPSD[1],fnAndPSD[0])}catch(e){}}}return this};Transaction.prototype._locked=function(){return this._reculock&&PSD.lockOwnerFor!==this};Transaction.prototype.create=function(idbtrans){var _this=this;if(!this.mode)return this;var idbdb=this.db.idbdb;var dbOpenError=this.db._state.dbOpenError;assert(!this.idbtrans);if(!idbtrans&&!idbdb){switch(dbOpenError&&dbOpenError.name){case"DatabaseClosedError":throw new exceptions.DatabaseClosed(dbOpenError);case"MissingAPIError":throw new exceptions.MissingAPI(dbOpenError.message,dbOpenError);default:throw new exceptions.OpenFailed(dbOpenError)}}if(!this.active)throw new exceptions.TransactionInactive;assert(this._completion._state===null);idbtrans=this.idbtrans=idbtrans||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):idbdb.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}));idbtrans.onerror=wrap(function(ev){preventDefault(ev);_this._reject(idbtrans.error)});idbtrans.onabort=wrap(function(ev){preventDefault(ev);_this.active&&_this._reject(new exceptions.Abort(idbtrans.error));_this.active=false;_this.on("abort").fire(ev)});idbtrans.oncomplete=wrap(function(){_this.active=false;_this._resolve();if("mutatedParts"in idbtrans){globalEvents.storagemutated.fire(idbtrans["mutatedParts"])}});return this};Transaction.prototype._promise=function(mode,fn,bWriteLock){var _this=this;if(mode==="readwrite"&&this.mode!=="readwrite")return rejection(new exceptions.ReadOnly("Transaction is readonly"));if(!this.active)return rejection(new exceptions.TransactionInactive);if(this._locked()){return new DexiePromise(function(resolve,reject){_this._blockedFuncs.push([function(){_this._promise(mode,fn,bWriteLock).then(resolve,reject)},PSD])})}else if(bWriteLock){return newScope(function(){var p=new DexiePromise(function(resolve,reject){_this._lock();var rv=fn(resolve,reject,_this);if(rv&&rv.then)rv.then(resolve,reject)});p.finally(function(){return _this._unlock()});p._lib=true;return p})}else{var p=new DexiePromise(function(resolve,reject){var rv=fn(resolve,reject,_this);if(rv&&rv.then)rv.then(resolve,reject)});p._lib=true;return p}};Transaction.prototype._root=function(){return this.parent?this.parent._root():this};Transaction.prototype.waitFor=function(promiseLike){var root=this._root();var promise=DexiePromise.resolve(promiseLike);if(root._waitingFor){root._waitingFor=root._waitingFor.then(function(){return promise})}else{root._waitingFor=promise;root._waitingQueue=[];var store=root.idbtrans.objectStore(root.storeNames[0]);(function spin(){++root._spinCount;while(root._waitingQueue.length)root._waitingQueue.shift()();if(root._waitingFor)store.get(-Infinity).onsuccess=spin})()}var currentWaitPromise=root._waitingFor;return new DexiePromise(function(resolve,reject){promise.then(function(res){return root._waitingQueue.push(wrap(resolve.bind(null,res)))},function(err){return root._waitingQueue.push(wrap(reject.bind(null,err)))}).finally(function(){if(root._waitingFor===currentWaitPromise){root._waitingFor=null}})})};Transaction.prototype.abort=function(){if(this.active){this.active=false;if(this.idbtrans)this.idbtrans.abort();this._reject(new exceptions.Abort)}};Transaction.prototype.table=function(tableName){var memoizedTables=this._memoizedTables||(this._memoizedTables={});if(hasOwn(memoizedTables,tableName))return memoizedTables[tableName];var tableSchema=this.schema[tableName];if(!tableSchema){throw new exceptions.NotFound("Table "+tableName+" not part of transaction")}var transactionBoundTable=new this.db.Table(tableName,tableSchema,this);transactionBoundTable.core=this.db.core.table(tableName);memoizedTables[tableName]=transactionBoundTable;return transactionBoundTable};return Transaction}();function createTransactionConstructor(db){return makeClassConstructor(Transaction.prototype,function Transaction(mode,storeNames,dbschema,chromeTransactionDurability,parent){var _this=this;this.db=db;this.mode=mode;this.storeNames=storeNames;this.schema=dbschema;this.chromeTransactionDurability=chromeTransactionDurability;this.idbtrans=null;this.on=Events(this,"complete","error","abort");this.parent=parent||null;this.active=true;this._reculock=0;this._blockedFuncs=[];this._resolve=null;this._reject=null;this._waitingFor=null;this._waitingQueue=null;this._spinCount=0;this._completion=new DexiePromise(function(resolve,reject){_this._resolve=resolve;_this._reject=reject});this._completion.then(function(){_this.active=false;_this.on.complete.fire()},function(e){var wasActive=_this.active;_this.active=false;_this.on.error.fire(e);_this.parent?_this.parent._reject(e):wasActive&&_this.idbtrans&&_this.idbtrans.abort();return rejection(e)})})}function createIndexSpec(name,keyPath,unique,multi,auto,compound,isPrimKey){return{name:name,keyPath:keyPath,unique:unique,multi:multi,auto:auto,compound:compound,src:(unique&&!isPrimKey?"&":"")+(multi?"*":"")+(auto?"++":"")+nameFromKeyPath(keyPath)}}function nameFromKeyPath(keyPath){return typeof keyPath==="string"?keyPath:keyPath?"["+[].join.call(keyPath,"+")+"]":""}function createTableSchema(name,primKey,indexes){return{name:name,primKey:primKey,indexes:indexes,mappedClass:null,idxByName:arrayToObject(indexes,function(index){return[index.name,index]})}}function safariMultiStoreFix(storeNames){return storeNames.length===1?storeNames[0]:storeNames}var getMaxKey=function(IdbKeyRange){try{IdbKeyRange.only([[]]);getMaxKey=function(){return[[]]};return[[]]}catch(e){getMaxKey=function(){return maxString};return maxString}};function getKeyExtractor(keyPath){if(keyPath==null){return function(){return undefined}}else if(typeof keyPath==="string"){return getSinglePathKeyExtractor(keyPath)}else{return function(obj){return getByKeyPath(obj,keyPath)}}}function getSinglePathKeyExtractor(keyPath){var split=keyPath.split(".");if(split.length===1){return function(obj){return obj[keyPath]}}else{return function(obj){return getByKeyPath(obj,keyPath)}}}function arrayify(arrayLike){return[].slice.call(arrayLike)}var _id_counter=0;function getKeyPathAlias(keyPath){return keyPath==null?":id":typeof keyPath==="string"?keyPath:"["+keyPath.join("+")+"]"}function createDBCore(db,IdbKeyRange,tmpTrans){function extractSchema(db,trans){var tables=arrayify(db.objectStoreNames);return{schema:{name:db.name,tables:tables.map(function(table){return trans.objectStore(table)}).map(function(store){var keyPath=store.keyPath,autoIncrement=store.autoIncrement;var compound=isArray(keyPath);var outbound=keyPath==null;var indexByKeyPath={};var result={name:store.name,primaryKey:{name:null,isPrimaryKey:true,outbound:outbound,compound:compound,keyPath:keyPath,autoIncrement:autoIncrement,unique:true,extractKey:getKeyExtractor(keyPath)},indexes:arrayify(store.indexNames).map(function(indexName){return store.index(indexName)}).map(function(index){var name=index.name,unique=index.unique,multiEntry=index.multiEntry,keyPath=index.keyPath;var compound=isArray(keyPath);var result={name:name,compound:compound,keyPath:keyPath,unique:unique,multiEntry:multiEntry,extractKey:getKeyExtractor(keyPath)};indexByKeyPath[getKeyPathAlias(keyPath)]=result;return result}),getIndexByKeyPath:function(keyPath){return indexByKeyPath[getKeyPathAlias(keyPath)]}};indexByKeyPath[":id"]=result.primaryKey;if(keyPath!=null){indexByKeyPath[getKeyPathAlias(keyPath)]=result.primaryKey}return result})},hasGetAll:tables.length>0&&"getAll"in trans.objectStore(tables[0])&&!(typeof navigator!=="undefined"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}function makeIDBKeyRange(range){if(range.type===3)return null;if(range.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var lower=range.lower,upper=range.upper,lowerOpen=range.lowerOpen,upperOpen=range.upperOpen;var idbRange=lower===undefined?upper===undefined?null:IdbKeyRange.upperBound(upper,!!upperOpen):upper===undefined?IdbKeyRange.lowerBound(lower,!!lowerOpen):IdbKeyRange.bound(lower,upper,!!lowerOpen,!!upperOpen);return idbRange}function createDbCoreTable(tableSchema){var tableName=tableSchema.name;function mutate(_a){var trans=_a.trans,type=_a.type,keys=_a.keys,values=_a.values,range=_a.range;return new Promise(function(resolve,reject){resolve=wrap(resolve);var store=trans.objectStore(tableName);var outbound=store.keyPath==null;var isAddOrPut=type==="put"||type==="add";if(!isAddOrPut&&type!=="delete"&&type!=="deleteRange")throw new Error("Invalid operation type: "+type);var length=(keys||values||{length:1}).length;if(keys&&values&&keys.length!==values.length){throw new Error("Given keys array must have same length as given values array.")}if(length===0)return resolve({numFailures:0,failures:{},results:[],lastResult:undefined});var req;var reqs=[];var failures=[];var numFailures=0;var errorHandler=function(event){++numFailures;preventDefault(event)};if(type==="deleteRange"){if(range.type===4)return resolve({numFailures:numFailures,failures:failures,results:[],lastResult:undefined});if(range.type===3)reqs.push(req=store.clear());else reqs.push(req=store.delete(makeIDBKeyRange(range)))}else{var _a=isAddOrPut?outbound?[values,keys]:[values,null]:[keys,null],args1=_a[0],args2=_a[1];if(isAddOrPut){for(var i=0;i=oldVersion});versToRun.forEach(function(version){queue.push(function(){var oldSchema=globalSchema;var newSchema=version._cfg.dbschema;adjustToExistingIndexNames(db,oldSchema,idbUpgradeTrans);adjustToExistingIndexNames(db,newSchema,idbUpgradeTrans);globalSchema=db._dbSchema=newSchema;var diff=getSchemaDiff(oldSchema,newSchema);diff.add.forEach(function(tuple){createTable(idbUpgradeTrans,tuple[0],tuple[1].primKey,tuple[1].indexes)});diff.change.forEach(function(change){if(change.recreate){throw new exceptions.Upgrade("Not yet support for changing primary key")}else{var store_1=idbUpgradeTrans.objectStore(change.name);change.add.forEach(function(idx){return addIndex(store_1,idx)});change.change.forEach(function(idx){store_1.deleteIndex(idx.name);addIndex(store_1,idx)});change.del.forEach(function(idxName){return store_1.deleteIndex(idxName)})}});var contentUpgrade=version._cfg.contentUpgrade;if(contentUpgrade&&version._cfg.version>oldVersion){generateMiddlewareStacks(db,idbUpgradeTrans);trans._memoizedTables={};anyContentUpgraderHasRun=true;var upgradeSchema_1=shallowClone(newSchema);diff.del.forEach(function(table){upgradeSchema_1[table]=oldSchema[table]});removeTablesApi(db,[db.Transaction.prototype]);setApiOnPlace(db,[db.Transaction.prototype],keys(upgradeSchema_1),upgradeSchema_1);trans.schema=upgradeSchema_1;var contentUpgradeIsAsync_1=isAsyncFunction(contentUpgrade);if(contentUpgradeIsAsync_1){incrementExpectedAwaits()}var returnValue_1;var promiseFollowed=DexiePromise.follow(function(){returnValue_1=contentUpgrade(trans);if(returnValue_1){if(contentUpgradeIsAsync_1){var decrementor=decrementExpectedAwaits.bind(null,null);returnValue_1.then(decrementor,decrementor)}}});return returnValue_1&&typeof returnValue_1.then==="function"?DexiePromise.resolve(returnValue_1):promiseFollowed.then(function(){return returnValue_1})}});queue.push(function(idbtrans){if(!anyContentUpgraderHasRun||!hasIEDeleteObjectStoreBug){var newSchema=version._cfg.dbschema;deleteRemovedTables(newSchema,idbtrans)}removeTablesApi(db,[db.Transaction.prototype]);setApiOnPlace(db,[db.Transaction.prototype],db._storeNames,db._dbSchema);trans.schema=db._dbSchema})});function runQueue(){return queue.length?DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue):DexiePromise.resolve()}return runQueue().then(function(){createMissingTables(globalSchema,idbUpgradeTrans)})}function getSchemaDiff(oldSchema,newSchema){var diff={del:[],add:[],change:[]};var table;for(table in oldSchema){if(!newSchema[table])diff.del.push(table)}for(table in newSchema){var oldDef=oldSchema[table],newDef=newSchema[table];if(!oldDef){diff.add.push([table,newDef])}else{var change={name:table,def:newDef,recreate:false,del:[],add:[],change:[]};if(""+(oldDef.primKey.keyPath||"")!==""+(newDef.primKey.keyPath||"")||oldDef.primKey.auto!==newDef.primKey.auto&&!isIEOrEdge){change.recreate=true;diff.change.push(change)}else{var oldIndexes=oldDef.idxByName;var newIndexes=newDef.idxByName;var idxName=void 0;for(idxName in oldIndexes){if(!newIndexes[idxName])change.del.push(idxName)}for(idxName in newIndexes){var oldIdx=oldIndexes[idxName],newIdx=newIndexes[idxName];if(!oldIdx)change.add.push(newIdx);else if(oldIdx.src!==newIdx.src)change.change.push(newIdx)}if(change.del.length>0||change.add.length>0||change.change.length>0){diff.change.push(change)}}}}return diff}function createTable(idbtrans,tableName,primKey,indexes){var store=idbtrans.db.createObjectStore(tableName,primKey.keyPath?{keyPath:primKey.keyPath,autoIncrement:primKey.auto}:{autoIncrement:primKey.auto});indexes.forEach(function(idx){return addIndex(store,idx)});return store}function createMissingTables(newSchema,idbtrans){keys(newSchema).forEach(function(tableName){if(!idbtrans.db.objectStoreNames.contains(tableName)){createTable(idbtrans,tableName,newSchema[tableName].primKey,newSchema[tableName].indexes)}})}function deleteRemovedTables(newSchema,idbtrans){[].slice.call(idbtrans.db.objectStoreNames).forEach(function(storeName){return newSchema[storeName]==null&&idbtrans.db.deleteObjectStore(storeName)})}function addIndex(store,idx){store.createIndex(idx.name,idx.keyPath,{unique:idx.unique,multiEntry:idx.multi})}function buildGlobalSchema(db,idbdb,tmpTrans){var globalSchema={};var dbStoreNames=slice(idbdb.objectStoreNames,0);dbStoreNames.forEach(function(storeName){var store=tmpTrans.objectStore(storeName);var keyPath=store.keyPath;var primKey=createIndexSpec(nameFromKeyPath(keyPath),keyPath||"",false,false,!!store.autoIncrement,keyPath&&typeof keyPath!=="string",true);var indexes=[];for(var j=0;jMath.pow(2,62)?0:e.oldVersion;wasCreated=oldVer<1;db._novip.idbdb=req.result;runUpgraders(db,oldVer/10,upgradeTransaction,reject)}},reject);req.onsuccess=wrap(function(){upgradeTransaction=null;var idbdb=db._novip.idbdb=req.result;var objectStoreNames=slice(idbdb.objectStoreNames);if(objectStoreNames.length>0)try{var tmpTrans=idbdb.transaction(safariMultiStoreFix(objectStoreNames),"readonly");if(state.autoSchema)readGlobalSchema(db,idbdb,tmpTrans);else{adjustToExistingIndexNames(db,db._dbSchema,tmpTrans);if(!verifyInstalledSchema(db,tmpTrans)){console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")}}generateMiddlewareStacks(db,tmpTrans)}catch(e){}connections.push(db);idbdb.onversionchange=wrap(function(ev){state.vcFired=true;db.on("versionchange").fire(ev)});idbdb.onclose=wrap(function(ev){db.on("close").fire(ev)});if(wasCreated)_onDatabaseCreated(db._deps,dbName);resolve()},reject)})})]).then(function(){throwIfCancelled();state.onReadyBeingFired=[];return DexiePromise.resolve(vip(function(){return db.on.ready.fire(db.vip)})).then(function fireRemainders(){if(state.onReadyBeingFired.length>0){var remainders_1=state.onReadyBeingFired.reduce(promisableChain,nop);state.onReadyBeingFired=[];return DexiePromise.resolve(vip(function(){return remainders_1(db.vip)})).then(fireRemainders)}})}).finally(function(){state.onReadyBeingFired=null;state.isBeingOpened=false}).then(function(){return db}).catch(function(err){state.dbOpenError=err;try{upgradeTransaction&&upgradeTransaction.abort()}catch(_a){}if(openCanceller===state.openCanceller){db._close()}return rejection(err)}).finally(function(){state.openComplete=true;resolveDbReady()})}function awaitIterator(iterator){var callNext=function(result){return iterator.next(result)},doThrow=function(error){return iterator.throw(error)},onSuccess=step(callNext),onError=step(doThrow);function step(getNext){return function(val){var next=getNext(val),value=next.value;return next.done?value:!value||typeof value.then!=="function"?isArray(value)?Promise.all(value).then(onSuccess,onError):onSuccess(value):value.then(onSuccess,onError)}}return step(callNext)()}function extractTransactionArgs(mode,_tableArgs_,scopeFunc){var i=arguments.length;if(i<2)throw new exceptions.InvalidArgument("Too few arguments");var args=new Array(i-1);while(--i)args[i-1]=arguments[i];scopeFunc=args.pop();var tables=flatten(args);return[mode,tables,scopeFunc]}function enterTransactionScope(db,mode,storeNames,parentTransaction,scopeFunc){return DexiePromise.resolve().then(function(){var transless=PSD.transless||PSD;var trans=db._createTransaction(mode,storeNames,db._dbSchema,parentTransaction);var zoneProps={trans:trans,transless:transless};if(parentTransaction){trans.idbtrans=parentTransaction.idbtrans}else{try{trans.create();db._state.PR1398_maxLoop=3}catch(ex){if(ex.name===errnames.InvalidState&&db.isOpen()&&--db._state.PR1398_maxLoop>0){console.warn("Dexie: Need to reopen db");db._close();return db.open().then(function(){return enterTransactionScope(db,mode,storeNames,null,scopeFunc)})}return rejection(ex)}}var scopeFuncIsAsync=isAsyncFunction(scopeFunc);if(scopeFuncIsAsync){incrementExpectedAwaits()}var returnValue;var promiseFollowed=DexiePromise.follow(function(){returnValue=scopeFunc.call(trans,trans);if(returnValue){if(scopeFuncIsAsync){var decrementor=decrementExpectedAwaits.bind(null,null);returnValue.then(decrementor,decrementor)}else if(typeof returnValue.next==="function"&&typeof returnValue.throw==="function"){returnValue=awaitIterator(returnValue)}}},zoneProps);return(returnValue&&typeof returnValue.then==="function"?DexiePromise.resolve(returnValue).then(function(x){return trans.active?x:rejection(new exceptions.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):promiseFollowed.then(function(){return returnValue})).then(function(x){if(parentTransaction)trans._resolve();return trans._completion.then(function(){return x})}).catch(function(e){trans._reject(e);return rejection(e)})})}function pad(a,value,count){var result=isArray(a)?a.slice():[a];for(var i=0;i0;var virtualIndex=__assign(__assign({},lowLevelIndex),{isVirtual:isVirtual,keyTail:keyTail,keyLength:keyLength,extractKey:getKeyExtractor(keyPath),unique:!isVirtual&&lowLevelIndex.unique});indexList.push(virtualIndex);if(!virtualIndex.isPrimaryKey){allVirtualIndexes.push(virtualIndex)}if(keyLength>1){var virtualKeyPath=keyLength===2?keyPath[0]:keyPath.slice(0,keyLength-1);addVirtualIndexes(virtualKeyPath,keyTail+1,lowLevelIndex)}indexList.sort(function(a,b){return a.keyTail-b.keyTail});return virtualIndex}var primaryKey=addVirtualIndexes(schema.primaryKey.keyPath,0,schema.primaryKey);indexLookup[":id"]=[primaryKey];for(var _i=0,_a=schema.indexes;_i<_a.length;_i++){var index=_a[_i];addVirtualIndexes(index.keyPath,0,index)}function findBestIndex(keyPath){var result=indexLookup[getKeyPathAlias(keyPath)];return result&&result[0]}function translateRange(range,keyTail){return{type:range.type===1?2:range.type,lower:pad(range.lower,range.lowerOpen?down.MAX_KEY:down.MIN_KEY,keyTail),lowerOpen:true,upper:pad(range.upper,range.upperOpen?down.MIN_KEY:down.MAX_KEY,keyTail),upperOpen:true}}function translateRequest(req){var index=req.query.index;return index.isVirtual?__assign(__assign({},req),{query:{index:index,range:translateRange(req.query.range,index.keyTail)}}):req}var result=__assign(__assign({},table),{schema:__assign(__assign({},schema),{primaryKey:primaryKey,indexes:allVirtualIndexes,getIndexByKeyPath:findBestIndex}),count:function(req){return table.count(translateRequest(req))},query:function(req){return table.query(translateRequest(req))},openCursor:function(req){var _a=req.query.index,keyTail=_a.keyTail,isVirtual=_a.isVirtual,keyLength=_a.keyLength;if(!isVirtual)return table.openCursor(req);function createVirtualCursor(cursor){function _continue(key){key!=null?cursor.continue(pad(key,req.reverse?down.MAX_KEY:down.MIN_KEY,keyTail)):req.unique?cursor.continue(cursor.key.slice(0,keyLength).concat(req.reverse?down.MIN_KEY:down.MAX_KEY,keyTail)):cursor.continue()}var virtualCursor=Object.create(cursor,{continue:{value:_continue},continuePrimaryKey:{value:function(key,primaryKey){cursor.continuePrimaryKey(pad(key,down.MAX_KEY,keyTail),primaryKey)}},primaryKey:{get:function(){return cursor.primaryKey}},key:{get:function(){var key=cursor.key;return keyLength===1?key[0]:key.slice(0,keyLength)}},value:{get:function(){return cursor.value}}});return virtualCursor}return table.openCursor(translateRequest(req)).then(function(cursor){return cursor&&createVirtualCursor(cursor)})}});return result}})}var virtualIndexMiddleware={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:createVirtualIndexMiddleware};function getObjectDiff(a,b,rv,prfx){rv=rv||{};prfx=prfx||"";keys(a).forEach(function(prop){if(!hasOwn(b,prop)){rv[prfx+prop]=undefined}else{var ap=a[prop],bp=b[prop];if(typeof ap==="object"&&typeof bp==="object"&&ap&&bp){var apTypeName=toStringTag(ap);var bpTypeName=toStringTag(bp);if(apTypeName!==bpTypeName){rv[prfx+prop]=b[prop]}else if(apTypeName==="Object"){getObjectDiff(ap,bp,rv,prfx+prop+".")}else if(ap!==bp){rv[prfx+prop]=b[prop]}}else if(ap!==bp)rv[prfx+prop]=b[prop]}});keys(b).forEach(function(prop){if(!hasOwn(a,prop)){rv[prfx+prop]=b[prop]}});return rv}function getEffectiveKeys(primaryKey,req){if(req.type==="delete")return req.keys;return req.keys||req.values.map(primaryKey.extractKey)}var hooksMiddleware={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(downCore){return __assign(__assign({},downCore),{table:function(tableName){var downTable=downCore.table(tableName);var primaryKey=downTable.schema.primaryKey;var tableMiddleware=__assign(__assign({},downTable),{mutate:function(req){var dxTrans=PSD.trans;var _a=dxTrans.table(tableName).hook,deleting=_a.deleting,creating=_a.creating,updating=_a.updating;switch(req.type){case"add":if(creating.fire===nop)break;return dxTrans._promise("readwrite",function(){return addPutOrDelete(req)},true);case"put":if(creating.fire===nop&&updating.fire===nop)break;return dxTrans._promise("readwrite",function(){return addPutOrDelete(req)},true);case"delete":if(deleting.fire===nop)break;return dxTrans._promise("readwrite",function(){return addPutOrDelete(req)},true);case"deleteRange":if(deleting.fire===nop)break;return dxTrans._promise("readwrite",function(){return deleteRange(req)},true)}return downTable.mutate(req);function addPutOrDelete(req){var dxTrans=PSD.trans;var keys=req.keys||getEffectiveKeys(primaryKey,req);if(!keys)throw new Error("Keys missing");req=req.type==="add"||req.type==="put"?__assign(__assign({},req),{keys:keys}):__assign({},req);if(req.type!=="delete")req.values=__spreadArray([],req.values,true);if(req.keys)req.keys=__spreadArray([],req.keys,true);return getExistingValues(downTable,req,keys).then(function(existingValues){var contexts=keys.map(function(key,i){var existingValue=existingValues[i];var ctx={onerror:null,onsuccess:null};if(req.type==="delete"){deleting.fire.call(ctx,key,existingValue,dxTrans)}else if(req.type==="add"||existingValue===undefined){var generatedPrimaryKey=creating.fire.call(ctx,key,req.values[i],dxTrans);if(key==null&&generatedPrimaryKey!=null){key=generatedPrimaryKey;req.keys[i]=key;if(!primaryKey.outbound){setByKeyPath(req.values[i],primaryKey.keyPath,key)}}}else{var objectDiff=getObjectDiff(existingValue,req.values[i]);var additionalChanges_1=updating.fire.call(ctx,objectDiff,key,existingValue,dxTrans);if(additionalChanges_1){var requestedValue_1=req.values[i];Object.keys(additionalChanges_1).forEach(function(keyPath){if(hasOwn(requestedValue_1,keyPath)){requestedValue_1[keyPath]=additionalChanges_1[keyPath]}else{setByKeyPath(requestedValue_1,keyPath,additionalChanges_1[keyPath])}})}}return ctx});return downTable.mutate(req).then(function(_a){var failures=_a.failures,results=_a.results,numFailures=_a.numFailures,lastResult=_a.lastResult;for(var i=0;i0)return Promise.reject(res.failures[0]);if(result.length1?to:fromOrTree}:{d:0})}else{var rv=new RangeSet;if(fromOrTree&&"d"in fromOrTree){extend(rv,fromOrTree)}return rv}};props(RangeSet.prototype,(_a={add:function(rangeSet){mergeRanges(this,rangeSet);return this},addKey:function(key){addRange(this,key,key);return this},addKeys:function(keys){var _this=this;keys.forEach(function(key){return addRange(_this,key,key)});return this}},_a[iteratorSymbol]=function(){return getRangeSetIterator(this)},_a));function addRange(target,from,to){var diff=cmp(from,to);if(isNaN(diff))return;if(diff>0)throw RangeError();if(isEmptyRange(target))return extend(target,{from:from,to:to,d:1});var left=target.l;var right=target.r;if(cmp(to,target.from)<0){left?addRange(left,from,to):target.l={from:from,to:to,d:1,l:null,r:null};return rebalance(target)}if(cmp(from,target.to)>0){right?addRange(right,from,to):target.r={from:from,to:to,d:1,l:null,r:null};return rebalance(target)}if(cmp(from,target.from)<0){target.from=from;target.l=null;target.d=right?right.d+1:1}if(cmp(to,target.to)>0){target.to=to;target.r=null;target.d=target.l?target.l.d+1:1}var rightWasCutOff=!target.r;if(left&&!target.l){mergeRanges(target,left)}if(right&&rightWasCutOff){mergeRanges(target,right)}}function mergeRanges(target,newSet){function _addRangeSet(target,_a){var from=_a.from,to=_a.to,l=_a.l,r=_a.r;addRange(target,from,to);if(l)_addRangeSet(target,l);if(r)_addRangeSet(target,r)}if(!isEmptyRange(newSet))_addRangeSet(target,newSet)}function rangesOverlap(rangeSet1,rangeSet2){var i1=getRangeSetIterator(rangeSet2);var nextResult1=i1.next();if(nextResult1.done)return false;var a=nextResult1.value;var i2=getRangeSetIterator(rangeSet1);var nextResult2=i2.next(a.from);var b=nextResult2.value;while(!nextResult1.done&&!nextResult2.done){if(cmp(b.from,a.to)<=0&&cmp(b.to,a.from)>=0)return true;cmp(a.from,b.from)<0?a=(nextResult1=i1.next(b.from)).value:b=(nextResult2=i2.next(a.from)).value}return false}function getRangeSetIterator(node){var state=isEmptyRange(node)?null:{s:0,n:node};return{next:function(key){var keyProvided=arguments.length>0;while(state){switch(state.s){case 0:state.s=1;if(keyProvided){while(state.n.l&&cmp(key,state.n.from)<0)state={up:state,n:state.n.l,s:1}}else{while(state.n.l)state={up:state,n:state.n.l,s:1}}case 1:state.s=2;if(!keyProvided||cmp(key,state.n.to)<=0)return{value:state.n,done:false};case 2:if(state.n.r){state.s=3;state={up:state,n:state.n.r,s:0};continue}case 3:state=state.up}}return{done:true}}}}function rebalance(target){var _a,_b;var diff=(((_a=target.r)===null||_a===void 0?void 0:_a.d)||0)-(((_b=target.l)===null||_b===void 0?void 0:_b.d)||0);var r=diff>1?"r":diff<-1?"l":"";if(r){var l=r==="r"?"l":"r";var rootClone=__assign({},target);var oldRootRight=target[r];target.from=oldRootRight.from;target.to=oldRootRight.to;target[r]=oldRootRight[r];rootClone[r]=oldRootRight[l];target[l]=rootClone;rootClone.d=computeDepth(rootClone)}target.d=computeDepth(target)}function computeDepth(_a){var r=_a.r,l=_a.l;return(r?l?Math.max(r.d,l.d):r.d:l?l.d:0)+1}var observabilityMiddleware={stack:"dbcore",level:0,create:function(core){var dbName=core.schema.name;var FULL_RANGE=new RangeSet(core.MIN_KEY,core.MAX_KEY);return __assign(__assign({},core),{table:function(tableName){var table=core.table(tableName);var schema=table.schema;var primaryKey=schema.primaryKey;var extractKey=primaryKey.extractKey,outbound=primaryKey.outbound;var tableClone=__assign(__assign({},table),{mutate:function(req){var trans=req.trans;var mutatedParts=trans.mutatedParts||(trans.mutatedParts={});var getRangeSet=function(indexName){var part="idb://"+dbName+"/"+tableName+"/"+indexName;return mutatedParts[part]||(mutatedParts[part]=new RangeSet)};var pkRangeSet=getRangeSet("");var delsRangeSet=getRangeSet(":dels");var type=req.type;var _a=req.type==="deleteRange"?[req.range]:req.type==="delete"?[req.keys]:req.values.length<50?[[],req.values]:[],keys=_a[0],newObjs=_a[1];var oldCache=req.trans["_cache"];return table.mutate(req).then(function(res){if(isArray(keys)){if(type!=="delete")keys=res.results;pkRangeSet.addKeys(keys);var oldObjs=getFromTransactionCache(keys,oldCache);if(!oldObjs&&type!=="add"){delsRangeSet.addKeys(keys)}if(oldObjs||newObjs){trackAffectedIndexes(getRangeSet,schema,oldObjs,newObjs)}}else if(keys){var range={from:keys.lower,to:keys.upper};delsRangeSet.add(range);pkRangeSet.add(range)}else{pkRangeSet.add(FULL_RANGE);delsRangeSet.add(FULL_RANGE);schema.indexes.forEach(function(idx){return getRangeSet(idx.name).add(FULL_RANGE)})}return res})}});var getRange=function(_a){var _b,_c;var _d=_a.query,index=_d.index,range=_d.range;return[index,new RangeSet((_b=range.lower)!==null&&_b!==void 0?_b:core.MIN_KEY,(_c=range.upper)!==null&&_c!==void 0?_c:core.MAX_KEY)]};var readSubscribers={get:function(req){return[primaryKey,new RangeSet(req.key)]},getMany:function(req){return[primaryKey,(new RangeSet).addKeys(req.keys)]},count:getRange,query:getRange,openCursor:getRange};keys(readSubscribers).forEach(function(method){tableClone[method]=function(req){var subscr=PSD.subscr;if(subscr){var getRangeSet=function(indexName){var part="idb://"+dbName+"/"+tableName+"/"+indexName;return subscr[part]||(subscr[part]=new RangeSet)};var pkRangeSet_1=getRangeSet("");var delsRangeSet_1=getRangeSet(":dels");var _a=readSubscribers[method](req),queriedIndex=_a[0],queriedRanges=_a[1];getRangeSet(queriedIndex.name||"").add(queriedRanges);if(!queriedIndex.isPrimaryKey){if(method==="count"){delsRangeSet_1.add(FULL_RANGE)}else{var keysPromise_1=method==="query"&&outbound&&req.values&&table.query(__assign(__assign({},req),{values:false}));return table[method].apply(this,arguments).then(function(res){if(method==="query"){if(outbound&&req.values){return keysPromise_1.then(function(_a){var resultingKeys=_a.result;pkRangeSet_1.addKeys(resultingKeys);return res})}var pKeys=req.values?res.result.map(extractKey):res.result;if(req.values){pkRangeSet_1.addKeys(pKeys)}else{delsRangeSet_1.addKeys(pKeys)}}else if(method==="openCursor"){var cursor_1=res;var wantValues_1=req.values;return cursor_1&&Object.create(cursor_1,{key:{get:function(){delsRangeSet_1.addKey(cursor_1.primaryKey);return cursor_1.key}},primaryKey:{get:function(){var pkey=cursor_1.primaryKey;delsRangeSet_1.addKey(pkey);return pkey}},value:{get:function(){wantValues_1&&pkRangeSet_1.addKey(cursor_1.primaryKey);return cursor_1.value}}})}return res})}}}return table[method].apply(this,arguments)}});return tableClone}})}};function trackAffectedIndexes(getRangeSet,schema,oldObjs,newObjs){function addAffectedIndex(ix){var rangeSet=getRangeSet(ix.name||"");function extractKey(obj){return obj!=null?ix.extractKey(obj):null}var addKeyOrKeys=function(key){return ix.multiEntry&&isArray(key)?key.forEach(function(key){return rangeSet.addKey(key)}):rangeSet.addKey(key)};(oldObjs||newObjs).forEach(function(_,i){var oldKey=oldObjs&&extractKey(oldObjs[i]);var newKey=newObjs&&extractKey(newObjs[i]);if(cmp(oldKey,newKey)!==0){if(oldKey!=null)addKeyOrKeys(oldKey);if(newKey!=null)addKeyOrKeys(newKey)}})}schema.indexes.forEach(addAffectedIndex)}var Dexie$1=function(){function Dexie(name,options){var _this=this;this._middlewares={};this.verno=0;var deps=Dexie.dependencies;this._options=options=__assign({addons:Dexie.addons,autoOpen:true,indexedDB:deps.indexedDB,IDBKeyRange:deps.IDBKeyRange},options);this._deps={indexedDB:options.indexedDB,IDBKeyRange:options.IDBKeyRange};var addons=options.addons;this._dbSchema={};this._versions=[];this._storeNames=[];this._allTables={};this.idbdb=null;this._novip=this;var state={dbOpenError:null,isBeingOpened:false,onReadyBeingFired:null,openComplete:false,dbReadyResolve:nop,dbReadyPromise:null,cancelOpen:nop,openCanceller:null,autoSchema:true,PR1398_maxLoop:3};state.dbReadyPromise=new DexiePromise(function(resolve){state.dbReadyResolve=resolve});state.openCanceller=new DexiePromise(function(_,reject){state.cancelOpen=reject});this._state=state;this.name=name;this.on=Events(this,"populate","blocked","versionchange","close",{ready:[promisableChain,nop]});this.on.ready.subscribe=override(this.on.ready.subscribe,function(subscribe){return function(subscriber,bSticky){Dexie.vip(function(){var state=_this._state;if(state.openComplete){if(!state.dbOpenError)DexiePromise.resolve().then(subscriber);if(bSticky)subscribe(subscriber)}else if(state.onReadyBeingFired){state.onReadyBeingFired.push(subscriber);if(bSticky)subscribe(subscriber)}else{subscribe(subscriber);var db_1=_this;if(!bSticky)subscribe(function unsubscribe(){db_1.on.ready.unsubscribe(subscriber);db_1.on.ready.unsubscribe(unsubscribe)})}})}});this.Collection=createCollectionConstructor(this);this.Table=createTableConstructor(this);this.Transaction=createTransactionConstructor(this);this.Version=createVersionConstructor(this);this.WhereClause=createWhereClauseConstructor(this);this.on("versionchange",function(ev){if(ev.newVersion>0)console.warn("Another connection wants to upgrade database '"+_this.name+"'. Closing db now to resume the upgrade.");else console.warn("Another connection wants to delete database '"+_this.name+"'. Closing db now to resume the delete request.");_this.close()});this.on("blocked",function(ev){if(!ev.newVersion||ev.newVersion=0)connections.splice(idx,1);if(this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}state.dbReadyPromise=new DexiePromise(function(resolve){state.dbReadyResolve=resolve});state.openCanceller=new DexiePromise(function(_,reject){state.cancelOpen=reject})};Dexie.prototype.close=function(){this._close();var state=this._state;this._options.autoOpen=false;state.dbOpenError=new exceptions.DatabaseClosed;if(state.isBeingOpened)state.cancelOpen(state.dbOpenError)};Dexie.prototype.delete=function(){var _this=this;var hasArguments=arguments.length>0;var state=this._state;return new DexiePromise(function(resolve,reject){var doDelete=function(){_this.close();var req=_this._deps.indexedDB.deleteDatabase(_this.name);req.onsuccess=wrap(function(){_onDatabaseDeleted(_this._deps,_this.name);resolve()});req.onerror=eventRejectHandler(reject);req.onblocked=_this._fireOnBlocked};if(hasArguments)throw new exceptions.InvalidArgument("Arguments not allowed in db.delete()");if(state.isBeingOpened){state.dbReadyPromise.then(doDelete)}else{doDelete()}})};Dexie.prototype.backendDB=function(){return this.idbdb};Dexie.prototype.isOpen=function(){return this.idbdb!==null};Dexie.prototype.hasBeenClosed=function(){var dbOpenError=this._state.dbOpenError;return dbOpenError&&dbOpenError.name==="DatabaseClosed"};Dexie.prototype.hasFailed=function(){return this._state.dbOpenError!==null};Dexie.prototype.dynamicallyOpened=function(){return this._state.autoSchema};Object.defineProperty(Dexie.prototype,"tables",{get:function(){var _this=this;return keys(this._allTables).map(function(name){return _this._allTables[name]})},enumerable:false,configurable:true});Dexie.prototype.transaction=function(){var args=extractTransactionArgs.apply(this,arguments);return this._transaction.apply(this,args)};Dexie.prototype._transaction=function(mode,tables,scopeFunc){var _this=this;var parentTransaction=PSD.trans;if(!parentTransaction||parentTransaction.db!==this||mode.indexOf("!")!==-1)parentTransaction=null;var onlyIfCompatible=mode.indexOf("?")!==-1;mode=mode.replace("!","").replace("?","");var idbMode,storeNames;try{storeNames=tables.map(function(table){var storeName=table instanceof _this.Table?table.name:table;if(typeof storeName!=="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return storeName});if(mode=="r"||mode===READONLY)idbMode=READONLY;else if(mode=="rw"||mode==READWRITE)idbMode=READWRITE;else throw new exceptions.InvalidArgument("Invalid transaction mode: "+mode);if(parentTransaction){if(parentTransaction.mode===READONLY&&idbMode===READWRITE){if(onlyIfCompatible){parentTransaction=null}else throw new exceptions.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY")}if(parentTransaction){storeNames.forEach(function(storeName){if(parentTransaction&&parentTransaction.storeNames.indexOf(storeName)===-1){if(onlyIfCompatible){parentTransaction=null}else throw new exceptions.SubTransaction("Table "+storeName+" not included in parent transaction.")}})}if(onlyIfCompatible&&parentTransaction&&!parentTransaction.active){parentTransaction=null}}}catch(e){return parentTransaction?parentTransaction._promise(null,function(_,reject){reject(e)}):rejection(e)}var enterTransaction=enterTransactionScope.bind(null,this,idbMode,storeNames,parentTransaction,scopeFunc);return parentTransaction?parentTransaction._promise(idbMode,enterTransaction,"lock"):PSD.trans?usePSD(PSD.transless,function(){return _this._whenReady(enterTransaction)}):this._whenReady(enterTransaction)};Dexie.prototype.table=function(tableName){if(!hasOwn(this._allTables,tableName)){throw new exceptions.InvalidTable("Table "+tableName+" does not exist")}return this._allTables[tableName]};return Dexie}();var symbolObservable=typeof Symbol!=="undefined"&&"observable"in Symbol?Symbol.observable:"@@observable";var Observable=function(){function Observable(subscribe){this._subscribe=subscribe}Observable.prototype.subscribe=function(x,error,complete){return this._subscribe(!x||typeof x==="function"?{next:x,error:error,complete:complete}:x)};Observable.prototype[symbolObservable]=function(){return this};return Observable}();function extendObservabilitySet(target,newSet){keys(newSet).forEach(function(part){var rangeSet=target[part]||(target[part]=new RangeSet);mergeRanges(rangeSet,newSet[part])});return target}function liveQuery(querier){var hasValue=false;var currentValue=undefined;var observable=new Observable(function(observer){var scopeFuncIsAsync=isAsyncFunction(querier);function execute(subscr){if(scopeFuncIsAsync){incrementExpectedAwaits()}var exec=function(){return newScope(querier,{subscr:subscr,trans:null})};var rv=PSD.trans?usePSD(PSD.transless,exec):exec();if(scopeFuncIsAsync){rv.then(decrementExpectedAwaits,decrementExpectedAwaits)}return rv}var closed=false;var accumMuts={};var currentObs={};var subscription={get closed(){return closed},unsubscribe:function(){closed=true;globalEvents.storagemutated.unsubscribe(mutationListener)}};observer.start&&observer.start(subscription);var querying=false,startedListening=false;function shouldNotify(){return keys(currentObs).some(function(key){return accumMuts[key]&&rangesOverlap(accumMuts[key],currentObs[key])})}var mutationListener=function(parts){extendObservabilitySet(accumMuts,parts);if(shouldNotify()){doQuery()}};var doQuery=function(){if(querying||closed)return;accumMuts={};var subscr={};var ret=execute(subscr);if(!startedListening){globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME,mutationListener);startedListening=true}querying=true;Promise.resolve(ret).then(function(result){hasValue=true;currentValue=result;querying=false;if(closed)return;if(shouldNotify()){doQuery()}else{accumMuts={};currentObs=subscr;observer.next&&observer.next(result)}},function(err){querying=false;hasValue=false;observer.error&&observer.error(err);subscription.unsubscribe()})};doQuery();return subscription});observable.hasValue=function(){return hasValue};observable.getValue=function(){return currentValue};return observable}var domDeps;try{domDeps={indexedDB:_global.indexedDB||_global.mozIndexedDB||_global.webkitIndexedDB||_global.msIndexedDB,IDBKeyRange:_global.IDBKeyRange||_global.webkitIDBKeyRange}}catch(e){domDeps={indexedDB:null,IDBKeyRange:null}}var Dexie=Dexie$1;props(Dexie,__assign(__assign({},fullNameExceptions),{delete:function(databaseName){var db=new Dexie(databaseName,{addons:[]});return db.delete()},exists:function(name){return new Dexie(name,{addons:[]}).open().then(function(db){db.close();return true}).catch("NoSuchDatabaseError",function(){return false})},getDatabaseNames:function(cb){try{return getDatabaseNames(Dexie.dependencies).then(cb)}catch(_a){return rejection(new exceptions.MissingAPI)}},defineClass:function(){function Class(content){extend(this,content)}return Class},ignoreTransaction:function(scopeFunc){return PSD.trans?usePSD(PSD.transless,scopeFunc):scopeFunc()},vip:vip,async:function(generatorFn){return function(){try{var rv=awaitIterator(generatorFn.apply(this,arguments));if(!rv||typeof rv.then!=="function")return DexiePromise.resolve(rv);return rv}catch(e){return rejection(e)}}},spawn:function(generatorFn,args,thiz){try{var rv=awaitIterator(generatorFn.apply(thiz,args||[]));if(!rv||typeof rv.then!=="function")return DexiePromise.resolve(rv);return rv}catch(e){return rejection(e)}},currentTransaction:{get:function(){return PSD.trans||null}},waitFor:function(promiseOrFunction,optionalTimeout){var promise=DexiePromise.resolve(typeof promiseOrFunction==="function"?Dexie.ignoreTransaction(promiseOrFunction):promiseOrFunction).timeout(optionalTimeout||6e4);return PSD.trans?PSD.trans.waitFor(promise):promise},Promise:DexiePromise,debug:{get:function(){return debug},set:function(value){setDebug(value,value==="dexie"?function(){return true}:dexieStackFrameFilter)}},derive:derive,extend:extend,props:props,override:override,Events:Events,on:globalEvents,liveQuery:liveQuery,extendObservabilitySet:extendObservabilitySet,getByKeyPath:getByKeyPath,setByKeyPath:setByKeyPath,delByKeyPath:delByKeyPath,shallowClone:shallowClone,deepClone:deepClone,getObjectDiff:getObjectDiff,cmp:cmp,asap:asap$1,minKey:minKey,addons:[],connections:connections,errnames:errnames,dependencies:domDeps,semVer:DEXIE_VERSION,version:DEXIE_VERSION.split(".").map(function(n){return parseInt(n)}).reduce(function(p,c,i){return p+c/Math.pow(10,i*2)})}));Dexie.maxKey=getMaxKey(Dexie.dependencies.IDBKeyRange);if(typeof dispatchEvent!=="undefined"&&typeof addEventListener!=="undefined"){globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME,function(updatedParts){if(!propagatingLocally){var event_1;if(isIEOrEdge){event_1=document.createEvent("CustomEvent");event_1.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME,true,true,updatedParts)}else{event_1=new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME,{detail:updatedParts})}propagatingLocally=true;dispatchEvent(event_1);propagatingLocally=false}});addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME,function(_a){var detail=_a.detail;if(!propagatingLocally){propagateLocally(detail)}})}function propagateLocally(updateParts){var wasMe=propagatingLocally;try{propagatingLocally=true;globalEvents.storagemutated.fire(updateParts)}finally{propagatingLocally=wasMe}}var propagatingLocally=false;if(typeof BroadcastChannel!=="undefined"){var bc_1=new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);if(typeof bc_1.unref==="function"){bc_1.unref()}globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME,function(changedParts){if(!propagatingLocally){bc_1.postMessage(changedParts)}});bc_1.onmessage=function(ev){if(ev.data)propagateLocally(ev.data)}}else if(typeof self!=="undefined"&&typeof navigator!=="undefined"){globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME,function(changedParts){try{if(!propagatingLocally){if(typeof localStorage!=="undefined"){localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME,JSON.stringify({trig:Math.random(),changedParts:changedParts}))}if(typeof self["clients"]==="object"){__spreadArray([],self["clients"].matchAll({includeUncontrolled:true}),true).forEach(function(client){return client.postMessage({type:STORAGE_MUTATED_DOM_EVENT_NAME,changedParts:changedParts})})}}}catch(_a){}});if(typeof addEventListener!=="undefined"){addEventListener("storage",function(ev){if(ev.key===STORAGE_MUTATED_DOM_EVENT_NAME){var data=JSON.parse(ev.newValue);if(data)propagateLocally(data.changedParts)}})}var swContainer=self.document&&navigator.serviceWorker;if(swContainer){swContainer.addEventListener("message",propagateMessageLocally)}}function propagateMessageLocally(_a){var data=_a.data;if(data&&data.type===STORAGE_MUTATED_DOM_EVENT_NAME){propagateLocally(data.changedParts)}}DexiePromise.rejectionMapper=mapError;setDebug(debug,dexieStackFrameFilter);var namedExports=Object.freeze({__proto__:null,Dexie:Dexie$1,liveQuery:liveQuery,default:Dexie$1,RangeSet:RangeSet,mergeRanges:mergeRanges,rangesOverlap:rangesOverlap});__assign(Dexie$1,namedExports,{default:Dexie$1});return Dexie$1});(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports,require("dexie")):typeof define==="function"&&define.amd?define(["exports","dexie"],factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,factory(global.DexieExportImport={},global.Dexie))})(this,function(exports,Dexie){"use strict";function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var Dexie__default=_interopDefaultLegacy(Dexie);function __awaiter(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]-1){var innerObj=obj[unescapeKeyPathComponent(keyPath.slice(0,period))];return innerObj===undefined?undefined:getByKeyPath(innerObj,keyPath.slice(period+1))}return obj[unescapeKeyPathComponent(keyPath)]}function setAtKeyPath(obj,keyPath,value){if(keyPath===""){return value}var period=keyPath.indexOf(".");if(period>-1){var innerObj=obj[unescapeKeyPathComponent(keyPath.slice(0,period))];return setAtKeyPath(innerObj,keyPath.slice(period+1),value)}obj[unescapeKeyPathComponent(keyPath)]=value;return obj}function getJSONType(value){return value===null?"null":Array.isArray(value)?"array":_typeof(value)}var keys=Object.keys,isArray=Array.isArray,hasOwn$1={}.hasOwnProperty,internalStateObjPropsToIgnore=["type","replaced","iterateIn","iterateUnsetNumeric"];function nestedPathsFirst(a,b){if(a.keypath===""){return-1}var as=a.keypath.match(/\./g)||0;var bs=b.keypath.match(/\./g)||0;if(as){as=as.length}if(bs){bs=bs.length}return as>bs?-1:asb.keypath}var Typeson=function(){function Typeson(options){_classCallCheck(this,Typeson);this.options=options;this.plainObjectReplacers=[];this.nonplainObjectReplacers=[];this.revivers={};this.types={}}_createClass(Typeson,[{key:"stringify",value:function stringify(obj,replacer,space,opts){opts=_objectSpread2({},this.options,{},opts,{stringification:true});var encapsulated=this.encapsulate(obj,null,opts);if(isArray(encapsulated)){return JSON.stringify(encapsulated[0],replacer,space)}return encapsulated.then(function(res){return JSON.stringify(res,replacer,space)})}},{key:"stringifySync",value:function stringifySync(obj,replacer,space,opts){return this.stringify(obj,replacer,space,_objectSpread2({throwOnBadSyncType:true},opts,{sync:true}))}},{key:"stringifyAsync",value:function stringifyAsync(obj,replacer,space,opts){return this.stringify(obj,replacer,space,_objectSpread2({throwOnBadSyncType:true},opts,{sync:false}))}},{key:"parse",value:function parse(text,reviver,opts){opts=_objectSpread2({},this.options,{},opts,{parse:true});return this.revive(JSON.parse(text,reviver),opts)}},{key:"parseSync",value:function parseSync(text,reviver,opts){return this.parse(text,reviver,_objectSpread2({throwOnBadSyncType:true},opts,{sync:true}))}},{key:"parseAsync",value:function parseAsync(text,reviver,opts){return this.parse(text,reviver,_objectSpread2({throwOnBadSyncType:true},opts,{sync:false}))}},{key:"specialTypeNames",value:function specialTypeNames(obj,stateObj){var opts=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};opts.returnTypeNames=true;return this.encapsulate(obj,stateObj,opts)}},{key:"rootTypeName",value:function rootTypeName(obj,stateObj){var opts=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};opts.iterateNone=true;return this.encapsulate(obj,stateObj,opts)}},{key:"encapsulate",value:function encapsulate(obj,stateObj,opts){opts=_objectSpread2({sync:true},this.options,{},opts);var _opts=opts,sync=_opts.sync;var that=this,types={},refObjs=[],refKeys=[],promisesDataRoot=[];var cyclic="cyclic"in opts?opts.cyclic:true;var _opts2=opts,encapsulateObserver=_opts2.encapsulateObserver;var ret=_encapsulate("",obj,cyclic,stateObj||{},promisesDataRoot);function finish(ret){var typeNames=Object.values(types);if(opts.iterateNone){if(typeNames.length){return typeNames[0]}return Typeson.getJSONType(ret)}if(typeNames.length){if(opts.returnTypeNames){return _toConsumableArray(new Set(typeNames))}if(!ret||!isPlainObject(ret)||hasOwn$1.call(ret,"$types")){ret={$:ret,$types:{$:types}}}else{ret.$types=types}}else if(isObject(ret)&&hasOwn$1.call(ret,"$types")){ret={$:ret,$types:true}}if(opts.returnTypeNames){return false}return ret}function checkPromises(_x,_x2){return _checkPromises.apply(this,arguments)}function _checkPromises(){_checkPromises=_asyncToGenerator(regeneratorRuntime.mark(function _callee2(ret,promisesData){var promResults;return regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.next=2;return Promise.all(promisesData.map(function(pd){return pd[1].p}));case 2:promResults=_context2.sent;_context2.next=5;return Promise.all(promResults.map(function(){var _ref=_asyncToGenerator(regeneratorRuntime.mark(function _callee(promResult){var newPromisesData,_promisesData$splice,_promisesData$splice2,prData,_prData,keyPath,cyclic,stateObj,parentObj,key,detectedType,encaps,isTypesonPromise,encaps2;return regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:newPromisesData=[];_promisesData$splice=promisesData.splice(0,1),_promisesData$splice2=_slicedToArray(_promisesData$splice,1),prData=_promisesData$splice2[0];_prData=_slicedToArray(prData,7),keyPath=_prData[0],cyclic=_prData[2],stateObj=_prData[3],parentObj=_prData[4],key=_prData[5],detectedType=_prData[6];encaps=_encapsulate(keyPath,promResult,cyclic,stateObj,newPromisesData,true,detectedType);isTypesonPromise=hasConstructorOf(encaps,TypesonPromise);if(!(keyPath&&isTypesonPromise)){_context.next=11;break}_context.next=8;return encaps.p;case 8:encaps2=_context.sent;parentObj[key]=encaps2;return _context.abrupt("return",checkPromises(ret,newPromisesData));case 11:if(keyPath){parentObj[key]=encaps}else if(isTypesonPromise){ret=encaps.p}else{ret=encaps}return _context.abrupt("return",checkPromises(ret,newPromisesData));case 13:case"end":return _context.stop()}}},_callee)}));return function(_x3){return _ref.apply(this,arguments)}}()));case 5:return _context2.abrupt("return",ret);case 6:case"end":return _context2.stop()}}},_callee2)}));return _checkPromises.apply(this,arguments)}function _adaptBuiltinStateObjectProperties(stateObj,ownKeysObj,cb){Object.assign(stateObj,ownKeysObj);var vals=internalStateObjPropsToIgnore.map(function(prop){var tmp=stateObj[prop];delete stateObj[prop];return tmp});cb();internalStateObjPropsToIgnore.forEach(function(prop,i){stateObj[prop]=vals[i]})}function _encapsulate(keypath,value,cyclic,stateObj,promisesData,resolvingTypesonPromise,detectedType){var ret;var observerData={};var $typeof=_typeof(value);var runObserver=encapsulateObserver?function(obj){var type=detectedType||stateObj.type||Typeson.getJSONType(value);encapsulateObserver(Object.assign(obj||observerData,{keypath:keypath,value:value,cyclic:cyclic,stateObj:stateObj,promisesData:promisesData,resolvingTypesonPromise:resolvingTypesonPromise,awaitingTypesonPromise:hasConstructorOf(value,TypesonPromise)},{type:type}))}:null;if(["string","boolean","number","undefined"].includes($typeof)){if(value===undefined||$typeof==="number"&&(isNaN(value)||value===-Infinity||value===Infinity)){if(stateObj.replaced){ret=value}else{ret=replace(keypath,value,stateObj,promisesData,false,resolvingTypesonPromise,runObserver)}if(ret!==value){observerData={replaced:ret}}}else{ret=value}if(runObserver){runObserver()}return ret}if(value===null){if(runObserver){runObserver()}return value}if(cyclic&&!stateObj.iterateIn&&!stateObj.iterateUnsetNumeric&&value&&_typeof(value)==="object"){var refIndex=refObjs.indexOf(value);if(refIndex<0){if(cyclic===true){refObjs.push(value);refKeys.push(keypath)}}else{types[keypath]="#";if(runObserver){runObserver({cyclicKeypath:refKeys[refIndex]})}return"#"+refKeys[refIndex]}}var isPlainObj=isPlainObject(value);var isArr=isArray(value);var replaced=(isPlainObj||isArr)&&(!that.plainObjectReplacers.length||stateObj.replaced)||stateObj.iterateIn?value:replace(keypath,value,stateObj,promisesData,isPlainObj||isArr,null,runObserver);var clone;if(replaced!==value){ret=replaced;observerData={replaced:replaced}}else{if(keypath===""&&hasConstructorOf(value,TypesonPromise)){promisesData.push([keypath,value,cyclic,stateObj,undefined,undefined,stateObj.type]);ret=value}else if(isArr&&stateObj.iterateIn!=="object"||stateObj.iterateIn==="array"){clone=new Array(value.length);observerData={clone:clone}}else if(!["function","symbol"].includes(_typeof(value))&&!("toJSON"in value)&&!hasConstructorOf(value,TypesonPromise)&&!hasConstructorOf(value,Promise)&&!hasConstructorOf(value,ArrayBuffer)||isPlainObj||stateObj.iterateIn==="object"){clone={};if(stateObj.addLength){clone.length=value.length}observerData={clone:clone}}else{ret=value}}if(runObserver){runObserver()}if(opts.iterateNone){return clone||ret}if(!clone){return ret}if(stateObj.iterateIn){var _loop=function _loop(key){var ownKeysObj={ownKeys:hasOwn$1.call(value,key)};_adaptBuiltinStateObjectProperties(stateObj,ownKeysObj,function(){var kp=keypath+(keypath?".":"")+escapeKeyPathComponent(key);var val=_encapsulate(kp,value[key],Boolean(cyclic),stateObj,promisesData,resolvingTypesonPromise);if(hasConstructorOf(val,TypesonPromise)){promisesData.push([kp,val,Boolean(cyclic),stateObj,clone,key,stateObj.type])}else if(val!==undefined){clone[key]=val}})};for(var key in value){_loop(key)}if(runObserver){runObserver({endIterateIn:true,end:true})}}else{keys(value).forEach(function(key){var kp=keypath+(keypath?".":"")+escapeKeyPathComponent(key);var ownKeysObj={ownKeys:true};_adaptBuiltinStateObjectProperties(stateObj,ownKeysObj,function(){var val=_encapsulate(kp,value[key],Boolean(cyclic),stateObj,promisesData,resolvingTypesonPromise);if(hasConstructorOf(val,TypesonPromise)){promisesData.push([kp,val,Boolean(cyclic),stateObj,clone,key,stateObj.type])}else if(val!==undefined){clone[key]=val}})});if(runObserver){runObserver({endIterateOwn:true,end:true})}}if(stateObj.iterateUnsetNumeric){var vl=value.length;var _loop2=function _loop2(i){if(!(i in value)){var kp=keypath+(keypath?".":"")+i;var ownKeysObj={ownKeys:false};_adaptBuiltinStateObjectProperties(stateObj,ownKeysObj,function(){var val=_encapsulate(kp,undefined,Boolean(cyclic),stateObj,promisesData,resolvingTypesonPromise);if(hasConstructorOf(val,TypesonPromise)){promisesData.push([kp,val,Boolean(cyclic),stateObj,clone,i,stateObj.type])}else if(val!==undefined){clone[i]=val}})}};for(var i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(""===t)return r;var n=t.indexOf(".");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function _await(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var o=Object.keys,a=Array.isArray,c={}.hasOwnProperty,u=["type","replaced","iterateIn","iterateUnsetNumeric"];function _async(e){return function(){for(var t=[],r=0;rn?-1:rt.keypath}var s=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}(Typeson,[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var i=this.encapsulate(e,null,n);return a(i)?JSON.stringify(i[0],t,r):i.then(function(e){return JSON.stringify(e,t,r)})}},{key:"stringifySync",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:"rootTypeName",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,n){var i=_async(function(t,r){return _await(Promise.all(r.map(function(e){return e[1].p})),function(n){return _await(Promise.all(n.map(_async(function(n){var o=!1,a=[],c=_slicedToArray(r.splice(0,1),1),u=_slicedToArray(c[0],7),s=u[0],f=u[2],l=u[3],p=u[4],y=u[5],v=u[6],b=_encapsulate(s,n,f,l,a,!0,v),d=hasConstructorOf(b,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}(function(){if(s&&d)return _await(b.p,function(e){return p[y]=e,o=!0,i(t,a)})},function(e){return o?e:(s?p[y]=b:t=d?b.p:b,i(t,a))})}))),function(){return t})})}),s=(n=_objectSpread2(_objectSpread2({sync:!0},this.options),n)).sync,f=this,l={},p=[],y=[],v=[],b=!("cyclic"in n)||n.cyclic,d=n.encapsulateObserver,h=_encapsulate("",t,b,r||{},v);function finish(e){var t=Object.values(l);if(n.iterateNone)return t.length?t[0]:Typeson.getJSONType(e);if(t.length){if(n.returnTypeNames)return _toConsumableArray(new Set(t));e&&isPlainObject(e)&&!c.call(e,"$types")?e.$types=l:e={$:e,$types:{$:l}}}else isObject(e)&&c.call(e,"$types")&&(e={$:e,$types:!0});return!n.returnTypeNames&&e}function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=u.map(function(t){var r=e[t];return delete e[t],r});r(),u.forEach(function(t,r){e[t]=n[r]})}function _encapsulate(t,r,i,u,s,v,b){var h,g={},m=_typeof(r),O=d?function(n){var o=b||u.type||Typeson.getJSONType(r);d(Object.assign(n||g,{keypath:t,value:r,cyclic:i,stateObj:u,promisesData:s,resolvingTypesonPromise:v,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:o}))}:null;if(["string","boolean","number","undefined"].includes(m))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY?(h=u.replaced?r:replace(t,r,u,s,!1,v,O))!==r&&(g={replaced:h}):h=r,O&&O(),h;if(null===r)return O&&O(),r;if(i&&!u.iterateIn&&!u.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var _=p.indexOf(r);if(!(_<0))return l[t]="#",O&&O({cyclicKeypath:y[_]}),"#"+y[_];!0===i&&(p.push(r),y.push(t))}var j,S=isPlainObject(r),T=a(r),w=(S||T)&&(!f.plainObjectReplacers.length||u.replaced)||u.iterateIn?r:replace(t,r,u,s,S||T,null,O);if(w!==r?(h=w,g={replaced:w}):""===t&&hasConstructorOf(r,e)?(s.push([t,r,i,u,void 0,void 0,u.type]),h=r):T&&"object"!==u.iterateIn||"array"===u.iterateIn?(j=new Array(r.length),g={clone:j}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!S&&"object"!==u.iterateIn?h=r:(j={},u.addLength&&(j.length=r.length),g={clone:j}),O&&O(),n.iterateNone)return j||h;if(!j)return h;if(u.iterateIn){var A=function _loop(n){var o={ownKeys:c.call(r,n)};_adaptBuiltinStateObjectProperties(u,o,function(){var o=t+(t?".":"")+escapeKeyPathComponent(n),a=_encapsulate(o,r[n],Boolean(i),u,s,v);hasConstructorOf(a,e)?s.push([o,a,Boolean(i),u,j,n,u.type]):void 0!==a&&(j[n]=a)})};for(var P in r)A(P);O&&O({endIterateIn:!0,end:!0})}else o(r).forEach(function(n){var o=t+(t?".":"")+escapeKeyPathComponent(n);_adaptBuiltinStateObjectProperties(u,{ownKeys:!0},function(){var t=_encapsulate(o,r[n],Boolean(i),u,s,v);hasConstructorOf(t,e)?s.push([o,t,Boolean(i),u,j,n,u.type]):void 0!==t&&(j[n]=t)})}),O&&O({endIterateOwn:!0,end:!0});if(u.iterateUnsetNumeric){for(var I=r.length,C=function _loop2(n){if(!(n in r)){var o=t+(t?".":"")+n;_adaptBuiltinStateObjectProperties(u,{ownKeys:!1},function(){var t=_encapsulate(o,void 0,Boolean(i),u,s,v);hasConstructorOf(t,e)?s.push([o,t,Boolean(i),u,j,n,u.type]):void 0!==t&&(j[n]=t)})}},N=0;N>2],o+=O[(3&n[a])<<4|n[a+1]>>4],o+=O[(15&n[a+1])<<2|n[a+2]>>6],o+=O[63&n[a+2]];return i%3==2?o=o.slice(0,-1)+"=":i%3==1&&(o=o.slice(0,-2)+"=="),o},T=function decode(e){var t,r,n,i,o=e.length,a=.75*e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);for(var u=new ArrayBuffer(a),s=new Uint8Array(u),f=0;f>4,s[c++]=(15&r)<<4|n>>2,s[c++]=(3&n)<<6|63&i;return u},w={arraybuffer:{test:function test(e){return"ArrayBuffer"===s.toStringTag(e)},replace:function replace(e,t){t.buffers||(t.buffers=[]);var r=t.buffers.indexOf(e);return r>-1?{index:r}:(t.buffers.push(e),S(e))},revive:function revive(e,t){if(t.buffers||(t.buffers=[]),"object"===_typeof$1(e))return t.buffers[e.index];var r=T(e);return t.buffers.push(r),r}}},A="undefined"==typeof self?commonjsGlobal:self,P={};["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"].forEach(function(e){var t=e,r=A[t];r&&(P[e.toLowerCase()]={test:function test(e){return s.toStringTag(e)===t},replace:function replace(e,t){var r=e.buffer,n=e.byteOffset,i=e.length;t.buffers||(t.buffers=[]);var o=t.buffers.indexOf(r);return o>-1?{index:o,byteOffset:n,length:i}:(t.buffers.push(r),{encoded:S(r),byteOffset:n,length:i})},revive:function revive(e,t){t.buffers||(t.buffers=[]);var n,i=e.byteOffset,o=e.length,a=e.encoded,c=e.index;return"index"in e?n=t.buffers[c]:(n=T(a),t.buffers.push(n)),new r(n,i,o)}})});var I={dataview:{test:function test(e){return"DataView"===s.toStringTag(e)},replace:function replace(e,t){var r=e.buffer,n=e.byteOffset,i=e.byteLength;t.buffers||(t.buffers=[]);var o=t.buffers.indexOf(r);return o>-1?{index:o,byteOffset:n,byteLength:i}:(t.buffers.push(r),{encoded:S(r),byteOffset:n,byteLength:i})},revive:function revive(e,t){t.buffers||(t.buffers=[]);var r,n=e.byteOffset,i=e.byteLength,o=e.encoded,a=e.index;return"index"in e?r=t.buffers[a]:(r=T(o),t.buffers.push(r)),new DataView(r,n,i)}}},C={IntlCollator:{test:function test(e){return s.hasConstructorOf(e,Intl.Collator)},replace:function replace(e){return e.resolvedOptions()},revive:function revive(e){return new Intl.Collator(e.locale,e)}},IntlDateTimeFormat:{test:function test(e){return s.hasConstructorOf(e,Intl.DateTimeFormat)},replace:function replace(e){return e.resolvedOptions()},revive:function revive(e){return new Intl.DateTimeFormat(e.locale,e)}},IntlNumberFormat:{test:function test(e){return s.hasConstructorOf(e,Intl.NumberFormat)},replace:function replace(e){return e.resolvedOptions()},revive:function revive(e){return new Intl.NumberFormat(e.locale,e)}}};function string2arraybuffer(e){for(var t=new Uint8Array(e.length),r=0;r>2];base64+=chars[(bytes[_i]&3)<<4|bytes[_i+1]>>4];base64+=chars[(bytes[_i+1]&15)<<2|bytes[_i+2]>>6];base64+=chars[bytes[_i+2]&63]}if(len%3===2){base64=base64.slice(0,-1)+"="}else if(len%3===1){base64=base64.slice(0,-2)+"=="}return base64};var decode=function decode(base64){var len=base64.length;var bufferLength=base64.length*.75;var p=0;var encoded1,encoded2,encoded3,encoded4;if(base64[base64.length-1]==="="){bufferLength--;if(base64[base64.length-2]==="="){bufferLength--}}var arraybuffer=new ArrayBuffer(bufferLength),bytes=new Uint8Array(arraybuffer);for(var _i2=0;_i2>4;bytes[p++]=(encoded2&15)<<4|encoded3>>2;bytes[p++]=(encoded3&3)<<6|encoded4&63}return arraybuffer};var _global=typeof self==="undefined"?global:self;var exportObj={};["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"].forEach(function(typeName){var arrType=typeName;var TypedArray=_global[arrType];if(TypedArray){exportObj[typeName.toLowerCase()+"2"]={test:function(x){return typeson.toStringTag(x)===arrType},replace:function(_a){var buffer=_a.buffer,byteOffset=_a.byteOffset,length=_a.length;return{buffer:buffer,byteOffset:byteOffset,length:length}},revive:function(b64Obj){var buffer=b64Obj.buffer,byteOffset=b64Obj.byteOffset,length=b64Obj.length;return new TypedArray(buffer,byteOffset,length)}}}});var arrayBuffer={arraybuffer:{test:function(x){return typeson.toStringTag(x)==="ArrayBuffer"},replace:function(b){return encode(b,0,b.byteLength)},revive:function(b64){var buffer=decode(b64);return buffer}}};var TSON=(new typeson).register(structuredCloning);var readBlobsSynchronously="FileReaderSync"in self;var blobsToAwait=[];var blobsToAwaitPos=0;TSON.register([arrayBuffer,exportObj,{blob2:{test:function(x){return typeson.toStringTag(x)==="Blob"},replace:function(b){if(b.isClosed){throw new Error("The Blob is closed")}if(readBlobsSynchronously){var data=readBlobSync(b,"binary");var base64=encode(data,0,data.byteLength);return{type:b.type,data:base64}}else{blobsToAwait.push(b);var result={type:b.type,data:{start:blobsToAwaitPos,end:blobsToAwaitPos+b.size}};blobsToAwaitPos+=b.size;return result}},finalize:function(b,ba){b.data=encode(ba,0,ba.byteLength)},revive:function(_a){var type=_a.type,data=_a.data;return new Blob([decode(data)],{type:type})}}}]);TSON.mustFinalize=function(){return blobsToAwait.length>0};TSON.finalize=function(items){return __awaiter(void 0,void 0,void 0,function(){var allChunks,_i,items_1,item,types,arrayType,keyPath,typeName,typeSpec,b;return __generator(this,function(_a){switch(_a.label){case 0:return[4,readBlobAsync(new Blob(blobsToAwait),"binary")];case 1:allChunks=_a.sent();if(items){for(_i=0,items_1=items;_i0){slices.push(",");if(prettyJson){slices.push("\n ")}}mayHaveMoreRows=values.length===LIMIT;if(!inbound)return[3,4];filteredValues=filter?values.filter(function(value){return filter(tableName,value)}):values;tsonValues=filteredValues.map(function(value){return TSON.encapsulate(value)});if(!TSON.mustFinalize())return[3,3];return[4,Dexie__default["default"].waitFor(TSON.finalize(tsonValues))];case 2:_c.sent();_c.label=3;case 3:json=JSON.stringify(tsonValues,undefined,prettyJson?2:undefined);if(prettyJson)json=json.split("\n").join("\n ");slices.push(new Blob([json.substring(1,json.length-1)]));lastNumRows=filteredValues.length;lastKey=values.length>0?Dexie__default["default"].getByKeyPath(values[values.length-1],primKey.keyPath):null;return[3,8];case 4:return[4,chunkedCollection.primaryKeys()];case 5:keys=_c.sent();keyvals=keys.map(function(key,i){return[key,values[i]]});if(filter)keyvals=keyvals.filter(function(_a){var key=_a[0],value=_a[1];return filter(tableName,value,key)});tsonTuples=keyvals.map(function(tuple){return TSON.encapsulate(tuple)});if(!TSON.mustFinalize())return[3,7];return[4,Dexie__default["default"].waitFor(TSON.finalize(tsonTuples))];case 6:_c.sent();_c.label=7;case 7:json=JSON.stringify(tsonTuples,undefined,prettyJson?2:undefined);if(prettyJson)json=json.split("\n").join("\n ");slices.push(new Blob([json.substring(1,json.length-1)]));lastNumRows=keyvals.length;lastKey=keys.length>0?keys[keys.length-1]:null;_c.label=8;case 8:progress.completedRows+=values.length;return[2]}})};_b.label=1;case 1:if(!mayHaveMoreRows)return[3,3];return[5,_loop_2()];case 2:state_1=_b.sent();if(state_1==="break")return[3,3];return[3,1];case 3:slices.push(emptyTableExportJson.substr(posEndRowsArray));progress.completedTables+=1;if(progress.completedTablesmaxAllowed){switch(buffer){case"text":closeText(parser);break;default:error(parser,"Max buffer length exceeded: "+buffer)}}maxActual=Math.max(maxActual,len)}parser.bufferCheckPosition=clarinet.MAX_BUFFER_LENGTH-maxActual+parser.position}function clearBuffers(parser){for(var buffer in buffers){parser[buffer]=buffers[buffer]}}var stringTokenPattern=/[\\"\n]/g;function CParser(opt){if(!(this instanceof CParser))return new CParser(opt);var parser=this;clearBuffers(parser);parser.bufferCheckPosition=clarinet.MAX_BUFFER_LENGTH;parser.q=parser.c=parser.p="";parser.opt=opt||{};parser.closed=parser.closedRoot=parser.sawRoot=false;parser.tag=parser.error=null;parser.state=S.BEGIN;parser.stack=new Array;parser.position=parser.column=0;parser.line=1;parser.slashed=false;parser.unicodeI=0;parser.unicodeS=null;parser.depth=0;emit(parser,"onready")}CParser.prototype={end:function(){end(this)},write:write,resume:function(){this.error=null;return this},close:function(){return this.write(null)}};try{Stream=fakeStream.Stream}catch(ex){Stream=function(){}}function createStream(opt){return new CStream(opt)}function CStream(opt){if(!(this instanceof CStream))return new CStream(opt);this._parser=new CParser(opt);this.writable=true;this.readable=true;this.bytes_remaining=0;this.bytes_in_sequence=0;this.temp_buffs={2:new Buffer(2),3:new Buffer(3),4:new Buffer(4)};this.string="";var me=this;Stream.apply(me);this._parser.onend=function(){me.emit("end")};this._parser.onerror=function(er){me.emit("error",er);me._parser.error=null};streamWraps.forEach(function(ev){Object.defineProperty(me,"on"+ev,{get:function(){return me._parser["on"+ev]},set:function(h){if(!h){me.removeAllListeners(ev);me._parser["on"+ev]=h;return h}me.on(ev,h)},enumerable:true,configurable:false})})}CStream.prototype=Object.create(Stream.prototype,{constructor:{value:CStream}});CStream.prototype.write=function(data){data=new Buffer(data);for(var i=0;i0){for(var j=0;j=128){if(n>=194&&n<=223)this.bytes_in_sequence=2;if(n>=224&&n<=239)this.bytes_in_sequence=3;if(n>=240&&n<=244)this.bytes_in_sequence=4;if(this.bytes_in_sequence+i>data.length){for(var k=0;k<=data.length-1-i;k++){this.temp_buffs[this.bytes_in_sequence][k]=data[i+k]}this.bytes_remaining=i+this.bytes_in_sequence-data.length;return true}else{this.string=data.slice(i,i+this.bytes_in_sequence).toString();i=i+this.bytes_in_sequence-1;this._parser.write(this.string);this.emit("data",this.string);continue}}for(var p=i;p=128)break}this.string=data.slice(i,p).toString();this._parser.write(this.string);this.emit("data",this.string);i=p-1;continue}};CStream.prototype.end=function(chunk){if(chunk&&chunk.length)this._parser.write(chunk.toString());this._parser.end();return true};CStream.prototype.on=function(ev,handler){var me=this;if(!me._parser["on"+ev]&&streamWraps.indexOf(ev)!==-1){me._parser["on"+ev]=function(){var args=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);args.splice(0,0,ev);me.emit.apply(me,args)}}return Stream.prototype.on.call(me,ev,handler)};CStream.prototype.destroy=function(){clearBuffers(this._parser);this.emit("close")};function emit(parser,event,data){if(clarinet.INFO)console.log("-- emit",event,data);if(parser[event])parser[event](data)}function emitNode(parser,event,data){closeValue(parser);emit(parser,event,data)}function closeValue(parser,event){parser.textNode=textopts(parser.opt,parser.textNode);if(parser.textNode!==undefined){emit(parser,event?event:"onvalue",parser.textNode)}parser.textNode=undefined}function closeNumber(parser){if(parser.numberNode)emit(parser,"onvalue",parseFloat(parser.numberNode));parser.numberNode=""}function textopts(opt,text){if(text===undefined){return text}if(opt.trim)text=text.trim();if(opt.normalize)text=text.replace(/\s+/g," ");return text}function error(parser,er){closeValue(parser);er+="\nLine: "+parser.line+"\nColumn: "+parser.column+"\nChar: "+parser.c;er=new Error(er);parser.error=er;emit(parser,"onerror",er);return parser}function end(parser){if(parser.state!==S.VALUE||parser.depth!==0)error(parser,"Unexpected end");closeValue(parser);parser.c="";parser.closed=true;emit(parser,"onend");CParser.call(parser,parser.opt);return parser}function isWhitespace(c){return c===Char.carriageReturn||c===Char.lineFeed||c===Char.space||c===Char.tab}function write(chunk){var parser=this;if(this.error)throw this.error;if(parser.closed)return error(parser,"Cannot write after close. Assign an onready handler.");if(chunk===null)return end(parser);var i=0,c=chunk.charCodeAt(0),p=parser.p;if(clarinet.DEBUG)console.log("write -> ["+chunk+"]");while(c){p=c;parser.c=c=chunk.charCodeAt(i++);if(p!==c)parser.p=p;else p=parser.p;if(!c)break;if(clarinet.DEBUG)console.log(i,c,clarinet.STATE[parser.state]);parser.position++;if(c===Char.lineFeed){parser.line++;parser.column=0}else parser.column++;switch(parser.state){case S.BEGIN:if(c===Char.openBrace)parser.state=S.OPEN_OBJECT;else if(c===Char.openBracket)parser.state=S.OPEN_ARRAY;else if(!isWhitespace(c))error(parser,"Non-whitespace before {[.");continue;case S.OPEN_KEY:case S.OPEN_OBJECT:if(isWhitespace(c))continue;if(parser.state===S.OPEN_KEY)parser.stack.push(S.CLOSE_KEY);else{if(c===Char.closeBrace){emit(parser,"onopenobject");this.depth++;emit(parser,"oncloseobject");this.depth--;parser.state=parser.stack.pop()||S.VALUE;continue}else parser.stack.push(S.CLOSE_OBJECT)}if(c===Char.doubleQuote)parser.state=S.STRING;else error(parser,'Malformed object key should start with "');continue;case S.CLOSE_KEY:case S.CLOSE_OBJECT:if(isWhitespace(c))continue;parser.state===S.CLOSE_KEY?"key":"object";if(c===Char.colon){if(parser.state===S.CLOSE_OBJECT){parser.stack.push(S.CLOSE_OBJECT);closeValue(parser,"onopenobject");this.depth++}else closeValue(parser,"onkey");parser.state=S.VALUE}else if(c===Char.closeBrace){emitNode(parser,"oncloseobject");this.depth--;parser.state=parser.stack.pop()||S.VALUE}else if(c===Char.comma){if(parser.state===S.CLOSE_OBJECT)parser.stack.push(S.CLOSE_OBJECT);closeValue(parser);parser.state=S.OPEN_KEY}else error(parser,"Bad object");continue;case S.OPEN_ARRAY:case S.VALUE:if(isWhitespace(c))continue;if(parser.state===S.OPEN_ARRAY){emit(parser,"onopenarray");this.depth++;parser.state=S.VALUE;if(c===Char.closeBracket){emit(parser,"onclosearray");this.depth--;parser.state=parser.stack.pop()||S.VALUE;continue}else{parser.stack.push(S.CLOSE_ARRAY)}}if(c===Char.doubleQuote)parser.state=S.STRING;else if(c===Char.openBrace)parser.state=S.OPEN_OBJECT;else if(c===Char.openBracket)parser.state=S.OPEN_ARRAY;else if(c===Char.t)parser.state=S.TRUE;else if(c===Char.f)parser.state=S.FALSE;else if(c===Char.n)parser.state=S.NULL;else if(c===Char.minus){parser.numberNode+="-"}else if(Char._0<=c&&c<=Char._9){parser.numberNode+=String.fromCharCode(c);parser.state=S.NUMBER_DIGIT}else error(parser,"Bad value");continue;case S.CLOSE_ARRAY:if(c===Char.comma){parser.stack.push(S.CLOSE_ARRAY);closeValue(parser,"onvalue");parser.state=S.VALUE}else if(c===Char.closeBracket){emitNode(parser,"onclosearray");this.depth--;parser.state=parser.stack.pop()||S.VALUE}else if(isWhitespace(c))continue;else error(parser,"Bad array");continue;case S.STRING:if(parser.textNode===undefined){parser.textNode=""}var starti=i-1,slashed=parser.slashed,unicodeI=parser.unicodeI;STRING_BIGLOOP:while(true){if(clarinet.DEBUG)console.log(i,c,clarinet.STATE[parser.state],slashed);while(unicodeI>0){parser.unicodeS+=String.fromCharCode(c);c=chunk.charCodeAt(i++);parser.position++;if(unicodeI===4){parser.textNode+=String.fromCharCode(parseInt(parser.unicodeS,16));unicodeI=0;starti=i-1}else{unicodeI++}if(!c)break STRING_BIGLOOP}if(c===Char.doubleQuote&&!slashed){parser.state=parser.stack.pop()||S.VALUE;parser.textNode+=chunk.substring(starti,i-1);parser.position+=i-1-starti;break}if(c===Char.backslash&&!slashed){slashed=true;parser.textNode+=chunk.substring(starti,i-1);parser.position+=i-1-starti;c=chunk.charCodeAt(i++);parser.position++;if(!c)break}if(slashed){slashed=false;if(c===Char.n){parser.textNode+="\n"}else if(c===Char.r){parser.textNode+="\r"}else if(c===Char.t){parser.textNode+="\t"}else if(c===Char.f){parser.textNode+="\f"}else if(c===Char.b){parser.textNode+="\b"}else if(c===Char.u){unicodeI=1;parser.unicodeS=""}else{parser.textNode+=String.fromCharCode(c)}c=chunk.charCodeAt(i++);parser.position++;starti=i-1;if(!c)break;else continue}stringTokenPattern.lastIndex=i;var reResult=stringTokenPattern.exec(chunk);if(reResult===null){i=chunk.length+1;parser.textNode+=chunk.substring(starti,i-1);parser.position+=i-1-starti;break}i=reResult.index+1;c=chunk.charCodeAt(reResult.index);if(!c){parser.textNode+=chunk.substring(starti,i-1);parser.position+=i-1-starti;break}}parser.slashed=slashed;parser.unicodeI=unicodeI;continue;case S.TRUE:if(c===Char.r)parser.state=S.TRUE2;else error(parser,"Invalid true started with t"+c);continue;case S.TRUE2:if(c===Char.u)parser.state=S.TRUE3;else error(parser,"Invalid true started with tr"+c);continue;case S.TRUE3:if(c===Char.e){emit(parser,"onvalue",true);parser.state=parser.stack.pop()||S.VALUE}else error(parser,"Invalid true started with tru"+c);continue;case S.FALSE:if(c===Char.a)parser.state=S.FALSE2;else error(parser,"Invalid false started with f"+c);continue;case S.FALSE2:if(c===Char.l)parser.state=S.FALSE3;else error(parser,"Invalid false started with fa"+c);continue;case S.FALSE3:if(c===Char.s)parser.state=S.FALSE4;else error(parser,"Invalid false started with fal"+c);continue;case S.FALSE4:if(c===Char.e){emit(parser,"onvalue",false);parser.state=parser.stack.pop()||S.VALUE}else error(parser,"Invalid false started with fals"+c);continue;case S.NULL:if(c===Char.u)parser.state=S.NULL2;else error(parser,"Invalid null started with n"+c);continue;case S.NULL2:if(c===Char.l)parser.state=S.NULL3;else error(parser,"Invalid null started with nu"+c);continue;case S.NULL3:if(c===Char.l){emit(parser,"onvalue",null);parser.state=parser.stack.pop()||S.VALUE}else error(parser,"Invalid null started with nul"+c);continue;case S.NUMBER_DECIMAL_POINT:if(c===Char.period){parser.numberNode+=".";parser.state=S.NUMBER_DIGIT}else error(parser,"Leading zero not followed by .");continue;case S.NUMBER_DIGIT:if(Char._0<=c&&c<=Char._9)parser.numberNode+=String.fromCharCode(c);else if(c===Char.period){if(parser.numberNode.indexOf(".")!==-1)error(parser,"Invalid number has two dots");parser.numberNode+="."}else if(c===Char.e||c===Char.E){if(parser.numberNode.indexOf("e")!==-1||parser.numberNode.indexOf("E")!==-1)error(parser,"Invalid number has two exponential");parser.numberNode+="e"}else if(c===Char.plus||c===Char.minus){if(!(p===Char.e||p===Char.E))error(parser,"Invalid symbol in number");parser.numberNode+=String.fromCharCode(c)}else{closeNumber(parser);i--;parser.state=parser.stack.pop()||S.VALUE}continue;default:error(parser,"Unknown state: "+parser.state)}}if(parser.position>=parser.bufferCheckPosition)checkBufferLength(parser);return parser}})(exports)});function JsonStream(blob){var pos=0;var parser=JsonParser(true);var rv={pullAsync:function(numBytes){return __awaiter(this,void 0,void 0,function(){var slize,jsonPart,result;return __generator(this,function(_a){switch(_a.label){case 0:slize=blob.slice(pos,pos+numBytes);pos+=numBytes;return[4,readBlobAsync(slize,"text")];case 1:jsonPart=_a.sent();result=parser.write(jsonPart);rv.result=result||{};return[2,result]}})})},pullSync:function(numBytes){var slize=blob.slice(pos,pos+numBytes);pos+=numBytes;var jsonPart=readBlobSync(slize,"text");var result=parser.write(jsonPart);rv.result=result||{};return result},done:function(){return parser.done()},eof:function(){return pos>=blob.size},result:{}};return rv}function JsonParser(allowPartial){var parser=clarinet_1.parser();var level=0;var result;var stack=[];var obj;var key;var done=false;var array=false;parser.onopenobject=function(newKey){var newObj={};newObj.incomplete=true;if(!result)result=newObj;if(obj){stack.push([key,obj,array]);if(allowPartial){if(array){obj.push(newObj)}else{obj[key]=newObj}}}obj=newObj;key=newKey;array=false;++level};parser.onkey=function(newKey){return key=newKey};parser.onvalue=function(value){return array?obj.push(value):obj[key]=value};parser.oncloseobject=function(){var _a;delete obj.incomplete;key=null;if(--level===0){done=true}else{var completedObj=obj;_a=stack.pop(),key=_a[0],obj=_a[1],array=_a[2];if(!allowPartial){if(array){obj.push(completedObj)}else{obj[key]=completedObj}}}};parser.onopenarray=function(){var newObj=[];newObj.incomplete=true;if(!result)result=newObj;if(obj){stack.push([key,obj,array]);if(allowPartial){if(array){obj.push(newObj)}else{obj[key]=newObj}}}obj=newObj;array=true;key=null;++level};parser.onclosearray=function(){var _a;delete obj.incomplete;key=null;if(--level===0){done=true}else{var completedObj=obj;_a=stack.pop(),key=_a[0],obj=_a[1],array=_a[2];if(!allowPartial){if(array){obj.push(completedObj)}else{obj[key]=completedObj}}}};return{write:function(jsonPart){parser.write(jsonPart);return result},done:function(){return done}}}var DEFAULT_KILOBYTES_PER_CHUNK=1024;function importDB(exportedData,options){return __awaiter(this,void 0,void 0,function(){var CHUNK_SIZE,stream,dbExport,db;return __generator(this,function(_a){switch(_a.label){case 0:options=options||{};CHUNK_SIZE=options.chunkSizeBytes||DEFAULT_KILOBYTES_PER_CHUNK*1024;return[4,loadUntilWeGotEnoughData(exportedData,CHUNK_SIZE)];case 1:stream=_a.sent();dbExport=stream.result.data;db=new Dexie__default["default"](dbExport.databaseName);db.version(dbExport.databaseVersion).stores(extractDbSchema(dbExport));return[4,importInto(db,stream,options)];case 2:_a.sent();return[2,db]}})})}function peakImportFile(exportedData){return __awaiter(this,void 0,void 0,function(){var stream;return __generator(this,function(_a){switch(_a.label){case 0:stream=JsonStream(exportedData);_a.label=1;case 1:if(!!stream.eof())return[3,3];return[4,stream.pullAsync(5*1024)];case 2:_a.sent();if(stream.result.data&&stream.result.data.data){delete stream.result.data.data;return[3,3]}return[3,1];case 3:return[2,stream.result]}})})}function importInto(db,exportedData,options){return __awaiter(this,void 0,void 0,function(){function importAll(){return __awaiter(this,void 0,void 0,function(){var _loop_1,_i,_a,tableExport,state_1;return __generator(this,function(_b){switch(_b.label){case 0:_loop_1=function(tableExport){var tableName,table,tableSchemaStr,sourceRows,rows,i,obj,filter,filteredRows,_c,keys,values;return __generator(this,function(_d){switch(_d.label){case 0:if(!tableExport.rows)return[2,"break"];if(!tableExport.rows.incomplete&&tableExport.rows.length===0)return[2,"continue"];if(progressCallback){Dexie__default["default"].ignoreTransaction(function(){return progressCallback(progress)})}tableName=tableExport.tableName;table=db.table(tableName);tableSchemaStr=dbExport.tables.filter(function(t){return t.name===tableName})[0].schema;if(!table){if(!options.acceptMissingTables)throw new Error("Exported table ".concat(tableExport.tableName," is missing in installed database"));else return[2,"continue"]}if(!options.acceptChangedPrimaryKey&&tableSchemaStr.split(",")[0]!=table.schema.primKey.src){throw new Error("Primary key differs for table ".concat(tableExport.tableName,". "))}sourceRows=tableExport.rows;rows=[];for(i=0;i0&&dbExport.data[0].rows&&!dbExport.data[0].rows.incomplete){dbExport.data.splice(0,1)}if(!(!jsonStream.done()&&!jsonStream.eof()))return[3,8];if(!readBlobsSynchronously)return[3,5];jsonStream.pullSync(CHUNK_SIZE);return[3,7];case 5:return[4,Dexie__default["default"].waitFor(jsonStream.pullAsync(CHUNK_SIZE))];case 6:_b.sent();_b.label=7;case 7:return[3,9];case 8:return[3,10];case 9:return[3,0];case 10:return[2]}})})}var CHUNK_SIZE,jsonStream,dbExportFile,readBlobsSynchronously,dbExport,progressCallback,progress,_i,_a,table;return __generator(this,function(_b){switch(_b.label){case 0:options=options||{};CHUNK_SIZE=options.chunkSizeBytes||DEFAULT_KILOBYTES_PER_CHUNK*1024;return[4,loadUntilWeGotEnoughData(exportedData,CHUNK_SIZE)];case 1:jsonStream=_b.sent();dbExportFile=jsonStream.result;readBlobsSynchronously="FileReaderSync"in self;dbExport=dbExportFile.data;if(!options.acceptNameDiff&&db.name!==dbExport.databaseName)throw new Error("Name differs. Current database name is ".concat(db.name," but export is ").concat(dbExport.databaseName));if(!options.acceptVersionDiff&&db.verno!==dbExport.databaseVersion){throw new Error("Database version differs. Current database is in version ".concat(db.verno," but export is ").concat(dbExport.databaseVersion))}progressCallback=options.progressCallback;progress={done:false,completedRows:0,completedTables:0,totalRows:dbExport.tables.reduce(function(p,c){return p+c.rowCount},0),totalTables:dbExport.tables.length};if(progressCallback){Dexie__default["default"].ignoreTransaction(function(){return progressCallback(progress)})}if(!options.clearTablesBeforeImport)return[3,5];_i=0,_a=db.tables;_b.label=2;case 2:if(!(_i<_a.length))return[3,5];table=_a[_i];return[4,table.clear()];case 3:_b.sent();_b.label=4;case 4:_i++;return[3,2];case 5:if(!options.noTransaction)return[3,7];return[4,importAll()];case 6:_b.sent();return[3,9];case 7:return[4,db.transaction("rw",db.tables,importAll)];case 8:_b.sent();_b.label=9;case 9:progress.done=true;if(progressCallback){Dexie__default["default"].ignoreTransaction(function(){return progressCallback(progress)})}return[2]}})})}function loadUntilWeGotEnoughData(exportedData,CHUNK_SIZE){return __awaiter(this,void 0,void 0,function(){var stream,dbExportFile;return __generator(this,function(_a){switch(_a.label){case 0:stream="slice"in exportedData?JsonStream(exportedData):exportedData;_a.label=1;case 1:if(!!stream.eof())return[3,3];return[4,stream.pullAsync(CHUNK_SIZE)];case 2:_a.sent();if(stream.result.data&&stream.result.data.data)return[3,3];return[3,1];case 3:dbExportFile=stream.result;if(!dbExportFile||dbExportFile.formatName!="dexie")throw new Error("Given file is not a dexie export");if(dbExportFile.formatVersion>VERSION){throw new Error("Format version ".concat(dbExportFile.formatVersion," not supported"))}if(!dbExportFile.data){throw new Error("No data in export file")}if(!dbExportFile.data.databaseName){throw new Error("Missing databaseName in export file")}if(!dbExportFile.data.databaseVersion){throw new Error("Missing databaseVersion in export file")}if(!dbExportFile.data.tables){throw new Error("Missing tables in export file")}return[2,stream]}})})}Dexie__default["default"].prototype.export=function(options){return exportDB(this,options)};Dexie__default["default"].prototype.import=function(blob,options){return importInto(this,blob,options)};Dexie__default["default"].import=function(blob,options){return importDB(blob,options)};var dexieExportImport=function(){throw new Error("This addon extends Dexie.prototype globally and does not have be included in Dexie constructor's addons options.")};exports["default"]=dexieExportImport;exports.exportDB=exportDB;exports.importDB=importDB;exports.importInto=importInto;exports.peakImportFile=peakImportFile;Object.defineProperty(exports,"__esModule",{value:true})});(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.download=factory()}})(this,function(){return function download(data,strFileName,strMimeType){var self=window,defaultMime="application/octet-stream",mimeType=strMimeType||defaultMime,payload=data,url=!strFileName&&!strMimeType&&payload,anchor=document.createElement("a"),toString=function(a){return String(a)},myBlob=self.Blob||self.MozBlob||self.WebKitBlob||toString,fileName=strFileName||"download",blob,reader;myBlob=myBlob.call?myBlob.bind(self):Blob;if(String(this)==="true"){payload=[payload,mimeType];mimeType=payload[0];payload=payload[1]}if(url&&url.length<2048){fileName=url.split("/").pop().split("?")[0];anchor.href=url;if(anchor.href.indexOf(url)!==-1){var ajax=new XMLHttpRequest;ajax.open("GET",url,true);ajax.responseType="blob";ajax.onload=function(e){download(e.target.response,fileName,defaultMime)};setTimeout(function(){ajax.send()},0);return ajax}}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){if(payload.length>1024*1024*1.999&&myBlob!==toString){payload=dataUrlToBlob(payload);mimeType=payload.type||defaultMime}else{return navigator.msSaveBlob?navigator.msSaveBlob(dataUrlToBlob(payload),fileName):saver(payload)}}else{if(/([\x80-\xff])/.test(payload)){var i=0,tempUiArr=new Uint8Array(payload.length),mx=tempUiArr.length;for(i;i