403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/dexie/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/dexie/dist/dexie.bundle.js.map
{"version":3,"file":"dexie.bundle.js","sources":["../src/dexie.js"],"sourcesContent":["/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 4.0.9, Mon Oct 21 2024\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - removed integration with third-party package builders;\n * - add check variables before using them, see tags: 28122018;\n * - add alternative Promise check for Bitrix Cli, see tags: 02032020;\n * - add export for work in Bitrix CoreJS extensions;\n * - add export BX.Dexie and BX.Dexie3 for backward compatibility;\n */\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n    var extendStatics = function(d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    function __extends(d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    }\n    var __assign = function() {\n        __assign = Object.assign || function __assign(t) {\n            for (var s, i = 1, n = arguments.length; i < n; i++) {\n                s = arguments[i];\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n            }\n            return t;\n        };\n        return __assign.apply(this, arguments);\n    };\n    function __spreadArray(to, from, pack) {\n        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n            if (ar || !(i in from)) {\n                if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n                ar[i] = from[i];\n            }\n        }\n        return to.concat(ar || Array.prototype.slice.call(from));\n    }\n\n    var _global = typeof globalThis !== 'undefined' ? globalThis :\n        typeof self !== 'undefined' ? self :\n            typeof window !== 'undefined' ? window :\n                global;\n\n    var keys = Object.keys;\n    var isArray = Array.isArray;\n    if (typeof Promise !== 'undefined' && !_global.Promise) {\n        _global.Promise = Promise;\n    }\n    function extend(obj, extension) {\n        if (typeof extension !== 'object')\n            return obj;\n        keys(extension).forEach(function (key) {\n            obj[key] = extension[key];\n        });\n        return obj;\n    }\n    var getProto = Object.getPrototypeOf;\n    var _hasOwn = {}.hasOwnProperty;\n    function hasOwn(obj, prop) {\n        return _hasOwn.call(obj, prop);\n    }\n    function props(proto, extension) {\n        if (typeof extension === 'function')\n            extension = extension(getProto(proto));\n\t\t// tag start 28122018\n\t\tif (typeof extension !== 'object')\n\t\t\treturn;\n\t\t// tag end 28122018\n        (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n            setProp(proto, key, extension[key]);\n        });\n    }\n    var defineProperty = Object.defineProperty;\n    function setProp(obj, prop, functionOrGetSet, options) {\n        defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n            { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n            { value: functionOrGetSet, configurable: true, writable: true }, options));\n    }\n    function derive(Child) {\n        return {\n            from: function (Parent) {\n                Child.prototype = Object.create(Parent.prototype);\n                setProp(Child.prototype, \"constructor\", Child);\n                return {\n                    extend: props.bind(null, Child.prototype)\n                };\n            }\n        };\n    }\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    function getPropertyDescriptor(obj, prop) {\n        var pd = getOwnPropertyDescriptor(obj, prop);\n        var proto;\n        return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n    }\n    var _slice = [].slice;\n    function slice(args, start, end) {\n        return _slice.call(args, start, end);\n    }\n    function override(origFunc, overridedFactory) {\n        return overridedFactory(origFunc);\n    }\n    function assert(b) {\n        if (!b)\n            throw new Error(\"Assertion Failed\");\n    }\n    function asap$1(fn) {\n        if (_global.setImmediate)\n            setImmediate(fn);\n        else\n            setTimeout(fn, 0);\n    }\n    function arrayToObject(array, extractor) {\n        return array.reduce(function (result, item, i) {\n            var nameAndValue = extractor(item, i);\n            if (nameAndValue)\n                result[nameAndValue[0]] = nameAndValue[1];\n            return result;\n        }, {});\n    }\n    function getByKeyPath(obj, keyPath) {\n        if (typeof keyPath === 'string' && hasOwn(obj, keyPath))\n            return obj[keyPath];\n        if (!keyPath)\n            return obj;\n        if (typeof keyPath !== 'string') {\n            var rv = [];\n            for (var i = 0, l = keyPath.length; i < l; ++i) {\n                var val = getByKeyPath(obj, keyPath[i]);\n                rv.push(val);\n            }\n            return rv;\n        }\n        var period = keyPath.indexOf('.');\n        if (period !== -1) {\n            var innerObj = obj[keyPath.substr(0, period)];\n            return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n        }\n        return undefined;\n    }\n    function setByKeyPath(obj, keyPath, value) {\n        if (!obj || keyPath === undefined)\n            return;\n        if ('isFrozen' in Object && Object.isFrozen(obj))\n            return;\n        if (typeof keyPath !== 'string' && 'length' in keyPath) {\n            assert(typeof value !== 'string' && 'length' in value);\n            for (var i = 0, l = keyPath.length; i < l; ++i) {\n                setByKeyPath(obj, keyPath[i], value[i]);\n            }\n        }\n        else {\n            var period = keyPath.indexOf('.');\n            if (period !== -1) {\n                var currentKeyPath = keyPath.substr(0, period);\n                var remainingKeyPath = keyPath.substr(period + 1);\n                if (remainingKeyPath === \"\")\n                    if (value === undefined) {\n                        if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n                            obj.splice(currentKeyPath, 1);\n                        else\n                            delete obj[currentKeyPath];\n                    }\n                    else\n                        obj[currentKeyPath] = value;\n                else {\n                    var innerObj = obj[currentKeyPath];\n                    if (!innerObj || !hasOwn(obj, currentKeyPath))\n                        innerObj = (obj[currentKeyPath] = {});\n                    setByKeyPath(innerObj, remainingKeyPath, value);\n                }\n            }\n            else {\n                if (value === undefined) {\n                    if (isArray(obj) && !isNaN(parseInt(keyPath)))\n                        obj.splice(keyPath, 1);\n                    else\n                        delete obj[keyPath];\n                }\n                else\n                    obj[keyPath] = value;\n            }\n        }\n    }\n    function delByKeyPath(obj, keyPath) {\n        if (typeof keyPath === 'string')\n            setByKeyPath(obj, keyPath, undefined);\n        else if ('length' in keyPath)\n            [].map.call(keyPath, function (kp) {\n                setByKeyPath(obj, kp, undefined);\n            });\n    }\n    function shallowClone(obj) {\n        var rv = {};\n        for (var m in obj) {\n            if (hasOwn(obj, m))\n                rv[m] = obj[m];\n        }\n        return rv;\n    }\n    var concat = [].concat;\n    function flatten(a) {\n        return concat.apply([], a);\n    }\n    var intrinsicTypeNames = \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n        .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\n    var intrinsicTypes = new Set(intrinsicTypeNames.map(function (t) { return _global[t]; }));\n    function cloneSimpleObjectTree(o) {\n        var rv = {};\n        for (var k in o)\n            if (hasOwn(o, k)) {\n                var v = o[k];\n                rv[k] = !v || typeof v !== 'object' || intrinsicTypes.has(v.constructor) ? v : cloneSimpleObjectTree(v);\n            }\n        return rv;\n    }\n    function objectIsEmpty(o) {\n        for (var k in o)\n            if (hasOwn(o, k))\n                return false;\n        return true;\n    }\n    var circularRefs = null;\n    function deepClone(any) {\n        circularRefs = new WeakMap();\n        var rv = innerDeepClone(any);\n        circularRefs = null;\n        return rv;\n    }\n    function innerDeepClone(x) {\n        if (!x || typeof x !== 'object')\n            return x;\n        var rv = circularRefs.get(x);\n        if (rv)\n            return rv;\n        if (isArray(x)) {\n            rv = [];\n            circularRefs.set(x, rv);\n            for (var i = 0, l = x.length; i < l; ++i) {\n                rv.push(innerDeepClone(x[i]));\n            }\n        }\n        else if (intrinsicTypes.has(x.constructor)) {\n            rv = x;\n        }\n        else {\n            var proto = getProto(x);\n            rv = proto === Object.prototype ? {} : Object.create(proto);\n            circularRefs.set(x, rv);\n            for (var prop in x) {\n                if (hasOwn(x, prop)) {\n                    rv[prop] = innerDeepClone(x[prop]);\n                }\n            }\n        }\n        return rv;\n    }\n    var toString = {}.toString;\n    function toStringTag(o) {\n        return toString.call(o).slice(8, -1);\n    }\n    var iteratorSymbol = typeof Symbol !== 'undefined' ?\n        Symbol.iterator :\n        '@@iterator';\n    var getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n        var i;\n        return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n    } : function () { return null; };\n    function delArrayItem(a, x) {\n        var i = a.indexOf(x);\n        if (i >= 0)\n            a.splice(i, 1);\n        return i >= 0;\n    }\n    var NO_CHAR_ARRAY = {};\n    function getArrayOf(arrayLike) {\n        var i, a, x, it;\n        if (arguments.length === 1) {\n            if (isArray(arrayLike))\n                return arrayLike.slice();\n            if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n                return [arrayLike];\n            if ((it = getIteratorOf(arrayLike))) {\n                a = [];\n                while ((x = it.next()), !x.done)\n                    a.push(x.value);\n                return a;\n            }\n            if (arrayLike == null)\n                return [arrayLike];\n            i = arrayLike.length;\n            if (typeof i === 'number') {\n                a = new Array(i);\n                while (i--)\n                    a[i] = arrayLike[i];\n                return a;\n            }\n            return [arrayLike];\n        }\n        i = arguments.length;\n        a = new Array(i);\n        while (i--)\n            a[i] = arguments[i];\n        return a;\n    }\n    var isAsyncFunction = typeof Symbol !== 'undefined'\n        ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n        : function () { return false; };\n\n    var dexieErrorNames = [\n        'Modify',\n        'Bulk',\n        'OpenFailed',\n        'VersionChange',\n        'Schema',\n        'Upgrade',\n        'InvalidTable',\n        'MissingAPI',\n        'NoSuchDatabase',\n        'InvalidArgument',\n        'SubTransaction',\n        'Unsupported',\n        'Internal',\n        'DatabaseClosed',\n        'PrematureCommit',\n        'ForeignAwait'\n    ];\n    var idbDomErrorNames = [\n        'Unknown',\n        'Constraint',\n        'Data',\n        'TransactionInactive',\n        'ReadOnly',\n        'Version',\n        'NotFound',\n        'InvalidState',\n        'InvalidAccess',\n        'Abort',\n        'Timeout',\n        'QuotaExceeded',\n        'Syntax',\n        'DataClone'\n    ];\n    var errorList = dexieErrorNames.concat(idbDomErrorNames);\n    var defaultTexts = {\n        VersionChanged: \"Database version changed by other database connection\",\n        DatabaseClosed: \"Database has been closed\",\n        Abort: \"Transaction aborted\",\n        TransactionInactive: \"Transaction has already completed or failed\",\n        MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n    };\n    function DexieError(name, msg) {\n        this.name = name;\n        this.message = msg;\n    }\n    derive(DexieError).from(Error).extend({\n        toString: function () { return this.name + \": \" + this.message; }\n    });\n    function getMultiErrorMessage(msg, failures) {\n        return msg + \". Errors: \" + Object.keys(failures)\n            .map(function (key) { return failures[key].toString(); })\n            .filter(function (v, i, s) { return s.indexOf(v) === i; })\n            .join('\\n');\n    }\n    function ModifyError(msg, failures, successCount, failedKeys) {\n        this.failures = failures;\n        this.failedKeys = failedKeys;\n        this.successCount = successCount;\n        this.message = getMultiErrorMessage(msg, failures);\n    }\n    derive(ModifyError).from(DexieError);\n    function BulkError(msg, failures) {\n        this.name = \"BulkError\";\n        this.failures = Object.keys(failures).map(function (pos) { return failures[pos]; });\n        this.failuresByPos = failures;\n        this.message = getMultiErrorMessage(msg, this.failures);\n    }\n    derive(BulkError).from(DexieError);\n    var errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\n    var BaseException = DexieError;\n    var exceptions = errorList.reduce(function (obj, name) {\n        var fullName = name + \"Error\";\n        function DexieError(msgOrInner, inner) {\n            this.name = fullName;\n            if (!msgOrInner) {\n                this.message = defaultTexts[name] || fullName;\n                this.inner = null;\n            }\n            else if (typeof msgOrInner === 'string') {\n                this.message = \"\".concat(msgOrInner).concat(!inner ? '' : '\\n ' + inner);\n                this.inner = inner || null;\n            }\n            else if (typeof msgOrInner === 'object') {\n                this.message = \"\".concat(msgOrInner.name, \" \").concat(msgOrInner.message);\n                this.inner = msgOrInner;\n            }\n        }\n        derive(DexieError).from(BaseException);\n        obj[name] = DexieError;\n        return obj;\n    }, {});\n    exceptions.Syntax = SyntaxError;\n    exceptions.Type = TypeError;\n    exceptions.Range = RangeError;\n    var exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n        obj[name + \"Error\"] = exceptions[name];\n        return obj;\n    }, {});\n    function mapError(domError, message) {\n        if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n            return domError;\n        var rv = new exceptionMap[domError.name](message || domError.message, domError);\n        if (\"stack\" in domError) {\n            setProp(rv, \"stack\", { get: function () {\n                    return this.inner.stack;\n                } });\n        }\n        return rv;\n    }\n    var fullNameExceptions = errorList.reduce(function (obj, name) {\n        if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n            obj[name + \"Error\"] = exceptions[name];\n        return obj;\n    }, {});\n    fullNameExceptions.ModifyError = ModifyError;\n    fullNameExceptions.DexieError = DexieError;\n    fullNameExceptions.BulkError = BulkError;\n\n    function nop() { }\n    function mirror(val) { return val; }\n    function pureFunctionChain(f1, f2) {\n        if (f1 == null || f1 === mirror)\n            return f2;\n        return function (val) {\n            return f2(f1(val));\n        };\n    }\n    function callBoth(on1, on2) {\n        return function () {\n            on1.apply(this, arguments);\n            on2.apply(this, arguments);\n        };\n    }\n    function hookCreatingChain(f1, f2) {\n        if (f1 === nop)\n            return f2;\n        return function () {\n            var res = f1.apply(this, arguments);\n            if (res !== undefined)\n                arguments[0] = res;\n            var onsuccess = this.onsuccess,\n            onerror = this.onerror;\n            this.onsuccess = null;\n            this.onerror = null;\n            var res2 = f2.apply(this, arguments);\n            if (onsuccess)\n                this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n            if (onerror)\n                this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n            return res2 !== undefined ? res2 : res;\n        };\n    }\n    function hookDeletingChain(f1, f2) {\n        if (f1 === nop)\n            return f2;\n        return function () {\n            f1.apply(this, arguments);\n            var onsuccess = this.onsuccess,\n            onerror = this.onerror;\n            this.onsuccess = this.onerror = null;\n            f2.apply(this, arguments);\n            if (onsuccess)\n                this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n            if (onerror)\n                this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n        };\n    }\n    function hookUpdatingChain(f1, f2) {\n        if (f1 === nop)\n            return f2;\n        return function (modifications) {\n            var res = f1.apply(this, arguments);\n            extend(modifications, res);\n            var onsuccess = this.onsuccess,\n            onerror = this.onerror;\n            this.onsuccess = null;\n            this.onerror = null;\n            var res2 = f2.apply(this, arguments);\n            if (onsuccess)\n                this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n            if (onerror)\n                this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n            return res === undefined ?\n                (res2 === undefined ? undefined : res2) :\n                (extend(res, res2));\n        };\n    }\n    function reverseStoppableEventChain(f1, f2) {\n        if (f1 === nop)\n            return f2;\n        return function () {\n            if (f2.apply(this, arguments) === false)\n                return false;\n            return f1.apply(this, arguments);\n        };\n    }\n    function promisableChain(f1, f2) {\n        if (f1 === nop)\n            return f2;\n        return function () {\n            var res = f1.apply(this, arguments);\n            if (res && typeof res.then === 'function') {\n                var thiz = this, i = arguments.length, args = new Array(i);\n                while (i--)\n                    args[i] = arguments[i];\n                return res.then(function () {\n                    return f2.apply(thiz, args);\n                });\n            }\n            return f2.apply(this, arguments);\n        };\n    }\n\n    var debug = typeof location !== 'undefined' &&\n        /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\n    function setDebug(value, filter) {\n        debug = value;\n    }\n\n    var INTERNAL = {};\n    var ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ?\n        [] :\n        (function () {\n            var globalP = Promise.resolve();\n            if (typeof crypto === 'undefined' || !crypto.subtle)\n                return [globalP, getProto(globalP), globalP];\n            var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n            return [\n                nativeP,\n                getProto(nativeP),\n                globalP\n            ];\n        })(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\n    var NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\n    var patchGlobalPromise = !!resolvedGlobalPromise;\n    function schedulePhysicalTick() {\n        queueMicrotask(physicalTick);\n    }\n    var asap = function (callback, args) {\n        microtickQueue.push([callback, args]);\n        if (needsNewPhysicalTick) {\n            schedulePhysicalTick();\n            needsNewPhysicalTick = false;\n        }\n    };\n    var isOutsideMicroTick = true,\n    needsNewPhysicalTick = true,\n    unhandledErrors = [],\n    rejectingErrors = [],\n    rejectionMapper = mirror;\n    var globalPSD = {\n        id: 'global',\n        global: true,\n        ref: 0,\n        unhandleds: [],\n        onunhandled: nop,\n        pgp: false,\n        env: {},\n        finalize: nop\n    };\n    var PSD = globalPSD;\n    var microtickQueue = [];\n    var numScheduledCalls = 0;\n    var tickFinalizers = [];\n    function DexiePromise(fn) {\n        if (typeof this !== 'object')\n            throw new TypeError('Promises must be constructed via new');\n        this._listeners = [];\n        this._lib = false;\n        var psd = (this._PSD = PSD);\n        if (typeof fn !== 'function') {\n            if (fn !== INTERNAL)\n                throw new TypeError('Not a function');\n            this._state = arguments[1];\n            this._value = arguments[2];\n            if (this._state === false)\n                handleRejection(this, this._value);\n            return;\n        }\n        this._state = null;\n        this._value = null;\n        ++psd.ref;\n        executePromiseTask(this, fn);\n    }\n    var thenProp = {\n        get: function () {\n            var psd = PSD, microTaskId = totalEchoes;\n            function then(onFulfilled, onRejected) {\n                var _this = this;\n                var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n                var cleanup = possibleAwait && !decrementExpectedAwaits();\n                var rv = new DexiePromise(function (resolve, reject) {\n                    propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n                });\n                if (this._consoleTask)\n                    rv._consoleTask = this._consoleTask;\n                return rv;\n            }\n            then.prototype = INTERNAL;\n            return then;\n        },\n        set: function (value) {\n            setProp(this, 'then', value && value.prototype === INTERNAL ?\n                thenProp :\n                {\n                    get: function () {\n                        return value;\n                    },\n                    set: thenProp.set\n                });\n        }\n    };\n    props(DexiePromise.prototype, {\n        then: thenProp,\n        _then: function (onFulfilled, onRejected) {\n            propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n        },\n        catch: function (onRejected) {\n            if (arguments.length === 1)\n                return this.then(null, onRejected);\n            var type = arguments[0], handler = arguments[1];\n            return typeof type === 'function' ? this.then(null, function (err) {\n                return err instanceof type ? handler(err) : PromiseReject(err);\n            })\n                : this.then(null, function (err) {\n                    return err && err.name === type ? handler(err) : PromiseReject(err);\n                });\n        },\n        finally: function (onFinally) {\n            return this.then(function (value) {\n                return DexiePromise.resolve(onFinally()).then(function () { return value; });\n            }, function (err) {\n                return DexiePromise.resolve(onFinally()).then(function () { return PromiseReject(err); });\n            });\n        },\n        timeout: function (ms, msg) {\n            var _this = this;\n            return ms < Infinity ?\n                new DexiePromise(function (resolve, reject) {\n                    var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n                    _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n                }) : this;\n        }\n    });\n    if (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n        setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\n    globalPSD.env = snapShot();\n    function Listener(onFulfilled, onRejected, resolve, reject, zone) {\n        this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n        this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n        this.resolve = resolve;\n        this.reject = reject;\n        this.psd = zone;\n    }\n    props(DexiePromise, {\n        all: function () {\n            var values = getArrayOf.apply(null, arguments)\n                .map(onPossibleParallellAsync);\n            return new DexiePromise(function (resolve, reject) {\n                if (values.length === 0)\n                    resolve([]);\n                var remaining = values.length;\n                values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n                    values[i] = x;\n                    if (!--remaining)\n                        resolve(values);\n                }, reject); });\n            });\n        },\n        resolve: function (value) {\n            if (value instanceof DexiePromise)\n                return value;\n            if (value && typeof value.then === 'function')\n                return new DexiePromise(function (resolve, reject) {\n                    value.then(resolve, reject);\n                });\n            var rv = new DexiePromise(INTERNAL, true, value);\n            return rv;\n        },\n        reject: PromiseReject,\n        race: function () {\n            var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n            return new DexiePromise(function (resolve, reject) {\n                values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n            });\n        },\n        PSD: {\n            get: function () { return PSD; },\n            set: function (value) { return PSD = value; }\n        },\n        totalEchoes: { get: function () { return totalEchoes; } },\n        newPSD: newScope,\n        usePSD: usePSD,\n        scheduler: {\n            get: function () { return asap; },\n            set: function (value) { asap = value; }\n        },\n        rejectionMapper: {\n            get: function () { return rejectionMapper; },\n            set: function (value) { rejectionMapper = value; }\n        },\n        follow: function (fn, zoneProps) {\n            return new DexiePromise(function (resolve, reject) {\n                return newScope(function (resolve, reject) {\n                    var psd = PSD;\n                    psd.unhandleds = [];\n                    psd.onunhandled = reject;\n                    psd.finalize = callBoth(function () {\n                        var _this = this;\n                        run_at_end_of_this_or_next_physical_tick(function () {\n                            _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n                        });\n                    }, psd.finalize);\n                    fn();\n                }, zoneProps, resolve, reject);\n            });\n        }\n    });\n    if (NativePromise) {\n        if (NativePromise.allSettled)\n            setProp(DexiePromise, \"allSettled\", function () {\n                var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n                return new DexiePromise(function (resolve) {\n                    if (possiblePromises.length === 0)\n                        resolve([]);\n                    var remaining = possiblePromises.length;\n                    var results = new Array(remaining);\n                    possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n                        .then(function () { return --remaining || resolve(results); }); });\n                });\n            });\n        if (NativePromise.any && typeof AggregateError !== 'undefined')\n            setProp(DexiePromise, \"any\", function () {\n                var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n                return new DexiePromise(function (resolve, reject) {\n                    if (possiblePromises.length === 0)\n                        reject(new AggregateError([]));\n                    var remaining = possiblePromises.length;\n                    var failures = new Array(remaining);\n                    possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n                        failures[i] = failure;\n                        if (!--remaining)\n                            reject(new AggregateError(failures));\n                    }); });\n                });\n            });\n        if (NativePromise.withResolvers)\n            DexiePromise.withResolvers = NativePromise.withResolvers;\n    }\n    function executePromiseTask(promise, fn) {\n        try {\n            fn(function (value) {\n                if (promise._state !== null)\n                    return;\n                if (value === promise)\n                    throw new TypeError('A promise cannot be resolved with itself.');\n                var shouldExecuteTick = promise._lib && beginMicroTickScope();\n                if (value && typeof value.then === 'function') {\n                    executePromiseTask(promise, function (resolve, reject) {\n                        value instanceof DexiePromise ?\n                            value._then(resolve, reject) :\n                            value.then(resolve, reject);\n                    });\n                }\n                else {\n                    promise._state = true;\n                    promise._value = value;\n                    propagateAllListeners(promise);\n                }\n                if (shouldExecuteTick)\n                    endMicroTickScope();\n            }, handleRejection.bind(null, promise));\n        }\n        catch (ex) {\n            handleRejection(promise, ex);\n        }\n    }\n    function handleRejection(promise, reason) {\n        rejectingErrors.push(reason);\n        if (promise._state !== null)\n            return;\n        var shouldExecuteTick = promise._lib && beginMicroTickScope();\n        reason = rejectionMapper(reason);\n        promise._state = false;\n        promise._value = reason;\n        addPossiblyUnhandledError(promise);\n        propagateAllListeners(promise);\n        if (shouldExecuteTick)\n            endMicroTickScope();\n    }\n    function propagateAllListeners(promise) {\n        var listeners = promise._listeners;\n        promise._listeners = [];\n        for (var i = 0, len = listeners.length; i < len; ++i) {\n            propagateToListener(promise, listeners[i]);\n        }\n        var psd = promise._PSD;\n        --psd.ref || psd.finalize();\n        if (numScheduledCalls === 0) {\n            ++numScheduledCalls;\n            asap(function () {\n                if (--numScheduledCalls === 0)\n                    finalizePhysicalTick();\n            }, []);\n        }\n    }\n    function propagateToListener(promise, listener) {\n        if (promise._state === null) {\n            promise._listeners.push(listener);\n            return;\n        }\n        var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n        if (cb === null) {\n            return (promise._state ? listener.resolve : listener.reject)(promise._value);\n        }\n        ++listener.psd.ref;\n        ++numScheduledCalls;\n        asap(callListener, [cb, promise, listener]);\n    }\n    function callListener(cb, promise, listener) {\n        try {\n            var ret, value = promise._value;\n            if (!promise._state && rejectingErrors.length)\n                rejectingErrors = [];\n            ret = debug && promise._consoleTask ? promise._consoleTask.run(function () { return cb(value); }) : cb(value);\n            if (!promise._state && rejectingErrors.indexOf(value) === -1) {\n                markErrorAsHandled(promise);\n            }\n            listener.resolve(ret);\n        }\n        catch (e) {\n            listener.reject(e);\n        }\n        finally {\n            if (--numScheduledCalls === 0)\n                finalizePhysicalTick();\n            --listener.psd.ref || listener.psd.finalize();\n        }\n    }\n    function physicalTick() {\n        usePSD(globalPSD, function () {\n            beginMicroTickScope() && endMicroTickScope();\n        });\n    }\n    function beginMicroTickScope() {\n        var wasRootExec = isOutsideMicroTick;\n        isOutsideMicroTick = false;\n        needsNewPhysicalTick = false;\n        return wasRootExec;\n    }\n    function endMicroTickScope() {\n        var callbacks, i, l;\n        do {\n            while (microtickQueue.length > 0) {\n                callbacks = microtickQueue;\n                microtickQueue = [];\n                l = callbacks.length;\n                for (i = 0; i < l; ++i) {\n                    var item = callbacks[i];\n                    item[0].apply(null, item[1]);\n                }\n            }\n        } while (microtickQueue.length > 0);\n        isOutsideMicroTick = true;\n        needsNewPhysicalTick = true;\n    }\n    function finalizePhysicalTick() {\n        var unhandledErrs = unhandledErrors;\n        unhandledErrors = [];\n        unhandledErrs.forEach(function (p) {\n            p._PSD.onunhandled.call(null, p._value, p);\n        });\n        var finalizers = tickFinalizers.slice(0);\n        var i = finalizers.length;\n        while (i)\n            finalizers[--i]();\n    }\n    function run_at_end_of_this_or_next_physical_tick(fn) {\n        function finalizer() {\n            fn();\n            tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n        }\n        tickFinalizers.push(finalizer);\n        ++numScheduledCalls;\n        asap(function () {\n            if (--numScheduledCalls === 0)\n                finalizePhysicalTick();\n        }, []);\n    }\n    function addPossiblyUnhandledError(promise) {\n        if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n            unhandledErrors.push(promise);\n    }\n    function markErrorAsHandled(promise) {\n        var i = unhandledErrors.length;\n        while (i)\n            if (unhandledErrors[--i]._value === promise._value) {\n                unhandledErrors.splice(i, 1);\n                return;\n            }\n    }\n    function PromiseReject(reason) {\n        return new DexiePromise(INTERNAL, false, reason);\n    }\n    function wrap(fn, errorCatcher) {\n        var psd = PSD;\n        return function () {\n            var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n            try {\n                switchToZone(psd, true);\n                return fn.apply(this, arguments);\n            }\n            catch (e) {\n                errorCatcher && errorCatcher(e);\n            }\n            finally {\n                switchToZone(outerScope, false);\n                if (wasRootExec)\n                    endMicroTickScope();\n            }\n        };\n    }\n    var task = { awaits: 0, echoes: 0, id: 0 };\n    var taskCounter = 0;\n    var zoneStack = [];\n    var zoneEchoes = 0;\n    var totalEchoes = 0;\n    var zone_id_counter = 0;\n    function newScope(fn, props, a1, a2) {\n        var parent = PSD, psd = Object.create(parent);\n        psd.parent = parent;\n        psd.ref = 0;\n        psd.global = false;\n        psd.id = ++zone_id_counter;\n        globalPSD.env;\n        psd.env = patchGlobalPromise ? {\n            Promise: DexiePromise,\n            PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n            all: DexiePromise.all,\n            race: DexiePromise.race,\n            allSettled: DexiePromise.allSettled,\n            any: DexiePromise.any,\n            resolve: DexiePromise.resolve,\n            reject: DexiePromise.reject,\n        } : {};\n        if (props)\n            extend(psd, props);\n        ++parent.ref;\n        psd.finalize = function () {\n            --this.parent.ref || this.parent.finalize();\n        };\n        var rv = usePSD(psd, fn, a1, a2);\n        if (psd.ref === 0)\n            psd.finalize();\n        return rv;\n    }\n    function incrementExpectedAwaits() {\n        if (!task.id)\n            task.id = ++taskCounter;\n        ++task.awaits;\n        task.echoes += ZONE_ECHO_LIMIT;\n        return task.id;\n    }\n    function decrementExpectedAwaits() {\n        if (!task.awaits)\n            return false;\n        if (--task.awaits === 0)\n            task.id = 0;\n        task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n        return true;\n    }\n    if (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n        incrementExpectedAwaits = decrementExpectedAwaits = nop;\n    }\n    function onPossibleParallellAsync(possiblePromise) {\n        if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n\t\tincrementExpectedAwaits();\n\t\treturn possiblePromise.then(function (x) {\n\t\t\tdecrementExpectedAwaits();\n\t\t\treturn x;\n\t\t}, function (e) {\n\t\t\tdecrementExpectedAwaits();\n\t\t\treturn rejection(e);\n\t\t});\n\t}\n\treturn possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n\t++totalEchoes;\n\tif (!task.echoes || --task.echoes === 0) {\n\t\ttask.echoes = task.awaits = task.id = 0;\n\t}\n\tzoneStack.push(PSD);\n\tswitchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n\tvar zone = zoneStack[zoneStack.length - 1];\n\tzoneStack.pop();\n\tswitchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n\tvar currentZone = PSD;\n\tif (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n\t\tqueueMicrotask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n\t}\n\tif (targetZone === PSD)\n\t\treturn;\n\tPSD = targetZone;\n\tif (currentZone === globalPSD)\n\t\tglobalPSD.env = snapShot();\n\tif (patchGlobalPromise) {\n\t\tvar GlobalPromise = globalPSD.env.Promise;\n\t\tvar targetEnv = targetZone.env;\n\t\tif (currentZone.global || targetZone.global) {\n\t\t\tObject.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n\t\t\tGlobalPromise.all = targetEnv.all;\n\t\t\tGlobalPromise.race = targetEnv.race;\n\t\t\tGlobalPromise.resolve = targetEnv.resolve;\n\t\t\tGlobalPromise.reject = targetEnv.reject;\n\t\t\tif (targetEnv.allSettled)\n\t\t\t\tGlobalPromise.allSettled = targetEnv.allSettled;\n\t\t\tif (targetEnv.any)\n\t\t\t\tGlobalPromise.any = targetEnv.any;\n\t\t}\n\t}\n}\nfunction snapShot() {\n\tvar GlobalPromise = _global.Promise || Promise; // tag 02032020\n\treturn patchGlobalPromise ? {\n\t\tPromise: GlobalPromise,\n\t\tPromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n\t\tall: GlobalPromise.all,\n\t\trace: GlobalPromise.race,\n\t\tallSettled: GlobalPromise.allSettled,\n\t\tany: GlobalPromise.any,\n\t\tresolve: GlobalPromise.resolve,\n\t\treject: GlobalPromise.reject,\n\t} : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n\tvar outerScope = PSD;\n\ttry {\n\t\tswitchToZone(psd, true);\n\t\treturn fn(a1, a2, a3);\n\t}\n\tfinally {\n\t\tswitchToZone(outerScope, false);\n\t}\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n\treturn typeof fn !== 'function' ? fn : function () {\n\t\tvar outerZone = PSD;\n\t\tif (possibleAwait)\n\t\t\tincrementExpectedAwaits();\n\t\tswitchToZone(zone, true);\n\t\ttry {\n\t\t\treturn fn.apply(this, arguments);\n\t\t}\n\t\tfinally {\n\t\t\tswitchToZone(outerZone, false);\n\t\t\tif (cleanup)\n\t\t\t\tqueueMicrotask(decrementExpectedAwaits);\n\t\t}\n\t};\n}\nfunction execInGlobalContext(cb) {\n\tif (Promise === NativePromise && task.echoes === 0) {\n\t\tif (zoneEchoes === 0) {\n\t\t\tcb();\n\t\t}\n\t\telse {\n\t\t\tenqueueNativeMicroTask(cb);\n\t\t}\n\t}\n\telse {\n\t\tsetTimeout(cb, 0);\n\t}\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n\tif (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n\t\tif (db._state.openComplete) {\n\t\t\treturn rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n\t\t}\n\t\tif (!db._state.isBeingOpened) {\n\t\t\tif (!db._state.autoOpen)\n\t\t\t\treturn rejection(new exceptions.DatabaseClosed());\n\t\t\tdb.open().catch(nop);\n\t\t}\n\t\treturn db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n\t}\n\telse {\n\t\tvar trans = db._createTransaction(mode, storeNames, db._dbSchema);\n\t\ttry {\n\t\t\ttrans.create();\n\t\t\tdb._state.PR1398_maxLoop = 3;\n\t\t}\n\t\tcatch (ex) {\n\t\t\tif (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n\t\t\t\tconsole.warn('Dexie: Need to reopen db');\n\t\t\t\tdb.close({ disableAutoOpen: false });\n\t\t\t\treturn db.open().then(function () { return tempTransaction(db, mode, storeNames, fn); });\n\t\t\t}\n\t\t\treturn rejection(ex);\n\t\t}\n\t\treturn trans._promise(mode, function (resolve, reject) {\n\t\t\treturn newScope(function () {\n\t\t\t\tPSD.trans = trans;\n\t\t\t\treturn fn(resolve, reject, trans);\n\t\t\t});\n\t\t}).then(function (result) {\n\t\t\tif (mode === 'readwrite')\n\t\t\t\ttry {\n\t\t\t\t\ttrans.idbtrans.commit();\n\t\t\t\t}\n\t\t\t\tcatch (_a) { }\n\t\t\treturn mode === 'readonly' ? result : trans._completion.then(function () { return result; });\n\t\t});\n\t}\n}\n\nvar DEXIE_VERSION = '4.0.9';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n\treturn filter1 ?\n\t\tfilter2 ?\n\t\t\tfunction () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n\t\t\tfilter1 :\n\t\tfilter2;\n}\n\nvar AnyRange = {\n\ttype: 3 ,\n\tlower: -Infinity,\n\tlowerOpen: false,\n\tupper: [[]],\n\tupperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n\treturn typeof keyPath === \"string\" && !/\\./.test(keyPath)\n\t\t? function (obj) {\n\t\t\tif (obj[keyPath] === undefined && (keyPath in obj)) {\n\t\t\t\tobj = deepClone(obj);\n\t\t\t\tdelete obj[keyPath];\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\t\t: function (obj) { return obj; };\n}\n\nfunction Entity() {\n\tthrow exceptions.Type();\n}\n\nfunction cmp(a, b) {\n\ttry {\n\t\tvar ta = type(a);\n\t\tvar tb = type(b);\n\t\tif (ta !== tb) {\n\t\t\tif (ta === 'Array')\n\t\t\t\treturn 1;\n\t\t\tif (tb === 'Array')\n\t\t\t\treturn -1;\n\t\t\tif (ta === 'binary')\n\t\t\t\treturn 1;\n\t\t\tif (tb === 'binary')\n\t\t\t\treturn -1;\n\t\t\tif (ta === 'string')\n\t\t\t\treturn 1;\n\t\t\tif (tb === 'string')\n\t\t\t\treturn -1;\n\t\t\tif (ta === 'Date')\n\t\t\t\treturn 1;\n\t\t\tif (tb !== 'Date')\n\t\t\t\treturn NaN;\n\t\t\treturn -1;\n\t\t}\n\t\tswitch (ta) {\n\t\t\tcase 'number':\n\t\t\tcase 'Date':\n\t\t\tcase 'string':\n\t\t\t\treturn a > b ? 1 : a < b ? -1 : 0;\n\t\t\tcase 'binary': {\n\t\t\t\treturn compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n\t\t\t}\n\t\t\tcase 'Array':\n\t\t\t\treturn compareArrays(a, b);\n\t\t}\n\t}\n\tcatch (_a) { }\n\treturn NaN;\n}\nfunction compareArrays(a, b) {\n\tvar al = a.length;\n\tvar bl = b.length;\n\tvar l = al < bl ? al : bl;\n\tfor (var i = 0; i < l; ++i) {\n\t\tvar res = cmp(a[i], b[i]);\n\t\tif (res !== 0)\n\t\t\treturn res;\n\t}\n\treturn al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction compareUint8Arrays(a, b) {\n\tvar al = a.length;\n\tvar bl = b.length;\n\tvar l = al < bl ? al : bl;\n\tfor (var i = 0; i < l; ++i) {\n\t\tif (a[i] !== b[i])\n\t\t\treturn a[i] < b[i] ? -1 : 1;\n\t}\n\treturn al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction type(x) {\n\tvar t = typeof x;\n\tif (t !== 'object')\n\t\treturn t;\n\tif (ArrayBuffer.isView(x))\n\t\treturn 'binary';\n\tvar tsTag = toStringTag(x);\n\treturn tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n}\nfunction getUint8Array(a) {\n\tif (a instanceof Uint8Array)\n\t\treturn a;\n\tif (ArrayBuffer.isView(a))\n\t\treturn new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\treturn new Uint8Array(a);\n}\n\nvar Table =  (function () {\n\tfunction Table() {\n\t}\n\tTable.prototype._trans = function (mode, fn, writeLocked) {\n\t\tvar trans = this._tx || PSD.trans;\n\t\tvar tableName = this.name;\n\t\tvar task = debug && typeof console !== 'undefined' && console.createTask && console.createTask(\"Dexie: \".concat(mode === 'readonly' ? 'read' : 'write', \" \").concat(this.name));\n\t\tfunction checkTableInTransaction(resolve, reject, trans) {\n\t\t\tif (!trans.schema[tableName])\n\t\t\t\tthrow new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n\t\t\treturn fn(trans.idbtrans, trans);\n\t\t}\n\t\tvar wasRootExec = beginMicroTickScope();\n\t\ttry {\n\t\t\tvar p = trans && trans.db._novip === this.db._novip ?\n\t\t\t\ttrans === PSD.trans ?\n\t\t\t\t\ttrans._promise(mode, checkTableInTransaction, writeLocked) :\n\t\t\t\t\tnewScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n\t\t\t\ttempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n\t\t\tif (task) {\n\t\t\t\tp._consoleTask = task;\n\t\t\t\tp = p.catch(function (err) {\n\t\t\t\t\tconsole.trace(err);\n\t\t\t\t\treturn rejection(err);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn p;\n\t\t}\n\t\tfinally {\n\t\t\tif (wasRootExec)\n\t\t\t\tendMicroTickScope();\n\t\t}\n\t};\n\tTable.prototype.get = function (keyOrCrit, cb) {\n\t\tvar _this = this;\n\t\tif (keyOrCrit && keyOrCrit.constructor === Object)\n\t\t\treturn this.where(keyOrCrit).first(cb);\n\t\tif (keyOrCrit == null)\n\t\t\treturn rejection(new exceptions.Type(\"Invalid argument to Table.get()\"));\n\t\treturn this._trans('readonly', function (trans) {\n\t\t\treturn _this.core.get({ trans: trans, key: keyOrCrit })\n\t\t\t\t.then(function (res) { return _this.hook.reading.fire(res); });\n\t\t}).then(cb);\n\t};\n\tTable.prototype.where = function (indexOrCrit) {\n\t\tif (typeof indexOrCrit === 'string')\n\t\t\treturn new this.db.WhereClause(this, indexOrCrit);\n\t\tif (isArray(indexOrCrit))\n\t\t\treturn new this.db.WhereClause(this, \"[\".concat(indexOrCrit.join('+'), \"]\"));\n\t\tvar keyPaths = keys(indexOrCrit);\n\t\tif (keyPaths.length === 1)\n\t\t\treturn this\n\t\t\t\t.where(keyPaths[0])\n\t\t\t\t.equals(indexOrCrit[keyPaths[0]]);\n\t\tvar compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n\t\t\tif (ix.compound &&\n\t\t\t\tkeyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; })) {\n\t\t\t\tfor (var i = 0; i < keyPaths.length; ++i) {\n\t\t\t\t\tif (keyPaths.indexOf(ix.keyPath[i]) === -1)\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}).sort(function (a, b) { return a.keyPath.length - b.keyPath.length; })[0];\n\t\tif (compoundIndex && this.db._maxKey !== maxString) {\n\t\t\tvar keyPathsInValidOrder = compoundIndex.keyPath.slice(0, keyPaths.length);\n\t\t\treturn this\n\t\t\t\t.where(keyPathsInValidOrder)\n\t\t\t\t.equals(keyPathsInValidOrder.map(function (kp) { return indexOrCrit[kp]; }));\n\t\t}\n\t\tif (!compoundIndex && debug)\n\t\t\tconsole.warn(\"The query \".concat(JSON.stringify(indexOrCrit), \" on \").concat(this.name, \" would benefit from a \") +\n\t\t\t\t\"compound index [\".concat(keyPaths.join('+'), \"]\"));\n\t\tvar idxByName = this.schema.idxByName;\n\t\tfunction equals(a, b) {\n\t\t\treturn cmp(a, b) === 0;\n\t\t}\n\t\tvar _a = keyPaths.reduce(function (_a, keyPath) {\n\t\t\tvar prevIndex = _a[0], prevFilterFn = _a[1];\n\t\t\tvar index = idxByName[keyPath];\n\t\t\tvar value = indexOrCrit[keyPath];\n\t\t\treturn [\n\t\t\t\tprevIndex || index,\n\t\t\t\tprevIndex || !index ?\n\t\t\t\t\tcombine(prevFilterFn, index && index.multi ?\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\tvar prop = getByKeyPath(x, keyPath);\n\t\t\t\t\t\t\treturn isArray(prop) && prop.some(function (item) { return equals(value, item); });\n\t\t\t\t\t\t} : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n\t\t\t\t\t: prevFilterFn\n\t\t\t];\n\t\t}, [null, null]), idx = _a[0], filterFunction = _a[1];\n\t\treturn idx ?\n\t\t\tthis.where(idx.name).equals(indexOrCrit[idx.keyPath])\n\t\t\t\t.filter(filterFunction) :\n\t\t\tcompoundIndex ?\n\t\t\t\tthis.filter(filterFunction) :\n\t\t\t\tthis.where(keyPaths).equals('');\n\t};\n\tTable.prototype.filter = function (filterFunction) {\n\t\treturn this.toCollection().and(filterFunction);\n\t};\n\tTable.prototype.count = function (thenShortcut) {\n\t\treturn this.toCollection().count(thenShortcut);\n\t};\n\tTable.prototype.offset = function (offset) {\n\t\treturn this.toCollection().offset(offset);\n\t};\n\tTable.prototype.limit = function (numRows) {\n\t\treturn this.toCollection().limit(numRows);\n\t};\n\tTable.prototype.each = function (callback) {\n\t\treturn this.toCollection().each(callback);\n\t};\n\tTable.prototype.toArray = function (thenShortcut) {\n\t\treturn this.toCollection().toArray(thenShortcut);\n\t};\n\tTable.prototype.toCollection = function () {\n\t\treturn new this.db.Collection(new this.db.WhereClause(this));\n\t};\n\tTable.prototype.orderBy = function (index) {\n\t\treturn new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n\t\t\t\"[\".concat(index.join('+'), \"]\") :\n\t\t\tindex));\n\t};\n\tTable.prototype.reverse = function () {\n\t\treturn this.toCollection().reverse();\n\t};\n\tTable.prototype.mapToClass = function (constructor) {\n\t\tvar _a = this, db = _a.db, tableName = _a.name;\n\t\tthis.schema.mappedClass = constructor;\n\t\tif (constructor.prototype instanceof Entity) {\n\t\t\tconstructor =  (function (_super) {\n\t\t\t\t__extends(class_1, _super);\n\t\t\t\tfunction class_1() {\n\t\t\t\t\treturn _super !== null && _super.apply(this, arguments) || this;\n\t\t\t\t}\n\t\t\t\tObject.defineProperty(class_1.prototype, \"db\", {\n\t\t\t\t\tget: function () { return db; },\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\t\t\t\tclass_1.prototype.table = function () { return tableName; };\n\t\t\t\treturn class_1;\n\t\t\t}(constructor));\n\t\t}\n\t\tvar inheritedProps = new Set();\n\t\tfor (var proto = constructor.prototype; proto; proto = getProto(proto)) {\n\t\t\tObject.getOwnPropertyNames(proto).forEach(function (propName) { return inheritedProps.add(propName); });\n\t\t}\n\t\tvar readHook = function (obj) {\n\t\t\tif (!obj)\n\t\t\t\treturn obj;\n\t\t\tvar res = Object.create(constructor.prototype);\n\t\t\tfor (var m in obj)\n\t\t\t\tif (!inheritedProps.has(m))\n\t\t\t\t\ttry {\n\t\t\t\t\t\tres[m] = obj[m];\n\t\t\t\t\t}\n\t\t\t\t\tcatch (_) { }\n\t\t\treturn res;\n\t\t};\n\t\tif (this.schema.readHook) {\n\t\t\tthis.hook.reading.unsubscribe(this.schema.readHook);\n\t\t}\n\t\tthis.schema.readHook = readHook;\n\t\tthis.hook(\"reading\", readHook);\n\t\treturn constructor;\n\t};\n\tTable.prototype.defineClass = function () {\n\t\tfunction Class(content) {\n\t\t\textend(this, content);\n\t\t}\n\t\treturn this.mapToClass(Class);\n\t};\n\tTable.prototype.add = function (obj, key) {\n\t\tvar _this = this;\n\t\tvar _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n\t\tvar objToAdd = obj;\n\t\tif (keyPath && auto) {\n\t\t\tobjToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n\t\t}\n\t\treturn this._trans('readwrite', function (trans) {\n\t\t\treturn _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n\t\t}).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n\t\t\t.then(function (lastResult) {\n\t\t\tif (keyPath) {\n\t\t\t\ttry {\n\t\t\t\t\tsetByKeyPath(obj, keyPath, lastResult);\n\t\t\t\t}\n\t\t\t\tcatch (_) { }\n\t\t\t}\n\t\t\treturn lastResult;\n\t\t});\n\t};\n\tTable.prototype.update = function (keyOrObject, modifications) {\n\t\tif (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n\t\t\tvar key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n\t\t\tif (key === undefined)\n\t\t\t\treturn rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n\t\t\treturn this.where(\":id\").equals(key).modify(modifications);\n\t\t}\n\t\telse {\n\t\t\treturn this.where(\":id\").equals(keyOrObject).modify(modifications);\n\t\t}\n\t};\n\tTable.prototype.put = function (obj, key) {\n\t\tvar _this = this;\n\t\tvar _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n\t\tvar objToAdd = obj;\n\t\tif (keyPath && auto) {\n\t\t\tobjToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n\t\t}\n\t\treturn this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n\t\t\t.then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n\t\t\t.then(function (lastResult) {\n\t\t\tif (keyPath) {\n\t\t\t\ttry {\n\t\t\t\t\tsetByKeyPath(obj, keyPath, lastResult);\n\t\t\t\t}\n\t\t\t\tcatch (_) { }\n\t\t\t}\n\t\t\treturn lastResult;\n\t\t});\n\t};\n\tTable.prototype.delete = function (key) {\n\t\tvar _this = this;\n\t\treturn this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n\t\t\t.then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n\t};\n\tTable.prototype.clear = function () {\n\t\tvar _this = this;\n\t\treturn this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n\t\t\t.then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n\t};\n\tTable.prototype.bulkGet = function (keys) {\n\t\tvar _this = this;\n\t\treturn this._trans('readonly', function (trans) {\n\t\t\treturn _this.core.getMany({\n\t\t\t\tkeys: keys,\n\t\t\t\ttrans: trans\n\t\t\t}).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n\t\t});\n\t};\n\tTable.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n\t\tvar _this = this;\n\t\tvar keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n\t\toptions = options || (keys ? undefined : keysOrOptions);\n\t\tvar wantResults = options ? options.allKeys : undefined;\n\t\treturn this._trans('readwrite', function (trans) {\n\t\t\tvar _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n\t\t\tif (keyPath && keys)\n\t\t\t\tthrow new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n\t\t\tif (keys && keys.length !== objects.length)\n\t\t\t\tthrow new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\t\t\tvar numObjects = objects.length;\n\t\t\tvar objectsToAdd = keyPath && auto ?\n\t\t\t\tobjects.map(workaroundForUndefinedPrimKey(keyPath)) :\n\t\t\t\tobjects;\n\t\t\treturn _this.core.mutate({ trans: trans, type: 'add', keys: keys, values: objectsToAdd, wantResults: wantResults })\n\t\t\t\t.then(function (_a) {\n\t\t\t\tvar numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n\t\t\t\tvar result = wantResults ? results : lastResult;\n\t\t\t\tif (numFailures === 0)\n\t\t\t\t\treturn result;\n\t\t\t\tthrow new BulkError(\"\".concat(_this.name, \".bulkAdd(): \").concat(numFailures, \" of \").concat(numObjects, \" operations failed\"), failures);\n\t\t\t});\n\t\t});\n\t};\n\tTable.prototype.bulkPut = function (objects, keysOrOptions, options) {\n\t\tvar _this = this;\n\t\tvar keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n\t\toptions = options || (keys ? undefined : keysOrOptions);\n\t\tvar wantResults = options ? options.allKeys : undefined;\n\t\treturn this._trans('readwrite', function (trans) {\n\t\t\tvar _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n\t\t\tif (keyPath && keys)\n\t\t\t\tthrow new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n\t\t\tif (keys && keys.length !== objects.length)\n\t\t\t\tthrow new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\t\t\tvar numObjects = objects.length;\n\t\t\tvar objectsToPut = keyPath && auto ?\n\t\t\t\tobjects.map(workaroundForUndefinedPrimKey(keyPath)) :\n\t\t\t\tobjects;\n\t\t\treturn _this.core.mutate({ trans: trans, type: 'put', keys: keys, values: objectsToPut, wantResults: wantResults })\n\t\t\t\t.then(function (_a) {\n\t\t\t\tvar numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n\t\t\t\tvar result = wantResults ? results : lastResult;\n\t\t\t\tif (numFailures === 0)\n\t\t\t\t\treturn result;\n\t\t\t\tthrow new BulkError(\"\".concat(_this.name, \".bulkPut(): \").concat(numFailures, \" of \").concat(numObjects, \" operations failed\"), failures);\n\t\t\t});\n\t\t});\n\t};\n\tTable.prototype.bulkUpdate = function (keysAndChanges) {\n\t\tvar _this = this;\n\t\tvar coreTable = this.core;\n\t\tvar keys = keysAndChanges.map(function (entry) { return entry.key; });\n\t\tvar changeSpecs = keysAndChanges.map(function (entry) { return entry.changes; });\n\t\tvar offsetMap = [];\n\t\treturn this._trans('readwrite', function (trans) {\n\t\t\treturn coreTable.getMany({ trans: trans, keys: keys, cache: 'clone' }).then(function (objs) {\n\t\t\t\tvar resultKeys = [];\n\t\t\t\tvar resultObjs = [];\n\t\t\t\tkeysAndChanges.forEach(function (_a, idx) {\n\t\t\t\t\tvar key = _a.key, changes = _a.changes;\n\t\t\t\t\tvar obj = objs[idx];\n\t\t\t\t\tif (obj) {\n\t\t\t\t\t\tfor (var _i = 0, _b = Object.keys(changes); _i < _b.length; _i++) {\n\t\t\t\t\t\t\tvar keyPath = _b[_i];\n\t\t\t\t\t\t\tvar value = changes[keyPath];\n\t\t\t\t\t\t\tif (keyPath === _this.schema.primKey.keyPath) {\n\t\t\t\t\t\t\t\tif (cmp(value, key) !== 0) {\n\t\t\t\t\t\t\t\t\tthrow new exceptions.Constraint(\"Cannot update primary key in bulkUpdate()\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tsetByKeyPath(obj, keyPath, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\toffsetMap.push(idx);\n\t\t\t\t\t\tresultKeys.push(key);\n\t\t\t\t\t\tresultObjs.push(obj);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar numEntries = resultKeys.length;\n\t\t\t\treturn coreTable\n\t\t\t\t\t.mutate({\n\t\t\t\t\ttrans: trans,\n\t\t\t\t\ttype: 'put',\n\t\t\t\t\tkeys: resultKeys,\n\t\t\t\t\tvalues: resultObjs,\n\t\t\t\t\tupdates: {\n\t\t\t\t\t\tkeys: keys,\n\t\t\t\t\t\tchangeSpecs: changeSpecs\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t\t.then(function (_a) {\n\t\t\t\t\tvar numFailures = _a.numFailures, failures = _a.failures;\n\t\t\t\t\tif (numFailures === 0)\n\t\t\t\t\t\treturn numEntries;\n\t\t\t\t\tfor (var _i = 0, _b = Object.keys(failures); _i < _b.length; _i++) {\n\t\t\t\t\t\tvar offset = _b[_i];\n\t\t\t\t\t\tvar mappedOffset = offsetMap[Number(offset)];\n\t\t\t\t\t\tif (mappedOffset != null) {\n\t\t\t\t\t\t\tvar failure = failures[offset];\n\t\t\t\t\t\t\tdelete failures[offset];\n\t\t\t\t\t\t\tfailures[mappedOffset] = failure;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthrow new BulkError(\"\".concat(_this.name, \".bulkUpdate(): \").concat(numFailures, \" of \").concat(numEntries, \" operations failed\"), failures);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\tTable.prototype.bulkDelete = function (keys) {\n\t\tvar _this = this;\n\t\tvar numKeys = keys.length;\n\t\treturn this._trans('readwrite', function (trans) {\n\t\t\treturn _this.core.mutate({ trans: trans, type: 'delete', keys: keys });\n\t\t}).then(function (_a) {\n\t\t\tvar numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n\t\t\tif (numFailures === 0)\n\t\t\t\treturn lastResult;\n\t\t\tthrow new BulkError(\"\".concat(_this.name, \".bulkDelete(): \").concat(numFailures, \" of \").concat(numKeys, \" operations failed\"), failures);\n\t\t});\n\t};\n\treturn Table;\n}());\n\nfunction Events(ctx) {\n\tvar evs = {};\n\tvar rv = function (eventName, subscriber) {\n\t\tif (subscriber) {\n\t\t\tvar i = arguments.length, args = new Array(i - 1);\n\t\t\twhile (--i)\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\tevs[eventName].subscribe.apply(null, args);\n\t\t\treturn ctx;\n\t\t}\n\t\telse if (typeof (eventName) === 'string') {\n\t\t\treturn evs[eventName];\n\t\t}\n\t};\n\trv.addEventType = add;\n\tfor (var i = 1, l = arguments.length; i < l; ++i) {\n\t\tadd(arguments[i]);\n\t}\n\treturn rv;\n\tfunction add(eventName, chainFunction, defaultFunction) {\n\t\tif (typeof eventName === 'object')\n\t\t\treturn addConfiguredEvents(eventName);\n\t\tif (!chainFunction)\n\t\t\tchainFunction = reverseStoppableEventChain;\n\t\tif (!defaultFunction)\n\t\t\tdefaultFunction = nop;\n\t\tvar context = {\n\t\t\tsubscribers: [],\n\t\t\tfire: defaultFunction,\n\t\t\tsubscribe: function (cb) {\n\t\t\t\tif (context.subscribers.indexOf(cb) === -1) {\n\t\t\t\t\tcontext.subscribers.push(cb);\n\t\t\t\t\tcontext.fire = chainFunction(context.fire, cb);\n\t\t\t\t}\n\t\t\t},\n\t\t\tunsubscribe: function (cb) {\n\t\t\t\tcontext.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n\t\t\t\tcontext.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n\t\t\t}\n\t\t};\n\t\tevs[eventName] = rv[eventName] = context;\n\t\treturn context;\n\t}\n\tfunction addConfiguredEvents(cfg) {\n\t\tkeys(cfg).forEach(function (eventName) {\n\t\t\tvar args = cfg[eventName];\n\t\t\tif (isArray(args)) {\n\t\t\t\tadd(eventName, cfg[eventName][0], cfg[eventName][1]);\n\t\t\t}\n\t\t\telse if (args === 'asap') {\n\t\t\t\tvar context = add(eventName, mirror, function fire() {\n\t\t\t\t\tvar i = arguments.length, args = new Array(i);\n\t\t\t\t\twhile (i--)\n\t\t\t\t\t\targs[i] = arguments[i];\n\t\t\t\t\tcontext.subscribers.forEach(function (fn) {\n\t\t\t\t\t\tasap$1(function fireEvent() {\n\t\t\t\t\t\t\tfn.apply(null, args);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t\tthrow new exceptions.InvalidArgument(\"Invalid event config\");\n\t\t});\n\t}\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n\tderive(constructor).from({ prototype: prototype });\n\treturn constructor;\n}\n\nfunction createTableConstructor(db) {\n\treturn makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n\t\tthis.db = db;\n\t\tthis._tx = trans;\n\t\tthis.name = name;\n\t\tthis.schema = tableSchema;\n\t\tthis.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n\t\t\t\"creating\": [hookCreatingChain, nop],\n\t\t\t\"reading\": [pureFunctionChain, mirror],\n\t\t\t\"updating\": [hookUpdatingChain, nop],\n\t\t\t\"deleting\": [hookDeletingChain, nop]\n\t\t});\n\t});\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n\treturn !(ctx.filter || ctx.algorithm || ctx.or) &&\n\t\t(ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n\tctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n\tvar curr = ctx.replayFilter;\n\tctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n\tctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n\tctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n\tif (ctx.isPrimKey)\n\t\treturn coreSchema.primaryKey;\n\tvar index = coreSchema.getIndexByKeyPath(ctx.index);\n\tif (!index)\n\t\tthrow new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n\treturn index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n\tvar index = getIndexOrStore(ctx, coreTable.schema);\n\treturn coreTable.openCursor({\n\t\ttrans: trans,\n\t\tvalues: !ctx.keysOnly,\n\t\treverse: ctx.dir === 'prev',\n\t\tunique: !!ctx.unique,\n\t\tquery: {\n\t\t\tindex: index,\n\t\t\trange: ctx.range\n\t\t}\n\t});\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n\tvar filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n\tif (!ctx.or) {\n\t\treturn iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n\t}\n\telse {\n\t\tvar set_1 = {};\n\t\tvar union = function (item, cursor, advance) {\n\t\t\tif (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n\t\t\t\tvar primaryKey = cursor.primaryKey;\n\t\t\t\tvar key = '' + primaryKey;\n\t\t\t\tif (key === '[object ArrayBuffer]')\n\t\t\t\t\tkey = '' + new Uint8Array(primaryKey);\n\t\t\t\tif (!hasOwn(set_1, key)) {\n\t\t\t\t\tset_1[key] = true;\n\t\t\t\t\tfn(item, cursor, advance);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn Promise.all([\n\t\t\tctx.or._iterate(union, coreTrans),\n\t\t\titerate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n\t\t]);\n\t}\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n\tvar mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n\tvar wrappedFn = wrap(mappedFn);\n\treturn cursorPromise.then(function (cursor) {\n\t\tif (cursor) {\n\t\t\treturn cursor.start(function () {\n\t\t\t\tvar c = function () { return cursor.continue(); };\n\t\t\t\tif (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n\t\t\t\t\twrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n\t\t\t\tc();\n\t\t\t});\n\t\t}\n\t});\n}\n\nvar PropModSymbol = Symbol();\nvar PropModification =  (function () {\n\tfunction PropModification(spec) {\n\t\tObject.assign(this, spec);\n\t}\n\tPropModification.prototype.execute = function (value) {\n\t\tvar _a;\n\t\tif (this.add !== undefined) {\n\t\t\tvar term = this.add;\n\t\t\tif (isArray(term)) {\n\t\t\t\treturn __spreadArray(__spreadArray([], (isArray(value) ? value : []), true), term, true).sort();\n\t\t\t}\n\t\t\tif (typeof term === 'number')\n\t\t\t\treturn (Number(value) || 0) + term;\n\t\t\tif (typeof term === 'bigint') {\n\t\t\t\ttry {\n\t\t\t\t\treturn BigInt(value) + term;\n\t\t\t\t}\n\t\t\t\tcatch (_b) {\n\t\t\t\t\treturn BigInt(0) + term;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError(\"Invalid term \".concat(term));\n\t\t}\n\t\tif (this.remove !== undefined) {\n\t\t\tvar subtrahend_1 = this.remove;\n\t\t\tif (isArray(subtrahend_1)) {\n\t\t\t\treturn isArray(value) ? value.filter(function (item) { return !subtrahend_1.includes(item); }).sort() : [];\n\t\t\t}\n\t\t\tif (typeof subtrahend_1 === 'number')\n\t\t\t\treturn Number(value) - subtrahend_1;\n\t\t\tif (typeof subtrahend_1 === 'bigint') {\n\t\t\t\ttry {\n\t\t\t\t\treturn BigInt(value) - subtrahend_1;\n\t\t\t\t}\n\t\t\t\tcatch (_c) {\n\t\t\t\t\treturn BigInt(0) - subtrahend_1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError(\"Invalid subtrahend \".concat(subtrahend_1));\n\t\t}\n\t\tvar prefixToReplace = (_a = this.replacePrefix) === null || _a === void 0 ? void 0 : _a[0];\n\t\tif (prefixToReplace && typeof value === 'string' && value.startsWith(prefixToReplace)) {\n\t\t\treturn this.replacePrefix[1] + value.substring(prefixToReplace.length);\n\t\t}\n\t\treturn value;\n\t};\n\treturn PropModification;\n}());\n\nvar Collection =  (function () {\n\tfunction Collection() {\n\t}\n\tCollection.prototype._read = function (fn, cb) {\n\t\tvar ctx = this._ctx;\n\t\treturn ctx.error ?\n\t\t\tctx.table._trans(null, rejection.bind(null, ctx.error)) :\n\t\t\tctx.table._trans('readonly', fn).then(cb);\n\t};\n\tCollection.prototype._write = function (fn) {\n\t\tvar ctx = this._ctx;\n\t\treturn ctx.error ?\n\t\t\tctx.table._trans(null, rejection.bind(null, ctx.error)) :\n\t\t\tctx.table._trans('readwrite', fn, \"locked\");\n\t};\n\tCollection.prototype._addAlgorithm = function (fn) {\n\t\tvar ctx = this._ctx;\n\t\tctx.algorithm = combine(ctx.algorithm, fn);\n\t};\n\tCollection.prototype._iterate = function (fn, coreTrans) {\n\t\treturn iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n\t};\n\tCollection.prototype.clone = function (props) {\n\t\tvar rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n\t\tif (props)\n\t\t\textend(ctx, props);\n\t\trv._ctx = ctx;\n\t\treturn rv;\n\t};\n\tCollection.prototype.raw = function () {\n\t\tthis._ctx.valueMapper = null;\n\t\treturn this;\n\t};\n\tCollection.prototype.each = function (fn) {\n\t\tvar ctx = this._ctx;\n\t\treturn this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n\t};\n\tCollection.prototype.count = function (cb) {\n\t\tvar _this = this;\n\t\treturn this._read(function (trans) {\n\t\t\tvar ctx = _this._ctx;\n\t\t\tvar coreTable = ctx.table.core;\n\t\t\tif (isPlainKeyRange(ctx, true)) {\n\t\t\t\treturn coreTable.count({\n\t\t\t\t\ttrans: trans,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tindex: getIndexOrStore(ctx, coreTable.schema),\n\t\t\t\t\t\trange: ctx.range\n\t\t\t\t\t}\n\t\t\t\t}).then(function (count) { return Math.min(count, ctx.limit); });\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar count = 0;\n\t\t\t\treturn iter(ctx, function () { ++count; return false; }, trans, coreTable)\n\t\t\t\t\t.then(function () { return count; });\n\t\t\t}\n\t\t}).then(cb);\n\t};\n\tCollection.prototype.sortBy = function (keyPath, cb) {\n\t\tvar parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n\t\tfunction getval(obj, i) {\n\t\t\tif (i)\n\t\t\t\treturn getval(obj[parts[i]], i - 1);\n\t\t\treturn obj[lastPart];\n\t\t}\n\t\tvar order = this._ctx.dir === \"next\" ? 1 : -1;\n\t\tfunction sorter(a, b) {\n\t\t\tvar aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n\t\t\treturn cmp(aVal, bVal) * order;\n\t\t}\n\t\treturn this.toArray(function (a) {\n\t\t\treturn a.sort(sorter);\n\t\t}).then(cb);\n\t};\n\tCollection.prototype.toArray = function (cb) {\n\t\tvar _this = this;\n\t\treturn this._read(function (trans) {\n\t\t\tvar ctx = _this._ctx;\n\t\t\tif (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n\t\t\t\tvar valueMapper_1 = ctx.valueMapper;\n\t\t\t\tvar index = getIndexOrStore(ctx, ctx.table.core.schema);\n\t\t\t\treturn ctx.table.core.query({\n\t\t\t\t\ttrans: trans,\n\t\t\t\t\tlimit: ctx.limit,\n\t\t\t\t\tvalues: true,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\trange: ctx.range\n\t\t\t\t\t}\n\t\t\t\t}).then(function (_a) {\n\t\t\t\t\tvar result = _a.result;\n\t\t\t\t\treturn valueMapper_1 ? result.map(valueMapper_1) : result;\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar a_1 = [];\n\t\t\t\treturn iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n\t\t\t}\n\t\t}, cb);\n\t};\n\tCollection.prototype.offset = function (offset) {\n\t\tvar ctx = this._ctx;\n\t\tif (offset <= 0)\n\t\t\treturn this;\n\t\tctx.offset += offset;\n\t\tif (isPlainKeyRange(ctx)) {\n\t\t\taddReplayFilter(ctx, function () {\n\t\t\t\tvar offsetLeft = offset;\n\t\t\t\treturn function (cursor, advance) {\n\t\t\t\t\tif (offsetLeft === 0)\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tif (offsetLeft === 1) {\n\t\t\t\t\t\t--offsetLeft;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tadvance(function () {\n\t\t\t\t\t\tcursor.advance(offsetLeft);\n\t\t\t\t\t\toffsetLeft = 0;\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\taddReplayFilter(ctx, function () {\n\t\t\t\tvar offsetLeft = offset;\n\t\t\t\treturn function () { return (--offsetLeft < 0); };\n\t\t\t});\n\t\t}\n\t\treturn this;\n\t};\n\tCollection.prototype.limit = function (numRows) {\n\t\tthis._ctx.limit = Math.min(this._ctx.limit, numRows);\n\t\taddReplayFilter(this._ctx, function () {\n\t\t\tvar rowsLeft = numRows;\n\t\t\treturn function (cursor, advance, resolve) {\n\t\t\t\tif (--rowsLeft <= 0)\n\t\t\t\t\tadvance(resolve);\n\t\t\t\treturn rowsLeft >= 0;\n\t\t\t};\n\t\t}, true);\n\t\treturn this;\n\t};\n\tCollection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n\t\taddFilter(this._ctx, function (cursor, advance, resolve) {\n\t\t\tif (filterFunction(cursor.value)) {\n\t\t\t\tadvance(resolve);\n\t\t\t\treturn bIncludeStopEntry;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t};\n\tCollection.prototype.first = function (cb) {\n\t\treturn this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n\t};\n\tCollection.prototype.last = function (cb) {\n\t\treturn this.reverse().first(cb);\n\t};\n\tCollection.prototype.filter = function (filterFunction) {\n\t\taddFilter(this._ctx, function (cursor) {\n\t\t\treturn filterFunction(cursor.value);\n\t\t});\n\t\taddMatchFilter(this._ctx, filterFunction);\n\t\treturn this;\n\t};\n\tCollection.prototype.and = function (filter) {\n\t\treturn this.filter(filter);\n\t};\n\tCollection.prototype.or = function (indexName) {\n\t\treturn new this.db.WhereClause(this._ctx.table, indexName, this);\n\t};\n\tCollection.prototype.reverse = function () {\n\t\tthis._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n\t\tif (this._ondirectionchange)\n\t\t\tthis._ondirectionchange(this._ctx.dir);\n\t\treturn this;\n\t};\n\tCollection.prototype.desc = function () {\n\t\treturn this.reverse();\n\t};\n\tCollection.prototype.eachKey = function (cb) {\n\t\tvar ctx = this._ctx;\n\t\tctx.keysOnly = !ctx.isMatch;\n\t\treturn this.each(function (val, cursor) { cb(cursor.key, cursor); });\n\t};\n\tCollection.prototype.eachUniqueKey = function (cb) {\n\t\tthis._ctx.unique = \"unique\";\n\t\treturn this.eachKey(cb);\n\t};\n\tCollection.prototype.eachPrimaryKey = function (cb) {\n\t\tvar ctx = this._ctx;\n\t\tctx.keysOnly = !ctx.isMatch;\n\t\treturn this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n\t};\n\tCollection.prototype.keys = function (cb) {\n\t\tvar ctx = this._ctx;\n\t\tctx.keysOnly = !ctx.isMatch;\n\t\tvar a = [];\n\t\treturn this.each(function (item, cursor) {\n\t\t\ta.push(cursor.key);\n\t\t}).then(function () {\n\t\t\treturn a;\n\t\t}).then(cb);\n\t};\n\tCollection.prototype.primaryKeys = function (cb) {\n\t\tvar ctx = this._ctx;\n\t\tif (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n\t\t\treturn this._read(function (trans) {\n\t\t\t\tvar index = getIndexOrStore(ctx, ctx.table.core.schema);\n\t\t\t\treturn ctx.table.core.query({\n\t\t\t\t\ttrans: trans,\n\t\t\t\t\tvalues: false,\n\t\t\t\t\tlimit: ctx.limit,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\trange: ctx.range\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).then(function (_a) {\n\t\t\t\tvar result = _a.result;\n\t\t\t\treturn result;\n\t\t\t}).then(cb);\n\t\t}\n\t\tctx.keysOnly = !ctx.isMatch;\n\t\tvar a = [];\n\t\treturn this.each(function (item, cursor) {\n\t\t\ta.push(cursor.primaryKey);\n\t\t}).then(function () {\n\t\t\treturn a;\n\t\t}).then(cb);\n\t};\n\tCollection.prototype.uniqueKeys = function (cb) {\n\t\tthis._ctx.unique = \"unique\";\n\t\treturn this.keys(cb);\n\t};\n\tCollection.prototype.firstKey = function (cb) {\n\t\treturn this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n\t};\n\tCollection.prototype.lastKey = function (cb) {\n\t\treturn this.reverse().firstKey(cb);\n\t};\n\tCollection.prototype.distinct = function () {\n\t\tvar ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n\t\tif (!idx || !idx.multi)\n\t\t\treturn this;\n\t\tvar set = {};\n\t\taddFilter(this._ctx, function (cursor) {\n\t\t\tvar strKey = cursor.primaryKey.toString();\n\t\t\tvar found = hasOwn(set, strKey);\n\t\t\tset[strKey] = true;\n\t\t\treturn !found;\n\t\t});\n\t\treturn this;\n\t};\n\tCollection.prototype.modify = function (changes) {\n\t\tvar _this = this;\n\t\tvar ctx = this._ctx;\n\t\treturn this._write(function (trans) {\n\t\t\tvar modifyer;\n\t\t\tif (typeof changes === 'function') {\n\t\t\t\tmodifyer = changes;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar keyPaths = keys(changes);\n\t\t\t\tvar numKeys = keyPaths.length;\n\t\t\t\tmodifyer = function (item) {\n\t\t\t\t\tvar anythingModified = false;\n\t\t\t\t\tfor (var i = 0; i < numKeys; ++i) {\n\t\t\t\t\t\tvar keyPath = keyPaths[i];\n\t\t\t\t\t\tvar val = changes[keyPath];\n\t\t\t\t\t\tvar origVal = getByKeyPath(item, keyPath);\n\t\t\t\t\t\tif (val instanceof PropModification) {\n\t\t\t\t\t\t\tsetByKeyPath(item, keyPath, val.execute(origVal));\n\t\t\t\t\t\t\tanythingModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (origVal !== val) {\n\t\t\t\t\t\t\tsetByKeyPath(item, keyPath, val);\n\t\t\t\t\t\t\tanythingModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn anythingModified;\n\t\t\t\t};\n\t\t\t}\n\t\t\tvar coreTable = ctx.table.core;\n\t\t\tvar _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n\t\t\tvar limit = _this.db._options.modifyChunkSize || 200;\n\t\t\tvar totalFailures = [];\n\t\t\tvar successCount = 0;\n\t\t\tvar failedKeys = [];\n\t\t\tvar applyMutateResult = function (expectedCount, res) {\n\t\t\t\tvar failures = res.failures, numFailures = res.numFailures;\n\t\t\t\tsuccessCount += expectedCount - numFailures;\n\t\t\t\tfor (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n\t\t\t\t\tvar pos = _a[_i];\n\t\t\t\t\ttotalFailures.push(failures[pos]);\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn _this.clone().primaryKeys().then(function (keys) {\n\t\t\t\tvar criteria = isPlainKeyRange(ctx) &&\n\t\t\t\t\tctx.limit === Infinity &&\n\t\t\t\t\t(typeof changes !== 'function' || changes === deleteCallback) && {\n\t\t\t\t\tindex: ctx.index,\n\t\t\t\t\trange: ctx.range\n\t\t\t\t};\n\t\t\t\tvar nextChunk = function (offset) {\n\t\t\t\t\tvar count = Math.min(limit, keys.length - offset);\n\t\t\t\t\treturn coreTable.getMany({\n\t\t\t\t\t\ttrans: trans,\n\t\t\t\t\t\tkeys: keys.slice(offset, offset + count),\n\t\t\t\t\t\tcache: \"immutable\"\n\t\t\t\t\t}).then(function (values) {\n\t\t\t\t\t\tvar addValues = [];\n\t\t\t\t\t\tvar putValues = [];\n\t\t\t\t\t\tvar putKeys = outbound ? [] : null;\n\t\t\t\t\t\tvar deleteKeys = [];\n\t\t\t\t\t\tfor (var i = 0; i < count; ++i) {\n\t\t\t\t\t\t\tvar origValue = values[i];\n\t\t\t\t\t\t\tvar ctx_1 = {\n\t\t\t\t\t\t\t\tvalue: deepClone(origValue),\n\t\t\t\t\t\t\t\tprimKey: keys[offset + i]\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n\t\t\t\t\t\t\t\tif (ctx_1.value == null) {\n\t\t\t\t\t\t\t\t\tdeleteKeys.push(keys[offset + i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n\t\t\t\t\t\t\t\t\tdeleteKeys.push(keys[offset + i]);\n\t\t\t\t\t\t\t\t\taddValues.push(ctx_1.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tputValues.push(ctx_1.value);\n\t\t\t\t\t\t\t\t\tif (outbound)\n\t\t\t\t\t\t\t\t\t\tputKeys.push(keys[offset + i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn Promise.resolve(addValues.length > 0 &&\n\t\t\t\t\t\t\tcoreTable.mutate({ trans: trans, type: 'add', values: addValues })\n\t\t\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\t\tfor (var pos in res.failures) {\n\t\t\t\t\t\t\t\t\tdeleteKeys.splice(parseInt(pos), 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tapplyMutateResult(addValues.length, res);\n\t\t\t\t\t\t\t})).then(function () { return (putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n\t\t\t\t\t\t\tcoreTable.mutate({\n\t\t\t\t\t\t\t\ttrans: trans,\n\t\t\t\t\t\t\t\ttype: 'put',\n\t\t\t\t\t\t\t\tkeys: putKeys,\n\t\t\t\t\t\t\t\tvalues: putValues,\n\t\t\t\t\t\t\t\tcriteria: criteria,\n\t\t\t\t\t\t\t\tchangeSpec: typeof changes !== 'function'\n\t\t\t\t\t\t\t\t\t&& changes,\n\t\t\t\t\t\t\t\tisAdditionalChunk: offset > 0\n\t\t\t\t\t\t\t}).then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n\t\t\t\t\t\t\tcoreTable.mutate({\n\t\t\t\t\t\t\t\ttrans: trans,\n\t\t\t\t\t\t\t\ttype: 'delete',\n\t\t\t\t\t\t\t\tkeys: deleteKeys,\n\t\t\t\t\t\t\t\tcriteria: criteria,\n\t\t\t\t\t\t\t\tisAdditionalChunk: offset > 0\n\t\t\t\t\t\t\t}).then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n\t\t\t\t\t\t\treturn keys.length > offset + count && nextChunk(offset + limit);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\treturn nextChunk(0).then(function () {\n\t\t\t\t\tif (totalFailures.length > 0)\n\t\t\t\t\t\tthrow new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n\t\t\t\t\treturn keys.length;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\tCollection.prototype.delete = function () {\n\t\tvar ctx = this._ctx, range = ctx.range;\n\t\tif (isPlainKeyRange(ctx) &&\n\t\t\t(ctx.isPrimKey || range.type === 3 ))\n\t\t {\n\t\t\treturn this._write(function (trans) {\n\t\t\t\tvar primaryKey = ctx.table.core.schema.primaryKey;\n\t\t\t\tvar coreRange = range;\n\t\t\t\treturn ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n\t\t\t\t\treturn ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n\t\t\t\t\t\t.then(function (_a) {\n\t\t\t\t\t\tvar failures = _a.failures; _a.lastResult; _a.results; var numFailures = _a.numFailures;\n\t\t\t\t\t\tif (numFailures)\n\t\t\t\t\t\t\tthrow new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n\t\t\t\t\t\treturn count - numFailures;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn this.modify(deleteCallback);\n\t};\n\treturn Collection;\n}());\nvar deleteCallback = function (value, ctx) { return ctx.value = null; };\n\nfunction createCollectionConstructor(db) {\n\treturn makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n\t\tthis.db = db;\n\t\tvar keyRange = AnyRange, error = null;\n\t\tif (keyRangeGenerator)\n\t\t\ttry {\n\t\t\t\tkeyRange = keyRangeGenerator();\n\t\t\t}\n\t\t\tcatch (ex) {\n\t\t\t\terror = ex;\n\t\t\t}\n\t\tvar whereCtx = whereClause._ctx;\n\t\tvar table = whereCtx.table;\n\t\tvar readingHook = table.hook.reading.fire;\n\t\tthis._ctx = {\n\t\t\ttable: table,\n\t\t\tindex: whereCtx.index,\n\t\t\tisPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n\t\t\trange: keyRange,\n\t\t\tkeysOnly: false,\n\t\t\tdir: \"next\",\n\t\t\tunique: \"\",\n\t\t\talgorithm: null,\n\t\t\tfilter: null,\n\t\t\treplayFilter: null,\n\t\t\tjustLimit: true,\n\t\t\tisMatch: null,\n\t\t\toffset: 0,\n\t\t\tlimit: Infinity,\n\t\t\terror: error,\n\t\t\tor: whereCtx.or,\n\t\t\tvalueMapper: readingHook !== mirror ? readingHook : null\n\t\t};\n\t});\n}\n\nfunction simpleCompare(a, b) {\n\treturn a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n\treturn a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n\tvar collection = collectionOrWhereClause instanceof WhereClause ?\n\t\tnew collectionOrWhereClause.Collection(collectionOrWhereClause) :\n\t\tcollectionOrWhereClause;\n\tcollection._ctx.error = T ? new T(err) : new TypeError(err);\n\treturn collection;\n}\nfunction emptyCollection(whereClause) {\n\treturn new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n\treturn dir === \"next\" ?\n\t\tfunction (s) { return s.toUpperCase(); } :\n\t\tfunction (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n\treturn dir === \"next\" ?\n\t\tfunction (s) { return s.toLowerCase(); } :\n\t\tfunction (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n\tvar length = Math.min(key.length, lowerNeedle.length);\n\tvar llp = -1;\n\tfor (var i = 0; i < length; ++i) {\n\t\tvar lwrKeyChar = lowerKey[i];\n\t\tif (lwrKeyChar !== lowerNeedle[i]) {\n\t\t\tif (cmp(key[i], upperNeedle[i]) < 0)\n\t\t\t\treturn key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n\t\t\tif (cmp(key[i], lowerNeedle[i]) < 0)\n\t\t\t\treturn key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n\t\t\tif (llp >= 0)\n\t\t\t\treturn key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n\t\t\treturn null;\n\t\t}\n\t\tif (cmp(key[i], lwrKeyChar) < 0)\n\t\t\tllp = i;\n\t}\n\tif (length < lowerNeedle.length && dir === \"next\")\n\t\treturn key + upperNeedle.substr(key.length);\n\tif (length < key.length && dir === \"prev\")\n\t\treturn key.substr(0, upperNeedle.length);\n\treturn (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n\tvar upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n\tif (!needles.every(function (s) { return typeof s === 'string'; })) {\n\t\treturn fail(whereClause, STRING_EXPECTED);\n\t}\n\tfunction initDirection(dir) {\n\t\tupper = upperFactory(dir);\n\t\tlower = lowerFactory(dir);\n\t\tcompare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n\t\tvar needleBounds = needles.map(function (needle) {\n\t\t\treturn { lower: lower(needle), upper: upper(needle) };\n\t\t}).sort(function (a, b) {\n\t\t\treturn compare(a.lower, b.lower);\n\t\t});\n\t\tupperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n\t\tlowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n\t\tdirection = dir;\n\t\tnextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n\t}\n\tinitDirection(\"next\");\n\tvar c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n\tc._ondirectionchange = function (direction) {\n\t\tinitDirection(direction);\n\t};\n\tvar firstPossibleNeedle = 0;\n\tc._addAlgorithm(function (cursor, advance, resolve) {\n\t\tvar key = cursor.key;\n\t\tif (typeof key !== 'string')\n\t\t\treturn false;\n\t\tvar lowerKey = lower(key);\n\t\tif (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n\t\t\treturn true;\n\t\t}\n\t\telse {\n\t\t\tvar lowestPossibleCasing = null;\n\t\t\tfor (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n\t\t\t\tvar casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n\t\t\t\tif (casing === null && lowestPossibleCasing === null)\n\t\t\t\t\tfirstPossibleNeedle = i + 1;\n\t\t\t\telse if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n\t\t\t\t\tlowestPossibleCasing = casing;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (lowestPossibleCasing !== null) {\n\t\t\t\tadvance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n\t\t\t}\n\t\t\telse {\n\t\t\t\tadvance(resolve);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t});\n\treturn c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n\treturn {\n\t\ttype: 2 ,\n\t\tlower: lower,\n\t\tupper: upper,\n\t\tlowerOpen: lowerOpen,\n\t\tupperOpen: upperOpen\n\t};\n}\nfunction rangeEqual(value) {\n\treturn {\n\t\ttype: 1 ,\n\t\tlower: value,\n\t\tupper: value\n\t};\n}\n\nvar WhereClause =  (function () {\n\tfunction WhereClause() {\n\t}\n\tObject.defineProperty(WhereClause.prototype, \"Collection\", {\n\t\tget: function () {\n\t\t\treturn this._ctx.table.db.Collection;\n\t\t},\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n\tWhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n\t\tincludeLower = includeLower !== false;\n\t\tincludeUpper = includeUpper === true;\n\t\ttry {\n\t\t\tif ((this._cmp(lower, upper) > 0) ||\n\t\t\t\t(this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n\t\t\t\treturn emptyCollection(this);\n\t\t\treturn new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\t}\n\t};\n\tWhereClause.prototype.equals = function (value) {\n\t\tif (value == null)\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\treturn new this.Collection(this, function () { return rangeEqual(value); });\n\t};\n\tWhereClause.prototype.above = function (value) {\n\t\tif (value == null)\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\treturn new this.Collection(this, function () { return createRange(value, undefined, true); });\n\t};\n\tWhereClause.prototype.aboveOrEqual = function (value) {\n\t\tif (value == null)\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\treturn new this.Collection(this, function () { return createRange(value, undefined, false); });\n\t};\n\tWhereClause.prototype.below = function (value) {\n\t\tif (value == null)\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\treturn new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n\t};\n\tWhereClause.prototype.belowOrEqual = function (value) {\n\t\tif (value == null)\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\treturn new this.Collection(this, function () { return createRange(undefined, value); });\n\t};\n\tWhereClause.prototype.startsWith = function (str) {\n\t\tif (typeof str !== 'string')\n\t\t\treturn fail(this, STRING_EXPECTED);\n\t\treturn this.between(str, str + maxString, true, true);\n\t};\n\tWhereClause.prototype.startsWithIgnoreCase = function (str) {\n\t\tif (str === \"\")\n\t\t\treturn this.startsWith(str);\n\t\treturn addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n\t};\n\tWhereClause.prototype.equalsIgnoreCase = function (str) {\n\t\treturn addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n\t};\n\tWhereClause.prototype.anyOfIgnoreCase = function () {\n\t\tvar set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\t\tif (set.length === 0)\n\t\t\treturn emptyCollection(this);\n\t\treturn addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n\t};\n\tWhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n\t\tvar set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\t\tif (set.length === 0)\n\t\t\treturn emptyCollection(this);\n\t\treturn addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n\t};\n\tWhereClause.prototype.anyOf = function () {\n\t\tvar _this = this;\n\t\tvar set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\t\tvar compare = this._cmp;\n\t\ttry {\n\t\t\tset.sort(compare);\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\t}\n\t\tif (set.length === 0)\n\t\t\treturn emptyCollection(this);\n\t\tvar c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n\t\tc._ondirectionchange = function (direction) {\n\t\t\tcompare = (direction === \"next\" ?\n\t\t\t\t_this._ascending :\n\t\t\t\t_this._descending);\n\t\t\tset.sort(compare);\n\t\t};\n\t\tvar i = 0;\n\t\tc._addAlgorithm(function (cursor, advance, resolve) {\n\t\t\tvar key = cursor.key;\n\t\t\twhile (compare(key, set[i]) > 0) {\n\t\t\t\t++i;\n\t\t\t\tif (i === set.length) {\n\t\t\t\t\tadvance(resolve);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (compare(key, set[i]) === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tadvance(function () { cursor.continue(set[i]); });\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\treturn c;\n\t};\n\tWhereClause.prototype.notEqual = function (value) {\n\t\treturn this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n\t};\n\tWhereClause.prototype.noneOf = function () {\n\t\tvar set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\t\tif (set.length === 0)\n\t\t\treturn new this.Collection(this);\n\t\ttry {\n\t\t\tset.sort(this._ascending);\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\t}\n\t\tvar ranges = set.reduce(function (res, val) { return res ?\n\t\t\tres.concat([[res[res.length - 1][1], val]]) :\n\t\t\t[[minKey, val]]; }, null);\n\t\tranges.push([set[set.length - 1], this.db._maxKey]);\n\t\treturn this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n\t};\n\tWhereClause.prototype.inAnyRange = function (ranges, options) {\n\t\tvar _this = this;\n\t\tvar cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n\t\tif (ranges.length === 0)\n\t\t\treturn emptyCollection(this);\n\t\tif (!ranges.every(function (range) {\n\t\t\treturn range[0] !== undefined &&\n\t\t\t\trange[1] !== undefined &&\n\t\t\t\tascending(range[0], range[1]) <= 0;\n\t\t})) {\n\t\t\treturn 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);\n\t\t}\n\t\tvar includeLowers = !options || options.includeLowers !== false;\n\t\tvar includeUppers = options && options.includeUppers === true;\n\t\tfunction addRange(ranges, newRange) {\n\t\t\tvar i = 0, l = ranges.length;\n\t\t\tfor (; i < l; ++i) {\n\t\t\t\tvar range = ranges[i];\n\t\t\t\tif (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n\t\t\t\t\trange[0] = min(range[0], newRange[0]);\n\t\t\t\t\trange[1] = max(range[1], newRange[1]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i === l)\n\t\t\t\tranges.push(newRange);\n\t\t\treturn ranges;\n\t\t}\n\t\tvar sortDirection = ascending;\n\t\tfunction rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n\t\tvar set;\n\t\ttry {\n\t\t\tset = ranges.reduce(addRange, []);\n\t\t\tset.sort(rangeSorter);\n\t\t}\n\t\tcatch (ex) {\n\t\t\treturn fail(this, INVALID_KEY_ARGUMENT);\n\t\t}\n\t\tvar rangePos = 0;\n\t\tvar keyIsBeyondCurrentEntry = includeUppers ?\n\t\t\tfunction (key) { return ascending(key, set[rangePos][1]) > 0; } :\n\t\t\tfunction (key) { return ascending(key, set[rangePos][1]) >= 0; };\n\t\tvar keyIsBeforeCurrentEntry = includeLowers ?\n\t\t\tfunction (key) { return descending(key, set[rangePos][0]) > 0; } :\n\t\t\tfunction (key) { return descending(key, set[rangePos][0]) >= 0; };\n\t\tfunction keyWithinCurrentRange(key) {\n\t\t\treturn !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n\t\t}\n\t\tvar checkKey = keyIsBeyondCurrentEntry;\n\t\tvar c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n\t\tc._ondirectionchange = function (direction) {\n\t\t\tif (direction === \"next\") {\n\t\t\t\tcheckKey = keyIsBeyondCurrentEntry;\n\t\t\t\tsortDirection = ascending;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcheckKey = keyIsBeforeCurrentEntry;\n\t\t\t\tsortDirection = descending;\n\t\t\t}\n\t\t\tset.sort(rangeSorter);\n\t\t};\n\t\tc._addAlgorithm(function (cursor, advance, resolve) {\n\t\t\tvar key = cursor.key;\n\t\t\twhile (checkKey(key)) {\n\t\t\t\t++rangePos;\n\t\t\t\tif (rangePos === set.length) {\n\t\t\t\t\tadvance(resolve);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (keyWithinCurrentRange(key)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tadvance(function () {\n\t\t\t\t\tif (sortDirection === ascending)\n\t\t\t\t\t\tcursor.continue(set[rangePos][0]);\n\t\t\t\t\telse\n\t\t\t\t\t\tcursor.continue(set[rangePos][1]);\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\treturn c;\n\t};\n\tWhereClause.prototype.startsWithAnyOf = function () {\n\t\tvar set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\t\tif (!set.every(function (s) { return typeof s === 'string'; })) {\n\t\t\treturn fail(this, \"startsWithAnyOf() only works with strings\");\n\t\t}\n\t\tif (set.length === 0)\n\t\t\treturn emptyCollection(this);\n\t\treturn this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n\t};\n\treturn WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n\treturn makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n\t\tthis.db = db;\n\t\tthis._ctx = {\n\t\t\ttable: table,\n\t\t\tindex: index === \":id\" ? null : index,\n\t\t\tor: orCollection\n\t\t};\n\t\tthis._cmp = this._ascending = cmp;\n\t\tthis._descending = function (a, b) { return cmp(b, a); };\n\t\tthis._max = function (a, b) { return cmp(a, b) > 0 ? a : b; };\n\t\tthis._min = function (a, b) { return cmp(a, b) < 0 ? a : b; };\n\t\tthis._IDBKeyRange = db._deps.IDBKeyRange;\n\t\tif (!this._IDBKeyRange)\n\t\t\tthrow new exceptions.MissingAPI();\n\t});\n}\n\nfunction eventRejectHandler(reject) {\n\treturn wrap(function (event) {\n\t\tpreventDefault(event);\n\t\treject(event.target.error);\n\t\treturn false;\n\t});\n}\nfunction preventDefault(event) {\n\tif (event.stopPropagation)\n\t\tevent.stopPropagation();\n\tif (event.preventDefault)\n\t\tevent.preventDefault();\n}\n\nvar DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\nvar STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\nvar globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n\nvar Transaction =  (function () {\n\tfunction Transaction() {\n\t}\n\tTransaction.prototype._lock = function () {\n\t\tassert(!PSD.global);\n\t\t++this._reculock;\n\t\tif (this._reculock === 1 && !PSD.global)\n\t\t\tPSD.lockOwnerFor = this;\n\t\treturn this;\n\t};\n\tTransaction.prototype._unlock = function () {\n\t\tassert(!PSD.global);\n\t\tif (--this._reculock === 0) {\n\t\t\tif (!PSD.global)\n\t\t\t\tPSD.lockOwnerFor = null;\n\t\t\twhile (this._blockedFuncs.length > 0 && !this._locked()) {\n\t\t\t\tvar fnAndPSD = this._blockedFuncs.shift();\n\t\t\t\ttry {\n\t\t\t\t\tusePSD(fnAndPSD[1], fnAndPSD[0]);\n\t\t\t\t}\n\t\t\t\tcatch (e) { }\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t};\n\tTransaction.prototype._locked = function () {\n\t\treturn this._reculock && PSD.lockOwnerFor !== this;\n\t};\n\tTransaction.prototype.create = function (idbtrans) {\n\t\tvar _this = this;\n\t\tif (!this.mode)\n\t\t\treturn this;\n\t\tvar idbdb = this.db.idbdb;\n\t\tvar dbOpenError = this.db._state.dbOpenError;\n\t\tassert(!this.idbtrans);\n\t\tif (!idbtrans && !idbdb) {\n\t\t\tswitch (dbOpenError && dbOpenError.name) {\n\t\t\t\tcase \"DatabaseClosedError\":\n\t\t\t\t\tthrow new exceptions.DatabaseClosed(dbOpenError);\n\t\t\t\tcase \"MissingAPIError\":\n\t\t\t\t\tthrow new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new exceptions.OpenFailed(dbOpenError);\n\t\t\t}\n\t\t}\n\t\tif (!this.active)\n\t\t\tthrow new exceptions.TransactionInactive();\n\t\tassert(this._completion._state === null);\n\t\tidbtrans = this.idbtrans = idbtrans ||\n\t\t\t(this.db.core\n\t\t\t\t? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n\t\t\t\t: idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }));\n\t\tidbtrans.onerror = wrap(function (ev) {\n\t\t\tpreventDefault(ev);\n\t\t\t_this._reject(idbtrans.error);\n\t\t});\n\t\tidbtrans.onabort = wrap(function (ev) {\n\t\t\tpreventDefault(ev);\n\t\t\t_this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n\t\t\t_this.active = false;\n\t\t\t_this.on(\"abort\").fire(ev);\n\t\t});\n\t\tidbtrans.oncomplete = wrap(function () {\n\t\t\t_this.active = false;\n\t\t\t_this._resolve();\n\t\t\tif ('mutatedParts' in idbtrans) {\n\t\t\t\tglobalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t};\n\tTransaction.prototype._promise = function (mode, fn, bWriteLock) {\n\t\tvar _this = this;\n\t\tif (mode === 'readwrite' && this.mode !== 'readwrite')\n\t\t\treturn rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n\t\tif (!this.active)\n\t\t\treturn rejection(new exceptions.TransactionInactive());\n\t\tif (this._locked()) {\n\t\t\treturn new DexiePromise(function (resolve, reject) {\n\t\t\t\t_this._blockedFuncs.push([function () {\n\t\t\t\t\t\t_this._promise(mode, fn, bWriteLock).then(resolve, reject);\n\t\t\t\t\t}, PSD]);\n\t\t\t});\n\t\t}\n\t\telse if (bWriteLock) {\n\t\t\treturn newScope(function () {\n\t\t\t\tvar p = new DexiePromise(function (resolve, reject) {\n\t\t\t\t\t_this._lock();\n\t\t\t\t\tvar rv = fn(resolve, reject, _this);\n\t\t\t\t\tif (rv && rv.then)\n\t\t\t\t\t\trv.then(resolve, reject);\n\t\t\t\t});\n\t\t\t\tp.finally(function () { return _this._unlock(); });\n\t\t\t\tp._lib = true;\n\t\t\t\treturn p;\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tvar p = new DexiePromise(function (resolve, reject) {\n\t\t\t\tvar rv = fn(resolve, reject, _this);\n\t\t\t\tif (rv && rv.then)\n\t\t\t\t\trv.then(resolve, reject);\n\t\t\t});\n\t\t\tp._lib = true;\n\t\t\treturn p;\n\t\t}\n\t};\n\tTransaction.prototype._root = function () {\n\t\treturn this.parent ? this.parent._root() : this;\n\t};\n\tTransaction.prototype.waitFor = function (promiseLike) {\n\t\tvar root = this._root();\n\t\tvar promise = DexiePromise.resolve(promiseLike);\n\t\tif (root._waitingFor) {\n\t\t\troot._waitingFor = root._waitingFor.then(function () { return promise; });\n\t\t}\n\t\telse {\n\t\t\troot._waitingFor = promise;\n\t\t\troot._waitingQueue = [];\n\t\t\tvar store = root.idbtrans.objectStore(root.storeNames[0]);\n\t\t\t(function spin() {\n\t\t\t\t++root._spinCount;\n\t\t\t\twhile (root._waitingQueue.length)\n\t\t\t\t\t(root._waitingQueue.shift())();\n\t\t\t\tif (root._waitingFor)\n\t\t\t\t\tstore.get(-Infinity).onsuccess = spin;\n\t\t\t}());\n\t\t}\n\t\tvar currentWaitPromise = root._waitingFor;\n\t\treturn new DexiePromise(function (resolve, reject) {\n\t\t\tpromise.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 () {\n\t\t\t\tif (root._waitingFor === currentWaitPromise) {\n\t\t\t\t\troot._waitingFor = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n\tTransaction.prototype.abort = function () {\n\t\tif (this.active) {\n\t\t\tthis.active = false;\n\t\t\tif (this.idbtrans)\n\t\t\t\tthis.idbtrans.abort();\n\t\t\tthis._reject(new exceptions.Abort());\n\t\t}\n\t};\n\tTransaction.prototype.table = function (tableName) {\n\t\tvar memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n\t\tif (hasOwn(memoizedTables, tableName))\n\t\t\treturn memoizedTables[tableName];\n\t\tvar tableSchema = this.schema[tableName];\n\t\tif (!tableSchema) {\n\t\t\tthrow new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n\t\t}\n\t\tvar transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n\t\ttransactionBoundTable.core = this.db.core.table(tableName);\n\t\tmemoizedTables[tableName] = transactionBoundTable;\n\t\treturn transactionBoundTable;\n\t};\n\treturn Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n\treturn makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n\t\tvar _this = this;\n\t\tthis.db = db;\n\t\tthis.mode = mode;\n\t\tthis.storeNames = storeNames;\n\t\tthis.schema = dbschema;\n\t\tthis.chromeTransactionDurability = chromeTransactionDurability;\n\t\tthis.idbtrans = null;\n\t\tthis.on = Events(this, \"complete\", \"error\", \"abort\");\n\t\tthis.parent = parent || null;\n\t\tthis.active = true;\n\t\tthis._reculock = 0;\n\t\tthis._blockedFuncs = [];\n\t\tthis._resolve = null;\n\t\tthis._reject = null;\n\t\tthis._waitingFor = null;\n\t\tthis._waitingQueue = null;\n\t\tthis._spinCount = 0;\n\t\tthis._completion = new DexiePromise(function (resolve, reject) {\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._reject = reject;\n\t\t});\n\t\tthis._completion.then(function () {\n\t\t\t_this.active = false;\n\t\t\t_this.on.complete.fire();\n\t\t}, function (e) {\n\t\t\tvar wasActive = _this.active;\n\t\t\t_this.active = false;\n\t\t\t_this.on.error.fire(e);\n\t\t\t_this.parent ?\n\t\t\t\t_this.parent._reject(e) :\n\t\t\t\twasActive && _this.idbtrans && _this.idbtrans.abort();\n\t\t\treturn rejection(e);\n\t\t});\n\t});\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n\treturn {\n\t\tname: name,\n\t\tkeyPath: keyPath,\n\t\tunique: unique,\n\t\tmulti: multi,\n\t\tauto: auto,\n\t\tcompound: compound,\n\t\tsrc: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n\t};\n}\nfunction nameFromKeyPath(keyPath) {\n\treturn typeof keyPath === 'string' ?\n\t\tkeyPath :\n\t\tkeyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n\treturn {\n\t\tname: name,\n\t\tprimKey: primKey,\n\t\tindexes: indexes,\n\t\tmappedClass: null,\n\t\tidxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n\t};\n}\n\nfunction safariMultiStoreFix(storeNames) {\n\treturn storeNames.length === 1 ? storeNames[0] : storeNames;\n}\nvar getMaxKey = function (IdbKeyRange) {\n\ttry {\n\t\tIdbKeyRange.only([[]]);\n\t\tgetMaxKey = function () { return [[]]; };\n\t\treturn [[]];\n\t}\n\tcatch (e) {\n\t\tgetMaxKey = function () { return maxString; };\n\t\treturn maxString;\n\t}\n};\n\nfunction getKeyExtractor(keyPath) {\n\tif (keyPath == null) {\n\t\treturn function () { return undefined; };\n\t}\n\telse if (typeof keyPath === 'string') {\n\t\treturn getSinglePathKeyExtractor(keyPath);\n\t}\n\telse {\n\t\treturn function (obj) { return getByKeyPath(obj, keyPath); };\n\t}\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n\tvar split = keyPath.split('.');\n\tif (split.length === 1) {\n\t\treturn function (obj) { return obj[keyPath]; };\n\t}\n\telse {\n\t\treturn function (obj) { return getByKeyPath(obj, keyPath); };\n\t}\n}\n\nfunction arrayify(arrayLike) {\n\treturn [].slice.call(arrayLike);\n}\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n\treturn keyPath == null ?\n\t\t\":id\" :\n\t\ttypeof keyPath === 'string' ?\n\t\t\tkeyPath :\n\t\t\t\"[\".concat(keyPath.join('+'), \"]\");\n}\nfunction createDBCore(db, IdbKeyRange, tmpTrans) {\n\tfunction extractSchema(db, trans) {\n\t\tvar tables = arrayify(db.objectStoreNames);\n\t\treturn {\n\t\t\tschema: {\n\t\t\t\tname: db.name,\n\t\t\t\ttables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n\t\t\t\t\tvar keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n\t\t\t\t\tvar compound = isArray(keyPath);\n\t\t\t\t\tvar outbound = keyPath == null;\n\t\t\t\t\tvar indexByKeyPath = {};\n\t\t\t\t\tvar result = {\n\t\t\t\t\t\tname: store.name,\n\t\t\t\t\t\tprimaryKey: {\n\t\t\t\t\t\t\tname: null,\n\t\t\t\t\t\t\tisPrimaryKey: true,\n\t\t\t\t\t\t\toutbound: outbound,\n\t\t\t\t\t\t\tcompound: compound,\n\t\t\t\t\t\t\tkeyPath: keyPath,\n\t\t\t\t\t\t\tautoIncrement: autoIncrement,\n\t\t\t\t\t\t\tunique: true,\n\t\t\t\t\t\t\textractKey: getKeyExtractor(keyPath)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tindexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n\t\t\t\t\t\t\t.map(function (index) {\n\t\t\t\t\t\t\tvar name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n\t\t\t\t\t\t\tvar compound = isArray(keyPath);\n\t\t\t\t\t\t\tvar result = {\n\t\t\t\t\t\t\t\tname: name,\n\t\t\t\t\t\t\t\tcompound: compound,\n\t\t\t\t\t\t\t\tkeyPath: keyPath,\n\t\t\t\t\t\t\t\tunique: unique,\n\t\t\t\t\t\t\t\tmultiEntry: multiEntry,\n\t\t\t\t\t\t\t\textractKey: getKeyExtractor(keyPath)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tindexByKeyPath[getKeyPathAlias(keyPath)] = result;\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tgetIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n\t\t\t\t\t};\n\t\t\t\t\tindexByKeyPath[\":id\"] = result.primaryKey;\n\t\t\t\t\tif (keyPath != null) {\n\t\t\t\t\t\tindexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t})\n\t\t\t},\n\t\t\thasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n\t\t\t\t!(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n\t\t\t\t\t!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n\t\t\t\t\t[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n\t\t};\n\t}\n\tfunction makeIDBKeyRange(range) {\n\t\tif (range.type === 3 )\n\t\t\treturn null;\n\t\tif (range.type === 4 )\n\t\t\tthrow new Error(\"Cannot convert never type to IDBKeyRange\");\n\t\tvar lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n\t\tvar idbRange = lower === undefined ?\n\t\t\tupper === undefined ?\n\t\t\t\tnull :\n\t\t\t\tIdbKeyRange.upperBound(upper, !!upperOpen) :\n\t\t\tupper === undefined ?\n\t\t\t\tIdbKeyRange.lowerBound(lower, !!lowerOpen) :\n\t\t\t\tIdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n\t\treturn idbRange;\n\t}\n\tfunction createDbCoreTable(tableSchema) {\n\t\tvar tableName = tableSchema.name;\n\t\tfunction mutate(_a) {\n\t\t\tvar trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tresolve = wrap(resolve);\n\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\tvar outbound = store.keyPath == null;\n\t\t\t\tvar isAddOrPut = type === \"put\" || type === \"add\";\n\t\t\t\tif (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n\t\t\t\t\tthrow new Error(\"Invalid operation type: \" + type);\n\t\t\t\tvar length = (keys || values || { length: 1 }).length;\n\t\t\t\tif (keys && values && keys.length !== values.length) {\n\t\t\t\t\tthrow new Error(\"Given keys array must have same length as given values array.\");\n\t\t\t\t}\n\t\t\t\tif (length === 0)\n\t\t\t\t\treturn resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n\t\t\t\tvar req;\n\t\t\t\tvar reqs = [];\n\t\t\t\tvar failures = [];\n\t\t\t\tvar numFailures = 0;\n\t\t\t\tvar errorHandler = function (event) {\n\t\t\t\t\t++numFailures;\n\t\t\t\t\tpreventDefault(event);\n\t\t\t\t};\n\t\t\t\tif (type === 'deleteRange') {\n\t\t\t\t\tif (range.type === 4 )\n\t\t\t\t\t\treturn resolve({ numFailures: numFailures, failures: failures, results: [], lastResult: undefined });\n\t\t\t\t\tif (range.type === 3 )\n\t\t\t\t\t\treqs.push(req = store.clear());\n\t\t\t\t\telse\n\t\t\t\t\t\treqs.push(req = store.delete(makeIDBKeyRange(range)));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar _a = isAddOrPut ?\n\t\t\t\t\t\toutbound ?\n\t\t\t\t\t\t\t[values, keys] :\n\t\t\t\t\t\t\t[values, null] :\n\t\t\t\t\t\t[keys, null], args1 = _a[0], args2 = _a[1];\n\t\t\t\t\tif (isAddOrPut) {\n\t\t\t\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t\t\t\treqs.push(req = (args2 && args2[i] !== undefined ?\n\t\t\t\t\t\t\t\tstore[type](args1[i], args2[i]) :\n\t\t\t\t\t\t\t\tstore[type](args1[i])));\n\t\t\t\t\t\t\treq.onerror = errorHandler;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t\t\t\treqs.push(req = store[type](args1[i]));\n\t\t\t\t\t\t\treq.onerror = errorHandler;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar done = function (event) {\n\t\t\t\t\tvar lastResult = event.target.result;\n\t\t\t\t\treqs.forEach(function (req, i) { return req.error != null && (failures[i] = req.error); });\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tnumFailures: numFailures,\n\t\t\t\t\t\tfailures: failures,\n\t\t\t\t\t\tresults: type === \"delete\" ? keys : reqs.map(function (req) { return req.result; }),\n\t\t\t\t\t\tlastResult: lastResult\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\treq.onerror = function (event) {\n\t\t\t\t\terrorHandler(event);\n\t\t\t\t\tdone(event);\n\t\t\t\t};\n\t\t\t\treq.onsuccess = done;\n\t\t\t});\n\t\t}\n\t\tfunction openCursor(_a) {\n\t\t\tvar trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tresolve = wrap(resolve);\n\t\t\t\tvar index = query.index, range = query.range;\n\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\tvar source = index.isPrimaryKey ?\n\t\t\t\t\tstore :\n\t\t\t\t\tstore.index(index.name);\n\t\t\t\tvar direction = reverse ?\n\t\t\t\t\tunique ?\n\t\t\t\t\t\t\"prevunique\" :\n\t\t\t\t\t\t\"prev\" :\n\t\t\t\t\tunique ?\n\t\t\t\t\t\t\"nextunique\" :\n\t\t\t\t\t\t\"next\";\n\t\t\t\tvar req = values || !('openKeyCursor' in source) ?\n\t\t\t\t\tsource.openCursor(makeIDBKeyRange(range), direction) :\n\t\t\t\t\tsource.openKeyCursor(makeIDBKeyRange(range), direction);\n\t\t\t\treq.onerror = eventRejectHandler(reject);\n\t\t\t\treq.onsuccess = wrap(function (ev) {\n\t\t\t\t\tvar cursor = req.result;\n\t\t\t\t\tif (!cursor) {\n\t\t\t\t\t\tresolve(null);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcursor.___id = ++_id_counter;\n\t\t\t\t\tcursor.done = false;\n\t\t\t\t\tvar _cursorContinue = cursor.continue.bind(cursor);\n\t\t\t\t\tvar _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n\t\t\t\t\tif (_cursorContinuePrimaryKey)\n\t\t\t\t\t\t_cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n\t\t\t\t\tvar _cursorAdvance = cursor.advance.bind(cursor);\n\t\t\t\t\tvar doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n\t\t\t\t\tvar doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n\t\t\t\t\tcursor.trans = trans;\n\t\t\t\t\tcursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n\t\t\t\t\tcursor.fail = wrap(reject);\n\t\t\t\t\tcursor.next = function () {\n\t\t\t\t\t\tvar _this = this;\n\t\t\t\t\t\tvar gotOne = 1;\n\t\t\t\t\t\treturn this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n\t\t\t\t\t};\n\t\t\t\t\tcursor.start = function (callback) {\n\t\t\t\t\t\tvar iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n\t\t\t\t\t\t\tresolveIteration = wrap(resolveIteration);\n\t\t\t\t\t\t\treq.onerror = eventRejectHandler(rejectIteration);\n\t\t\t\t\t\t\tcursor.fail = rejectIteration;\n\t\t\t\t\t\t\tcursor.stop = function (value) {\n\t\t\t\t\t\t\t\tcursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n\t\t\t\t\t\t\t\tresolveIteration(value);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar guardedCallback = function () {\n\t\t\t\t\t\t\tif (req.result) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\t\t\t\tcursor.fail(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tcursor.done = true;\n\t\t\t\t\t\t\t\tcursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n\t\t\t\t\t\t\t\tcursor.stop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\treq.onsuccess = wrap(function (ev) {\n\t\t\t\t\t\t\treq.onsuccess = guardedCallback;\n\t\t\t\t\t\t\tguardedCallback();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcursor.continue = _cursorContinue;\n\t\t\t\t\t\tcursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n\t\t\t\t\t\tcursor.advance = _cursorAdvance;\n\t\t\t\t\t\tguardedCallback();\n\t\t\t\t\t\treturn iterationPromise;\n\t\t\t\t\t};\n\t\t\t\t\tresolve(cursor);\n\t\t\t\t}, reject);\n\t\t\t});\n\t\t}\n\t\tfunction query(hasGetAll) {\n\t\t\treturn function (request) {\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tresolve = wrap(resolve);\n\t\t\t\t\tvar trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n\t\t\t\t\tvar nonInfinitLimit = limit === Infinity ? undefined : limit;\n\t\t\t\t\tvar index = query.index, range = query.range;\n\t\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\t\tvar source = index.isPrimaryKey ? store : store.index(index.name);\n\t\t\t\t\tvar idbKeyRange = makeIDBKeyRange(range);\n\t\t\t\t\tif (limit === 0)\n\t\t\t\t\t\treturn resolve({ result: [] });\n\t\t\t\t\tif (hasGetAll) {\n\t\t\t\t\t\tvar req = values ?\n\t\t\t\t\t\t\tsource.getAll(idbKeyRange, nonInfinitLimit) :\n\t\t\t\t\t\t\tsource.getAllKeys(idbKeyRange, nonInfinitLimit);\n\t\t\t\t\t\treq.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n\t\t\t\t\t\treq.onerror = eventRejectHandler(reject);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar count_1 = 0;\n\t\t\t\t\t\tvar req_1 = values || !('openKeyCursor' in source) ?\n\t\t\t\t\t\t\tsource.openCursor(idbKeyRange) :\n\t\t\t\t\t\t\tsource.openKeyCursor(idbKeyRange);\n\t\t\t\t\t\tvar result_1 = [];\n\t\t\t\t\t\treq_1.onsuccess = function (event) {\n\t\t\t\t\t\t\tvar cursor = req_1.result;\n\t\t\t\t\t\t\tif (!cursor)\n\t\t\t\t\t\t\t\treturn resolve({ result: result_1 });\n\t\t\t\t\t\t\tresult_1.push(values ? cursor.value : cursor.primaryKey);\n\t\t\t\t\t\t\tif (++count_1 === limit)\n\t\t\t\t\t\t\t\treturn resolve({ result: result_1 });\n\t\t\t\t\t\t\tcursor.continue();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treq_1.onerror = eventRejectHandler(reject);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tname: tableName,\n\t\t\tschema: tableSchema,\n\t\t\tmutate: mutate,\n\t\t\tgetMany: function (_a) {\n\t\t\t\tvar trans = _a.trans, keys = _a.keys;\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tresolve = wrap(resolve);\n\t\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\t\tvar length = keys.length;\n\t\t\t\t\tvar result = new Array(length);\n\t\t\t\t\tvar keyCount = 0;\n\t\t\t\t\tvar callbackCount = 0;\n\t\t\t\t\tvar req;\n\t\t\t\t\tvar successHandler = function (event) {\n\t\t\t\t\t\tvar req = event.target;\n\t\t\t\t\t\tif ((result[req._pos] = req.result) != null)\n\t\t\t\t\t\t\t;\n\t\t\t\t\t\tif (++callbackCount === keyCount)\n\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t};\n\t\t\t\t\tvar errorHandler = eventRejectHandler(reject);\n\t\t\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t\t\tvar key = keys[i];\n\t\t\t\t\t\tif (key != null) {\n\t\t\t\t\t\t\treq = store.get(keys[i]);\n\t\t\t\t\t\t\treq._pos = i;\n\t\t\t\t\t\t\treq.onsuccess = successHandler;\n\t\t\t\t\t\t\treq.onerror = errorHandler;\n\t\t\t\t\t\t\t++keyCount;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (keyCount === 0)\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t});\n\t\t\t},\n\t\t\tget: function (_a) {\n\t\t\t\tvar trans = _a.trans, key = _a.key;\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tresolve = wrap(resolve);\n\t\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\t\tvar req = store.get(key);\n\t\t\t\t\treq.onsuccess = function (event) { return resolve(event.target.result); };\n\t\t\t\t\treq.onerror = eventRejectHandler(reject);\n\t\t\t\t});\n\t\t\t},\n\t\t\tquery: query(hasGetAll),\n\t\t\topenCursor: openCursor,\n\t\t\tcount: function (_a) {\n\t\t\t\tvar query = _a.query, trans = _a.trans;\n\t\t\t\tvar index = query.index, range = query.range;\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tvar store = trans.objectStore(tableName);\n\t\t\t\t\tvar source = index.isPrimaryKey ? store : store.index(index.name);\n\t\t\t\t\tvar idbKeyRange = makeIDBKeyRange(range);\n\t\t\t\t\tvar req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n\t\t\t\t\treq.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n\t\t\t\t\treq.onerror = eventRejectHandler(reject);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\tvar _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n\tvar tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n\tvar tableMap = {};\n\ttables.forEach(function (table) { return tableMap[table.name] = table; });\n\treturn {\n\t\tstack: \"dbcore\",\n\t\ttransaction: db.transaction.bind(db),\n\t\ttable: function (name) {\n\t\t\tvar result = tableMap[name];\n\t\t\tif (!result)\n\t\t\t\tthrow new Error(\"Table '\".concat(name, \"' not found\"));\n\t\t\treturn tableMap[name];\n\t\t},\n\t\tMIN_KEY: -Infinity,\n\t\tMAX_KEY: getMaxKey(IdbKeyRange),\n\t\tschema: schema\n\t};\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n\treturn middlewares.reduce(function (down, _a) {\n\t\tvar create = _a.create;\n\t\treturn (__assign(__assign({}, down), create(down)));\n\t}, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n\tvar IDBKeyRange = _a.IDBKeyRange; _a.indexedDB;\n\tvar dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n\treturn {\n\t\tdbcore: dbcore\n\t};\n}\nfunction generateMiddlewareStacks(db, tmpTrans) {\n\tvar idbdb = tmpTrans.db;\n\tvar stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n\tdb.core = stacks.dbcore;\n\tdb.tables.forEach(function (table) {\n\t\tvar tableName = table.name;\n\t\tif (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n\t\t\ttable.core = db.core.table(tableName);\n\t\t\tif (db[tableName] instanceof db.Table) {\n\t\t\t\tdb[tableName].core = table.core;\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction setApiOnPlace(db, objs, tableNames, dbschema) {\n\ttableNames.forEach(function (tableName) {\n\t\tvar schema = dbschema[tableName];\n\t\tobjs.forEach(function (obj) {\n\t\t\tvar propDesc = getPropertyDescriptor(obj, tableName);\n\t\t\tif (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n\t\t\t\tif (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n\t\t\t\t\tsetProp(obj, tableName, {\n\t\t\t\t\t\tget: function () { return this.table(tableName); },\n\t\t\t\t\t\tset: function (value) {\n\t\t\t\t\t\t\tdefineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tobj[tableName] = new db.Table(tableName, schema);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\nfunction removeTablesApi(db, objs) {\n\tobjs.forEach(function (obj) {\n\t\tfor (var key in obj) {\n\t\t\tif (obj[key] instanceof db.Table)\n\t\t\t\tdelete obj[key];\n\t\t}\n\t});\n}\nfunction lowerVersionFirst(a, b) {\n\treturn a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n\tvar globalSchema = db._dbSchema;\n\tif (idbUpgradeTrans.objectStoreNames.contains('$meta') && !globalSchema.$meta) {\n\t\tglobalSchema.$meta = createTableSchema(\"$meta\", parseIndexSyntax(\"\")[0], []);\n\t\tdb._storeNames.push('$meta');\n\t}\n\tvar trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n\ttrans.create(idbUpgradeTrans);\n\ttrans._completion.catch(reject);\n\tvar rejectTransaction = trans._reject.bind(trans);\n\tvar transless = PSD.transless || PSD;\n\tnewScope(function () {\n\t\tPSD.trans = trans;\n\t\tPSD.transless = transless;\n\t\tif (oldVersion === 0) {\n\t\t\tkeys(globalSchema).forEach(function (tableName) {\n\t\t\t\tcreateTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n\t\t\t});\n\t\t\tgenerateMiddlewareStacks(db, idbUpgradeTrans);\n\t\t\tDexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n\t\t}\n\t\telse {\n\t\t\tgenerateMiddlewareStacks(db, idbUpgradeTrans);\n\t\t\treturn getExistingVersion(db, trans, oldVersion)\n\t\t\t\t.then(function (oldVersion) { return updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans); })\n\t\t\t\t.catch(rejectTransaction);\n\t\t}\n\t});\n}\nfunction patchCurrentVersion(db, idbUpgradeTrans) {\n\tcreateMissingTables(db._dbSchema, idbUpgradeTrans);\n\tif (idbUpgradeTrans.db.version % 10 === 0 && !idbUpgradeTrans.objectStoreNames.contains('$meta')) {\n\t\tidbUpgradeTrans.db.createObjectStore('$meta').add(Math.ceil((idbUpgradeTrans.db.version / 10) - 1), 'version');\n\t}\n\tvar globalSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n\tadjustToExistingIndexNames(db, db._dbSchema, idbUpgradeTrans);\n\tvar diff = getSchemaDiff(globalSchema, db._dbSchema);\n\tvar _loop_1 = function (tableChange) {\n\t\tif (tableChange.change.length || tableChange.recreate) {\n\t\t\tconsole.warn(\"Unable to patch indexes of table \".concat(tableChange.name, \" because it has changes on the type of index or primary key.\"));\n\t\t\treturn { value: void 0 };\n\t\t}\n\t\tvar store = idbUpgradeTrans.objectStore(tableChange.name);\n\t\ttableChange.add.forEach(function (idx) {\n\t\t\tif (debug)\n\t\t\t\tconsole.debug(\"Dexie upgrade patch: Creating missing index \".concat(tableChange.name, \".\").concat(idx.src));\n\t\t\taddIndex(store, idx);\n\t\t});\n\t};\n\tfor (var _i = 0, _a = diff.change; _i < _a.length; _i++) {\n\t\tvar tableChange = _a[_i];\n\t\tvar state_1 = _loop_1(tableChange);\n\t\tif (typeof state_1 === \"object\")\n\t\t\treturn state_1.value;\n\t}\n}\nfunction getExistingVersion(db, trans, oldVersion) {\n\tif (trans.storeNames.includes('$meta')) {\n\t\treturn trans.table('$meta').get('version').then(function (metaVersion) {\n\t\t\treturn metaVersion != null ? metaVersion : oldVersion;\n\t\t});\n\t}\n\telse {\n\t\treturn DexiePromise.resolve(oldVersion);\n\t}\n}\nfunction updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans) {\n\tvar queue = [];\n\tvar versions = db._versions;\n\tvar globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n\tvar versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n\tif (versToRun.length === 0) {\n\t\treturn DexiePromise.resolve();\n\t}\n\tversToRun.forEach(function (version) {\n\t\tqueue.push(function () {\n\t\t\tvar oldSchema = globalSchema;\n\t\t\tvar newSchema = version._cfg.dbschema;\n\t\t\tadjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n\t\t\tadjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n\t\t\tglobalSchema = db._dbSchema = newSchema;\n\t\t\tvar diff = getSchemaDiff(oldSchema, newSchema);\n\t\t\tdiff.add.forEach(function (tuple) {\n\t\t\t\tcreateTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n\t\t\t});\n\t\t\tdiff.change.forEach(function (change) {\n\t\t\t\tif (change.recreate) {\n\t\t\t\t\tthrow new exceptions.Upgrade(\"Not yet support for changing primary key\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar store_1 = idbUpgradeTrans.objectStore(change.name);\n\t\t\t\t\tchange.add.forEach(function (idx) { return addIndex(store_1, idx); });\n\t\t\t\t\tchange.change.forEach(function (idx) {\n\t\t\t\t\t\tstore_1.deleteIndex(idx.name);\n\t\t\t\t\t\taddIndex(store_1, idx);\n\t\t\t\t\t});\n\t\t\t\t\tchange.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar contentUpgrade = version._cfg.contentUpgrade;\n\t\t\tif (contentUpgrade && version._cfg.version > oldVersion) {\n\t\t\t\tgenerateMiddlewareStacks(db, idbUpgradeTrans);\n\t\t\t\ttrans._memoizedTables = {};\n\t\t\t\tvar upgradeSchema_1 = shallowClone(newSchema);\n\t\t\t\tdiff.del.forEach(function (table) {\n\t\t\t\t\tupgradeSchema_1[table] = oldSchema[table];\n\t\t\t\t});\n\t\t\t\tremoveTablesApi(db, [db.Transaction.prototype]);\n\t\t\t\tsetApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n\t\t\t\ttrans.schema = upgradeSchema_1;\n\t\t\t\tvar contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n\t\t\t\tif (contentUpgradeIsAsync_1) {\n\t\t\t\t\tincrementExpectedAwaits();\n\t\t\t\t}\n\t\t\t\tvar returnValue_1;\n\t\t\t\tvar promiseFollowed = DexiePromise.follow(function () {\n\t\t\t\t\treturnValue_1 = contentUpgrade(trans);\n\t\t\t\t\tif (returnValue_1) {\n\t\t\t\t\t\tif (contentUpgradeIsAsync_1) {\n\t\t\t\t\t\t\tvar decrementor = decrementExpectedAwaits.bind(null, null);\n\t\t\t\t\t\t\treturnValue_1.then(decrementor, decrementor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn (returnValue_1 && typeof returnValue_1.then === 'function' ?\n\t\t\t\t\tDexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n\t\t\t}\n\t\t});\n\t\tqueue.push(function (idbtrans) {\n\t\t\tvar newSchema = version._cfg.dbschema;\n\t\t\tdeleteRemovedTables(newSchema, idbtrans);\n\t\t\tremoveTablesApi(db, [db.Transaction.prototype]);\n\t\t\tsetApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n\t\t\ttrans.schema = db._dbSchema;\n\t\t});\n\t\tqueue.push(function (idbtrans) {\n\t\t\tif (db.idbdb.objectStoreNames.contains('$meta')) {\n\t\t\t\tif (Math.ceil(db.idbdb.version / 10) === version._cfg.version) {\n\t\t\t\t\tdb.idbdb.deleteObjectStore('$meta');\n\t\t\t\t\tdelete db._dbSchema.$meta;\n\t\t\t\t\tdb._storeNames = db._storeNames.filter(function (name) { return name !== '$meta'; });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tidbtrans.objectStore('$meta').put(version._cfg.version, 'version');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\tfunction runQueue() {\n\t\treturn queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n\t\t\tDexiePromise.resolve();\n\t}\n\treturn runQueue().then(function () {\n\t\tcreateMissingTables(globalSchema, idbUpgradeTrans);\n\t});\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n\tvar diff = {\n\t\tdel: [],\n\t\tadd: [],\n\t\tchange: []\n\t};\n\tvar table;\n\tfor (table in oldSchema) {\n\t\tif (!newSchema[table])\n\t\t\tdiff.del.push(table);\n\t}\n\tfor (table in newSchema) {\n\t\tvar oldDef = oldSchema[table], newDef = newSchema[table];\n\t\tif (!oldDef) {\n\t\t\tdiff.add.push([table, newDef]);\n\t\t}\n\t\telse {\n\t\t\tvar change = {\n\t\t\t\tname: table,\n\t\t\t\tdef: newDef,\n\t\t\t\trecreate: false,\n\t\t\t\tdel: [],\n\t\t\t\tadd: [],\n\t\t\t\tchange: []\n\t\t\t};\n\t\t\tif ((\n\t\t\t'' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n\t\t\t\t(oldDef.primKey.auto !== newDef.primKey.auto)) {\n\t\t\t\tchange.recreate = true;\n\t\t\t\tdiff.change.push(change);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar oldIndexes = oldDef.idxByName;\n\t\t\t\tvar newIndexes = newDef.idxByName;\n\t\t\t\tvar idxName = void 0;\n\t\t\t\tfor (idxName in oldIndexes) {\n\t\t\t\t\tif (!newIndexes[idxName])\n\t\t\t\t\t\tchange.del.push(idxName);\n\t\t\t\t}\n\t\t\t\tfor (idxName in newIndexes) {\n\t\t\t\t\tvar oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n\t\t\t\t\tif (!oldIdx)\n\t\t\t\t\t\tchange.add.push(newIdx);\n\t\t\t\t\telse if (oldIdx.src !== newIdx.src)\n\t\t\t\t\t\tchange.change.push(newIdx);\n\t\t\t\t}\n\t\t\t\tif (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n\t\t\t\t\tdiff.change.push(change);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n\tvar store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n\t\t{ keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n\t\t{ autoIncrement: primKey.auto });\n\tindexes.forEach(function (idx) { return addIndex(store, idx); });\n\treturn store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n\tkeys(newSchema).forEach(function (tableName) {\n\t\tif (!idbtrans.db.objectStoreNames.contains(tableName)) {\n\t\t\tif (debug)\n\t\t\t\tconsole.debug('Dexie: Creating missing table', tableName);\n\t\t\tcreateTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n\t\t}\n\t});\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n\t[].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n\t\treturn newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n\t});\n}\nfunction addIndex(store, idx) {\n\tstore.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n\tvar globalSchema = {};\n\tvar dbStoreNames = slice(idbdb.objectStoreNames, 0);\n\tdbStoreNames.forEach(function (storeName) {\n\t\tvar store = tmpTrans.objectStore(storeName);\n\t\tvar keyPath = store.keyPath;\n\t\tvar primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", true, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n\t\tvar indexes = [];\n\t\tfor (var j = 0; j < store.indexNames.length; ++j) {\n\t\t\tvar idbindex = store.index(store.indexNames[j]);\n\t\t\tkeyPath = idbindex.keyPath;\n\t\t\tvar index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n\t\t\tindexes.push(index);\n\t\t}\n\t\tglobalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n\t});\n\treturn globalSchema;\n}\nfunction readGlobalSchema(db, idbdb, tmpTrans) {\n\tdb.verno = idbdb.version / 10;\n\tvar globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n\tdb._storeNames = slice(idbdb.objectStoreNames, 0);\n\tsetApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n\tvar installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n\tvar diff = getSchemaDiff(installedSchema, db._dbSchema);\n\treturn !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(db, schema, idbtrans) {\n\tvar storeNames = idbtrans.db.objectStoreNames;\n\tfor (var i = 0; i < storeNames.length; ++i) {\n\t\tvar storeName = storeNames[i];\n\t\tvar store = idbtrans.objectStore(storeName);\n\t\tdb._hasGetAll = 'getAll' in store;\n\t\tfor (var j = 0; j < store.indexNames.length; ++j) {\n\t\t\tvar indexName = store.indexNames[j];\n\t\t\tvar keyPath = store.index(indexName).keyPath;\n\t\t\tvar dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n\t\t\tif (schema[storeName]) {\n\t\t\t\tvar indexSpec = schema[storeName].idxByName[dexieName];\n\t\t\t\tif (indexSpec) {\n\t\t\t\t\tindexSpec.name = indexName;\n\t\t\t\t\tdelete schema[storeName].idxByName[dexieName];\n\t\t\t\t\tschema[storeName].idxByName[indexName] = indexSpec;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n\t\t!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n\t\t_global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n\t\t[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n\t\tdb._hasGetAll = false;\n\t}\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n\treturn primKeyAndIndexes.split(',').map(function (index, indexNum) {\n\t\tindex = index.trim();\n\t\tvar name = index.replace(/([&*]|\\+\\+)/g, \"\");\n\t\tvar keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n\t\treturn createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n\t});\n}\n\nvar Version =  (function () {\n\tfunction Version() {\n\t}\n\tVersion.prototype._parseStoresSpec = function (stores, outSchema) {\n\t\tkeys(stores).forEach(function (tableName) {\n\t\t\tif (stores[tableName] !== null) {\n\t\t\t\tvar indexes = parseIndexSyntax(stores[tableName]);\n\t\t\t\tvar primKey = indexes.shift();\n\t\t\t\tprimKey.unique = true;\n\t\t\t\tif (primKey.multi)\n\t\t\t\t\tthrow new exceptions.Schema(\"Primary key cannot be multi-valued\");\n\t\t\t\tindexes.forEach(function (idx) {\n\t\t\t\t\tif (idx.auto)\n\t\t\t\t\t\tthrow new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n\t\t\t\t\tif (!idx.keyPath)\n\t\t\t\t\t\tthrow new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n\t\t\t\t});\n\t\t\t\toutSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n\t\t\t}\n\t\t});\n\t};\n\tVersion.prototype.stores = function (stores) {\n\t\tvar db = this.db;\n\t\tthis._cfg.storesSource = this._cfg.storesSource ?\n\t\t\textend(this._cfg.storesSource, stores) :\n\t\t\tstores;\n\t\tvar versions = db._versions;\n\t\tvar storesSpec = {};\n\t\tvar dbschema = {};\n\t\tversions.forEach(function (version) {\n\t\t\textend(storesSpec, version._cfg.storesSource);\n\t\t\tdbschema = (version._cfg.dbschema = {});\n\t\t\tversion._parseStoresSpec(storesSpec, dbschema);\n\t\t});\n\t\tdb._dbSchema = dbschema;\n\t\tremoveTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n\t\tsetApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n\t\tdb._storeNames = keys(dbschema);\n\t\treturn this;\n\t};\n\tVersion.prototype.upgrade = function (upgradeFunction) {\n\t\tthis._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n\t\treturn this;\n\t};\n\treturn Version;\n}());\n\nfunction createVersionConstructor(db) {\n\treturn makeClassConstructor(Version.prototype, function Version(versionNumber) {\n\t\tthis.db = db;\n\t\tthis._cfg = {\n\t\t\tversion: versionNumber,\n\t\t\tstoresSource: null,\n\t\t\tdbschema: {},\n\t\t\ttables: {},\n\t\t\tcontentUpgrade: null\n\t\t};\n\t});\n}\n\nfunction getDbNamesTable(indexedDB, IDBKeyRange) {\n\tvar dbNamesDB = indexedDB[\"_dbNamesDB\"];\n\tif (!dbNamesDB) {\n\t\tdbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n\t\t\taddons: [],\n\t\t\tindexedDB: indexedDB,\n\t\t\tIDBKeyRange: IDBKeyRange,\n\t\t});\n\t\tdbNamesDB.version(1).stores({ dbnames: \"name\" });\n\t}\n\treturn dbNamesDB.table(\"dbnames\");\n}\nfunction hasDatabasesNative(indexedDB) {\n\treturn indexedDB && typeof indexedDB.databases === \"function\";\n}\nfunction getDatabaseNames(_a) {\n\tvar indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n\treturn hasDatabasesNative(indexedDB)\n\t\t? Promise.resolve(indexedDB.databases()).then(function (infos) {\n\t\t\treturn infos\n\t\t\t\t.map(function (info) { return info.name; })\n\t\t\t\t.filter(function (name) { return name !== DBNAMES_DB; });\n\t\t})\n\t\t: getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\nfunction _onDatabaseCreated(_a, name) {\n\tvar indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n\t!hasDatabasesNative(indexedDB) &&\n\t\tname !== DBNAMES_DB &&\n\t\tgetDbNamesTable(indexedDB, IDBKeyRange).put({ name: name }).catch(nop);\n}\nfunction _onDatabaseDeleted(_a, name) {\n\tvar indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n\t!hasDatabasesNative(indexedDB) &&\n\t\tname !== DBNAMES_DB &&\n\t\tgetDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n\nfunction vip(fn) {\n\treturn newScope(function () {\n\t\tPSD.letThrough = true;\n\t\treturn fn();\n\t});\n}\n\nfunction idbReady() {\n\tvar isSafari = !navigator.userAgentData &&\n\t\t/Safari\\//.test(navigator.userAgent) &&\n\t\t!/Chrom(e|ium)\\//.test(navigator.userAgent);\n\tif (!isSafari || !indexedDB.databases)\n\t\treturn Promise.resolve();\n\tvar intervalId;\n\treturn new Promise(function (resolve) {\n\t\tvar tryIdb = function () { return indexedDB.databases().finally(resolve); };\n\t\tintervalId = setInterval(tryIdb, 100);\n\t\ttryIdb();\n\t}).finally(function () { return clearInterval(intervalId); });\n}\n\nvar _a;\nfunction isEmptyRange(node) {\n\treturn !(\"from\" in node);\n}\nvar RangeSet = function (fromOrTree, to) {\n\tif (this) {\n\t\textend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });\n\t}\n\telse {\n\t\tvar rv = new RangeSet();\n\t\tif (fromOrTree && (\"d\" in fromOrTree)) {\n\t\t\textend(rv, fromOrTree);\n\t\t}\n\t\treturn rv;\n\t}\n};\nprops(RangeSet.prototype, (_a = {\n\t\tadd: function (rangeSet) {\n\t\t\tmergeRanges(this, rangeSet);\n\t\t\treturn this;\n\t\t},\n\t\taddKey: function (key) {\n\t\t\taddRange(this, key, key);\n\t\t\treturn this;\n\t\t},\n\t\taddKeys: function (keys) {\n\t\t\tvar _this = this;\n\t\t\tkeys.forEach(function (key) { return addRange(_this, key, key); });\n\t\t\treturn this;\n\t\t},\n\t\thasKey: function (key) {\n\t\t\tvar node = getRangeSetIterator(this).next(key).value;\n\t\t\treturn node && cmp(node.from, key) <= 0 && cmp(node.to, key) >= 0;\n\t\t}\n\t},\n\t_a[iteratorSymbol] = function () {\n\t\treturn getRangeSetIterator(this);\n\t},\n\t_a));\nfunction addRange(target, from, to) {\n\tvar diff = cmp(from, to);\n\tif (isNaN(diff))\n\t\treturn;\n\tif (diff > 0)\n\t\tthrow RangeError();\n\tif (isEmptyRange(target))\n\t\treturn extend(target, { from: from, to: to, d: 1 });\n\tvar left = target.l;\n\tvar right = target.r;\n\tif (cmp(to, target.from) < 0) {\n\t\tleft\n\t\t\t? addRange(left, from, to)\n\t\t\t: (target.l = { from: from, to: to, d: 1, l: null, r: null });\n\t\treturn rebalance(target);\n\t}\n\tif (cmp(from, target.to) > 0) {\n\t\tright\n\t\t\t? addRange(right, from, to)\n\t\t\t: (target.r = { from: from, to: to, d: 1, l: null, r: null });\n\t\treturn rebalance(target);\n\t}\n\tif (cmp(from, target.from) < 0) {\n\t\ttarget.from = from;\n\t\ttarget.l = null;\n\t\ttarget.d = right ? right.d + 1 : 1;\n\t}\n\tif (cmp(to, target.to) > 0) {\n\t\ttarget.to = to;\n\t\ttarget.r = null;\n\t\ttarget.d = target.l ? target.l.d + 1 : 1;\n\t}\n\tvar rightWasCutOff = !target.r;\n\tif (left && !target.l) {\n\t\tmergeRanges(target, left);\n\t}\n\tif (right && rightWasCutOff) {\n\t\tmergeRanges(target, right);\n\t}\n}\nfunction mergeRanges(target, newSet) {\n\tfunction _addRangeSet(target, _a) {\n\t\tvar from = _a.from, to = _a.to, l = _a.l, r = _a.r;\n\t\taddRange(target, from, to);\n\t\tif (l)\n\t\t\t_addRangeSet(target, l);\n\t\tif (r)\n\t\t\t_addRangeSet(target, r);\n\t}\n\tif (!isEmptyRange(newSet))\n\t\t_addRangeSet(target, newSet);\n}\nfunction rangesOverlap(rangeSet1, rangeSet2) {\n\tvar i1 = getRangeSetIterator(rangeSet2);\n\tvar nextResult1 = i1.next();\n\tif (nextResult1.done)\n\t\treturn false;\n\tvar a = nextResult1.value;\n\tvar i2 = getRangeSetIterator(rangeSet1);\n\tvar nextResult2 = i2.next(a.from);\n\tvar b = nextResult2.value;\n\twhile (!nextResult1.done && !nextResult2.done) {\n\t\tif (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)\n\t\t\treturn true;\n\t\tcmp(a.from, b.from) < 0\n\t\t\t? (a = (nextResult1 = i1.next(b.from)).value)\n\t\t\t: (b = (nextResult2 = i2.next(a.from)).value);\n\t}\n\treturn false;\n}\nfunction getRangeSetIterator(node) {\n\tvar state = isEmptyRange(node) ? null : { s: 0, n: node };\n\treturn {\n\t\tnext: function (key) {\n\t\t\tvar keyProvided = arguments.length > 0;\n\t\t\twhile (state) {\n\t\t\t\tswitch (state.s) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\t\tstate.s = 1;\n\t\t\t\t\t\tif (keyProvided) {\n\t\t\t\t\t\t\twhile (state.n.l && cmp(key, state.n.from) < 0)\n\t\t\t\t\t\t\t\tstate = { up: state, n: state.n.l, s: 1 };\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\twhile (state.n.l)\n\t\t\t\t\t\t\t\tstate = { up: state, n: state.n.l, s: 1 };\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tstate.s = 2;\n\t\t\t\t\t\tif (!keyProvided || cmp(key, state.n.to) <= 0)\n\t\t\t\t\t\t\treturn { value: state.n, done: false };\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tif (state.n.r) {\n\t\t\t\t\t\t\tstate.s = 3;\n\t\t\t\t\t\t\tstate = { up: state, n: state.n.r, s: 0 };\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tstate = state.up;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { done: true };\n\t\t},\n\t};\n}\nfunction rebalance(target) {\n\tvar _a, _b;\n\tvar 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);\n\tvar r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n\tif (r) {\n\t\tvar l = r === \"r\" ? \"l\" : \"r\";\n\t\tvar rootClone = __assign({}, target);\n\t\tvar oldRootRight = target[r];\n\t\ttarget.from = oldRootRight.from;\n\t\ttarget.to = oldRootRight.to;\n\t\ttarget[r] = oldRootRight[r];\n\t\trootClone[r] = oldRootRight[l];\n\t\ttarget[l] = rootClone;\n\t\trootClone.d = computeDepth(rootClone);\n\t}\n\ttarget.d = computeDepth(target);\n}\nfunction computeDepth(_a) {\n\tvar r = _a.r, l = _a.l;\n\treturn (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n\nfunction extendObservabilitySet(target, newSet) {\n\tkeys(newSet).forEach(function (part) {\n\t\tif (target[part])\n\t\t\tmergeRanges(target[part], newSet[part]);\n\t\telse\n\t\t\ttarget[part] = cloneSimpleObjectTree(newSet[part]);\n\t});\n\treturn target;\n}\n\nfunction obsSetsOverlap(os1, os2) {\n\treturn os1.all || os2.all || Object.keys(os1).some(function (key) { return os2[key] && rangesOverlap(os2[key], os1[key]); });\n}\n\nvar cache = {};\n\nvar unsignaledParts = {};\nvar isTaskEnqueued = false;\nfunction signalSubscribersLazily(part, optimistic) {\n\textendObservabilitySet(unsignaledParts, part);\n\tif (!isTaskEnqueued) {\n\t\tisTaskEnqueued = true;\n\t\tsetTimeout(function () {\n\t\t\tisTaskEnqueued = false;\n\t\t\tvar parts = unsignaledParts;\n\t\t\tunsignaledParts = {};\n\t\t\tsignalSubscribersNow(parts, false);\n\t\t}, 0);\n\t}\n}\nfunction signalSubscribersNow(updatedParts, deleteAffectedCacheEntries) {\n\tif (deleteAffectedCacheEntries === void 0) { deleteAffectedCacheEntries = false; }\n\tvar queriesToSignal = new Set();\n\tif (updatedParts.all) {\n\t\tfor (var _i = 0, _a = Object.values(cache); _i < _a.length; _i++) {\n\t\t\tvar tblCache = _a[_i];\n\t\t\tcollectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);\n\t\t}\n\t}\n\telse {\n\t\tfor (var key in updatedParts) {\n\t\t\tvar parts = /^idb\\:\\/\\/(.*)\\/(.*)\\//.exec(key);\n\t\t\tif (parts) {\n\t\t\t\tvar dbName = parts[1], tableName = parts[2];\n\t\t\t\tvar tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n\t\t\t\tif (tblCache)\n\t\t\t\t\tcollectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);\n\t\t\t}\n\t\t}\n\t}\n\tqueriesToSignal.forEach(function (requery) { return requery(); });\n}\nfunction collectTableSubscribers(tblCache, updatedParts, outQueriesToSignal, deleteAffectedCacheEntries) {\n\tvar updatedEntryLists = [];\n\tfor (var _i = 0, _a = Object.entries(tblCache.queries.query); _i < _a.length; _i++) {\n\t\tvar _b = _a[_i], indexName = _b[0], entries = _b[1];\n\t\tvar filteredEntries = [];\n\t\tfor (var _c = 0, entries_1 = entries; _c < entries_1.length; _c++) {\n\t\t\tvar entry = entries_1[_c];\n\t\t\tif (obsSetsOverlap(updatedParts, entry.obsSet)) {\n\t\t\t\tentry.subscribers.forEach(function (requery) { return outQueriesToSignal.add(requery); });\n\t\t\t}\n\t\t\telse if (deleteAffectedCacheEntries) {\n\t\t\t\tfilteredEntries.push(entry);\n\t\t\t}\n\t\t}\n\t\tif (deleteAffectedCacheEntries)\n\t\t\tupdatedEntryLists.push([indexName, filteredEntries]);\n\t}\n\tif (deleteAffectedCacheEntries) {\n\t\tfor (var _d = 0, updatedEntryLists_1 = updatedEntryLists; _d < updatedEntryLists_1.length; _d++) {\n\t\t\tvar _e = updatedEntryLists_1[_d], indexName = _e[0], filteredEntries = _e[1];\n\t\t\ttblCache.queries.query[indexName] = filteredEntries;\n\t\t}\n\t}\n}\n\nfunction dexieOpen(db) {\n\tvar state = db._state;\n\tvar indexedDB = db._deps.indexedDB;\n\tif (state.isBeingOpened || db.idbdb)\n\t\treturn state.dbReadyPromise.then(function () { return state.dbOpenError ?\n\t\t\trejection(state.dbOpenError) :\n\t\t\tdb; });\n\tstate.isBeingOpened = true;\n\tstate.dbOpenError = null;\n\tstate.openComplete = false;\n\tvar openCanceller = state.openCanceller;\n\tvar nativeVerToOpen = Math.round(db.verno * 10);\n\tvar schemaPatchMode = false;\n\tfunction throwIfCancelled() {\n\t\tif (state.openCanceller !== openCanceller)\n\t\t\tthrow new exceptions.DatabaseClosed('db.open() was cancelled');\n\t}\n\tvar resolveDbReady = state.dbReadyResolve,\n\tupgradeTransaction = null, wasCreated = false;\n\tvar tryOpenDB = function () { return new DexiePromise(function (resolve, reject) {\n\t\tthrowIfCancelled();\n\t\tif (!indexedDB)\n\t\t\tthrow new exceptions.MissingAPI();\n\t\tvar dbName = db.name;\n\t\tvar req = state.autoSchema || !nativeVerToOpen ?\n\t\t\tindexedDB.open(dbName) :\n\t\t\tindexedDB.open(dbName, nativeVerToOpen);\n\t\tif (!req)\n\t\t\tthrow new exceptions.MissingAPI();\n\t\treq.onerror = eventRejectHandler(reject);\n\t\treq.onblocked = wrap(db._fireOnBlocked);\n\t\treq.onupgradeneeded = wrap(function (e) {\n\t\t\tupgradeTransaction = req.transaction;\n\t\t\tif (state.autoSchema && !db._options.allowEmptyDB) {\n\t\t\t\treq.onerror = preventDefault;\n\t\t\t\tupgradeTransaction.abort();\n\t\t\t\treq.result.close();\n\t\t\t\tvar delreq = indexedDB.deleteDatabase(dbName);\n\t\t\t\tdelreq.onsuccess = delreq.onerror = wrap(function () {\n\t\t\t\t\treject(new exceptions.NoSuchDatabase(\"Database \".concat(dbName, \" doesnt exist\")));\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tupgradeTransaction.onerror = eventRejectHandler(reject);\n\t\t\t\tvar oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n\t\t\t\twasCreated = oldVer < 1;\n\t\t\t\tdb.idbdb = req.result;\n\t\t\t\tif (schemaPatchMode) {\n\t\t\t\t\tpatchCurrentVersion(db, upgradeTransaction);\n\t\t\t\t}\n\t\t\t\trunUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n\t\t\t}\n\t\t}, reject);\n\t\treq.onsuccess = wrap(function () {\n\t\t\tupgradeTransaction = null;\n\t\t\tvar idbdb = db.idbdb = req.result;\n\t\t\tvar objectStoreNames = slice(idbdb.objectStoreNames);\n\t\t\tif (objectStoreNames.length > 0)\n\t\t\t\ttry {\n\t\t\t\t\tvar tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n\t\t\t\t\tif (state.autoSchema)\n\t\t\t\t\t\treadGlobalSchema(db, idbdb, tmpTrans);\n\t\t\t\t\telse {\n\t\t\t\t\t\tadjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n\t\t\t\t\t\tif (!verifyInstalledSchema(db, tmpTrans) && !schemaPatchMode) {\n\t\t\t\t\t\t\tconsole.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.\");\n\t\t\t\t\t\t\tidbdb.close();\n\t\t\t\t\t\t\tnativeVerToOpen = idbdb.version + 1;\n\t\t\t\t\t\t\tschemaPatchMode = true;\n\t\t\t\t\t\t\treturn resolve(tryOpenDB());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgenerateMiddlewareStacks(db, tmpTrans);\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t}\n\t\t\tconnections.push(db);\n\t\t\tidbdb.onversionchange = wrap(function (ev) {\n\t\t\t\tstate.vcFired = true;\n\t\t\t\tdb.on(\"versionchange\").fire(ev);\n\t\t\t});\n\t\t\tidbdb.onclose = wrap(function (ev) {\n\t\t\t\tdb.on(\"close\").fire(ev);\n\t\t\t});\n\t\t\tif (wasCreated)\n\t\t\t\t_onDatabaseCreated(db._deps, dbName);\n\t\t\tresolve();\n\t\t}, reject);\n\t}).catch(function (err) {\n\t\tswitch (err === null || err === void 0 ? void 0 : err.name) {\n\t\t\tcase \"UnknownError\":\n\t\t\t\tif (state.PR1398_maxLoop > 0) {\n\t\t\t\t\tstate.PR1398_maxLoop--;\n\t\t\t\t\tconsole.warn('Dexie: Workaround for Chrome UnknownError on open()');\n\t\t\t\t\treturn tryOpenDB();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"VersionError\":\n\t\t\t\tif (nativeVerToOpen > 0) {\n\t\t\t\t\tnativeVerToOpen = 0;\n\t\t\t\t\treturn tryOpenDB();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\treturn DexiePromise.reject(err);\n\t}); };\n\treturn DexiePromise.race([\n\t\topenCanceller,\n\t\t(typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(tryOpenDB)\n\t]).then(function () {\n\t\tthrowIfCancelled();\n\t\tstate.onReadyBeingFired = [];\n\t\treturn DexiePromise.resolve(vip(function () { return db.on.ready.fire(db.vip); })).then(function fireRemainders() {\n\t\t\tif (state.onReadyBeingFired.length > 0) {\n\t\t\t\tvar remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n\t\t\t\tstate.onReadyBeingFired = [];\n\t\t\t\treturn DexiePromise.resolve(vip(function () { return remainders_1(db.vip); })).then(fireRemainders);\n\t\t\t}\n\t\t});\n\t}).finally(function () {\n\t\tif (state.openCanceller === openCanceller) {\n\t\t\tstate.onReadyBeingFired = null;\n\t\t\tstate.isBeingOpened = false;\n\t\t}\n\t}).catch(function (err) {\n\t\tstate.dbOpenError = err;\n\t\ttry {\n\t\t\tupgradeTransaction && upgradeTransaction.abort();\n\t\t}\n\t\tcatch (_a) { }\n\t\tif (openCanceller === state.openCanceller) {\n\t\t\tdb._close();\n\t\t}\n\t\treturn rejection(err);\n\t}).finally(function () {\n\t\tstate.openComplete = true;\n\t\tresolveDbReady();\n\t}).then(function () {\n\t\tif (wasCreated) {\n\t\t\tvar everything_1 = {};\n\t\t\tdb.tables.forEach(function (table) {\n\t\t\t\ttable.schema.indexes.forEach(function (idx) {\n\t\t\t\t\tif (idx.name)\n\t\t\t\t\t\teverything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/\").concat(idx.name)] = new RangeSet(-Infinity, [[[]]]);\n\t\t\t\t});\n\t\t\t\teverything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/\")] = everything_1[\"idb://\".concat(db.name, \"/\").concat(table.name, \"/:dels\")] = new RangeSet(-Infinity, [[[]]]);\n\t\t\t});\n\t\t\tglobalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME).fire(everything_1);\n\t\t\tsignalSubscribersNow(everything_1, true);\n\t\t}\n\t\treturn db;\n\t});\n}\n\nfunction awaitIterator(iterator) {\n\tvar callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n\tfunction step(getNext) {\n\t\treturn function (val) {\n\t\t\tvar next = getNext(val), value = next.value;\n\t\t\treturn next.done ? value :\n\t\t\t\t(!value || typeof value.then !== 'function' ?\n\t\t\t\t\tisArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n\t\t\t\t\tvalue.then(onSuccess, onError));\n\t\t};\n\t}\n\treturn step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n\tvar i = arguments.length;\n\tif (i < 2)\n\t\tthrow new exceptions.InvalidArgument(\"Too few arguments\");\n\tvar args = new Array(i - 1);\n\twhile (--i)\n\t\targs[i - 1] = arguments[i];\n\tscopeFunc = args.pop();\n\tvar tables = flatten(args);\n\treturn [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n\treturn DexiePromise.resolve().then(function () {\n\t\tvar transless = PSD.transless || PSD;\n\t\tvar trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n\t\ttrans.explicit = true;\n\t\tvar zoneProps = {\n\t\t\ttrans: trans,\n\t\t\ttransless: transless\n\t\t};\n\t\tif (parentTransaction) {\n\t\t\ttrans.idbtrans = parentTransaction.idbtrans;\n\t\t}\n\t\telse {\n\t\t\ttry {\n\t\t\t\ttrans.create();\n\t\t\t\ttrans.idbtrans._explicit = true;\n\t\t\t\tdb._state.PR1398_maxLoop = 3;\n\t\t\t}\n\t\t\tcatch (ex) {\n\t\t\t\tif (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n\t\t\t\t\tconsole.warn('Dexie: Need to reopen db');\n\t\t\t\t\tdb.close({ disableAutoOpen: false });\n\t\t\t\t\treturn db.open().then(function () { return enterTransactionScope(db, mode, storeNames, null, scopeFunc); });\n\t\t\t\t}\n\t\t\t\treturn rejection(ex);\n\t\t\t}\n\t\t}\n\t\tvar scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n\t\tif (scopeFuncIsAsync) {\n\t\t\tincrementExpectedAwaits();\n\t\t}\n\t\tvar returnValue;\n\t\tvar promiseFollowed = DexiePromise.follow(function () {\n\t\t\treturnValue = scopeFunc.call(trans, trans);\n\t\t\tif (returnValue) {\n\t\t\t\tif (scopeFuncIsAsync) {\n\t\t\t\t\tvar decrementor = decrementExpectedAwaits.bind(null, null);\n\t\t\t\t\treturnValue.then(decrementor, decrementor);\n\t\t\t\t}\n\t\t\t\telse if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n\t\t\t\t\treturnValue = awaitIterator(returnValue);\n\t\t\t\t}\n\t\t\t}\n\t\t}, zoneProps);\n\t\treturn (returnValue && typeof returnValue.then === 'function' ?\n\t\t\tDexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n\t\t\t\tx\n\t\t\t\t: rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n\t\t\t: promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n\t\t\tif (parentTransaction)\n\t\t\t\ttrans._resolve();\n\t\t\treturn trans._completion.then(function () { return x; });\n\t\t}).catch(function (e) {\n\t\t\ttrans._reject(e);\n\t\t\treturn rejection(e);\n\t\t});\n\t});\n}\n\nfunction pad(a, value, count) {\n\tvar result = isArray(a) ? a.slice() : [a];\n\tfor (var i = 0; i < count; ++i)\n\t\tresult.push(value);\n\treturn result;\n}\nfunction createVirtualIndexMiddleware(down) {\n\treturn __assign(__assign({}, down), { table: function (tableName) {\n\t\t\tvar table = down.table(tableName);\n\t\t\tvar schema = table.schema;\n\t\t\tvar indexLookup = {};\n\t\t\tvar allVirtualIndexes = [];\n\t\t\tfunction addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n\t\t\t\tvar keyPathAlias = getKeyPathAlias(keyPath);\n\t\t\t\tvar indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n\t\t\t\tvar keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n\t\t\t\tvar isVirtual = keyTail > 0;\n\t\t\t\tvar virtualIndex = __assign(__assign({}, lowLevelIndex), { name: isVirtual\n\t\t\t\t\t\t? \"\".concat(keyPathAlias, \"(virtual-from:\").concat(lowLevelIndex.name, \")\")\n\t\t\t\t\t\t: lowLevelIndex.name, lowLevelIndex: lowLevelIndex, isVirtual: isVirtual, keyTail: keyTail, keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n\t\t\t\tindexList.push(virtualIndex);\n\t\t\t\tif (!virtualIndex.isPrimaryKey) {\n\t\t\t\t\tallVirtualIndexes.push(virtualIndex);\n\t\t\t\t}\n\t\t\t\tif (keyLength > 1) {\n\t\t\t\t\tvar virtualKeyPath = keyLength === 2 ?\n\t\t\t\t\t\tkeyPath[0] :\n\t\t\t\t\t\tkeyPath.slice(0, keyLength - 1);\n\t\t\t\t\taddVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n\t\t\t\t}\n\t\t\t\tindexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n\t\t\t\treturn virtualIndex;\n\t\t\t}\n\t\t\tvar primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n\t\t\tindexLookup[\":id\"] = [primaryKey];\n\t\t\tfor (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n\t\t\t\tvar index = _a[_i];\n\t\t\t\taddVirtualIndexes(index.keyPath, 0, index);\n\t\t\t}\n\t\t\tfunction findBestIndex(keyPath) {\n\t\t\t\tvar result = indexLookup[getKeyPathAlias(keyPath)];\n\t\t\t\treturn result && result[0];\n\t\t\t}\n\t\t\tfunction translateRange(range, keyTail) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: range.type === 1  ?\n\t\t\t\t\t\t2  :\n\t\t\t\t\t\trange.type,\n\t\t\t\t\tlower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n\t\t\t\t\tlowerOpen: true,\n\t\t\t\t\tupper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n\t\t\t\t\tupperOpen: true\n\t\t\t\t};\n\t\t\t}\n\t\t\tfunction translateRequest(req) {\n\t\t\t\tvar index = req.query.index;\n\t\t\t\treturn index.isVirtual ? __assign(__assign({}, req), { query: {\n\t\t\t\t\t\tindex: index.lowLevelIndex,\n\t\t\t\t\t\trange: translateRange(req.query.range, index.keyTail)\n\t\t\t\t\t} }) : req;\n\t\t\t}\n\t\t\tvar result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n\t\t\t\t\treturn table.count(translateRequest(req));\n\t\t\t\t}, query: function (req) {\n\t\t\t\t\treturn table.query(translateRequest(req));\n\t\t\t\t}, openCursor: function (req) {\n\t\t\t\t\tvar _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n\t\t\t\t\tif (!isVirtual)\n\t\t\t\t\t\treturn table.openCursor(req);\n\t\t\t\t\tfunction createVirtualCursor(cursor) {\n\t\t\t\t\t\tfunction _continue(key) {\n\t\t\t\t\t\t\tkey != null ?\n\t\t\t\t\t\t\t\tcursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n\t\t\t\t\t\t\t\treq.unique ?\n\t\t\t\t\t\t\t\t\tcursor.continue(cursor.key.slice(0, keyLength)\n\t\t\t\t\t\t\t\t\t\t.concat(req.reverse\n\t\t\t\t\t\t\t\t\t\t? down.MIN_KEY\n\t\t\t\t\t\t\t\t\t\t: down.MAX_KEY, keyTail)) :\n\t\t\t\t\t\t\t\t\tcursor.continue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar virtualCursor = Object.create(cursor, {\n\t\t\t\t\t\t\tcontinue: { value: _continue },\n\t\t\t\t\t\t\tcontinuePrimaryKey: {\n\t\t\t\t\t\t\t\tvalue: function (key, primaryKey) {\n\t\t\t\t\t\t\t\t\tcursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tprimaryKey: {\n\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\treturn cursor.primaryKey;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tkey: {\n\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\tvar key = cursor.key;\n\t\t\t\t\t\t\t\t\treturn keyLength === 1 ?\n\t\t\t\t\t\t\t\t\t\tkey[0] :\n\t\t\t\t\t\t\t\t\t\tkey.slice(0, keyLength);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\treturn cursor.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn virtualCursor;\n\t\t\t\t\t}\n\t\t\t\t\treturn table.openCursor(translateRequest(req))\n\t\t\t\t\t\t.then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n\t\t\t\t} });\n\t\t\treturn result;\n\t\t} });\n}\nvar virtualIndexMiddleware = {\n\tstack: \"dbcore\",\n\tname: \"VirtualIndexMiddleware\",\n\tlevel: 1,\n\tcreate: createVirtualIndexMiddleware\n};\n\nfunction getObjectDiff(a, b, rv, prfx) {\n\trv = rv || {};\n\tprfx = prfx || '';\n\tkeys(a).forEach(function (prop) {\n\t\tif (!hasOwn(b, prop)) {\n\t\t\trv[prfx + prop] = undefined;\n\t\t}\n\t\telse {\n\t\t\tvar ap = a[prop], bp = b[prop];\n\t\t\tif (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n\t\t\t\tvar apTypeName = toStringTag(ap);\n\t\t\t\tvar bpTypeName = toStringTag(bp);\n\t\t\t\tif (apTypeName !== bpTypeName) {\n\t\t\t\t\trv[prfx + prop] = b[prop];\n\t\t\t\t}\n\t\t\t\telse if (apTypeName === 'Object') {\n\t\t\t\t\tgetObjectDiff(ap, bp, rv, prfx + prop + '.');\n\t\t\t\t}\n\t\t\t\telse if (ap !== bp) {\n\t\t\t\t\trv[prfx + prop] = b[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (ap !== bp)\n\t\t\t\trv[prfx + prop] = b[prop];\n\t\t}\n\t});\n\tkeys(b).forEach(function (prop) {\n\t\tif (!hasOwn(a, prop)) {\n\t\t\trv[prfx + prop] = b[prop];\n\t\t}\n\t});\n\treturn rv;\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n\tif (req.type === 'delete')\n\t\treturn req.keys;\n\treturn req.keys || req.values.map(primaryKey.extractKey);\n}\n\nvar hooksMiddleware = {\n\tstack: \"dbcore\",\n\tname: \"HooksMiddleware\",\n\tlevel: 2,\n\tcreate: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n\t\t\tvar downTable = downCore.table(tableName);\n\t\t\tvar primaryKey = downTable.schema.primaryKey;\n\t\t\tvar tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n\t\t\t\t\tvar dxTrans = PSD.trans;\n\t\t\t\t\tvar _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n\t\t\t\t\tswitch (req.type) {\n\t\t\t\t\t\tcase 'add':\n\t\t\t\t\t\t\tif (creating.fire === nop)\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\treturn dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n\t\t\t\t\t\tcase 'put':\n\t\t\t\t\t\t\tif (creating.fire === nop && updating.fire === nop)\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\treturn dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n\t\t\t\t\t\tcase 'delete':\n\t\t\t\t\t\t\tif (deleting.fire === nop)\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\treturn dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n\t\t\t\t\t\tcase 'deleteRange':\n\t\t\t\t\t\t\tif (deleting.fire === nop)\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\treturn dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n\t\t\t\t\t}\n\t\t\t\t\treturn downTable.mutate(req);\n\t\t\t\t\tfunction addPutOrDelete(req) {\n\t\t\t\t\t\tvar dxTrans = PSD.trans;\n\t\t\t\t\t\tvar keys = req.keys || getEffectiveKeys(primaryKey, req);\n\t\t\t\t\t\tif (!keys)\n\t\t\t\t\t\t\tthrow new Error(\"Keys missing\");\n\t\t\t\t\t\treq = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys }) : __assign({}, req);\n\t\t\t\t\t\tif (req.type !== 'delete')\n\t\t\t\t\t\t\treq.values = __spreadArray([], req.values, true);\n\t\t\t\t\t\tif (req.keys)\n\t\t\t\t\t\t\treq.keys = __spreadArray([], req.keys, true);\n\t\t\t\t\t\treturn getExistingValues(downTable, req, keys).then(function (existingValues) {\n\t\t\t\t\t\t\tvar contexts = keys.map(function (key, i) {\n\t\t\t\t\t\t\t\tvar existingValue = existingValues[i];\n\t\t\t\t\t\t\t\tvar ctx = { onerror: null, onsuccess: null };\n\t\t\t\t\t\t\t\tif (req.type === 'delete') {\n\t\t\t\t\t\t\t\t\tdeleting.fire.call(ctx, key, existingValue, dxTrans);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (req.type === 'add' || existingValue === undefined) {\n\t\t\t\t\t\t\t\t\tvar generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n\t\t\t\t\t\t\t\t\tif (key == null && generatedPrimaryKey != null) {\n\t\t\t\t\t\t\t\t\t\tkey = generatedPrimaryKey;\n\t\t\t\t\t\t\t\t\t\treq.keys[i] = key;\n\t\t\t\t\t\t\t\t\t\tif (!primaryKey.outbound) {\n\t\t\t\t\t\t\t\t\t\t\tsetByKeyPath(req.values[i], primaryKey.keyPath, key);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tvar objectDiff = getObjectDiff(existingValue, req.values[i]);\n\t\t\t\t\t\t\t\t\tvar additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n\t\t\t\t\t\t\t\t\tif (additionalChanges_1) {\n\t\t\t\t\t\t\t\t\t\tvar requestedValue_1 = req.values[i];\n\t\t\t\t\t\t\t\t\t\tObject.keys(additionalChanges_1).forEach(function (keyPath) {\n\t\t\t\t\t\t\t\t\t\t\tif (hasOwn(requestedValue_1, keyPath)) {\n\t\t\t\t\t\t\t\t\t\t\t\trequestedValue_1[keyPath] = additionalChanges_1[keyPath];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tsetByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn ctx;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn downTable.mutate(req).then(function (_a) {\n\t\t\t\t\t\t\t\tvar failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n\t\t\t\t\t\t\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\t\t\t\t\t\t\tvar primKey = results ? results[i] : keys[i];\n\t\t\t\t\t\t\t\t\tvar ctx = contexts[i];\n\t\t\t\t\t\t\t\t\tif (primKey == null) {\n\t\t\t\t\t\t\t\t\t\tctx.onerror && ctx.onerror(failures[i]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n\t\t\t\t\t\t\t\t\t\t\treq.values[i] :\n\t\t\t\t\t\t\t\t\t\t\tprimKey\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n\t\t\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\t\t\tcontexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n\t\t\t\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tfunction deleteRange(req) {\n\t\t\t\t\t\treturn deleteNextChunk(req.trans, req.range, 10000);\n\t\t\t\t\t}\n\t\t\t\t\tfunction deleteNextChunk(trans, range, limit) {\n\t\t\t\t\t\treturn downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n\t\t\t\t\t\t\t.then(function (_a) {\n\t\t\t\t\t\t\tvar result = _a.result;\n\t\t\t\t\t\t\treturn addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n\t\t\t\t\t\t\t\tif (res.numFailures > 0)\n\t\t\t\t\t\t\t\t\treturn Promise.reject(res.failures[0]);\n\t\t\t\t\t\t\t\tif (result.length < limit) {\n\t\t\t\t\t\t\t\t\treturn { failures: [], numFailures: 0, lastResult: undefined };\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treturn deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} });\n\t\t\treturn tableMiddleware;\n\t\t} })); }\n};\nfunction getExistingValues(table, req, effectiveKeys) {\n\treturn req.type === \"add\"\n\t\t? Promise.resolve([])\n\t\t: table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n\nfunction getFromTransactionCache(keys, cache, clone) {\n\ttry {\n\t\tif (!cache)\n\t\t\treturn null;\n\t\tif (cache.keys.length < keys.length)\n\t\t\treturn null;\n\t\tvar result = [];\n\t\tfor (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n\t\t\tif (cmp(cache.keys[i], keys[j]) !== 0)\n\t\t\t\tcontinue;\n\t\t\tresult.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n\t\t\t++j;\n\t\t}\n\t\treturn result.length === keys.length ? result : null;\n\t}\n\tcatch (_a) {\n\t\treturn null;\n\t}\n}\nvar cacheExistingValuesMiddleware = {\n\tstack: \"dbcore\",\n\tlevel: -1,\n\tcreate: function (core) {\n\t\treturn {\n\t\t\ttable: function (tableName) {\n\t\t\t\tvar table = core.table(tableName);\n\t\t\t\treturn __assign(__assign({}, table), { getMany: function (req) {\n\t\t\t\t\t\tif (!req.cache) {\n\t\t\t\t\t\t\treturn table.getMany(req);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n\t\t\t\t\t\tif (cachedResult) {\n\t\t\t\t\t\t\treturn DexiePromise.resolve(cachedResult);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn table.getMany(req).then(function (res) {\n\t\t\t\t\t\t\treq.trans[\"_cache\"] = {\n\t\t\t\t\t\t\t\tkeys: req.keys,\n\t\t\t\t\t\t\t\tvalues: req.cache === \"clone\" ? deepClone(res) : res,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t});\n\t\t\t\t\t}, mutate: function (req) {\n\t\t\t\t\t\tif (req.type !== \"add\")\n\t\t\t\t\t\t\treq.trans[\"_cache\"] = null;\n\t\t\t\t\t\treturn table.mutate(req);\n\t\t\t\t\t} });\n\t\t\t},\n\t\t};\n\t},\n};\n\nfunction isCachableContext(ctx, table) {\n\treturn (ctx.trans.mode === 'readonly' &&\n\t\t!!ctx.subscr &&\n\t\t!ctx.trans.explicit &&\n\t\tctx.trans.db._options.cache !== 'disabled' &&\n\t\t!table.schema.primaryKey.outbound);\n}\n\nfunction isCachableRequest(type, req) {\n\tswitch (type) {\n\t\tcase 'query':\n\t\t\treturn req.values && !req.unique;\n\t\tcase 'get':\n\t\t\treturn false;\n\t\tcase 'getMany':\n\t\t\treturn false;\n\t\tcase 'count':\n\t\t\treturn false;\n\t\tcase 'openCursor':\n\t\t\treturn false;\n\t}\n}\n\nvar observabilityMiddleware = {\n\tstack: \"dbcore\",\n\tlevel: 0,\n\tname: \"Observability\",\n\tcreate: function (core) {\n\t\tvar dbName = core.schema.name;\n\t\tvar FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n\t\treturn __assign(__assign({}, core), { transaction: function (stores, mode, options) {\n\t\t\t\tif (PSD.subscr && mode !== 'readonly') {\n\t\t\t\t\tthrow new exceptions.ReadOnly(\"Readwrite transaction in liveQuery context. Querier source: \".concat(PSD.querier));\n\t\t\t\t}\n\t\t\t\treturn core.transaction(stores, mode, options);\n\t\t\t}, table: function (tableName) {\n\t\t\t\tvar table = core.table(tableName);\n\t\t\t\tvar schema = table.schema;\n\t\t\t\tvar primaryKey = schema.primaryKey, indexes = schema.indexes;\n\t\t\t\tvar extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;\n\t\t\t\tvar indexesWithAutoIncPK = primaryKey.autoIncrement && indexes.filter(function (index) { return index.compound && index.keyPath.includes(primaryKey.keyPath); });\n\t\t\t\tvar tableClone = __assign(__assign({}, table), { mutate: function (req) {\n\t\t\t\t\t\tvar _a, _b;\n\t\t\t\t\t\tvar trans = req.trans;\n\t\t\t\t\t\tvar mutatedParts = req.mutatedParts || (req.mutatedParts = {});\n\t\t\t\t\t\tvar getRangeSet = function (indexName) {\n\t\t\t\t\t\t\tvar part = \"idb://\".concat(dbName, \"/\").concat(tableName, \"/\").concat(indexName);\n\t\t\t\t\t\t\treturn (mutatedParts[part] ||\n\t\t\t\t\t\t\t\t(mutatedParts[part] = new RangeSet()));\n\t\t\t\t\t\t};\n\t\t\t\t\t\tvar pkRangeSet = getRangeSet(\"\");\n\t\t\t\t\t\tvar delsRangeSet = getRangeSet(\":dels\");\n\t\t\t\t\t\tvar type = req.type;\n\t\t\t\t\t\tvar _c = req.type === \"deleteRange\"\n\t\t\t\t\t\t\t? [req.range]\n\t\t\t\t\t\t\t: req.type === \"delete\"\n\t\t\t\t\t\t\t\t? [req.keys]\n\t\t\t\t\t\t\t\t: req.values.length < 50\n\t\t\t\t\t\t\t\t\t? [getEffectiveKeys(primaryKey, req).filter(function (id) { return id; }), req.values]\n\t\t\t\t\t\t\t\t\t: [], keys = _c[0], newObjs = _c[1];\n\t\t\t\t\t\tvar oldCache = req.trans[\"_cache\"];\n\t\t\t\t\t\tif (isArray(keys)) {\n\t\t\t\t\t\t\tpkRangeSet.addKeys(keys);\n\t\t\t\t\t\t\tvar oldObjs = type === 'delete' || keys.length === newObjs.length ? getFromTransactionCache(keys, oldCache) : null;\n\t\t\t\t\t\t\tif (!oldObjs) {\n\t\t\t\t\t\t\t\tdelsRangeSet.addKeys(keys);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (oldObjs || newObjs) {\n\t\t\t\t\t\t\t\ttrackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (keys) {\n\t\t\t\t\t\t\tvar range = {\n\t\t\t\t\t\t\t\tfrom: (_a = keys.lower) !== null && _a !== void 0 ? _a : core.MIN_KEY,\n\t\t\t\t\t\t\t\tto: (_b = keys.upper) !== null && _b !== void 0 ? _b : core.MAX_KEY\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdelsRangeSet.add(range);\n\t\t\t\t\t\t\tpkRangeSet.add(range);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpkRangeSet.add(FULL_RANGE);\n\t\t\t\t\t\t\tdelsRangeSet.add(FULL_RANGE);\n\t\t\t\t\t\t\tschema.indexes.forEach(function (idx) { return getRangeSet(idx.name).add(FULL_RANGE); });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn table.mutate(req).then(function (res) {\n\t\t\t\t\t\t\tif (keys && (req.type === 'add' || req.type === 'put')) {\n\t\t\t\t\t\t\t\tpkRangeSet.addKeys(res.results);\n\t\t\t\t\t\t\t\tif (indexesWithAutoIncPK) {\n\t\t\t\t\t\t\t\t\tindexesWithAutoIncPK.forEach(function (idx) {\n\t\t\t\t\t\t\t\t\t\tvar idxVals = req.values.map(function (v) { return idx.extractKey(v); });\n\t\t\t\t\t\t\t\t\t\tvar pkPos = idx.keyPath.findIndex(function (prop) { return prop === primaryKey.keyPath; });\n\t\t\t\t\t\t\t\t\t\tres.results.forEach(function (pk) { return idxVals[pkPos] = pk; });\n\t\t\t\t\t\t\t\t\t\tgetRangeSet(idx.name).addKeys(idxVals);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttrans.mutatedParts = extendObservabilitySet(trans.mutatedParts || {}, mutatedParts);\n\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t});\n\t\t\t\t\t} });\n\t\t\t\tvar getRange = function (_a) {\n\t\t\t\t\tvar _b, _c;\n\t\t\t\t\tvar _d = _a.query, index = _d.index, range = _d.range;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tnew RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY),\n\t\t\t\t\t];\n\t\t\t\t};\n\t\t\t\tvar readSubscribers = {\n\t\t\t\t\tget: function (req) { return [primaryKey, new RangeSet(req.key)]; },\n\t\t\t\t\tgetMany: function (req) { return [primaryKey, new RangeSet().addKeys(req.keys)]; },\n\t\t\t\t\tcount: getRange,\n\t\t\t\t\tquery: getRange,\n\t\t\t\t\topenCursor: getRange,\n\t\t\t\t};\n\t\t\t\tkeys(readSubscribers).forEach(function (method) {\n\t\t\t\t\ttableClone[method] = function (req) {\n\t\t\t\t\t\tvar subscr = PSD.subscr;\n\t\t\t\t\t\tvar isLiveQuery = !!subscr;\n\t\t\t\t\t\tvar cachable = isCachableContext(PSD, table) && isCachableRequest(method, req);\n\t\t\t\t\t\tvar obsSet = cachable\n\t\t\t\t\t\t\t? req.obsSet = {}\n\t\t\t\t\t\t\t: subscr;\n\t\t\t\t\t\tif (isLiveQuery) {\n\t\t\t\t\t\t\tvar getRangeSet = function (indexName) {\n\t\t\t\t\t\t\t\tvar part = \"idb://\".concat(dbName, \"/\").concat(tableName, \"/\").concat(indexName);\n\t\t\t\t\t\t\t\treturn (obsSet[part] ||\n\t\t\t\t\t\t\t\t\t(obsSet[part] = new RangeSet()));\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvar pkRangeSet_1 = getRangeSet(\"\");\n\t\t\t\t\t\t\tvar delsRangeSet_1 = getRangeSet(\":dels\");\n\t\t\t\t\t\t\tvar _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];\n\t\t\t\t\t\t\tif (method === 'query' && queriedIndex.isPrimaryKey && !req.values) {\n\t\t\t\t\t\t\t\tdelsRangeSet_1.add(queriedRanges);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tgetRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!queriedIndex.isPrimaryKey) {\n\t\t\t\t\t\t\t\tif (method === \"count\") {\n\t\t\t\t\t\t\t\t\tdelsRangeSet_1.add(FULL_RANGE);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tvar keysPromise_1 = method === \"query\" &&\n\t\t\t\t\t\t\t\t\t\toutbound &&\n\t\t\t\t\t\t\t\t\t\treq.values &&\n\t\t\t\t\t\t\t\t\t\ttable.query(__assign(__assign({}, req), { values: false }));\n\t\t\t\t\t\t\t\t\treturn table[method].apply(this, arguments).then(function (res) {\n\t\t\t\t\t\t\t\t\t\tif (method === \"query\") {\n\t\t\t\t\t\t\t\t\t\t\tif (outbound && req.values) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn keysPromise_1.then(function (_a) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar resultingKeys = _a.result;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpkRangeSet_1.addKeys(resultingKeys);\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tvar pKeys = req.values\n\t\t\t\t\t\t\t\t\t\t\t\t? res.result.map(extractKey)\n\t\t\t\t\t\t\t\t\t\t\t\t: res.result;\n\t\t\t\t\t\t\t\t\t\t\tif (req.values) {\n\t\t\t\t\t\t\t\t\t\t\t\tpkRangeSet_1.addKeys(pKeys);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tdelsRangeSet_1.addKeys(pKeys);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (method === \"openCursor\") {\n\t\t\t\t\t\t\t\t\t\t\tvar cursor_1 = res;\n\t\t\t\t\t\t\t\t\t\t\tvar wantValues_1 = req.values;\n\t\t\t\t\t\t\t\t\t\t\treturn (cursor_1 &&\n\t\t\t\t\t\t\t\t\t\t\t\tObject.create(cursor_1, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelsRangeSet_1.addKey(cursor_1.primaryKey);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn cursor_1.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryKey: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar pkey = cursor_1.primaryKey;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelsRangeSet_1.addKey(pkey);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn pkey;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn cursor_1.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn table[method].apply(this, arguments);\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\treturn tableClone;\n\t\t\t} });\n\t},\n};\nfunction trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n\tfunction addAffectedIndex(ix) {\n\t\tvar rangeSet = getRangeSet(ix.name || \"\");\n\t\tfunction extractKey(obj) {\n\t\t\treturn obj != null ? ix.extractKey(obj) : null;\n\t\t}\n\t\tvar addKeyOrKeys = function (key) { return ix.multiEntry && isArray(key)\n\t\t\t? key.forEach(function (key) { return rangeSet.addKey(key); })\n\t\t\t: rangeSet.addKey(key); };\n\t\t(oldObjs || newObjs).forEach(function (_, i) {\n\t\t\tvar oldKey = oldObjs && extractKey(oldObjs[i]);\n\t\t\tvar newKey = newObjs && extractKey(newObjs[i]);\n\t\t\tif (cmp(oldKey, newKey) !== 0) {\n\t\t\t\tif (oldKey != null)\n\t\t\t\t\taddKeyOrKeys(oldKey);\n\t\t\t\tif (newKey != null)\n\t\t\t\t\taddKeyOrKeys(newKey);\n\t\t\t}\n\t\t});\n\t}\n\tschema.indexes.forEach(addAffectedIndex);\n}\n\nfunction adjustOptimisticFromFailures(tblCache, req, res) {\n\tif (res.numFailures === 0)\n\t\treturn req;\n\tif (req.type === 'deleteRange') {\n\t\treturn null;\n\t}\n\tvar numBulkOps = req.keys\n\t\t? req.keys.length\n\t\t: 'values' in req && req.values\n\t\t\t? req.values.length\n\t\t\t: 1;\n\tif (res.numFailures === numBulkOps) {\n\t\treturn null;\n\t}\n\tvar clone = __assign({}, req);\n\tif (isArray(clone.keys)) {\n\t\tclone.keys = clone.keys.filter(function (_, i) { return !(i in res.failures); });\n\t}\n\tif ('values' in clone && isArray(clone.values)) {\n\t\tclone.values = clone.values.filter(function (_, i) { return !(i in res.failures); });\n\t}\n\treturn clone;\n}\n\nfunction isAboveLower(key, range) {\n\treturn range.lower === undefined\n\t\t? true\n\t\t: range.lowerOpen\n\t\t\t? cmp(key, range.lower) > 0\n\t\t\t: cmp(key, range.lower) >= 0;\n}\nfunction isBelowUpper(key, range) {\n\treturn range.upper === undefined\n\t\t? true\n\t\t: range.upperOpen\n\t\t\t? cmp(key, range.upper) < 0\n\t\t\t: cmp(key, range.upper) <= 0;\n}\nfunction isWithinRange(key, range) {\n\treturn isAboveLower(key, range) && isBelowUpper(key, range);\n}\n\nfunction applyOptimisticOps(result, req, ops, table, cacheEntry, immutable) {\n\tif (!ops || ops.length === 0)\n\t\treturn result;\n\tvar index = req.query.index;\n\tvar multiEntry = index.multiEntry;\n\tvar queryRange = req.query.range;\n\tvar primaryKey = table.schema.primaryKey;\n\tvar extractPrimKey = primaryKey.extractKey;\n\tvar extractIndex = index.extractKey;\n\tvar extractLowLevelIndex = (index.lowLevelIndex || index).extractKey;\n\tvar finalResult = ops.reduce(function (result, op) {\n\t\tvar modifedResult = result;\n\t\tvar includedValues = [];\n\t\tif (op.type === 'add' || op.type === 'put') {\n\t\t\tvar includedPKs = new RangeSet();\n\t\t\tfor (var i = op.values.length - 1; i >= 0; --i) {\n\t\t\t\tvar value = op.values[i];\n\t\t\t\tvar pk = extractPrimKey(value);\n\t\t\t\tif (includedPKs.hasKey(pk))\n\t\t\t\t\tcontinue;\n\t\t\t\tvar key = extractIndex(value);\n\t\t\t\tif (multiEntry && isArray(key)\n\t\t\t\t\t? key.some(function (k) { return isWithinRange(k, queryRange); })\n\t\t\t\t\t: isWithinRange(key, queryRange)) {\n\t\t\t\t\tincludedPKs.addKey(pk);\n\t\t\t\t\tincludedValues.push(value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tswitch (op.type) {\n\t\t\tcase 'add': {\n\t\t\t\tvar existingKeys_1 = new RangeSet().addKeys(req.values ? result.map(function (v) { return extractPrimKey(v); }) : result);\n\t\t\t\tmodifedResult = result.concat(req.values\n\t\t\t\t\t? includedValues.filter(function (v) {\n\t\t\t\t\t\tvar key = extractPrimKey(v);\n\t\t\t\t\t\tif (existingKeys_1.hasKey(key))\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\texistingKeys_1.addKey(key);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t\t\t: includedValues\n\t\t\t\t\t\t.map(function (v) { return extractPrimKey(v); })\n\t\t\t\t\t\t.filter(function (k) {\n\t\t\t\t\t\tif (existingKeys_1.hasKey(k))\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\texistingKeys_1.addKey(k);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'put': {\n\t\t\t\tvar keySet_1 = new RangeSet().addKeys(op.values.map(function (v) { return extractPrimKey(v); }));\n\t\t\t\tmodifedResult = result\n\t\t\t\t\t.filter(\n\t\t\t\tfunction (item) { return !keySet_1.hasKey(req.values ? extractPrimKey(item) : item); })\n\t\t\t\t\t.concat(\n\t\t\t\treq.values\n\t\t\t\t\t? includedValues\n\t\t\t\t\t: includedValues.map(function (v) { return extractPrimKey(v); }));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'delete':\n\t\t\t\tvar keysToDelete_1 = new RangeSet().addKeys(op.keys);\n\t\t\t\tmodifedResult = result.filter(function (item) {\n\t\t\t\t\treturn !keysToDelete_1.hasKey(req.values ? extractPrimKey(item) : item);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'deleteRange':\n\t\t\t\tvar range_1 = op.range;\n\t\t\t\tmodifedResult = result.filter(function (item) { return !isWithinRange(extractPrimKey(item), range_1); });\n\t\t\t\tbreak;\n\t\t}\n\t\treturn modifedResult;\n\t}, result);\n\tif (finalResult === result)\n\t\treturn result;\n\tfinalResult.sort(function (a, b) {\n\t\treturn cmp(extractLowLevelIndex(a), extractLowLevelIndex(b)) ||\n\t\t\tcmp(extractPrimKey(a), extractPrimKey(b));\n\t});\n\tif (req.limit && req.limit < Infinity) {\n\t\tif (finalResult.length > req.limit) {\n\t\t\tfinalResult.length = req.limit;\n\t\t}\n\t\telse if (result.length === req.limit && finalResult.length < req.limit) {\n\t\t\tcacheEntry.dirty = true;\n\t\t}\n\t}\n\treturn immutable ? Object.freeze(finalResult) : finalResult;\n}\n\nfunction areRangesEqual(r1, r2) {\n\treturn (cmp(r1.lower, r2.lower) === 0 &&\n\t\tcmp(r1.upper, r2.upper) === 0 &&\n\t\t!!r1.lowerOpen === !!r2.lowerOpen &&\n\t\t!!r1.upperOpen === !!r2.upperOpen);\n}\n\nfunction compareLowers(lower1, lower2, lowerOpen1, lowerOpen2) {\n\tif (lower1 === undefined)\n\t\treturn lower2 !== undefined ? -1 : 0;\n\tif (lower2 === undefined)\n\t\treturn 1;\n\tvar c = cmp(lower1, lower2);\n\tif (c === 0) {\n\t\tif (lowerOpen1 && lowerOpen2)\n\t\t\treturn 0;\n\t\tif (lowerOpen1)\n\t\t\treturn 1;\n\t\tif (lowerOpen2)\n\t\t\treturn -1;\n\t}\n\treturn c;\n}\nfunction compareUppers(upper1, upper2, upperOpen1, upperOpen2) {\n\tif (upper1 === undefined)\n\t\treturn upper2 !== undefined ? 1 : 0;\n\tif (upper2 === undefined)\n\t\treturn -1;\n\tvar c = cmp(upper1, upper2);\n\tif (c === 0) {\n\t\tif (upperOpen1 && upperOpen2)\n\t\t\treturn 0;\n\t\tif (upperOpen1)\n\t\t\treturn -1;\n\t\tif (upperOpen2)\n\t\t\treturn 1;\n\t}\n\treturn c;\n}\nfunction isSuperRange(r1, r2) {\n\treturn (compareLowers(r1.lower, r2.lower, r1.lowerOpen, r2.lowerOpen) <= 0 &&\n\t\tcompareUppers(r1.upper, r2.upper, r1.upperOpen, r2.upperOpen) >= 0);\n}\n\nfunction findCompatibleQuery(dbName, tableName, type, req) {\n\tvar tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n\tif (!tblCache)\n\t\treturn [];\n\tvar queries = tblCache.queries[type];\n\tif (!queries)\n\t\treturn [null, false, tblCache, null];\n\tvar indexName = req.query ? req.query.index.name : null;\n\tvar entries = queries[indexName || ''];\n\tif (!entries)\n\t\treturn [null, false, tblCache, null];\n\tswitch (type) {\n\t\tcase 'query':\n\t\t\tvar equalEntry = entries.find(function (entry) {\n\t\t\t\treturn entry.req.limit === req.limit &&\n\t\t\t\t\tentry.req.values === req.values &&\n\t\t\t\t\tareRangesEqual(entry.req.query.range, req.query.range);\n\t\t\t});\n\t\t\tif (equalEntry)\n\t\t\t\treturn [\n\t\t\t\t\tequalEntry,\n\t\t\t\t\ttrue,\n\t\t\t\t\ttblCache,\n\t\t\t\t\tentries,\n\t\t\t\t];\n\t\t\tvar superEntry = entries.find(function (entry) {\n\t\t\t\tvar limit = 'limit' in entry.req ? entry.req.limit : Infinity;\n\t\t\t\treturn (limit >= req.limit &&\n\t\t\t\t\t(req.values ? entry.req.values : true) &&\n\t\t\t\t\tisSuperRange(entry.req.query.range, req.query.range));\n\t\t\t});\n\t\t\treturn [superEntry, false, tblCache, entries];\n\t\tcase 'count':\n\t\t\tvar countQuery = entries.find(function (entry) {\n\t\t\t\treturn areRangesEqual(entry.req.query.range, req.query.range);\n\t\t\t});\n\t\t\treturn [countQuery, !!countQuery, tblCache, entries];\n\t}\n}\n\nfunction subscribeToCacheEntry(cacheEntry, container, requery, signal) {\n\tcacheEntry.subscribers.add(requery);\n\tsignal.addEventListener(\"abort\", function () {\n\t\tcacheEntry.subscribers.delete(requery);\n\t\tif (cacheEntry.subscribers.size === 0) {\n\t\t\tenqueForDeletion(cacheEntry, container);\n\t\t}\n\t});\n}\nfunction enqueForDeletion(cacheEntry, container) {\n\tsetTimeout(function () {\n\t\tif (cacheEntry.subscribers.size === 0) {\n\t\t\tdelArrayItem(container, cacheEntry);\n\t\t}\n\t}, 3000);\n}\n\nvar cacheMiddleware = {\n\tstack: 'dbcore',\n\tlevel: 0,\n\tname: 'Cache',\n\tcreate: function (core) {\n\t\tvar dbName = core.schema.name;\n\t\tvar coreMW = __assign(__assign({}, core), { transaction: function (stores, mode, options) {\n\t\t\t\tvar idbtrans = core.transaction(stores, mode, options);\n\t\t\t\tif (mode === 'readwrite') {\n\t\t\t\t\tvar ac_1 = new AbortController();\n\t\t\t\t\tvar signal = ac_1.signal;\n\t\t\t\t\tvar endTransaction = function (wasCommitted) { return function () {\n\t\t\t\t\t\tac_1.abort();\n\t\t\t\t\t\tif (mode === 'readwrite') {\n\t\t\t\t\t\t\tvar affectedSubscribers_1 = new Set();\n\t\t\t\t\t\t\tfor (var _i = 0, stores_1 = stores; _i < stores_1.length; _i++) {\n\t\t\t\t\t\t\t\tvar storeName = stores_1[_i];\n\t\t\t\t\t\t\t\tvar tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(storeName)];\n\t\t\t\t\t\t\t\tif (tblCache) {\n\t\t\t\t\t\t\t\t\tvar table = core.table(storeName);\n\t\t\t\t\t\t\t\t\tvar ops = tblCache.optimisticOps.filter(function (op) { return op.trans === idbtrans; });\n\t\t\t\t\t\t\t\t\tif (idbtrans._explicit && wasCommitted && idbtrans.mutatedParts) {\n\t\t\t\t\t\t\t\t\t\tfor (var _a = 0, _b = Object.values(tblCache.queries.query); _a < _b.length; _a++) {\n\t\t\t\t\t\t\t\t\t\t\tvar entries = _b[_a];\n\t\t\t\t\t\t\t\t\t\t\tfor (var _c = 0, _d = entries.slice(); _c < _d.length; _c++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar entry = _d[_c];\n\t\t\t\t\t\t\t\t\t\t\t\tif (obsSetsOverlap(entry.obsSet, idbtrans.mutatedParts)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelArrayItem(entries, entry);\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.subscribers.forEach(function (requery) { return affectedSubscribers_1.add(requery); });\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (ops.length > 0) {\n\t\t\t\t\t\t\t\t\t\ttblCache.optimisticOps = tblCache.optimisticOps.filter(function (op) { return op.trans !== idbtrans; });\n\t\t\t\t\t\t\t\t\t\tfor (var _e = 0, _f = Object.values(tblCache.queries.query); _e < _f.length; _e++) {\n\t\t\t\t\t\t\t\t\t\t\tvar entries = _f[_e];\n\t\t\t\t\t\t\t\t\t\t\tfor (var _g = 0, _h = entries.slice(); _g < _h.length; _g++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar entry = _h[_g];\n\t\t\t\t\t\t\t\t\t\t\t\tif (entry.res != null &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tidbtrans.mutatedParts\n) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (wasCommitted && !entry.dirty) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar freezeResults = Object.isFrozen(entry.res);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar modRes = applyOptimisticOps(entry.res, entry.req, ops, table, entry, freezeResults);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (entry.dirty) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelArrayItem(entries, entry);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tentry.subscribers.forEach(function (requery) { return affectedSubscribers_1.add(requery); });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (modRes !== entry.res) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tentry.res = modRes;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tentry.promise = DexiePromise.resolve({ result: modRes });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (entry.dirty) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelArrayItem(entries, entry);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentry.subscribers.forEach(function (requery) { return affectedSubscribers_1.add(requery); });\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taffectedSubscribers_1.forEach(function (requery) { return requery(); });\n\t\t\t\t\t\t}\n\t\t\t\t\t}; };\n\t\t\t\t\tidbtrans.addEventListener('abort', endTransaction(false), {\n\t\t\t\t\t\tsignal: signal,\n\t\t\t\t\t});\n\t\t\t\t\tidbtrans.addEventListener('error', endTransaction(false), {\n\t\t\t\t\t\tsignal: signal,\n\t\t\t\t\t});\n\t\t\t\t\tidbtrans.addEventListener('complete', endTransaction(true), {\n\t\t\t\t\t\tsignal: signal,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn idbtrans;\n\t\t\t}, table: function (tableName) {\n\t\t\t\tvar downTable = core.table(tableName);\n\t\t\t\tvar primKey = downTable.schema.primaryKey;\n\t\t\t\tvar tableMW = __assign(__assign({}, downTable), { mutate: function (req) {\n\t\t\t\t\t\tvar trans = PSD.trans;\n\t\t\t\t\t\tif (primKey.outbound ||\n\t\t\t\t\t\t\ttrans.db._options.cache === 'disabled' ||\n\t\t\t\t\t\t\ttrans.explicit ||\n\t\t\t\t\t\t\ttrans.idbtrans.mode !== 'readwrite'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn downTable.mutate(req);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)];\n\t\t\t\t\t\tif (!tblCache)\n\t\t\t\t\t\t\treturn downTable.mutate(req);\n\t\t\t\t\t\tvar promise = downTable.mutate(req);\n\t\t\t\t\t\tif ((req.type === 'add' || req.type === 'put') && (req.values.length >= 50 || getEffectiveKeys(primKey, req).some(function (key) { return key == null; }))) {\n\t\t\t\t\t\t\tpromise.then(function (res) {\n\t\t\t\t\t\t\t\tvar reqWithResolvedKeys = __assign(__assign({}, req), { values: req.values.map(function (value, i) {\n\t\t\t\t\t\t\t\t\t\tvar _a;\n\t\t\t\t\t\t\t\t\t\tif (res.failures[i])\n\t\t\t\t\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t\t\t\t\tvar valueWithKey = ((_a = primKey.keyPath) === null || _a === void 0 ? void 0 : _a.includes('.'))\n\t\t\t\t\t\t\t\t\t\t\t? deepClone(value)\n\t\t\t\t\t\t\t\t\t\t\t: __assign({}, value);\n\t\t\t\t\t\t\t\t\t\tsetByKeyPath(valueWithKey, primKey.keyPath, res.results[i]);\n\t\t\t\t\t\t\t\t\t\treturn valueWithKey;\n\t\t\t\t\t\t\t\t\t}) });\n\t\t\t\t\t\t\t\tvar adjustedReq = adjustOptimisticFromFailures(tblCache, reqWithResolvedKeys, res);\n\t\t\t\t\t\t\t\ttblCache.optimisticOps.push(adjustedReq);\n\t\t\t\t\t\t\t\tqueueMicrotask(function () { return req.mutatedParts && signalSubscribersLazily(req.mutatedParts); });\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttblCache.optimisticOps.push(req);\n\t\t\t\t\t\t\treq.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n\t\t\t\t\t\t\tpromise.then(function (res) {\n\t\t\t\t\t\t\t\tif (res.numFailures > 0) {\n\t\t\t\t\t\t\t\t\tdelArrayItem(tblCache.optimisticOps, req);\n\t\t\t\t\t\t\t\t\tvar adjustedReq = adjustOptimisticFromFailures(tblCache, req, res);\n\t\t\t\t\t\t\t\t\tif (adjustedReq) {\n\t\t\t\t\t\t\t\t\t\ttblCache.optimisticOps.push(adjustedReq);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treq.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tpromise.catch(function () {\n\t\t\t\t\t\t\t\tdelArrayItem(tblCache.optimisticOps, req);\n\t\t\t\t\t\t\t\treq.mutatedParts && signalSubscribersLazily(req.mutatedParts);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn promise;\n\t\t\t\t\t}, query: function (req) {\n\t\t\t\t\t\tvar _a;\n\t\t\t\t\t\tif (!isCachableContext(PSD, downTable) || !isCachableRequest(\"query\", req))\n\t\t\t\t\t\t\treturn downTable.query(req);\n\t\t\t\t\t\tvar freezeResults = ((_a = PSD.trans) === null || _a === void 0 ? void 0 : _a.db._options.cache) === 'immutable';\n\t\t\t\t\t\tvar _b = PSD, requery = _b.requery, signal = _b.signal;\n\t\t\t\t\t\tvar _c = findCompatibleQuery(dbName, tableName, 'query', req), cacheEntry = _c[0], exactMatch = _c[1], tblCache = _c[2], container = _c[3];\n\t\t\t\t\t\tif (cacheEntry && exactMatch) {\n\t\t\t\t\t\t\tcacheEntry.obsSet = req.obsSet;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar promise = downTable.query(req).then(function (res) {\n\t\t\t\t\t\t\t\tvar result = res.result;\n\t\t\t\t\t\t\t\tif (cacheEntry)\n\t\t\t\t\t\t\t\t\tcacheEntry.res = result;\n\t\t\t\t\t\t\t\tif (freezeResults) {\n\t\t\t\t\t\t\t\t\tfor (var i = 0, l = result.length; i < l; ++i) {\n\t\t\t\t\t\t\t\t\t\tObject.freeze(result[i]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tObject.freeze(result);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tres.result = deepClone(result);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\t\t\tif (container && cacheEntry)\n\t\t\t\t\t\t\t\t\tdelArrayItem(container, cacheEntry);\n\t\t\t\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcacheEntry = {\n\t\t\t\t\t\t\t\tobsSet: req.obsSet,\n\t\t\t\t\t\t\t\tpromise: promise,\n\t\t\t\t\t\t\t\tsubscribers: new Set(),\n\t\t\t\t\t\t\t\ttype: 'query',\n\t\t\t\t\t\t\t\treq: req,\n\t\t\t\t\t\t\t\tdirty: false,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (container) {\n\t\t\t\t\t\t\t\tcontainer.push(cacheEntry);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tcontainer = [cacheEntry];\n\t\t\t\t\t\t\t\tif (!tblCache) {\n\t\t\t\t\t\t\t\t\ttblCache = cache[\"idb://\".concat(dbName, \"/\").concat(tableName)] = {\n\t\t\t\t\t\t\t\t\t\tqueries: {\n\t\t\t\t\t\t\t\t\t\t\tquery: {},\n\t\t\t\t\t\t\t\t\t\t\tcount: {},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tobjs: new Map(),\n\t\t\t\t\t\t\t\t\t\toptimisticOps: [],\n\t\t\t\t\t\t\t\t\t\tunsignaledParts: {}\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttblCache.queries.query[req.query.index.name || ''] = container;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsubscribeToCacheEntry(cacheEntry, container, requery, signal);\n\t\t\t\t\t\treturn cacheEntry.promise.then(function (res) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tresult: applyOptimisticOps(res.result, req, tblCache === null || tblCache === void 0 ? void 0 : tblCache.optimisticOps, downTable, cacheEntry, freezeResults),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t} });\n\t\t\t\treturn tableMW;\n\t\t\t} });\n\t\treturn coreMW;\n\t},\n};\n\nfunction vipify(target, vipDb) {\n\treturn new Proxy(target, {\n\t\tget: function (target, prop, receiver) {\n\t\t\tif (prop === 'db')\n\t\t\t\treturn vipDb;\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t}\n\t});\n}\n\nvar Dexie$1 =  (function () {\n\tfunction Dexie(name, options) {\n\t\tvar _this = this;\n\t\tthis._middlewares = {};\n\t\tthis.verno = 0;\n\t\tvar deps = Dexie.dependencies;\n\t\tthis._options = options = __assign({\n\t\t\taddons: Dexie.addons, autoOpen: true,\n\t\t\tindexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange, cache: 'cloned' }, options);\n\t\tthis._deps = {\n\t\t\tindexedDB: options.indexedDB,\n\t\t\tIDBKeyRange: options.IDBKeyRange\n\t\t};\n\t\tvar addons = options.addons;\n\t\tthis._dbSchema = {};\n\t\tthis._versions = [];\n\t\tthis._storeNames = [];\n\t\tthis._allTables = {};\n\t\tthis.idbdb = null;\n\t\tthis._novip = this;\n\t\tvar state = {\n\t\t\tdbOpenError: null,\n\t\t\tisBeingOpened: false,\n\t\t\tonReadyBeingFired: null,\n\t\t\topenComplete: false,\n\t\t\tdbReadyResolve: nop,\n\t\t\tdbReadyPromise: null,\n\t\t\tcancelOpen: nop,\n\t\t\topenCanceller: null,\n\t\t\tautoSchema: true,\n\t\t\tPR1398_maxLoop: 3,\n\t\t\tautoOpen: options.autoOpen,\n\t\t};\n\t\tstate.dbReadyPromise = new DexiePromise(function (resolve) {\n\t\t\tstate.dbReadyResolve = resolve;\n\t\t});\n\t\tstate.openCanceller = new DexiePromise(function (_, reject) {\n\t\t\tstate.cancelOpen = reject;\n\t\t});\n\t\tthis._state = state;\n\t\tthis.name = name;\n\t\tthis.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] });\n\t\tthis.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n\t\t\treturn function (subscriber, bSticky) {\n\t\t\t\tDexie.vip(function () {\n\t\t\t\t\tvar state = _this._state;\n\t\t\t\t\tif (state.openComplete) {\n\t\t\t\t\t\tif (!state.dbOpenError)\n\t\t\t\t\t\t\tDexiePromise.resolve().then(subscriber);\n\t\t\t\t\t\tif (bSticky)\n\t\t\t\t\t\t\tsubscribe(subscriber);\n\t\t\t\t\t}\n\t\t\t\t\telse if (state.onReadyBeingFired) {\n\t\t\t\t\t\tstate.onReadyBeingFired.push(subscriber);\n\t\t\t\t\t\tif (bSticky)\n\t\t\t\t\t\t\tsubscribe(subscriber);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tsubscribe(subscriber);\n\t\t\t\t\t\tvar db_1 = _this;\n\t\t\t\t\t\tif (!bSticky)\n\t\t\t\t\t\t\tsubscribe(function unsubscribe() {\n\t\t\t\t\t\t\t\tdb_1.on.ready.unsubscribe(subscriber);\n\t\t\t\t\t\t\t\tdb_1.on.ready.unsubscribe(unsubscribe);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t});\n\t\tthis.Collection = createCollectionConstructor(this);\n\t\tthis.Table = createTableConstructor(this);\n\t\tthis.Transaction = createTransactionConstructor(this);\n\t\tthis.Version = createVersionConstructor(this);\n\t\tthis.WhereClause = createWhereClauseConstructor(this);\n\t\tthis.on(\"versionchange\", function (ev) {\n\t\t\tif (ev.newVersion > 0)\n\t\t\t\tconsole.warn(\"Another connection wants to upgrade database '\".concat(_this.name, \"'. Closing db now to resume the upgrade.\"));\n\t\t\telse\n\t\t\t\tconsole.warn(\"Another connection wants to delete database '\".concat(_this.name, \"'. Closing db now to resume the delete request.\"));\n\t\t\t_this.close({ disableAutoOpen: false });\n\t\t});\n\t\tthis.on(\"blocked\", function (ev) {\n\t\t\tif (!ev.newVersion || ev.newVersion < ev.oldVersion)\n\t\t\t\tconsole.warn(\"Dexie.delete('\".concat(_this.name, \"') was blocked\"));\n\t\t\telse\n\t\t\t\tconsole.warn(\"Upgrade '\".concat(_this.name, \"' blocked by other connection holding version \").concat(ev.oldVersion / 10));\n\t\t});\n\t\tthis._maxKey = getMaxKey(options.IDBKeyRange);\n\t\tthis._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction); };\n\t\tthis._fireOnBlocked = function (ev) {\n\t\t\t_this.on(\"blocked\").fire(ev);\n\t\t\tconnections\n\t\t\t\t.filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n\t\t\t\t.map(function (c) { return c.on(\"versionchange\").fire(ev); });\n\t\t};\n\t\tthis.use(cacheExistingValuesMiddleware);\n\t\tthis.use(cacheMiddleware);\n\t\tthis.use(observabilityMiddleware);\n\t\tthis.use(virtualIndexMiddleware);\n\t\tthis.use(hooksMiddleware);\n\t\tvar vipDB = new Proxy(this, {\n\t\t\tget: function (_, prop, receiver) {\n\t\t\t\tif (prop === '_vip')\n\t\t\t\t\treturn true;\n\t\t\t\tif (prop === 'table')\n\t\t\t\t\treturn function (tableName) { return vipify(_this.table(tableName), vipDB); };\n\t\t\t\tvar rv = Reflect.get(_, prop, receiver);\n\t\t\t\tif (rv instanceof Table)\n\t\t\t\t\treturn vipify(rv, vipDB);\n\t\t\t\tif (prop === 'tables')\n\t\t\t\t\treturn rv.map(function (t) { return vipify(t, vipDB); });\n\t\t\t\tif (prop === '_createTransaction')\n\t\t\t\t\treturn function () {\n\t\t\t\t\t\tvar tx = rv.apply(this, arguments);\n\t\t\t\t\t\treturn vipify(tx, vipDB);\n\t\t\t\t\t};\n\t\t\t\treturn rv;\n\t\t\t}\n\t\t});\n\t\tthis.vip = vipDB;\n\t\taddons.forEach(function (addon) { return addon(_this); });\n\t}\n\tDexie.prototype.version = function (versionNumber) {\n\t\tif (isNaN(versionNumber) || versionNumber < 0.1)\n\t\t\tthrow new exceptions.Type(\"Given version is not a positive number\");\n\t\tversionNumber = Math.round(versionNumber * 10) / 10;\n\t\tif (this.idbdb || this._state.isBeingOpened)\n\t\t\tthrow new exceptions.Schema(\"Cannot add version when database is open\");\n\t\tthis.verno = Math.max(this.verno, versionNumber);\n\t\tvar versions = this._versions;\n\t\tvar versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n\t\tif (versionInstance)\n\t\t\treturn versionInstance;\n\t\tversionInstance = new this.Version(versionNumber);\n\t\tversions.push(versionInstance);\n\t\tversions.sort(lowerVersionFirst);\n\t\tversionInstance.stores({});\n\t\tthis._state.autoSchema = false;\n\t\treturn versionInstance;\n\t};\n\tDexie.prototype._whenReady = function (fn) {\n\t\tvar _this = this;\n\t\treturn (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise(function (resolve, reject) {\n\t\t\tif (_this._state.openComplete) {\n\t\t\t\treturn reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n\t\t\t}\n\t\t\tif (!_this._state.isBeingOpened) {\n\t\t\t\tif (!_this._state.autoOpen) {\n\t\t\t\t\treject(new exceptions.DatabaseClosed());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t_this.open().catch(nop);\n\t\t\t}\n\t\t\t_this._state.dbReadyPromise.then(resolve, reject);\n\t\t}).then(fn);\n\t};\n\tDexie.prototype.use = function (_a) {\n\t\tvar stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n\t\tif (name)\n\t\t\tthis.unuse({ stack: stack, name: name });\n\t\tvar middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n\t\tmiddlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n\t\tmiddlewares.sort(function (a, b) { return a.level - b.level; });\n\t\treturn this;\n\t};\n\tDexie.prototype.unuse = function (_a) {\n\t\tvar stack = _a.stack, name = _a.name, create = _a.create;\n\t\tif (stack && this._middlewares[stack]) {\n\t\t\tthis._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n\t\t\t\treturn create ? mw.create !== create :\n\t\t\t\t\tname ? mw.name !== name :\n\t\t\t\t\t\tfalse;\n\t\t\t});\n\t\t}\n\t\treturn this;\n\t};\n\tDexie.prototype.open = function () {\n\t\tvar _this = this;\n\t\treturn usePSD(globalPSD,\n\t\tfunction () { return dexieOpen(_this); });\n\t};\n\tDexie.prototype._close = function () {\n\t\tvar state = this._state;\n\t\tvar idx = connections.indexOf(this);\n\t\tif (idx >= 0)\n\t\t\tconnections.splice(idx, 1);\n\t\tif (this.idbdb) {\n\t\t\ttry {\n\t\t\t\tthis.idbdb.close();\n\t\t\t}\n\t\t\tcatch (e) { }\n\t\t\tthis.idbdb = null;\n\t\t}\n\t\tif (!state.isBeingOpened) {\n\t\t\tstate.dbReadyPromise = new DexiePromise(function (resolve) {\n\t\t\t\tstate.dbReadyResolve = resolve;\n\t\t\t});\n\t\t\tstate.openCanceller = new DexiePromise(function (_, reject) {\n\t\t\t\tstate.cancelOpen = reject;\n\t\t\t});\n\t\t}\n\t};\n\tDexie.prototype.close = function (_a) {\n\t\tvar _b = _a === void 0 ? { disableAutoOpen: true } : _a, disableAutoOpen = _b.disableAutoOpen;\n\t\tvar state = this._state;\n\t\tif (disableAutoOpen) {\n\t\t\tif (state.isBeingOpened) {\n\t\t\t\tstate.cancelOpen(new exceptions.DatabaseClosed());\n\t\t\t}\n\t\t\tthis._close();\n\t\t\tstate.autoOpen = false;\n\t\t\tstate.dbOpenError = new exceptions.DatabaseClosed();\n\t\t}\n\t\telse {\n\t\t\tthis._close();\n\t\t\tstate.autoOpen = this._options.autoOpen ||\n\t\t\t\tstate.isBeingOpened;\n\t\t\tstate.openComplete = false;\n\t\t\tstate.dbOpenError = null;\n\t\t}\n\t};\n\tDexie.prototype.delete = function (closeOptions) {\n\t\tvar _this = this;\n\t\tif (closeOptions === void 0) { closeOptions = { disableAutoOpen: true }; }\n\t\tvar hasInvalidArguments = arguments.length > 0 && typeof arguments[0] !== 'object';\n\t\tvar state = this._state;\n\t\treturn new DexiePromise(function (resolve, reject) {\n\t\t\tvar doDelete = function () {\n\t\t\t\t_this.close(closeOptions);\n\t\t\t\tvar req = _this._deps.indexedDB.deleteDatabase(_this.name);\n\t\t\t\treq.onsuccess = wrap(function () {\n\t\t\t\t\t_onDatabaseDeleted(_this._deps, _this.name);\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t\treq.onerror = eventRejectHandler(reject);\n\t\t\t\treq.onblocked = _this._fireOnBlocked;\n\t\t\t};\n\t\t\tif (hasInvalidArguments)\n\t\t\t\tthrow new exceptions.InvalidArgument(\"Invalid closeOptions argument to db.delete()\");\n\t\t\tif (state.isBeingOpened) {\n\t\t\t\tstate.dbReadyPromise.then(doDelete);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdoDelete();\n\t\t\t}\n\t\t});\n\t};\n\tDexie.prototype.backendDB = function () {\n\t\treturn this.idbdb;\n\t};\n\tDexie.prototype.isOpen = function () {\n\t\treturn this.idbdb !== null;\n\t};\n\tDexie.prototype.hasBeenClosed = function () {\n\t\tvar dbOpenError = this._state.dbOpenError;\n\t\treturn dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n\t};\n\tDexie.prototype.hasFailed = function () {\n\t\treturn this._state.dbOpenError !== null;\n\t};\n\tDexie.prototype.dynamicallyOpened = function () {\n\t\treturn this._state.autoSchema;\n\t};\n\tObject.defineProperty(Dexie.prototype, \"tables\", {\n\t\tget: function () {\n\t\t\tvar _this = this;\n\t\t\treturn keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n\t\t},\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n\tDexie.prototype.transaction = function () {\n\t\tvar args = extractTransactionArgs.apply(this, arguments);\n\t\treturn this._transaction.apply(this, args);\n\t};\n\tDexie.prototype._transaction = function (mode, tables, scopeFunc) {\n\t\tvar _this = this;\n\t\tvar parentTransaction = PSD.trans;\n\t\tif (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n\t\t\tparentTransaction = null;\n\t\tvar onlyIfCompatible = mode.indexOf('?') !== -1;\n\t\tmode = mode.replace('!', '').replace('?', '');\n\t\tvar idbMode, storeNames;\n\t\ttry {\n\t\t\tstoreNames = tables.map(function (table) {\n\t\t\t\tvar storeName = table instanceof _this.Table ? table.name : table;\n\t\t\t\tif (typeof storeName !== 'string')\n\t\t\t\t\tthrow new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n\t\t\t\treturn storeName;\n\t\t\t});\n\t\t\tif (mode == \"r\" || mode === READONLY)\n\t\t\t\tidbMode = READONLY;\n\t\t\telse if (mode == \"rw\" || mode == READWRITE)\n\t\t\t\tidbMode = READWRITE;\n\t\t\telse\n\t\t\t\tthrow new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n\t\t\tif (parentTransaction) {\n\t\t\t\tif (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n\t\t\t\t\tif (onlyIfCompatible) {\n\t\t\t\t\t\tparentTransaction = null;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthrow new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n\t\t\t\t}\n\t\t\t\tif (parentTransaction) {\n\t\t\t\t\tstoreNames.forEach(function (storeName) {\n\t\t\t\t\t\tif (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n\t\t\t\t\t\t\tif (onlyIfCompatible) {\n\t\t\t\t\t\t\t\tparentTransaction = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tthrow new exceptions.SubTransaction(\"Table \" + storeName +\n\t\t\t\t\t\t\t\t\t\" not included in parent transaction.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n\t\t\t\t\tparentTransaction = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn parentTransaction ?\n\t\t\t\tparentTransaction._promise(null, function (_, reject) { reject(e); }) :\n\t\t\t\trejection(e);\n\t\t}\n\t\tvar enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n\t\treturn (parentTransaction ?\n\t\t\tparentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n\t\t\tPSD.trans ?\n\t\t\t\tusePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n\t\t\t\tthis._whenReady(enterTransaction));\n\t};\n\tDexie.prototype.table = function (tableName) {\n\t\tif (!hasOwn(this._allTables, tableName)) {\n\t\t\tthrow new exceptions.InvalidTable(\"Table \".concat(tableName, \" does not exist\"));\n\t\t}\n\t\treturn this._allTables[tableName];\n\t};\n\treturn Dexie;\n}());\n\nvar symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n\t? Symbol.observable\n\t: \"@@observable\";\nvar Observable =  (function () {\n\tfunction Observable(subscribe) {\n\t\tthis._subscribe = subscribe;\n\t}\n\tObservable.prototype.subscribe = function (x, error, complete) {\n\t\treturn this._subscribe(!x || typeof x === \"function\" ? { next: x, error: error, complete: complete } : x);\n\t};\n\tObservable.prototype[symbolObservable] = function () {\n\t\treturn this;\n\t};\n\treturn Observable;\n}());\n\nvar domDeps;\ntry {\n\tdomDeps = {\n\t\tindexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n\t\tIDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n\t};\n}\ncatch (e) {\n\tdomDeps = { indexedDB: null, IDBKeyRange: null };\n}\n\nfunction liveQuery(querier) {\n\tvar hasValue = false;\n\tvar currentValue;\n\tvar observable = new Observable(function (observer) {\n\t\tvar scopeFuncIsAsync = isAsyncFunction(querier);\n\t\tfunction execute(ctx) {\n\t\t\tvar wasRootExec = beginMicroTickScope();\n\t\t\ttry {\n\t\t\t\tif (scopeFuncIsAsync) {\n\t\t\t\t\tincrementExpectedAwaits();\n\t\t\t\t}\n\t\t\t\tvar rv = newScope(querier, ctx);\n\t\t\t\tif (scopeFuncIsAsync) {\n\t\t\t\t\trv = rv.finally(decrementExpectedAwaits);\n\t\t\t\t}\n\t\t\t\treturn rv;\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\twasRootExec && endMicroTickScope();\n\t\t\t}\n\t\t}\n\t\tvar closed = false;\n\t\tvar abortController;\n\t\tvar accumMuts = {};\n\t\tvar currentObs = {};\n\t\tvar subscription = {\n\t\t\tget closed() {\n\t\t\t\treturn closed;\n\t\t\t},\n\t\t\tunsubscribe: function () {\n\t\t\t\tif (closed)\n\t\t\t\t\treturn;\n\t\t\t\tclosed = true;\n\t\t\t\tif (abortController)\n\t\t\t\t\tabortController.abort();\n\t\t\t\tif (startedListening)\n\t\t\t\t\tglobalEvents.storagemutated.unsubscribe(mutationListener);\n\t\t\t},\n\t\t};\n\t\tobserver.start && observer.start(subscription);\n\t\tvar startedListening = false;\n\t\tvar doQuery = function () { return execInGlobalContext(_doQuery); };\n\t\tfunction shouldNotify() {\n\t\t\treturn obsSetsOverlap(currentObs, accumMuts);\n\t\t}\n\t\tvar mutationListener = function (parts) {\n\t\t\textendObservabilitySet(accumMuts, parts);\n\t\t\tif (shouldNotify()) {\n\t\t\t\tdoQuery();\n\t\t\t}\n\t\t};\n\t\tvar _doQuery = function () {\n\t\t\tif (closed ||\n\t\t\t\t!domDeps.indexedDB)\n\t\t\t {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\taccumMuts = {};\n\t\t\tvar subscr = {};\n\t\t\tif (abortController)\n\t\t\t\tabortController.abort();\n\t\t\tabortController = new AbortController();\n\t\t\tvar ctx = {\n\t\t\t\tsubscr: subscr,\n\t\t\t\tsignal: abortController.signal,\n\t\t\t\trequery: doQuery,\n\t\t\t\tquerier: querier,\n\t\t\t\ttrans: null\n\t\t\t};\n\t\t\tvar ret = execute(ctx);\n\t\t\tPromise.resolve(ret).then(function (result) {\n\t\t\t\thasValue = true;\n\t\t\t\tcurrentValue = result;\n\t\t\t\tif (closed || ctx.signal.aborted) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\taccumMuts = {};\n\t\t\t\tcurrentObs = subscr;\n\t\t\t\tif (!objectIsEmpty(currentObs) && !startedListening) {\n\t\t\t\t\tglobalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n\t\t\t\t\tstartedListening = true;\n\t\t\t\t}\n\t\t\t\texecInGlobalContext(function () { return !closed && observer.next && observer.next(result); });\n\t\t\t}, function (err) {\n\t\t\t\thasValue = false;\n\t\t\t\tif (!['DatabaseClosedError', 'AbortError'].includes(err === null || err === void 0 ? void 0 : err.name)) {\n\t\t\t\t\tif (!closed)\n\t\t\t\t\t\texecInGlobalContext(function () {\n\t\t\t\t\t\t\tif (closed)\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\tobserver.error && observer.error(err);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tsetTimeout(doQuery, 0);\n\t\treturn subscription;\n\t});\n\tobservable.hasValue = function () { return hasValue; };\n\tobservable.getValue = function () { return currentValue; };\n\treturn observable;\n}\n\nvar Dexie = Dexie$1;\nprops(Dexie, __assign(__assign({}, fullNameExceptions), {\n\tdelete: function (databaseName) {\n\t\tvar db = new Dexie(databaseName, { addons: [] });\n\t\treturn db.delete();\n\t},\n\texists: function (name) {\n\t\treturn new Dexie(name, { addons: [] }).open().then(function (db) {\n\t\t\tdb.close();\n\t\t\treturn true;\n\t\t}).catch('NoSuchDatabaseError', function () { return false; });\n\t},\n\tgetDatabaseNames: function (cb) {\n\t\ttry {\n\t\t\treturn getDatabaseNames(Dexie.dependencies).then(cb);\n\t\t}\n\t\tcatch (_a) {\n\t\t\treturn rejection(new exceptions.MissingAPI());\n\t\t}\n\t},\n\tdefineClass: function () {\n\t\tfunction Class(content) {\n\t\t\textend(this, content);\n\t\t}\n\t\treturn Class;\n\t}, ignoreTransaction: function (scopeFunc) {\n\t\treturn PSD.trans ?\n\t\t\tusePSD(PSD.transless, scopeFunc) :\n\t\t\tscopeFunc();\n\t}, vip: vip, async: function (generatorFn) {\n\t\treturn function () {\n\t\t\ttry {\n\t\t\t\tvar rv = awaitIterator(generatorFn.apply(this, arguments));\n\t\t\t\tif (!rv || typeof rv.then !== 'function')\n\t\t\t\t\treturn DexiePromise.resolve(rv);\n\t\t\t\treturn rv;\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn rejection(e);\n\t\t\t}\n\t\t};\n\t}, spawn: function (generatorFn, args, thiz) {\n\t\ttry {\n\t\t\tvar rv = awaitIterator(generatorFn.apply(thiz, args || []));\n\t\t\tif (!rv || typeof rv.then !== 'function')\n\t\t\t\treturn DexiePromise.resolve(rv);\n\t\t\treturn rv;\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn rejection(e);\n\t\t}\n\t},\n\tcurrentTransaction: {\n\t\tget: function () { return PSD.trans || null; }\n\t}, waitFor: function (promiseOrFunction, optionalTimeout) {\n\t\tvar promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n\t\t\tDexie.ignoreTransaction(promiseOrFunction) :\n\t\t\tpromiseOrFunction)\n\t\t\t.timeout(optionalTimeout || 60000);\n\t\treturn PSD.trans ?\n\t\t\tPSD.trans.waitFor(promise) :\n\t\t\tpromise;\n\t},\n\tPromise: DexiePromise,\n\tdebug: {\n\t\tget: function () { return debug; },\n\t\tset: function (value) {\n\t\t\tsetDebug(value);\n\t\t}\n\t},\n\tderive: derive, extend: extend, props: props, override: override,\n\tEvents: Events, on: globalEvents, liveQuery: liveQuery, extendObservabilitySet: extendObservabilitySet,\n\tgetByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, cmp: cmp, asap: asap$1,\n\tminKey: minKey,\n\taddons: [],\n\tconnections: connections,\n\terrnames: errnames,\n\tdependencies: domDeps, cache: cache,\n\tsemVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n\t\t.map(function (n) { return parseInt(n); })\n\t\t.reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }) }));\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n\tglobalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n\t\tif (!propagatingLocally) {\n\t\t\tvar event_1;\n\t\t\tevent_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n\t\t\t\tdetail: updatedParts\n\t\t\t});\n\t\t\tpropagatingLocally = true;\n\t\t\tdispatchEvent(event_1);\n\t\t\tpropagatingLocally = false;\n\t\t}\n\t});\n\taddEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n\t\tvar detail = _a.detail;\n\t\tif (!propagatingLocally) {\n\t\t\tpropagateLocally(detail);\n\t\t}\n\t});\n}\nfunction propagateLocally(updateParts) {\n\tvar wasMe = propagatingLocally;\n\ttry {\n\t\tpropagatingLocally = true;\n\t\tglobalEvents.storagemutated.fire(updateParts);\n\t\tsignalSubscribersNow(updateParts, true);\n\t}\n\tfinally {\n\t\tpropagatingLocally = wasMe;\n\t}\n}\nvar propagatingLocally = false;\n\nvar bc;\nvar createBC = function () { };\nif (typeof BroadcastChannel !== 'undefined') {\n\tcreateBC = function () {\n\t\tbc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n\t\tbc.onmessage = function (ev) { return ev.data && propagateLocally(ev.data); };\n\t};\n\tcreateBC();\n\tif (typeof bc.unref === 'function') {\n\t\tbc.unref();\n\t}\n\tglobalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n\t\tif (!propagatingLocally) {\n\t\t\tbc.postMessage(changedParts);\n\t\t}\n\t});\n}\n\nif (typeof addEventListener !== 'undefined') {\n\taddEventListener('pagehide', function (event) {\n\t\tif (!Dexie$1.disableBfCache && event.persisted) {\n\t\t\tif (debug)\n\t\t\t\tconsole.debug('Dexie: handling persisted pagehide');\n\t\t\tbc === null || bc === void 0 ? void 0 : bc.close();\n\t\t\tfor (var _i = 0, connections_1 = connections; _i < connections_1.length; _i++) {\n\t\t\t\tvar db = connections_1[_i];\n\t\t\t\tdb.close({ disableAutoOpen: false });\n\t\t\t}\n\t\t}\n\t});\n\taddEventListener('pageshow', function (event) {\n\t\tif (!Dexie$1.disableBfCache && event.persisted) {\n\t\t\tif (debug)\n\t\t\t\tconsole.debug('Dexie: handling persisted pageshow');\n\t\t\tcreateBC();\n\t\t\tpropagateLocally({ all: new RangeSet(-Infinity, [[]]) });\n\t\t}\n\t});\n}\n\nfunction add(value) {\n\treturn new PropModification({ add: value });\n}\n\nfunction remove(value) {\n\treturn new PropModification({ remove: value });\n}\n\nfunction replacePrefix(a, b) {\n\treturn new PropModification({ replacePrefix: [a, b] });\n}\n\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug);\n\n// backward compatibility with Dexie 2 usages\nwindow.BX.Dexie = Dexie$1;\n\n// backward compatibility with Dexie3 usages\nwindow.BX.Dexie3 = {\n\tDexie: Dexie$1,\n\tliveQuery,\n\tEntity,\n\tcmp,\n\tPropModSymbol,\n\tPropModification,\n\treplacePrefix,\n\tadd,\n\tremove,\n\tRangeSet,\n\tmergeRanges,\n\trangesOverlap,\n};\n\nexport {\n\tDexie$1 as Dexie,\n\tliveQuery,\n\tEntity,\n\tcmp,\n\tPropModSymbol,\n\tPropModification,\n\treplacePrefix,\n\tadd,\n\tremove,\n\tRangeSet,\n\tmergeRanges,\n\trangesOverlap,\n};\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__spreadArray","to","from","pack","l","ar","slice","concat","_global","globalThis","self","window","global","keys","isArray","Promise","extend","obj","extension","forEach","key","getProto","getPrototypeOf","_hasOwn","hasOwn","prop","props","proto","Reflect","ownKeys","setProp","defineProperty","functionOrGetSet","options","get","set","configurable","value","writable","derive","Child","Parent","bind","getOwnPropertyDescriptor","getPropertyDescriptor","pd","_slice","args","start","end","override","origFunc","overridedFactory","assert","Error","asap$1","fn","setImmediate","setTimeout","arrayToObject","array","extractor","reduce","result","item","nameAndValue","getByKeyPath","keyPath","rv","val","push","period","indexOf","innerObj","substr","undefined","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","isNaN","parseInt","splice","delByKeyPath","map","kp","shallowClone","m","flatten","a","intrinsicTypeNames","split","num","filter","intrinsicTypes","Set","cloneSimpleObjectTree","o","k","v","has","objectIsEmpty","circularRefs","deepClone","any","WeakMap","innerDeepClone","x","toString","toStringTag","iteratorSymbol","Symbol","iterator","getIteratorOf","delArrayItem","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","next","done","isAsyncFunction","dexieErrorNames","idbDomErrorNames","errorList","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","DexieError","name","msg","message","getMultiErrorMessage","failures","join","ModifyError","successCount","failedKeys","BulkError","pos","failuresByPos","errnames","BaseException","exceptions","fullName","msgOrInner","inner","Syntax","SyntaxError","Type","Range","RangeError","exceptionMap","mapError","domError","stack","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","res","onsuccess","onerror","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","then","thiz","debug","location","test","href","setDebug","INTERNAL","ZONE_ECHO_LIMIT","_a$1","globalP","resolve","crypto","subtle","nativeP","digest","Uint8Array","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","schedulePhysicalTick","queueMicrotask","physicalTick","asap","callback","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","rejectionMapper","globalPSD","id","ref","unhandleds","onunhandled","pgp","env","finalize","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","_lib","psd","_PSD","_state","_value","handleRejection","executePromiseTask","thenProp","microTaskId","totalEchoes","onFulfilled","onRejected","_this","possibleAwait","cleanup","decrementExpectedAwaits","reject","propagateToListener","Listener","nativeAwaitCompatibleWrap","_consoleTask","_then","type","handler","err","PromiseReject","onFinally","timeout","ms","Infinity","handle","Timeout","clearTimeout","snapShot","zone","all","values","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","scheduler","follow","zoneProps","run_at_end_of_this_or_next_physical_tick","allSettled","possiblePromises","results","status","reason","AggregateError","failure","withResolvers","promise","shouldExecuteTick","beginMicroTickScope","propagateAllListeners","endMicroTickScope","ex","addPossiblyUnhandledError","listeners","len","finalizePhysicalTick","listener","cb","callListener","ret","run","markErrorAsHandled","e","wasRootExec","callbacks","unhandledErrs","finalizers","finalizer","some","wrap","errorCatcher","outerScope","switchToZone","task","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","parent","PromiseProp","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","pop","bEnteringZone","currentZone","GlobalPromise","targetEnv","a3","outerZone","execInGlobalContext","enqueueNativeMicroTask","tempTransaction","db","mode","storeNames","idbdb","openComplete","letThrough","_vip","dbOpenError","isBeingOpened","autoOpen","open","dbReadyPromise","trans","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","isOpen","console","warn","close","disableAutoOpen","_promise","idbtrans","commit","_a","_completion","DEXIE_VERSION","maxString","fromCharCode","minKey","INVALID_KEY_ARGUMENT","STRING_EXPECTED","connections","DBNAMES_DB","READONLY","READWRITE","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Entity","cmp","ta","tb","NaN","compareUint8Arrays","getUint8Array","compareArrays","al","bl","ArrayBuffer","isView","tsTag","buffer","byteOffset","byteLength","Table","_trans","writeLocked","_tx","tableName","createTask","checkTableInTransaction","schema","NotFound","_novip","transless","trace","keyOrCrit","where","first","core","hook","reading","fire","indexOrCrit","WhereClause","keyPaths","equals","compoundIndex","indexes","primKey","ix","compound","every","sort","_maxKey","keyPathsInValidOrder","JSON","stringify","idxByName","prevIndex","prevFilterFn","index","multi","idx","filterFunction","toCollection","and","count","thenShortcut","offset","limit","numRows","each","toArray","Collection","orderBy","reverse","mapToClass","mappedClass","_super","class_1","enumerable","table","inheritedProps","getOwnPropertyNames","propName","add","readHook","_","unsubscribe","defineClass","Class","content","auto","objToAdd","mutate","numFailures","lastResult","update","keyOrObject","InvalidArgument","modify","put","clear","range","bulkGet","getMany","bulkAdd","objects","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","bulkPut","objectsToPut","bulkUpdate","keysAndChanges","coreTable","entry","changeSpecs","changes","offsetMap","cache","objs","resultKeys","resultObjs","_i","_b","Constraint","numEntries","updates","mappedOffset","Number","bulkDelete","numKeys","Events","ctx","evs","eventName","subscriber","subscribe","addEventType","chainFunction","defaultFunction","addConfiguredEvents","context","subscribers","cfg","fireEvent","makeClassConstructor","createTableConstructor","tableSchema","_allTables","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","factory","isLimitFilter","curr","addMatchFilter","isMatch","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","keysOnly","dir","unique","query","iter","coreTrans","iterate","valueMapper","set_1","union","cursor","advance","stop","fail","_iterate","cursorPromise","mappedFn","c","wrappedFn","advancer","PropModSymbol","PropModification","spec","execute","term","BigInt","remove","subtrahend_1","includes","_c","prefixToReplace","replacePrefix","startsWith","substring","_read","_ctx","error","_write","_addAlgorithm","clone","raw","Math","min","sortBy","parts","lastPart","lastIndex","getval","order","sorter","aVal","bVal","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","last","indexName","_ondirectionchange","desc","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","found","modifyer","anythingModified","origVal","outbound","extractKey","_options","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","criteria","deleteCallback","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","changeSpec","isAdditionalChunk","coreRange","createCollectionConstructor","whereClause","keyRangeGenerator","keyRange","whereCtx","readingHook","simpleCompare","simpleCompareReverse","collectionOrWhereClause","T","collection","emptyCollection","rangeEqual","upperFactory","toUpperCase","toLowerCase","lowerFactory","nextCasing","lowerKey","upperNeedle","lowerNeedle","llp","lwrKeyChar","addIgnoreCaseAlgorithm","match","needles","suffix","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowestPossibleCasing","casing","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","str","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","ascending","descending","_min","max","_max","addRange","newRange","sortDirection","rangeSorter","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","keyWithinCurrentRange","checkKey","startsWithAnyOf","createWhereClauseConstructor","orCollection","_IDBKeyRange","_deps","IDBKeyRange","eventRejectHandler","event","preventDefault","target","stopPropagation","DEXIE_STORAGE_MUTATED_EVENT_NAME","STORAGE_MUTATED_DOM_EVENT_NAME","globalEvents","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","shift","OpenFailed","active","transaction","durability","chromeTransactionDurability","ev","_reject","onabort","on","oncomplete","_resolve","storagemutated","bWriteLock","ReadOnly","_root","waitFor","promiseLike","root","_waitingFor","_waitingQueue","store","objectStore","spin","_spinCount","currentWaitPromise","abort","memoizedTables","_memoizedTables","transactionBoundTable","createTransactionConstructor","dbschema","complete","wasActive","createIndexSpec","src","nameFromKeyPath","createTableSchema","safariMultiStoreFix","getMaxKey","IdbKeyRange","only","getKeyExtractor","getSinglePathKeyExtractor","arrayify","_id_counter","getKeyPathAlias","createDBCore","tmpTrans","extractSchema","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","navigator","userAgent","makeIDBKeyRange","idbRange","upperBound","lowerBound","bound","createDbCoreTable","isAddOrPut","req","reqs","errorHandler","args1","args2","source","openKeyCursor","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsNotStarted","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","request","nonInfinitLimit","idbKeyRange","getAll","getAllKeys","count_1","req_1","result_1","keyCount","callbackCount","successHandler","_pos","tableMap","MIN_KEY","MAX_KEY","createMiddlewareStack","stackImpl","middlewares","down","createMiddlewareStacks","indexedDB","dbcore","generateMiddlewareStacks","stacks","_middlewares","tbl","setApiOnPlace","tableNames","propDesc","removeTablesApi","lowerVersionFirst","_cfg","version","runUpgraders","oldVersion","idbUpgradeTrans","globalSchema","contains","$meta","parseIndexSyntax","_storeNames","rejectTransaction","createTable","populate","getExistingVersion","updateTablesAndIndexes","patchCurrentVersion","createMissingTables","createObjectStore","ceil","buildGlobalSchema","adjustToExistingIndexNames","diff","getSchemaDiff","_loop_1","tableChange","change","recreate","addIndex","state_1","metaVersion","queue","versions","_versions","versToRun","oldSchema","newSchema","tuple","Upgrade","store_1","deleteIndex","del","idxName","contentUpgrade","upgradeSchema_1","contentUpgradeIsAsync_1","returnValue_1","promiseFollowed","decrementor","deleteRemovedTables","deleteObjectStore","runQueue","oldDef","newDef","def","oldIndexes","newIndexes","oldIdx","newIdx","storeName","createIndex","dbStoreNames","j","idbindex","readGlobalSchema","verno","verifyInstalledSchema","installedSchema","ch","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","primKeyAndIndexes","indexNum","trim","replace","Version","_parseStoresSpec","stores","outSchema","storesSource","storesSpec","upgrade","upgradeFunction","createVersionConstructor","versionNumber","getDbNamesTable","dbNamesDB","Dexie$1","addons","dbnames","hasDatabasesNative","databases","getDatabaseNames","infos","info","_onDatabaseCreated","_onDatabaseDeleted","vip","idbReady","isSafari","userAgentData","intervalId","tryIdb","setInterval","clearInterval","isEmptyRange","node","RangeSet","fromOrTree","rangeSet","mergeRanges","addKey","addKeys","hasKey","getRangeSetIterator","left","right","r","rebalance","rightWasCutOff","newSet","_addRangeSet","rangesOverlap","rangeSet1","rangeSet2","i1","nextResult1","i2","nextResult2","state","keyProvided","up","rootClone","oldRootRight","computeDepth","extendObservabilitySet","part","obsSetsOverlap","os1","os2","unsignaledParts","isTaskEnqueued","signalSubscribersLazily","optimistic","signalSubscribersNow","updatedParts","deleteAffectedCacheEntries","queriesToSignal","tblCache","collectTableSubscribers","exec","dbName","requery","outQueriesToSignal","updatedEntryLists","entries","queries","filteredEntries","entries_1","obsSet","_d","updatedEntryLists_1","_e","dexieOpen","openCanceller","nativeVerToOpen","round","schemaPatchMode","throwIfCancelled","resolveDbReady","dbReadyResolve","upgradeTransaction","wasCreated","tryOpenDB","autoSchema","onblocked","_fireOnBlocked","onupgradeneeded","allowEmptyDB","delreq","deleteDatabase","NoSuchDatabase","oldVer","pow","onversionchange","vcFired","onclose","onReadyBeingFired","ready","fireRemainders","remainders_1","_close","everything_1","awaitIterator","callNext","doThrow","onSuccess","step","onError","getNext","extractTransactionArgs","_tableArgs_","scopeFunc","enterTransactionScope","parentTransaction","explicit","_explicit","scopeFuncIsAsync","returnValue","PrematureCommit","pad","createVirtualIndexMiddleware","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","virtualKeyPath","findBestIndex","translateRange","translateRequest","createVirtualCursor","_continue","virtualCursor","virtualIndexMiddleware","level","getObjectDiff","prfx","ap","bp","apTypeName","bpTypeName","getEffectiveKeys","hooksMiddleware","downCore","downTable","tableMiddleware","dxTrans","deleting","creating","updating","addPutOrDelete","deleteRange","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","deleteNextChunk","effectiveKeys","getFromTransactionCache","cacheExistingValuesMiddleware","cachedResult","isCachableContext","subscr","isCachableRequest","observabilityMiddleware","FULL_RANGE","querier","indexesWithAutoIncPK","tableClone","mutatedParts","getRangeSet","pkRangeSet","delsRangeSet","newObjs","oldCache","oldObjs","trackAffectedIndexes","idxVals","pkPos","findIndex","pk","getRange","readSubscribers","method","isLiveQuery","cachable","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","cursor_1","wantValues_1","pkey","addAffectedIndex","addKeyOrKeys","oldKey","newKey","adjustOptimisticFromFailures","numBulkOps","isAboveLower","isBelowUpper","isWithinRange","applyOptimisticOps","ops","cacheEntry","immutable","queryRange","extractPrimKey","extractIndex","extractLowLevelIndex","finalResult","op","modifedResult","includedValues","includedPKs","existingKeys_1","keySet_1","keysToDelete_1","range_1","dirty","freeze","areRangesEqual","r1","r2","compareLowers","lower1","lower2","lowerOpen1","lowerOpen2","compareUppers","upper1","upper2","upperOpen1","upperOpen2","isSuperRange","findCompatibleQuery","equalEntry","find","superEntry","countQuery","subscribeToCacheEntry","container","signal","addEventListener","size","enqueForDeletion","cacheMiddleware","coreMW","ac_1","AbortController","endTransaction","wasCommitted","affectedSubscribers_1","stores_1","optimisticOps","_f","_g","_h","freezeResults","modRes","tableMW","reqWithResolvedKeys","valueWithKey","adjustedReq","exactMatch","Map","vipify","vipDb","Proxy","receiver","Dexie","deps","dependencies","cancelOpen","bSticky","db_1","newVersion","use","vipDB","tx","addon","versionInstance","_whenReady","unuse","mw","closeOptions","hasInvalidArguments","doDelete","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","onlyIfCompatible","idbMode","SubTransaction","enterTransaction","InvalidTable","symbolObservable","observable","Observable","_subscribe","domDeps","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","liveQuery","hasValue","currentValue","observer","closed","abortController","accumMuts","currentObs","subscription","startedListening","mutationListener","doQuery","_doQuery","shouldNotify","aborted","getValue","databaseName","exists","ignoreTransaction","async","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","semVer","maxKey","dispatchEvent","propagatingLocally","event_1","CustomEvent","detail","propagateLocally","updateParts","wasMe","bc","createBC","BroadcastChannel","onmessage","data","unref","changedParts","postMessage","disableBfCache","persisted","connections_1","BX","Dexie3"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit