@shihengtech/utils 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sh-utils.js +46 -2
- package/dist/sh-utils.js.map +1 -1
- package/es/index.js +155 -29
- package/es/index.js.map +1 -1
- package/lib/index.d.ts +72 -10
- package/lib/index.js +157 -28
- package/lib/index.js.map +1 -1
- package/package.json +12 -2
package/dist/sh-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/.pnpm/localforage@1.10.0/node_modules/localforage/dist/localforage.js","../src/class/ReplaySubject/index.ts","../src/utils/createQueryWithCache/index.ts","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_curry1.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_curry2.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_includesWith.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_functionName.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_has.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_objectIs.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_isArguments.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/keys.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/type.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_equals.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/equals.js","../src/utils/fnRunner/index.ts"],"names":["require_localforage","__commonJSMin","exports","module","f","g","e","t","n","r","s","o","u","a","__require","i","l","_dereq_","global","Mutation","scheduleDrain","called","observer","nextTick","element","channel","scriptEl","draining","queue","oldQueue","len","immediate","task","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","Promise","resolver","safelyResolveThenable","onRejected","onFulfilled","promise","unwrap","QueueItem","value","func","returnValue","self","result","tryCatch","getThen","thenable","error","obj","then","onError","onSuccess","tryToUnwrap","out","resolve","reject","reason","all","iterable","values","resolved","allResolver","resolveFromAll","outValue","race","response","_typeof","_classCallCheck","instance","Constructor","getIDB","idb","isIndexedDBValid","isSafari","hasFetch","createBlob","parts","properties","Builder","builder","Promise$1","executeCallback","callback","executeTwoCallbacks","errorCallback","normalizeKey","key","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","toString","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","length","buf","arr","_checkBlobSupportWithoutCaching","txn","blob","matchedChrome","matchedEdge","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","_advanceReadiness","_rejectReadiness","err","_getConnection","upgradeNeeded","createDbContext","dbArgs","openreq","db","ex","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","isDowngrade","isUpgrade","incVersion","_encodeBlob","reader","base64","_decodeBlob","encodedBlob","arrayBuff","_isEncodedBlob","_fullyReady","_tryReconnect","forages","forage","createTransaction","mode","retries","tx","_initStorage","options","initPromises","ignoreErrors","j","k","getItem","transaction","store","req","iterate","iterator","iterationNumber","cursor","setItem","blobSupport","removeItem","clear","advanced","keys","dropInstance","currentConfig","isCurrentDb","dbPromise","newVersion","dropObjectPromise","_forage2","dropDBPromise","_forage","asyncStorage","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","bufferLength","p","encoded1","encoded2","encoded3","encoded4","buffer","bytes","bufferToString","base64String","serialize","valueType","marker","fileReader","str","deserialize","type","blobType","matcher","localforageSerializer","createDbTable","_initStorage$1","dbInfoPromise","tryExecuteSql","sqlStatement","args","results","getItem$1","iterate$1","rows","item","_setItem","retriesLeft","originalValue","sqlError","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","storeName","operations","webSQLStorage","isLocalStorageValid","_getKeyPrefix","defaultConfig","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","x","y","includes","array","searchElement","isArray","arg","DefinedDrivers","DriverSupport","DefaultDrivers","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","callWhenReady","localForageInstance","libraryMethod","_args","extend","_key","LocalForage","driverTypeKey","driver","driverName","driverObject","complianceError","driverMethods","driverMethodName","isRequired","configureMissingMethods","methodNotImplementedFactory","methodName","_i","_len","optionalDriverMethod","setDriverSupport","support","getDriverPromise","serializerPromise","drivers","supportedDrivers","setDriverToConfig","extendSelfWithDriver","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","libraryMethodsAndProperties","localforage_js","ReplaySubject","maxBufferSize","fn","data","import_localforage","_isPlaceholder","_curry1","f1","_curry2","f2","b","_b","_a","_arrayFromIterator","iter","list","next","_includesWith","pred","idx","_functionName","match","_has","prop","_objectIs","objectIs_default","_isArguments","isArguments_default","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","nIdx","ks","checkArgsLength","keys_default","val","type_default","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","keysA","extendedStackA","extendedStackB","equals","equals_default","fnRunner","retryTimes","__async","times","DB_NAME","localforage","createQueryWithCache","deps","retry","maxAge","version","compareBeforeUpdate","remoteMemoryCache","cacheEnabled","beforeRequest","errorHandler","__spreadValues","index","cacheUpdateSubject","resolveDeps","dep","queryFnEnhancer","promiseResult","res","getLocalCache","cache","remoteResultCache","clearMemoryCache","queryWithMemoryCache","queryRemoteWithEnhancer","rs","oldCache","cacheData","_fn","cacheResult","remoteResult","newDb"],"mappings":"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","file":"sh-utils.js","sourcesContent":["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","class ReplaySubject<T> {\n private maxBufferSize: number\n private buffer: T[] = []\n\n private subscriptions: ((data: T) => void)[] = []\n\n constructor(maxBufferSize = 1) {\n this.maxBufferSize = maxBufferSize\n }\n\n subscribe(fn: (data: T) => void) {\n this.subscriptions.push(fn)\n this.buffer.forEach(data => fn(data))\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe(fn: (data: T) => void) {\n this.subscriptions = this.subscriptions.filter(f => f !== fn)\n }\n\n next(data: T) {\n this.subscriptions.forEach(fn => fn(data))\n this.buffer.push(data)\n if (this.buffer.length > this.maxBufferSize) {\n this.buffer = this.buffer.slice(1)\n }\n }\n}\n\nexport { ReplaySubject }\n","import localforage from 'localforage'\nimport { equals as deepEquals } from 'ramda'\nimport { ReplaySubject } from '../../class'\nimport { fnRunner } from '../fnRunner'\n\ntype DBType = Pick<\n LocalForage,\n 'getItem' | 'setItem' | 'removeItem' | 'clear'\n // 这些可以暂时不考虑\n // | 'clear' | 'keys' | 'length'\n>\n\nconst DB_NAME = 'sh-cache-common'\n\nlet db: DBType = localforage.createInstance({\n name: DB_NAME,\n storeName: 'main-store',\n // driver: [localforage.LOCALSTORAGE, localforage.INDEXEDDB, localforage.WEBSQL],\n})\n\ninterface CacheItem<T extends (...args: any[]) => Promise<any>> {\n /** 缓存参数 */\n deps: any[]\n /** 缓存版本,用于缓存数据结构变更 */\n version?: string\n /** 缓存过期时间,为空表示永不过期 */\n expires?: number\n /** 缓存结果 */\n result: Awaited<ReturnType<T>>\n}\n\n/** 依赖项类型,支持直接值或函数形式(运行时取值) */\ntype DepItem = unknown | (() => unknown)\n\ninterface CacheOptions<T extends (...args: any[]) => Promise<any>> {\n /** 缓存过期时间,为空表示永不过期 */\n maxAge?: number\n /** 缓存版本,用于缓存数据结构变更 */\n version?: string\n /** 依赖项,用于缓存依赖项变更。支持函数形式,函数会在运行时调用取值 */\n deps?: DepItem[];\n /**\n * 重试次数,为0表示不重试\n * @default 0\n */\n retry?: number\n /**\n * 是否比较旧缓存与新缓存后再触发 onCacheUpdate\n * 为 true 时,只有当新旧缓存不一致时才触发 onCacheUpdate\n * 为 false 时,总是触发 onCacheUpdate\n * @default R.equals\n */\n compareBeforeUpdate?:\n | ((prev: Awaited<ReturnType<T>>, next: Awaited<ReturnType<T>>) => boolean)\n | false\n /**\n * 是否启用远程内存缓存\n * 为 true 时,启用远程内存缓存\n * 为 false 时,不启用远程内存缓存\n * @default false\n */\n remoteMemoryCache?: boolean\n /**\n * 比较依赖项(函数参数及 deps)是否相等\n * @default (a, b) => a.length === b.length && a.every((item, index) => item === b[index])\n * */\n equals?: (prev: any[], next: any[]) => boolean\n /**\n * 根据入参决定是否添加缓存\n * 不传的话默认启用缓存\n */\n cacheEnabled?: (args: Parameters<T>) => Promise<boolean>\n /** 请求前回调 */\n beforeRequest?: () => Promise<void> | void\n /** 请求成功回调 */\n onSuccess?: (result: {\n type: 'local' | 'remote'\n result: Awaited<ReturnType<T>>\n }) => void\n /** 请求错误回调 */\n onError?: (error: any) => void\n /** 远程请求错误处理 */\n errorHandler?: (error: any) => any\n // /** 缓存更新回调 */\n // onCacheUpdate?: (\n // result: Awaited<ReturnType<T>>,\n // cacheData: CacheItem<T>,\n // ) => void;\n}\n\ninterface CacheUpdateEvent<T extends (...args: any[]) => Promise<any>> {\n result: Awaited<ReturnType<T>>\n cacheData: CacheItem<T>\n isCacheHit: boolean\n}\n\nfunction createQueryWithCache<T extends (...args: any[]) => Promise<any>>(key: string, fn: T, options?: CacheOptions<T>) {\n const {\n deps,\n retry,\n maxAge,\n version,\n compareBeforeUpdate,\n remoteMemoryCache,\n equals,\n cacheEnabled,\n beforeRequest,\n onSuccess,\n onError,\n errorHandler,\n } = {\n deps: [],\n retry: 0,\n equals: (a, b) =>\n a.length === b.length && a.every((item, index) => item === b[index]),\n compareBeforeUpdate: deepEquals,\n remoteMemoryCache: false,\n ...options,\n } satisfies CacheOptions<T>\n\n const cacheUpdateSubject = new ReplaySubject<CacheUpdateEvent<T>>(1)\n\n /** 解析 deps,如果元素是函数则调用获取值 */\n const resolveDeps = () => deps.map(dep => typeof dep === 'function' ? dep() : dep)\n\n const queryFnEnhancer = (fn: (args: Parameters<T>) => Promise<ReturnType<T>>, options: Pick<CacheOptions<T>, 'onSuccess' | 'onError'> & { type: 'remote' | 'local' }) => (((args) => {\n const promiseResult = fn(args);\n\n promiseResult\n .then(result => {\n const res = { type: options.type, result: result as Awaited<ReturnType<T>> }\n options.onSuccess?.(res)\n return res\n }, options.onError)\n .catch(() => {})\n\n return promiseResult\n }) as typeof fn)\n\n const getLocalCache = async (args: Parameters<T>) => {\n const cache = await db.getItem<CacheItem<T>>(key)\n if (\n cache\n && (!version || cache.version === version)\n && (!cache.expires || cache.expires > Date.now())\n && equals(cache.deps, args.concat(resolveDeps()))\n ) {\n return cache.result\n }\n\n throw new Error('Cache not found')\n }\n\n const remoteResultCache: {\n success: boolean\n args: Parameters<T>\n result: ReturnType<T> | null\n } = {\n success: false,\n args: [] as any,\n result: null,\n }\n\n const clearMemoryCache = () => {\n remoteResultCache.success = false\n remoteResultCache.result = null\n remoteResultCache.args = [] as any\n }\n\n const queryWithMemoryCache = (args: Parameters<T>) => {\n if (remoteResultCache.success && equals(remoteResultCache.args, args)) {\n return {\n type: 'memory' as const,\n promiseResult: remoteResultCache.result!,\n }\n }\n\n remoteResultCache.args = args\n remoteResultCache.success = true\n const result = (remoteResultCache.result = fnRunner(\n () => fn(...args),\n retry,\n ) as ReturnType<T>)\n\n Promise.resolve(result)\n .then((result) => {\n !remoteMemoryCache && clearMemoryCache()\n return result\n })\n .catch(clearMemoryCache)\n\n return { type: 'remote' as const, promiseResult: result }\n }\n\n const queryRemoteWithEnhancer = queryFnEnhancer(async (args: Parameters<T>) => {\n const rs = {\n type: 'remote' as const,\n result: null as unknown as Awaited<ReturnType<T>>,\n }\n\n try {\n const { type, promiseResult } = queryWithMemoryCache(args)\n const result = (rs.result = await promiseResult)\n\n // 设置缓存\n type === 'remote'\n && (!cacheEnabled || (await cacheEnabled(args)))\n && Promise.resolve().then(async () => {\n const oldCache = await getLocalCache(args).catch(() => null)\n\n const cacheData: CacheItem<T> = {\n deps: args.concat(resolveDeps()),\n result,\n ...(version && { version }),\n ...(maxAge && { expires: Date.now() + maxAge }),\n }\n db.setItem(key, cacheData)\n\n // 如果配置了比较,且旧缓存存在且与新结果相等,则不触发 onCacheUpdate\n if (\n compareBeforeUpdate\n && oldCache\n && compareBeforeUpdate(oldCache, result)\n ) {\n return\n }\n cacheUpdateSubject.next({\n result,\n cacheData,\n isCacheHit: !!oldCache,\n })\n })\n }\n catch (error) {\n if (errorHandler) {\n rs.result = (await errorHandler(error)) as Awaited<ReturnType<T>>\n }\n else {\n throw error\n }\n }\n\n return rs.result\n }, { type: 'remote' as const, onSuccess, onError })\n\n const _fn = async (...args: Parameters<T>) => {\n await beforeRequest?.()\n\n const [cacheResult, remoteResult] = [\n queryFnEnhancer(getLocalCache, { type: 'local' as const, onSuccess })(args),\n queryRemoteWithEnhancer(args),\n ]\n const result = await Promise.race([\n cacheResult.catch(() => remoteResult),\n remoteResult,\n ])\n\n return result\n }\n\n _fn.refresh = (...args: Parameters<T>) => queryRemoteWithEnhancer(args)\n\n _fn.subscribeCacheUpdate = (fn: (data: CacheUpdateEvent<T>) => void) =>\n cacheUpdateSubject.subscribe(fn)\n\n _fn.clearCache = async () => {\n clearMemoryCache()\n await db.removeItem(key)\n }\n\n return _fn\n}\n\n/**\n * 使用自定义数据库实例\n * @param newDb 数据库实例或 storeName,如果为字符串,则使用 localforage 创建一个实例\n */\ncreateQueryWithCache.useDb = <T extends string>(newDb: DBType | (T extends 'main-store' ? never : T)) => {\n if (typeof newDb === 'string') {\n db = localforage.createInstance({\n name: DB_NAME,\n storeName: newDb,\n })\n }\n else {\n db = newDb\n }\n}\n\nexport { createQueryWithCache }\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(new Map); //=> \"Map\"\n * R.type(new Set); //=> \"Set\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","export async function fnRunner<T extends (...args: any[]) => Promise<any>>(fn: T, retryTimes: number = 0): Promise<Awaited<ReturnType<T>>> {\n const times = (retryTimes || 0) + 1\n for (let i = 0; i < times; i++) {\n try {\n return await fn()\n }\n catch (error) {\n // Only throw if this was the last attempt\n if (i === times - 1) {\n throw error\n }\n }\n }\n // This line should never be reached, but it's required for type safety.\n throw new Error('fnRunner: Unexpected error - all retries exhausted.')\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js","../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js","../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js","../node_modules/.pnpm/localforage@1.10.0/node_modules/localforage/dist/localforage.js","../src/class/ReplaySubject/index.ts","../src/hooks/useLaziedRef/index.ts","../src/hooks/useLaziedConst/index.ts","../src/hooks/useQueryWithCache/index.ts","../src/utils/createQueryWithCache/index.ts","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_curry1.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_curry2.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_includesWith.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_functionName.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_has.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_objectIs.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_isArguments.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/keys.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/type.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/internal/_equals.js","../node_modules/.pnpm/ramda@0.32.0/node_modules/ramda/es/equals.js","../src/utils/fnRunner/index.ts"],"names":["require_react_production_min","__commonJSMin","exports","l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","require_react_development","module","ReactVersion","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentActQueue","ReactCurrentOwner","ReactDebugCurrentFrame","currentExtraStackFrame","setExtraStackFrame","stack","impl","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","ReactSharedInternals","warn","format","_len","args","_key","printWarning","error","_len2","_key2","level","argsWithFormat","item","didWarnStateUpdateForUnmountedComponent","warnNoop","publicInstance","callerName","_constructor","componentName","warningKey","ReactNoopUpdateQueue","callback","completeState","partialState","assign","emptyObject","Component","props","context","updater","deprecatedAPIs","defineDeprecationWarning","methodName","info","fnName","ComponentDummy","PureComponent","pureComponentPrototype","createRef","refObject","isArrayImpl","isArray","typeName","value","hasToStringTag","type","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","provider","outerName","lazyComponent","payload","init","hasOwnProperty","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","hasValidRef","config","getter","hasValidKey","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","warnIfStringRefCannotBeAutoConverted","ReactElement","key","ref","self","source","owner","element","createElement","children","propName","childrenLength","childArray","i","defaultProps","cloneAndReplaceKey","oldElement","newKey","newElement","cloneElement","isValidElement","object","SEPARATOR","SUBSEPARATOR","escapeRegex","escaperLookup","escapedString","match","didWarnAboutMaps","userProvidedKeyEscapeRegex","escapeUserProvidedKey","text","getElementKey","index","mapIntoArray","array","escapedPrefix","nameSoFar","invokeCallback","_child","mappedChild","childKey","escapedChildKey","child","nextName","subtreeCount","nextNamePrefix","iteratorFn","iterableChildren","iterator","step","ii","childrenString","mapChildren","func","result","count","countChildren","forEachChildren","forEachFunc","forEachContext","toArray","onlyChild","createContext","defaultValue","hasWarnedAboutUsingNestedContextConsumers","hasWarnedAboutUsingConsumerProvider","hasWarnedAboutDisplayNameOnConsumer","Consumer","_Provider","_currentValue","_currentValue2","_threadCount","Uninitialized","Pending","Resolved","Rejected","lazyInitializer","ctor","thenable","moduleObject","resolved","rejected","pending","lazy","lazyType","propTypes","newDefaultProps","newPropTypes","forwardRef","render","elementType","ownName","name","REACT_MODULE_REFERENCE","isValidElementType","memo","compare","resolveDispatcher","dispatcher","useContext","Context","realContext","useState","initialState","useReducer","reducer","initialArg","useRef","initialValue","useEffect","create","deps","useInsertionEffect","useLayoutEffect","useCallback","useMemo","useImperativeHandle","useDebugValue","formatterFn","useTransition","useDeferredValue","useId","useSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","reenableLogs","ReactCurrentDispatcher$1","prefix","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","prototype","describeUnknownElementTypeFrameInDEV","loggedTypeFailures","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement","checkPropTypes","typeSpecs","values","location","has","typeSpecName","error$1","err","ex","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","fileName","lineNumber","getSourceInfoErrorAddendumForProps","elementProps","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","validatePropTypes","_name","validateFragmentProps","fragment","keys","createElementWithValidation","validType","sourceInfo","typeString","didWarnAboutDeprecatedCreateFactory","createFactoryWithValidation","validatedFactory","cloneElementWithValidation","startTransition","scope","options","prevTransition","currentTransition","updatedFibersCount","didWarnAboutMessageChannel","enqueueTaskImpl","enqueueTask","task","requireString","nodeRequire","_err","channel","actScopeDepth","didWarnNoAwaitAct","act","prevActScopeDepth","prevIsBatchingLegacy","queue","flushActQueue","popActScope","thenableResult","wasAwaited","resolve","reject","returnValue","recursivelyFlushAsyncActWork","_queue","_thenable","_thenable2","isFlushing","createElement$1","cloneElement$1","createFactory","Children","require_react","require_localforage","o","__require","_dereq_","global","Mutation","scheduleDrain","called","observer","nextTick","scriptEl","draining","oldQueue","len","immediate","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","Promise","resolver","safelyResolveThenable","onRejected","onFulfilled","promise","unwrap","QueueItem","tryCatch","getThen","obj","then","onError","onSuccess","tryToUnwrap","out","reason","all","iterable","allResolver","resolveFromAll","outValue","race","response","_typeof","_classCallCheck","instance","Constructor","getIDB","idb","isIndexedDBValid","isSafari","hasFetch","createBlob","parts","properties","Builder","builder","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","toString","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","length","buf","arr","_checkBlobSupportWithoutCaching","txn","blob","matchedChrome","matchedEdge","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","createDbContext","dbArgs","openreq","db","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","isDowngrade","isUpgrade","incVersion","_encodeBlob","reader","base64","_decodeBlob","encodedBlob","arrayBuff","_isEncodedBlob","_fullyReady","_tryReconnect","forages","forage","createTransaction","mode","retries","tx","_initStorage","initPromises","ignoreErrors","j","getItem","transaction","store","req","iterate","iterationNumber","cursor","setItem","blobSupport","removeItem","clear","advanced","dropInstance","currentConfig","isCurrentDb","dbPromise","newVersion","dropObjectPromise","_forage2","dropDBPromise","_forage","asyncStorage","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","bufferLength","encoded1","encoded2","encoded3","encoded4","buffer","bytes","bufferToString","base64String","serialize","valueType","marker","fileReader","str","deserialize","blobType","matcher","localforageSerializer","createDbTable","_initStorage$1","dbInfoPromise","tryExecuteSql","sqlStatement","results","getItem$1","iterate$1","rows","_setItem","retriesLeft","originalValue","sqlError","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","storeName","operations","webSQLStorage","isLocalStorageValid","_getKeyPrefix","defaultConfig","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","includes","searchElement","arg","DefinedDrivers","DriverSupport","DefaultDrivers","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","callWhenReady","localForageInstance","libraryMethod","_args","extend","LocalForage","driverTypeKey","driver","driverName","driverObject","complianceError","driverMethods","driverMethodName","isRequired","configureMissingMethods","methodNotImplementedFactory","_i","optionalDriverMethod","setDriverSupport","support","getDriverPromise","serializerPromise","drivers","supportedDrivers","setDriverToConfig","extendSelfWithDriver","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","libraryMethodsAndProperties","localforage_js","ReplaySubject","maxBufferSize","data","import_react","useLaziedRef","useLaziedConst","import_localforage","_isPlaceholder","_curry1","f1","_curry2","f2","_b","_a","_arrayFromIterator","iter","list","next","_includesWith","pred","idx","_functionName","_has","prop","_objectIs","objectIs_default","_isArguments","isArguments_default","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","nIdx","ks","checkArgsLength","keys_default","val","type_default","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","keysA","extendedStackA","extendedStackB","equals","equals_default","fnRunner","retryTimes","__async","times","DB_NAME","localforage","createQueryWithCache","retry","maxAge","version","compareBeforeUpdate","remoteMemoryCache","cacheEnabled","beforeRequest","errorHandler","__spreadValues","fnRunCount","currentDeps","cacheUpdateSubject","resolveDeps","queryFnEnhancer","rest","promiseResult","res","getLocalCache","_0","_1","cache","remoteResultCache","clearMemoryCache","queryWithMemoryCache","queryRemote","queryOption","rs","runCount","oldCache","cacheData","_fn","isCacheDisabled","cacheResult","remoteResult","prevCache","newCache","newDb","useQueryWithCache","enabled","initialData","onFinished","useCustomEffect","restOptions","__objRest","loading","setLoading","state","setState","infoRef","cachedFn","__spreadProps","_c","_d"],"mappings":"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","file":"sh-utils.js","sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var ReactVersion = '18.3.1';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: null\n};\n\nvar ReactCurrentActQueue = {\n current: null,\n // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n isBatchingLegacy: false,\n didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (element === null || element === undefined) {\n throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n\n var propName; // Original props are copied\n\n var props = assign({}, element.props); // Reserved names are extracted\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n {\n checkKeyStringCoercion(element.key);\n }\n\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n {\n // The `if` statement here prevents auto-disabling of the safe\n // coercion ESLint rule, so we must manually disable it below.\n // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n checkKeyStringCoercion(mappedChild.key);\n }\n }\n\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n // eslint-disable-next-line react-internal/safe-string-coercion\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n // eslint-disable-next-line react-internal/safe-string-coercion\n var childrenString = String(children);\n throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n throw new Error('React.Children.only expected to receive a single React element child.');\n }\n\n return children;\n}\n\nfunction createContext(defaultValue) {\n // TODO: Second argument used to be an optional `calculateChangedBits`\n // function. Warn to reserve for future use?\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null,\n // Add these to use same hidden class in VM as ServerContext\n _defaultValue: null,\n _globalName: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n // This might throw either because it's missing or throws. If so, we treat it\n // as still uninitialized and try again next time. Which is the same as what\n // happens if the ctor or any wrappers processing the ctor throws. This might\n // end up fixing it if the resolution was a concurrency bug.\n\n thenable.then(function (moduleObject) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = moduleObject;\n }\n }, function (error) {\n if (payload._status === Pending || payload._status === Uninitialized) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n\n if (payload._status === Uninitialized) {\n // In case, we're still uninitialized, then we're waiting for the thenable\n // to resolve. Set it as pending in the meantime.\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n }\n }\n\n if (payload._status === Resolved) {\n var moduleObject = payload._result;\n\n {\n if (moduleObject === undefined) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n }\n }\n\n {\n if (!('default' in moduleObject)) {\n error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n }\n\n return moduleObject.default;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: Uninitialized,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.forwardRef((props, ref) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!render.name && !render.displayName) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name; // The inner component shouldn't inherit this display name in most cases,\n // because the component may be used elsewhere.\n // But it's nice for anonymous functions to inherit the name,\n // so that our component-stack generation logic will display their frames.\n // An anonymous function generally suggests a pattern like:\n // React.memo((props) => {...});\n // This kind of inner function is not used elsewhere so the side effect is okay.\n\n if (!type.name && !type.displayName) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n {\n if (dispatcher === null) {\n error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n }\n } // Will result in a null access error if accessed outside render phase. We\n // intentionally don't throw our own error because this is in a hot path.\n // Also helps ensure this is inlined.\n\n\n return dispatcher;\n}\nfunction useContext(Context) {\n var dispatcher = resolveDispatcher();\n\n {\n // TODO: add a more generic warning for invalid values.\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nfunction useTransition() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n var dispatcher = resolveDispatcher();\n return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nfunction startTransition(scope, options) {\n var prevTransition = ReactCurrentBatchConfig.transition;\n ReactCurrentBatchConfig.transition = {};\n var currentTransition = ReactCurrentBatchConfig.transition;\n\n {\n ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n }\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.transition = prevTransition;\n\n {\n if (prevTransition === null && currentTransition._updatedFibers) {\n var updatedFibersCount = currentTransition._updatedFibers.size;\n\n if (updatedFibersCount > 10) {\n warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n }\n\n currentTransition._updatedFibers.clear();\n }\n }\n }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n if (enqueueTaskImpl === null) {\n try {\n // read require off the module object to get around the bundlers.\n // we don't want them to detect a require and bundle a Node polyfill.\n var requireString = ('require' + Math.random()).slice(0, 7);\n var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n // version of setImmediate, bypassing fake timers if any.\n\n enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n } catch (_err) {\n // we're in a browser\n // we can't use regular timers because they may still be faked\n // so we try MessageChannel+postMessage instead\n enqueueTaskImpl = function (callback) {\n {\n if (didWarnAboutMessageChannel === false) {\n didWarnAboutMessageChannel = true;\n\n if (typeof MessageChannel === 'undefined') {\n error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n }\n }\n }\n\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(undefined);\n };\n }\n }\n\n return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n {\n // `act` calls can be nested, so we track the depth. This represents the\n // number of `act` scopes on the stack.\n var prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n\n if (ReactCurrentActQueue.current === null) {\n // This is the outermost `act` scope. Initialize the queue. The reconciler\n // will detect the queue and use it instead of Scheduler.\n ReactCurrentActQueue.current = [];\n }\n\n var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n var result;\n\n try {\n // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n // set to `true` while the given callback is executed, not for updates\n // triggered during an async event, because this is how the legacy\n // implementation of `act` behaved.\n ReactCurrentActQueue.isBatchingLegacy = true;\n result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n // which flushed updates immediately after the scope function exits, even\n // if it's an async function.\n\n if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n flushActQueue(queue);\n }\n }\n } catch (error) {\n popActScope(prevActScopeDepth);\n throw error;\n } finally {\n ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n }\n\n if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n // for it to resolve before exiting the current scope.\n\n var wasAwaited = false;\n var thenable = {\n then: function (resolve, reject) {\n wasAwaited = true;\n thenableResult.then(function (returnValue) {\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // We've exited the outermost act scope. Recursively flush the\n // queue until there's no remaining work.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }, function (error) {\n // The callback threw an error.\n popActScope(prevActScopeDepth);\n reject(error);\n });\n }\n };\n\n {\n if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n // eslint-disable-next-line no-undef\n Promise.resolve().then(function () {}).then(function () {\n if (!wasAwaited) {\n didWarnNoAwaitAct = true;\n\n error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n }\n });\n }\n }\n\n return thenable;\n } else {\n var returnValue = result; // The callback is not an async function. Exit the current scope\n // immediately, without awaiting.\n\n popActScope(prevActScopeDepth);\n\n if (actScopeDepth === 0) {\n // Exiting the outermost act scope. Flush the queue.\n var _queue = ReactCurrentActQueue.current;\n\n if (_queue !== null) {\n flushActQueue(_queue);\n ReactCurrentActQueue.current = null;\n } // Return a thenable. If the user awaits it, we'll flush again in\n // case additional work was scheduled by a microtask.\n\n\n var _thenable = {\n then: function (resolve, reject) {\n // Confirm we haven't re-entered another `act` scope, in case\n // the user does something weird like await the thenable\n // multiple times.\n if (ReactCurrentActQueue.current === null) {\n // Recursively flush the queue until there's no remaining work.\n ReactCurrentActQueue.current = [];\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n } else {\n resolve(returnValue);\n }\n }\n };\n return _thenable;\n } else {\n // Since we're inside a nested `act` scope, the returned thenable\n // immediately resolves. The outer scope will flush the queue.\n var _thenable2 = {\n then: function (resolve, reject) {\n resolve(returnValue);\n }\n };\n return _thenable2;\n }\n }\n }\n}\n\nfunction popActScope(prevActScopeDepth) {\n {\n if (prevActScopeDepth !== actScopeDepth - 1) {\n error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n }\n\n actScopeDepth = prevActScopeDepth;\n }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n {\n var queue = ReactCurrentActQueue.current;\n\n if (queue !== null) {\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n if (queue.length === 0) {\n // No additional work was scheduled. Finish.\n ReactCurrentActQueue.current = null;\n resolve(returnValue);\n } else {\n // Keep flushing work until there's none left.\n recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n }\n });\n } catch (error) {\n reject(error);\n }\n } else {\n resolve(returnValue);\n }\n }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n {\n if (!isFlushing) {\n // Prevent re-entrance.\n isFlushing = true;\n var i = 0;\n\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n\n do {\n callback = callback(true);\n } while (callback !== null);\n }\n\n queue.length = 0;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n queue = queue.slice(i + 1);\n throw error;\n } finally {\n isFlushing = false;\n }\n }\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.act = act;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","class ReplaySubject<T> {\n private maxBufferSize: number\n private buffer: T[] = []\n\n private subscriptions: ((data: T) => void)[] = []\n\n constructor(maxBufferSize = 1) {\n this.maxBufferSize = maxBufferSize\n }\n\n subscribe(fn: (data: T) => void) {\n this.subscriptions.push(fn)\n this.buffer.forEach(data => fn(data))\n return () => this.unsubscribe(fn)\n }\n\n unsubscribe(fn: (data: T) => void) {\n this.subscriptions = this.subscriptions.filter(f => f !== fn)\n }\n\n next(data: T) {\n this.subscriptions.forEach(fn => fn(data))\n this.buffer.push(data)\n if (this.buffer.length > this.maxBufferSize) {\n this.buffer = this.buffer.slice(1)\n }\n }\n}\n\nexport { ReplaySubject }\n","import { useRef } from 'react'\n\nexport function useLaziedRef<T extends NonNullable<unknown>>(value: () => T) {\n const ref = useRef<T>()\n\n if (ref.current == null) {\n ref.current = value()\n }\n\n return ref as React.MutableRefObject<T>\n}\n","import { useLaziedRef } from '../useLaziedRef'\n\nexport function useLaziedConst<T extends NonNullable<unknown>>(value: () => T) {\n return useLaziedRef(value).current\n}\n","import type { CacheOptions } from '../../utils'\nimport { useEffect, useRef, useState } from 'react'\nimport { createQueryWithCache } from '../../utils'\nimport { useLaziedConst } from '../useLaziedConst'\n\ninterface UseQueryWithCacheOptions<T> {\n /**\n * 是否自动执行查询\n * @default true\n */\n enabled?: boolean\n /** 初始数据,支持函数形式(惰性初始化) */\n initialData?: T | (() => T)\n /** 成功回调 */\n onSuccess?: (data: T) => void\n /** 错误回调 */\n onError?: (error: any) => void\n /** 完成回调 */\n onFinished?: (result: {\n success: true\n data: T\n } | {\n success: false\n error: any\n }) => void\n /** 自定义 useEffect 钩子 */\n useCustomEffect?: typeof useEffect\n}\n\n/**\n * 基于 createQueryWithCache 的 React Hook\n *\n * @param key - 缓存的唯一标识,暂不支持加入任何变量,仅支持字符串常量\n * @param fn - 查询函数\n * @param deps - 依赖列表,当依赖变化时重新执行查询\n * @param options - 配置选项\n */\nfunction useQueryWithCache<\n T extends () => Promise<any>,\n D,\n>(\n key: string,\n fn: T,\n deps: readonly D[] = [],\n options?: UseQueryWithCacheOptions<Awaited<ReturnType<T>>>\n & Pick<CacheOptions<T>, 'maxAge'\n | 'version'\n | 'retry'\n | 'compareBeforeUpdate'\n | 'remoteMemoryCache'> & {\n equals: (prev: readonly D[], next: readonly D[]) => boolean\n cacheEnabled?: (deps: readonly D[]) => Promise<boolean>\n },\n) {\n type Result = Awaited<ReturnType<T>>\n\n const {\n enabled = true,\n initialData,\n onSuccess,\n onError,\n onFinished,\n useCustomEffect = useEffect,\n ...restOptions\n } = options || {}\n\n const [loading, setLoading] = useState(false)\n const [state, setState] = useState<{\n type: 'local' | 'remote'\n data: Result | undefined\n error: any\n }>(() => ({\n type: 'local',\n data: typeof initialData === 'function' ? (initialData as () => Result)() : initialData,\n error: null,\n }))\n\n const infoRef = useRef({ deps, fn, onSuccess, onError, onFinished })\n infoRef.current.deps = deps\n infoRef.current.fn = fn\n infoRef.current.onSuccess = onSuccess\n infoRef.current.onError = onError\n infoRef.current.onFinished = onFinished\n\n const cachedFn = useLaziedConst(() => createQueryWithCache(key, () => infoRef.current.fn(), {\n // 这里类型已经推导的 T 就会出问题,先 as any 解决\n ...(restOptions as any),\n deps: () => infoRef.current.deps,\n beforeRequest: () => {\n setLoading(true)\n },\n onSuccess: (result) => {\n setLoading(false)\n setState({ type: result.type, data: result.result, error: null })\n infoRef.current.onSuccess?.(result.result)\n infoRef.current.onFinished?.({ success: true, data: result.result })\n },\n onError: (error) => {\n setLoading(false)\n setState(s => ({ ...s, error }))\n infoRef.current.onError?.(error)\n infoRef.current.onFinished?.({ success: false, error })\n },\n }))\n\n useCustomEffect(() => {\n if (!enabled)\n return\n\n cachedFn()\n }, [enabled, ...deps])\n\n return {\n ...state,\n loading,\n setState,\n run: cachedFn,\n refresh: cachedFn.refresh,\n clearCache: cachedFn.clearCache,\n }\n}\n\nexport { useQueryWithCache }\nexport type { UseQueryWithCacheOptions }\n","import localforage from 'localforage'\nimport { equals as deepEquals } from 'ramda'\nimport { ReplaySubject } from '../../class'\nimport { fnRunner } from '../fnRunner'\n\ntype DBType = Pick<\n LocalForage,\n 'getItem' | 'setItem' | 'removeItem' | 'clear'\n // 这些可以暂时不考虑\n // | 'clear' | 'keys' | 'length'\n>\n\nconst DB_NAME = 'sh-cache-common'\n\nlet db: DBType = localforage.createInstance({\n name: DB_NAME,\n storeName: 'main-store',\n // driver: [localforage.LOCALSTORAGE, localforage.INDEXEDDB, localforage.WEBSQL],\n})\n\ninterface CacheItem<T extends (...args: any[]) => Promise<any>> {\n /** 缓存参数 */\n deps: any[]\n /** 缓存版本,用于缓存数据结构变更 */\n version?: string\n /** 缓存过期时间,为空表示永不过期 */\n expires?: number\n /** 缓存结果 */\n result: Awaited<ReturnType<T>>\n}\n\ninterface CacheOptions<T extends (...args: any[]) => Promise<any>> {\n /** 缓存过期时间,为空表示永不过期 */\n maxAge?: number\n /** 缓存版本,用于缓存数据结构变更 */\n version?: string\n /** 依赖项,用于缓存依赖项变更。支持函数形式,函数会在运行时调用取值 */\n deps?: readonly unknown[] | (() => readonly unknown[])\n /**\n * 重试次数,为0表示不重试\n * @default 0\n */\n retry?: number\n /**\n * 是否比较旧缓存与新缓存后再触发 onCacheUpdate\n * 为 true 时,只有当新旧缓存不一致时才触发 onCacheUpdate\n * 为 false 时,总是触发 onCacheUpdate\n * @default R.equals\n */\n compareBeforeUpdate?:\n | ((prev: Awaited<ReturnType<T>>, next: Awaited<ReturnType<T>>) => boolean)\n | false\n /**\n * 是否启用远程内存缓存\n * 为 true 时,启用远程内存缓存\n * 为 false 时,不启用远程内存缓存\n * @default false\n */\n remoteMemoryCache?: boolean\n /**\n * 比较依赖项(函数参数及 deps)是否相等\n * @default R.equals\n */\n equals?: (prev: readonly unknown[], next: readonly unknown[]) => boolean\n /**\n * 根据入参决定是否启用缓存\n */\n cacheEnabled?: (deps: readonly unknown[]) => Promise<boolean>\n /** 请求前回调 */\n beforeRequest?: () => Promise<void> | void\n /** 请求成功回调 */\n onSuccess?: (result: {\n type: 'local' | 'remote'\n result: Awaited<ReturnType<T>>\n }) => void\n /** 请求错误回调 */\n onError?: (error: any) => void\n /** 远程请求错误处理 */\n errorHandler?: (error: any) => any\n // /** 缓存更新回调 */\n // onCacheUpdate?: (\n // result: Awaited<ReturnType<T>>,\n // cacheData: CacheItem<T>,\n // ) => void;\n}\n\ninterface CacheUpdateEvent<T extends (...args: any[]) => Promise<any>> {\n result: Awaited<ReturnType<T>>\n cacheData: CacheItem<T>\n isCacheHit: boolean\n}\n\nfunction createQueryWithCache<T extends (...args: any[]) => Promise<any>>(\n key: string,\n fn: T,\n options?: CacheOptions<T>,\n) {\n const {\n deps,\n retry,\n maxAge,\n version,\n compareBeforeUpdate,\n remoteMemoryCache,\n equals,\n cacheEnabled,\n beforeRequest,\n onSuccess,\n onError,\n errorHandler,\n } = {\n deps: [],\n retry: 0,\n equals: deepEquals,\n compareBeforeUpdate: deepEquals,\n remoteMemoryCache: false,\n ...options,\n } satisfies CacheOptions<T>\n\n let fnRunCount = 0\n let currentDeps: any[] = []\n const cacheUpdateSubject = new ReplaySubject<CacheUpdateEvent<T>>(1)\n\n /** 解析 deps,如果元素是函数则调用获取值 */\n const resolveDeps = () => (typeof deps === 'function' ? deps() : deps)\n\n interface QueryOption { runCount: number, deps: readonly unknown[] }\n\n const queryFnEnhancer = (\n fn: (args: Parameters<T>, option: QueryOption) => Promise<ReturnType<T>>,\n options: Pick<CacheOptions<T>, 'onSuccess' | 'onError'> & { type: 'remote' | 'local' },\n ) => (((args, rest) => {\n const promiseResult = fn(args, rest)\n\n promiseResult\n .then((result) => {\n const res = { type: options.type, result: result as Awaited<ReturnType<T>> }\n rest.runCount === fnRunCount && options.onSuccess?.(res)\n return res\n }, (error) => {\n rest.runCount === fnRunCount && options.onError?.(error)\n })\n .catch(() => {})\n\n return promiseResult\n }) as typeof fn)\n\n const getLocalCache = async (_args: Parameters<T>, { deps }: QueryOption) => {\n const cache = await db.getItem<CacheItem<T>>(key)\n if (\n cache\n && (!version || cache.version === version)\n && (!cache.expires || cache.expires > Date.now())\n && equals(cache.deps, deps)\n ) {\n return cache.result\n }\n\n throw new Error('Cache not found')\n }\n\n const remoteResultCache: {\n success: boolean\n deps: readonly unknown[]\n result: ReturnType<T> | null\n } = {\n success: false,\n deps: [],\n result: null,\n }\n\n const clearMemoryCache = () => {\n remoteResultCache.success = false\n remoteResultCache.result = null\n remoteResultCache.deps = []\n }\n\n const queryWithMemoryCache = (args: Parameters<T>, deps: readonly unknown[]) => {\n if (!remoteMemoryCache) {\n return {\n type: 'remote' as const,\n promiseResult: fnRunner(\n () => fn(...args),\n retry,\n ),\n }\n }\n\n if (\n remoteResultCache.success\n && equals(remoteResultCache.deps, deps)\n ) {\n return {\n type: 'memory' as const,\n promiseResult: remoteResultCache.result!,\n }\n }\n\n remoteResultCache.deps = deps\n remoteResultCache.success = true\n const result = (remoteResultCache.result = fnRunner(\n () => fn(...args),\n retry,\n ) as ReturnType<T>)\n\n Promise.resolve(result)\n .catch(clearMemoryCache)\n\n return { type: 'remote' as const, promiseResult: result }\n }\n\n const queryRemote = async (args: Parameters<T>, queryOption: QueryOption) => {\n const rs = {\n type: 'remote' as const,\n result: null as unknown as Awaited<ReturnType<T>>,\n }\n const { runCount, deps } = queryOption\n try {\n const { type, promiseResult } = queryWithMemoryCache(args, deps)\n const result = (rs.result = await promiseResult)\n\n // 设置缓存\n runCount === fnRunCount\n && type === 'remote'\n && (!cacheEnabled || (await cacheEnabled(deps)))\n && Promise.resolve().then(async () => {\n const oldCache = await getLocalCache(args, queryOption).catch(() => null)\n\n const cacheData: CacheItem<T> = {\n deps: deps as any[],\n result,\n ...(version && { version }),\n ...(maxAge && { expires: Date.now() + maxAge }),\n }\n db.setItem(key, cacheData)\n\n // 如果配置了比较,且旧缓存存在且与新结果相等,则不触发 onCacheUpdate\n if (\n compareBeforeUpdate\n && oldCache\n && compareBeforeUpdate(oldCache, result)\n ) {\n return\n }\n cacheUpdateSubject.next({\n result,\n cacheData,\n isCacheHit: !!oldCache,\n })\n })\n }\n catch (error) {\n if (errorHandler) {\n rs.result = (await errorHandler(error)) as Awaited<ReturnType<T>>\n }\n else {\n throw error\n }\n }\n\n return rs.result\n }\n\n const _fn = async (...args: Parameters<T>) => {\n await beforeRequest?.()\n\n const runCount = ++fnRunCount\n\n currentDeps = args.concat(resolveDeps())\n\n const queryOption: QueryOption = { runCount, deps: currentDeps }\n const isCacheDisabled = cacheEnabled && !(await cacheEnabled(currentDeps))\n\n const [cacheResult, remoteResult] = [\n isCacheDisabled\n ? null\n : queryFnEnhancer(getLocalCache, { type: 'local' as const, onSuccess })(args, queryOption),\n queryFnEnhancer(queryRemote, { type: 'remote' as const, onSuccess, onError })(args, queryOption),\n ]\n\n const result = cacheResult\n ? await Promise.race([\n cacheResult.catch(() => remoteResult),\n remoteResult,\n ])\n : remoteResult\n\n return result\n }\n\n _fn.refresh = async (...args: Parameters<T>) => {\n await beforeRequest?.()\n\n const runCount = ++fnRunCount\n currentDeps = args.concat(resolveDeps())\n\n const queryOption: QueryOption = { runCount, deps: currentDeps }\n return queryFnEnhancer(\n queryRemote,\n { type: 'remote' as const, onSuccess, onError },\n )(args, queryOption)\n }\n\n _fn.getCache = () => db.getItem<CacheItem<T>>(key)\n\n _fn.updateCache = async (\n value: CacheItem<T> | ((prev: CacheItem<T> | null) => CacheItem<T>),\n ) => {\n if (typeof value === 'function') {\n const prevCache = await _fn.getCache().catch(() => null)\n const newCache = value(prevCache)\n await db.setItem(key, newCache)\n }\n else {\n await db.setItem(key, value)\n }\n }\n\n _fn.subscribeCacheUpdate = (fn: (data: CacheUpdateEvent<T>) => void) =>\n cacheUpdateSubject.subscribe(fn)\n\n _fn.clearCache = async () => {\n clearMemoryCache()\n await db.removeItem(key)\n }\n\n return _fn\n}\n\n/**\n * 使用自定义数据库实例\n * @param newDb 数据库实例或 storeName,如果为字符串,则使用 localforage 创建一个实例\n */\ncreateQueryWithCache.useDb = <T extends string>(\n newDb: DBType | (T extends 'main-store' ? never : T),\n) => {\n if (typeof newDb === 'string') {\n db = localforage.createInstance({\n name: DB_NAME,\n storeName: newDb,\n })\n }\n else {\n db = newDb\n }\n}\n\nexport { createQueryWithCache }\nexport type { CacheItem, CacheOptions, CacheUpdateEvent }\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(new Map); //=> \"Map\"\n * R.type(new Set); //=> \"Set\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","export async function fnRunner<T extends (...args: any[]) => Promise<any>>(\n fn: T,\n retryTimes: number = 0,\n): Promise<Awaited<ReturnType<T>>> {\n const times = (retryTimes || 0) + 1\n for (let i = 0; i < times; i++) {\n try {\n return await fn()\n }\n catch (error) {\n // Only throw if this was the last attempt\n if (i === times - 1) {\n throw error\n }\n }\n }\n // This line should never be reached, but it's required for type safety.\n throw new Error('fnRunner: Unexpected error - all retries exhausted.')\n}\n"]}
|