rc-localforage
Version:
rc-localforage 是 localForage 在 React 的封装包,它提供了一种更符合 React 的使用风格(functional component style),同时保持了 localForage 的大部分功能
8 lines (7 loc) • 33.2 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ReactLocalForage={},e.React)}(this,(function(e,n){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function o(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var i={exports:{}};
/*!
localForage -- Offline Storage, Improved
Version 1.10.0
https://localforage.github.io/localForage
(c) 2013-2017 Mozilla, Apache License 2.0
*/!function(e,n){e.exports=function e(n,t,r){function i(c,u){if(!t[c]){if(!n[c]){if(!u&&o)return o(c);if(a)return a(c,!0);var f=new Error("Cannot find module '"+c+"'");throw f.code="MODULE_NOT_FOUND",f}var s=t[c]={exports:{}};n[c][0].call(s.exports,(function(e){var t=n[c][1][e];return i(t||e)}),s,s.exports,e,n,t,r)}return t[c].exports}for(var a=o,c=0;c<r.length;c++)i(r[c]);return i}({1:[function(e,n,r){(function(e){var t,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var i=0,a=new o(s),c=e.document.createTextNode("");a.observe(c,{characterData:!0}),t=function(){c.data=i=++i%2}}else if(e.setImmediate||void 0===e.MessageChannel)t="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var n=e.document.createElement("script");n.onreadystatechange=function(){s(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},e.document.documentElement.appendChild(n)}:function(){setTimeout(s,0)};else{var u=new e.MessageChannel;u.port1.onmessage=s,t=function(){u.port2.postMessage(0)}}var f=[];function s(){var e,n;r=!0;for(var t=f.length;t;){for(n=f,f=[],e=-1;++e<t;)n[e]();t=f.length}r=!1}function l(e){1!==f.push(e)||r||t()}n.exports=l}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,n,t){var r=e(1);function o(){}var i={},a=["REJECTED"],c=["FULFILLED"],u=["PENDING"];function f(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=u,this.queue=[],this.outcome=void 0,e!==o&&v(this,e)}function s(e,n,t){this.promise=e,"function"==typeof n&&(this.onFulfilled=n,this.callFulfilled=this.otherCallFulfilled),"function"==typeof t&&(this.onRejected=t,this.callRejected=this.otherCallRejected)}function l(e,n,t){r((function(){var r;try{r=n(t)}catch(n){return i.reject(e,n)}r===e?i.reject(e,new TypeError("Cannot resolve promise with itself")):i.resolve(e,r)}))}function d(e){var n=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof n)return function(){n.apply(e,arguments)}}function v(e,n){var t=!1;function r(n){t||(t=!0,i.reject(e,n))}function o(n){t||(t=!0,i.resolve(e,n))}function a(){n(o,r)}var c=h(a);"error"===c.status&&r(c.value)}function h(e,n){var t={};try{t.value=e(n),t.status="success"}catch(e){t.status="error",t.value=e}return t}function y(e){return e instanceof this?e:i.resolve(new this(o),e)}function p(e){var n=new this(o);return i.reject(n,e)}function b(e){var n=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var a=new Array(t),c=0,u=-1,f=new this(o);++u<t;)s(e[u],u);return f;function s(e,o){function u(e){a[o]=e,++c!==t||r||(r=!0,i.resolve(f,a))}n.resolve(e).then(u,(function(e){r||(r=!0,i.reject(f,e))}))}}function g(e){var n=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var a=-1,c=new this(o);++a<t;)u(e[a]);return c;function u(e){n.resolve(e).then((function(e){r||(r=!0,i.resolve(c,e))}),(function(e){r||(r=!0,i.reject(c,e))}))}}n.exports=f,f.prototype.catch=function(e){return this.then(null,e)},f.prototype.then=function(e,n){if("function"!=typeof e&&this.state===c||"function"!=typeof n&&this.state===a)return this;var t=new this.constructor(o);return this.state!==u?l(t,this.state===c?e:n,this.outcome):this.queue.push(new s(t,e,n)),t},s.prototype.callFulfilled=function(e){i.resolve(this.promise,e)},s.prototype.otherCallFulfilled=function(e){l(this.promise,this.onFulfilled,e)},s.prototype.callRejected=function(e){i.reject(this.promise,e)},s.prototype.otherCallRejected=function(e){l(this.promise,this.onRejected,e)},i.resolve=function(e,n){var t=h(d,n);if("error"===t.status)return i.reject(e,t.value);var r=t.value;if(r)v(e,r);else{e.state=c,e.outcome=n;for(var o=-1,a=e.queue.length;++o<a;)e.queue[o].callFulfilled(n)}return e},i.reject=function(e,n){e.state=a,e.outcome=n;for(var t=-1,r=e.queue.length;++t<r;)e.queue[t].callRejected(n);return e},f.resolve=y,f.reject=p,f.all=b,f.race=g},{1:1}],3:[function(e,n,r){(function(n){"function"!=typeof n.Promise&&(n.Promise=e(2))}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,n,t){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function i(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}var a=i();function c(){try{if(!a||!a.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),n="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||n)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function u(e,n){e=e||[],n=n||{};try{return new Blob(e,n)}catch(o){if("TypeError"!==o.name)throw o;for(var t=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r<e.length;r+=1)t.append(e[r]);return t.getBlob(n.type)}}"undefined"==typeof Promise&&e(3);var f=Promise;function s(e,n){n&&e.then((function(e){n(null,e)}),(function(e){n(e)}))}function l(e,n,t){"function"==typeof n&&e.then(n),"function"==typeof t&&e.catch(t)}function d(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function v(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var h="local-forage-detect-blob-support",y=void 0,p={},b=Object.prototype.toString,g="readonly",m="readwrite";function _(e){for(var n=e.length,t=new ArrayBuffer(n),r=new Uint8Array(t),o=0;o<n;o++)r[o]=e.charCodeAt(o);return t}function w(e){return new f((function(n){var t=e.transaction(h,m),r=u([""]);t.objectStore(h).put(r,"key"),t.onabort=function(e){e.preventDefault(),e.stopPropagation(),n(!1)},t.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),t=navigator.userAgent.match(/Edge\//);n(t||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}function I(e){return"boolean"==typeof y?f.resolve(y):w(e).then((function(e){return y=e}))}function S(e){var n=p[e.name],t={};t.promise=new f((function(e,n){t.resolve=e,t.reject=n})),n.deferredOperations.push(t),n.dbReady?n.dbReady=n.dbReady.then((function(){return t.promise})):n.dbReady=t.promise}function E(e){var n=p[e.name].deferredOperations.pop();if(n)return n.resolve(),n.promise}function N(e,n){var t=p[e.name].deferredOperations.pop();if(t)return t.reject(n),t.promise}function j(e,n){return new f((function(t,r){if(p[e.name]=p[e.name]||L(),e.db){if(!n)return t(e.db);S(e),e.db.close()}var o=[e.name];n&&o.push(e.version);var i=a.open.apply(a,o);n&&(i.onupgradeneeded=function(n){var t=i.result;try{t.createObjectStore(e.storeName),n.oldVersion<=1&&t.createObjectStore(h)}catch(t){if("ConstraintError"!==t.name)throw t;console.warn('The database "'+e.name+'" has been upgraded from version '+n.oldVersion+" to version "+n.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),r(i.error)},i.onsuccess=function(){var n=i.result;n.onversionchange=function(e){e.target.close()},t(n),E(e)}}))}function O(e){return j(e,!1)}function R(e){return j(e,!0)}function D(e,n){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,o=e.version>e.db.version;if(r&&(e.version!==n&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||t){if(t){var i=e.db.version+1;i>e.version&&(e.version=i)}return!0}return!1}function C(e){return new f((function(n,t){var r=new FileReader;r.onerror=t,r.onloadend=function(t){var r=btoa(t.target.result||"");n({__local_forage_encoded_blob:!0,data:r,type:e.type})},r.readAsBinaryString(e)}))}function A(e){return u([_(atob(e.data))],{type:e.type})}function x(e){return e&&e.__local_forage_encoded_blob}function B(e){var n=this,t=n._initReady().then((function(){var e=p[n._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(t,e,e),t}function T(e){S(e);for(var n=p[e.name],t=n.forages,r=0;r<t.length;r++){var o=t[r];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,O(e).then((function(n){return e.db=n,D(e)?R(e):n})).then((function(r){e.db=n.db=r;for(var o=0;o<t.length;o++)t[o]._dbInfo.db=r})).catch((function(n){throw N(e,n),n}))}function k(e,n,t,r){void 0===r&&(r=1);try{var o=e.db.transaction(e.storeName,n);t(null,o)}catch(o){if(r>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return f.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),R(e)})).then((function(){return T(e).then((function(){k(e,n,t,r-1)}))})).catch(t);t(o)}}function L(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function F(e){var n=this,t={db:null};if(e)for(var r in e)t[r]=e[r];var o=p[t.name];o||(o=L(),p[t.name]=o),o.forages.push(n),n._initReady||(n._initReady=n.ready,n.ready=B);var i=[];function a(){return f.resolve()}for(var c=0;c<o.forages.length;c++){var u=o.forages[c];u!==n&&i.push(u._initReady().catch(a))}var s=o.forages.slice(0);return f.all(i).then((function(){return t.db=o.db,O(t)})).then((function(e){return t.db=e,D(t,n._defaultConfig.version)?R(t):e})).then((function(e){t.db=o.db=e,n._dbInfo=t;for(var r=0;r<s.length;r++){var i=s[r];i!==n&&(i._dbInfo.db=t.db,i._dbInfo.version=t.version)}}))}function M(e,n){var t=this;e=d(e);var r=new f((function(n,r){t.ready().then((function(){k(t._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName).get(e);a.onsuccess=function(){var e=a.result;void 0===e&&(e=null),x(e)&&(e=A(e)),n(e)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,n),r}function P(e,n){var t=this,r=new f((function(n,r){t.ready().then((function(){k(t._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName).openCursor(),c=1;a.onsuccess=function(){var t=a.result;if(t){var r=t.value;x(r)&&(r=A(r));var o=e(r,t.key,c++);void 0!==o?n(o):t.continue()}else n()},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,n),r}function z(e,n,t){var r=this;e=d(e);var o=new f((function(t,o){var i;r.ready().then((function(){return i=r._dbInfo,"[object Blob]"===b.call(n)?I(i.db).then((function(e){return e?n:C(n)})):n})).then((function(n){k(r._dbInfo,m,(function(i,a){if(i)return o(i);try{var c=a.objectStore(r._dbInfo.storeName);null===n&&(n=void 0);var u=c.put(n,e);a.oncomplete=function(){void 0===n&&(n=null),t(n)},a.onabort=a.onerror=function(){var e=u.error?u.error:u.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,t),o}function q(e,n){var t=this;e=d(e);var r=new f((function(n,r){t.ready().then((function(){k(t._dbInfo,m,(function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName).delete(e);i.oncomplete=function(){n()},i.onerror=function(){r(a.error)},i.onabort=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,n),r}function U(e){var n=this,t=new f((function(e,t){n.ready().then((function(){k(n._dbInfo,m,(function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=i.error?i.error:i.transaction.error;t(e)}}catch(e){t(e)}}))})).catch(t)}));return s(t,e),t}function W(e){var n=this,t=new f((function(e,t){n.ready().then((function(){k(n._dbInfo,g,(function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName).count();i.onsuccess=function(){e(i.result)},i.onerror=function(){t(i.error)}}catch(e){t(e)}}))})).catch(t)}));return s(t,e),t}function H(e,n){var t=this,r=new f((function(n,r){e<0?n(null):t.ready().then((function(){k(t._dbInfo,g,(function(o,i){if(o)return r(o);try{var a=i.objectStore(t._dbInfo.storeName),c=!1,u=a.openKeyCursor();u.onsuccess=function(){var t=u.result;t?0===e||c?n(t.key):(c=!0,t.advance(e)):n(null)},u.onerror=function(){r(u.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,n),r}function J(e){var n=this,t=new f((function(e,t){n.ready().then((function(){k(n._dbInfo,g,(function(r,o){if(r)return t(r);try{var i=o.objectStore(n._dbInfo.storeName).openKeyCursor(),a=[];i.onsuccess=function(){var n=i.result;n?(a.push(n.key),n.continue()):e(a)},i.onerror=function(){t(i.error)}}catch(e){t(e)}}))})).catch(t)}));return s(t,e),t}function V(e,n){n=v.apply(this,arguments);var t=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||t.name,e.storeName=e.storeName||t.storeName);var r,o=this;if(e.name){var i=e.name===t.name&&o._dbInfo.db?f.resolve(o._dbInfo.db):O(e).then((function(n){var t=p[e.name],r=t.forages;t.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n;return n}));r=e.storeName?i.then((function(n){if(n.objectStoreNames.contains(e.storeName)){var t=n.version+1;S(e);var r=p[e.name],o=r.forages;n.close();for(var i=0;i<o.length;i++){var c=o[i];c._dbInfo.db=null,c._dbInfo.version=t}var u=new f((function(n,r){var o=a.open(e.name,t);o.onerror=function(e){o.result.close(),r(e)},o.onupgradeneeded=function(){o.result.deleteObjectStore(e.storeName)},o.onsuccess=function(){var e=o.result;e.close(),n(e)}}));return u.then((function(e){r.db=e;for(var n=0;n<o.length;n++){var t=o[n];t._dbInfo.db=e,E(t._dbInfo)}})).catch((function(n){throw(N(e,n)||f.resolve()).catch((function(){})),n}))}})):i.then((function(n){S(e);var t=p[e.name],r=t.forages;n.close();for(var o=0;o<r.length;o++)r[o]._dbInfo.db=null;var i=new f((function(n,t){var r=a.deleteDatabase(e.name);r.onerror=function(){var e=r.result;e&&e.close(),t(r.error)},r.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},r.onsuccess=function(){var e=r.result;e&&e.close(),n(e)}}));return i.then((function(e){t.db=e;for(var n=0;n<r.length;n++)E(r[n]._dbInfo)})).catch((function(n){throw(N(e,n)||f.resolve()).catch((function(){})),n}))}))}else r=f.reject("Invalid arguments");return s(r,n),r}var G={_driver:"asyncStorage",_initStorage:F,_support:c(),iterate:P,getItem:M,setItem:z,removeItem:q,clear:U,length:W,key:H,keys:J,dropInstance:V};function Q(){return"function"==typeof openDatabase}var K="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",X="~~local_forage_type~",Y=/^~~local_forage_type~([^~]+)~/,Z="__lfsc__:",$=Z.length,ee="arbf",ne="blob",te="si08",re="ui08",oe="uic8",ie="si16",ae="si32",ce="ur16",ue="ui32",fe="fl32",se="fl64",le=$+ee.length,de=Object.prototype.toString;function ve(e){var n,t,r,o,i,a=.75*e.length,c=e.length,u=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var f=new ArrayBuffer(a),s=new Uint8Array(f);for(n=0;n<c;n+=4)t=K.indexOf(e[n]),r=K.indexOf(e[n+1]),o=K.indexOf(e[n+2]),i=K.indexOf(e[n+3]),s[u++]=t<<2|r>>4,s[u++]=(15&r)<<4|o>>2,s[u++]=(3&o)<<6|63&i;return f}function he(e){var n,t=new Uint8Array(e),r="";for(n=0;n<t.length;n+=3)r+=K[t[n]>>2],r+=K[(3&t[n])<<4|t[n+1]>>4],r+=K[(15&t[n+1])<<2|t[n+2]>>6],r+=K[63&t[n+2]];return t.length%3==2?r=r.substring(0,r.length-1)+"=":t.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function ye(e,n){var t="";if(e&&(t=de.call(e)),e&&("[object ArrayBuffer]"===t||e.buffer&&"[object ArrayBuffer]"===de.call(e.buffer))){var r,o=Z;e instanceof ArrayBuffer?(r=e,o+=ee):(r=e.buffer,"[object Int8Array]"===t?o+=te:"[object Uint8Array]"===t?o+=re:"[object Uint8ClampedArray]"===t?o+=oe:"[object Int16Array]"===t?o+=ie:"[object Uint16Array]"===t?o+=ce:"[object Int32Array]"===t?o+=ae:"[object Uint32Array]"===t?o+=ue:"[object Float32Array]"===t?o+=fe:"[object Float64Array]"===t?o+=se:n(new Error("Failed to get type for BinaryArray"))),n(o+he(r))}else if("[object Blob]"===t){var i=new FileReader;i.onload=function(){var t=X+e.type+"~"+he(this.result);n(Z+ne+t)},i.readAsArrayBuffer(e)}else try{n(JSON.stringify(e))}catch(t){console.error("Couldn't convert value into a JSON string: ",e),n(null,t)}}function pe(e){if(e.substring(0,$)!==Z)return JSON.parse(e);var n,t=e.substring(le),r=e.substring($,le);if(r===ne&&Y.test(t)){var o=t.match(Y);n=o[1],t=t.substring(o[0].length)}var i=ve(t);switch(r){case ee:return i;case ne:return u([i],{type:n});case te:return new Int8Array(i);case re:return new Uint8Array(i);case oe:return new Uint8ClampedArray(i);case ie:return new Int16Array(i);case ce:return new Uint16Array(i);case ae:return new Int32Array(i);case ue:return new Uint32Array(i);case fe:return new Float32Array(i);case se:return new Float64Array(i);default:throw new Error("Unkown type: "+r)}}var be={serialize:ye,deserialize:pe,stringToBuffer:ve,bufferToString:he};function ge(e,n,t,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+n.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],t,r)}function me(e){var n=this,t={db:null};if(e)for(var r in e)t[r]="string"!=typeof e[r]?e[r].toString():e[r];var o=new f((function(e,r){try{t.db=openDatabase(t.name,String(t.version),t.description,t.size)}catch(e){return r(e)}t.db.transaction((function(o){ge(o,t,(function(){n._dbInfo=t,e()}),(function(e,n){r(n)}))}),r)}));return t.serializer=be,o}function _e(e,n,t,r,o,i){e.executeSql(t,r,o,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[n.storeName],(function(e,c){c.rows.length?i(e,a):ge(e,n,(function(){e.executeSql(t,r,o,i)}),i)}),i):i(e,a)}),i)}function we(e,n){var t=this;e=d(e);var r=new f((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){_e(t,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,t){var r=t.rows.length?t.rows.item(0).value:null;r&&(r=o.serializer.deserialize(r)),n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return s(r,n),r}function Ie(e,n){var t=this,r=new f((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){_e(t,o,"SELECT * FROM "+o.storeName,[],(function(t,r){for(var i=r.rows,a=i.length,c=0;c<a;c++){var u=i.item(c),f=u.value;if(f&&(f=o.serializer.deserialize(f)),void 0!==(f=e(f,u.key,c+1)))return void n(f)}n()}),(function(e,n){r(n)}))}))})).catch(r)}));return s(r,n),r}function Se(e,n,t,r){var o=this;e=d(e);var i=new f((function(i,a){o.ready().then((function(){void 0===n&&(n=null);var c=n,u=o._dbInfo;u.serializer.serialize(n,(function(n,f){f?a(f):u.db.transaction((function(t){_e(t,u,"INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",[e,n],(function(){i(c)}),(function(e,n){a(n)}))}),(function(n){if(n.code===n.QUOTA_ERR){if(r>0)return void i(Se.apply(o,[e,c,t,r-1]));a(n)}}))}))})).catch(a)}));return s(i,t),i}function Ee(e,n,t){return Se.apply(this,[e,n,t,1])}function Ne(e,n){var t=this;e=d(e);var r=new f((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){_e(t,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){n()}),(function(e,n){r(n)}))}))})).catch(r)}));return s(r,n),r}function je(e){var n=this,t=new f((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){_e(n,r,"DELETE FROM "+r.storeName,[],(function(){e()}),(function(e,n){t(n)}))}))})).catch(t)}));return s(t,e),t}function Oe(e){var n=this,t=new f((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){_e(n,r,"SELECT COUNT(key) as c FROM "+r.storeName,[],(function(n,t){var r=t.rows.item(0).c;e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return s(t,e),t}function Re(e,n){var t=this,r=new f((function(n,r){t.ready().then((function(){var o=t._dbInfo;o.db.transaction((function(t){_e(t,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,t){var r=t.rows.length?t.rows.item(0).key:null;n(r)}),(function(e,n){r(n)}))}))})).catch(r)}));return s(r,n),r}function De(e){var n=this,t=new f((function(e,t){n.ready().then((function(){var r=n._dbInfo;r.db.transaction((function(n){_e(n,r,"SELECT key FROM "+r.storeName,[],(function(n,t){for(var r=[],o=0;o<t.rows.length;o++)r.push(t.rows.item(o).key);e(r)}),(function(e,n){t(n)}))}))})).catch(t)}));return s(t,e),t}function Ce(e){return new f((function(n,t){e.transaction((function(r){r.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(t,r){for(var o=[],i=0;i<r.rows.length;i++)o.push(r.rows.item(i).name);n({db:e,storeNames:o})}),(function(e,n){t(n)}))}),(function(e){t(e)}))}))}function Ae(e,n){n=v.apply(this,arguments);var t=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||t.name,e.storeName=e.storeName||t.storeName);var r,o=this;return s(r=e.name?new f((function(n){var r;r=e.name===t.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?n({db:r,storeNames:[e.storeName]}):n(Ce(r))})).then((function(e){return new f((function(n,t){e.db.transaction((function(r){function o(e){return new f((function(n,t){r.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){n()}),(function(e,n){t(n)}))}))}for(var i=[],a=0,c=e.storeNames.length;a<c;a++)i.push(o(e.storeNames[a]));f.all(i).then((function(){n()})).catch((function(e){t(e)}))}),(function(e){t(e)}))}))})):f.reject("Invalid arguments"),n),r}var xe={_driver:"webSQLStorage",_initStorage:me,_support:Q(),iterate:Ie,getItem:we,setItem:Ee,removeItem:Ne,clear:je,length:Oe,key:Re,keys:De,dropInstance:Ae};function Be(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function Te(e,n){var t=e.name+"/";return e.storeName!==n.storeName&&(t+=e.storeName+"/"),t}function ke(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function Le(){return!ke()||localStorage.length>0}function Fe(e){var n=this,t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=Te(e,n._defaultConfig),Le()?(n._dbInfo=t,t.serializer=be,f.resolve()):f.reject()}function Me(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo.keyPrefix,t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}}));return s(t,e),t}function Pe(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo,r=localStorage.getItem(n.keyPrefix+e);return r&&(r=n.serializer.deserialize(r)),r}));return s(r,n),r}function ze(e,n){var t=this,r=t.ready().then((function(){for(var n=t._dbInfo,r=n.keyPrefix,o=r.length,i=localStorage.length,a=1,c=0;c<i;c++){var u=localStorage.key(c);if(0===u.indexOf(r)){var f=localStorage.getItem(u);if(f&&(f=n.serializer.deserialize(f)),void 0!==(f=e(f,u.substring(o),a++)))return f}}}));return s(r,n),r}function qe(e,n){var t=this,r=t.ready().then((function(){var n,r=t._dbInfo;try{n=localStorage.key(e)}catch(e){n=null}return n&&(n=n.substring(r.keyPrefix.length)),n}));return s(r,n),r}function Ue(e){var n=this,t=n.ready().then((function(){for(var e=n._dbInfo,t=localStorage.length,r=[],o=0;o<t;o++){var i=localStorage.key(o);0===i.indexOf(e.keyPrefix)&&r.push(i.substring(e.keyPrefix.length))}return r}));return s(t,e),t}function We(e){var n=this.keys().then((function(e){return e.length}));return s(n,e),n}function He(e,n){var t=this;e=d(e);var r=t.ready().then((function(){var n=t._dbInfo;localStorage.removeItem(n.keyPrefix+e)}));return s(r,n),r}function Je(e,n,t){var r=this;e=d(e);var o=r.ready().then((function(){void 0===n&&(n=null);var t=n;return new f((function(o,i){var a=r._dbInfo;a.serializer.serialize(n,(function(n,r){if(r)i(r);else try{localStorage.setItem(a.keyPrefix+e,n),o(t)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||i(e),i(e)}}))}))}));return s(o,t),o}function Ve(e,n){if(n=v.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var t=this.config();e.name=e.name||t.name,e.storeName=e.storeName||t.storeName}var r,o=this;return r=e.name?new f((function(n){e.storeName?n(Te(e,o._defaultConfig)):n(e.name+"/")})).then((function(e){for(var n=localStorage.length-1;n>=0;n--){var t=localStorage.key(n);0===t.indexOf(e)&&localStorage.removeItem(t)}})):f.reject("Invalid arguments"),s(r,n),r}var Ge={_driver:"localStorageWrapper",_initStorage:Fe,_support:Be(),iterate:ze,getItem:Pe,setItem:Je,removeItem:He,clear:Me,length:We,key:qe,keys:Ue,dropInstance:Ve},Qe=function(e,n){return e===n||"number"==typeof e&&"number"==typeof n&&isNaN(e)&&isNaN(n)},Ke=function(e,n){for(var t=e.length,r=0;r<t;){if(Qe(e[r],n))return!0;r++}return!1},Xe=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ye={},Ze={},$e={INDEXEDDB:G,WEBSQL:xe,LOCALSTORAGE:Ge},en=[$e.INDEXEDDB._driver,$e.WEBSQL._driver,$e.LOCALSTORAGE._driver],nn=["dropInstance"],tn=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(nn),rn={description:"",driver:en.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function on(e,n){e[n]=function(){var t=arguments;return e.ready().then((function(){return e[n].apply(e,t)}))}}function an(){for(var e=1;e<arguments.length;e++){var n=arguments[e];if(n)for(var t in n)n.hasOwnProperty(t)&&(Xe(n[t])?arguments[0][t]=n[t].slice():arguments[0][t]=n[t])}return arguments[0]}var cn=function(){function e(n){for(var t in o(this,e),$e)if($e.hasOwnProperty(t)){var r=$e[t],i=r._driver;this[t]=i,Ye[i]||this.defineDriver(r)}this._defaultConfig=an({},rn),this._config=an({},this._defaultConfig,n),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":r(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var n in e){if("storeName"===n&&(e[n]=e[n].replace(/\W/g,"_")),"version"===n&&"number"!=typeof e[n])return new Error("Database version must be a number.");this._config[n]=e[n]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,n,t){var r=new f((function(n,t){try{var r=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void t(o);for(var i=tn.concat("_initStorage"),a=0,c=i.length;a<c;a++){var u=i[a];if((!Ke(nn,u)||e[u])&&"function"!=typeof e[u])return void t(o)}var l=function(){for(var n=function(e){return function(){var n=new Error("Method "+e+" is not implemented by the current driver"),t=f.reject(n);return s(t,arguments[arguments.length-1]),t}},t=0,r=nn.length;t<r;t++){var o=nn[t];e[o]||(e[o]=n(o))}};l();var d=function(t){Ye[r]&&console.info("Redefining LocalForage driver: "+r),Ye[r]=e,Ze[r]=t,n()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(d,t):d(!!e._support):d(!0)}catch(e){t(e)}}));return l(r,n,t),r},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,n,t){var r=Ye[e]?f.resolve(Ye[e]):f.reject(new Error("Driver not found."));return l(r,n,t),r},e.prototype.getSerializer=function(e){var n=f.resolve(be);return l(n,e),n},e.prototype.ready=function(e){var n=this,t=n._driverSet.then((function(){return null===n._ready&&(n._ready=n._initDriver()),n._ready}));return l(t,e,e),t},e.prototype.setDriver=function(e,n,t){var r=this;Xe(e)||(e=[e]);var o=this._getSupportedDrivers(e);function i(){r._config.driver=r.driver()}function a(e){return r._extend(e),i(),r._ready=r._initStorage(r._config),r._ready}function c(e){return function(){var n=0;function t(){for(;n<e.length;){var o=e[n];return n++,r._dbInfo=null,r._ready=null,r.getDriver(o).then(a).catch(t)}i();var c=new Error("No available storage method found.");return r._driverSet=f.reject(c),r._driverSet}return t()}}var u=null!==this._driverSet?this._driverSet.catch((function(){return f.resolve()})):f.resolve();return this._driverSet=u.then((function(){var e=o[0];return r._dbInfo=null,r._ready=null,r.getDriver(e).then((function(e){r._driver=e._driver,i(),r._wrapLibraryMethodsWithReady(),r._initDriver=c(o)}))})).catch((function(){i();var e=new Error("No available storage method found.");return r._driverSet=f.reject(e),r._driverSet})),l(this._driverSet,n,t),this._driverSet},e.prototype.supports=function(e){return!!Ze[e]},e.prototype._extend=function(e){an(this,e)},e.prototype._getSupportedDrivers=function(e){for(var n=[],t=0,r=e.length;t<r;t++){var o=e[t];this.supports(o)&&n.push(o)}return n},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,n=tn.length;e<n;e++)on(this,tn[e])},e.prototype.createInstance=function(n){return new e(n)},e}(),un=new cn;n.exports=un},{3:3}]},{},[4])(4)}(i);var a=r(i.exports),c=n.createContext({config:{},initialValues:{}}),u=function(){function e(){this._cache=new Map,this.events={}}return e.getInstance=function(){return e.instance||(e.instance=new e),e.instance},e.prototype.addCache=function(e,n){this._cache.set(e,n),this.triggerEvent("change")},e.prototype.getCache=function(e){return this._cache.get(e)},e.prototype.hasCache=function(e){return this._cache.has(e)},e.prototype.removeCache=function(e){this._cache.delete(e),this.triggerEvent("change")},e.prototype.refleshCache=function(){this.triggerEvent("change")},e.prototype.addEventListener=function(e,n){"object"!=typeof this.events[e]&&(this.events[e]=[]),this.events[e].push(n)},e.prototype.removeEventListener=function(e,n){if("object"==typeof this.events[e]){var t=this.events[e].indexOf(n);t>-1&&this.events[e].splice(t,1)}},e.prototype.triggerEvent=function(e){var n=this;"object"==typeof this.events[e]&&this.events[e].forEach((function(e){try{e.call(n)}catch(e){console.error(e)}}))},e}().getInstance(),f="undefined"!=typeof window;function s(e,n){var t=JSON.stringify(e);u.hasCache(t)||u.addCache(t,a.createInstance(e));var r=JSON.stringify(n);return r&&u.hasCache(r)?u.getCache(r):u.getCache(t)}function l(e,n){if(void 0===e&&(e={}),f){var t=JSON.stringify(e),r=u.getCache(t);return!r&&n&&(r=a),r}}var d={WEBSQL:a.WEBSQL,INDEXEDDB:a.INDEXEDDB,LOCALSTORAGE:a.LOCALSTORAGE};e.LocalForageProvider=function(e){var t=e.children,r=e.config,o=void 0===r?{}:r,i=e.initialValues,a=void 0===i?{}:i;return n.createElement(c.Provider,{value:{config:o,initialValues:a}},t)},e.driver=d,e.dropDataStore=function(e,n){void 0===e&&(e={}),void 0===n&&(n=!1);var t=l(e,n),r=JSON.stringify(e);null==t||t.dropInstance(),null==u||u.removeCache(r)},e.removeDataStoreItems=function(e,n){void 0===e&&(e={}),void 0===n&&(n=!1);var t=l(e,n);null==t||t.clear().then((function(){u.refleshCache()}))},e.useLocalForage=function(e,t){var r=null!=t?t:{},o=r.defaultValue,i=r.target;if(!f)return{value:o,set:function(){},remove:function(){},loading:!0};var a=n.useContext(c),l=a.config,d=a.initialValues,v=null==d?void 0:d[e],h=n.useState(null!=o?o:v),y=h[0],p=h[1],b=n.useState(!0),g=b[0],m=b[1],_=function(n){var r=s(l,i);r.setItem(e,n).then((function(){return r.getItem(e)})).then((function(e){p(e),m(!1)})).catch((function(e){m(!1),(null==t?void 0:t.errorSetHandler)?t.errorSetHandler(e):console.error(e)}))};return n.useEffect((function(){var n=s(l,i);m(!0),n.getItem(e).then((function(e){null!==e?(p(e),m(!1)):_(y)})).catch((function(e){m(!1),(null==t?void 0:t.errorGetHandler)?t.errorGetHandler(e):console.error(e)}))}),[]),n.useEffect((function(){var e=i?JSON.stringify(i):JSON.stringify(l),n=function(){var n;u.hasCache(e)?null===(n=u.getCache(e))||void 0===n||n.length().then((function(e){0===e&&p(void 0)})):p(void 0)};return u.addEventListener("change",n),function(){u.removeEventListener("change",n)}}),[]),{value:y,set:_,remove:function(){s(l,i).removeItem(e).then((function(){p(void 0)}))},loading:g}}}));