Socket
Socket
Sign inDemoInstall

localforage

Package Overview
Dependencies
Maintainers
1
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

localforage - npm Package Compare versions

Comparing version 0.8.0 to 0.8.1

Brocfile.js

2

bower.json
{
"name": "localforage",
"version": "0.8.0",
"version": "0.8.1",
"main": [

@@ -5,0 +5,0 @@ "dist/localforage.min.js"

{
"name": "localforage",
"version": "0.8.0",
"version": "0.8.1",

@@ -5,0 +5,0 @@ "dependencies": {

@@ -1,1 +0,1 @@

!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)k.push("exports"===i[l]?g={}:b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&e(g.then)?g.then(d(j),c):f(j,g)})}var d=a.isArray,e=a.isFunction;b.all=c}),a("promise/asap",["exports"],function(a){"use strict";function b(){return function(){process.nextTick(e)}}function c(){var a=0,b=new i(e),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function d(){return function(){j.setTimeout(e,1)}}function e(){for(var a=0;a<k.length;a++){var b=k[a],c=b[0],d=b[1];c(d)}k=[]}function f(a,b){var c=k.push([a,b]);1===c&&g()}var g,h="undefined"!=typeof window?window:{},i=h.MutationObserver||h.WebKitMutationObserver,j="undefined"!=typeof global?global:void 0===this?window:this,k=[];g="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?b():i?c():d(),a.asap=f}),a("promise/config",["exports"],function(a){"use strict";function b(a,b){return 2!==arguments.length?c[a]:void(c[a]=b)}var c={instrument:!1};a.config=c,a.configure=b}),a("promise/polyfill",["./promise","./utils","exports"],function(a,b,c){"use strict";function d(){var a;a="undefined"!=typeof global?global:"undefined"!=typeof window&&window.document?window:self;var b="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();b||(a.Promise=e)}var e=a.Promise,f=b.isFunction;c.polyfill=d}),a("promise/promise",["./config","./utils","./all","./race","./resolve","./reject","./asap","exports"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){if(!v(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof i))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],j(a,this)}function j(a,b){function c(a){o(b,a)}function d(a){q(b,a)}try{a(c,d)}catch(e){d(e)}}function k(a,b,c,d){var e,f,g,h,i=v(c);if(i)try{e=c(d),g=!0}catch(j){h=!0,f=j}else e=d,g=!0;n(b,e)||(i&&g?o(b,e):h?q(b,f):a===D?o(b,e):a===E&&q(b,e))}function l(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+D]=c,e[f+E]=d}function m(a,b){for(var c,d,e=a._subscribers,f=a._detail,g=0;g<e.length;g+=3)c=e[g],d=e[g+b],k(b,c,d,f);a._subscribers=null}function n(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(u(b)&&(d=b.then,v(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?o(a,d):p(a,d)))},function(b){return c?!0:(c=!0,void q(a,b))}),!0}catch(e){return c?!0:(q(a,e),!0)}return!1}function o(a,b){a===b?p(a,b):n(a,b)||p(a,b)}function p(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(r,a))}function q(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(s,a))}function r(a){m(a,a._state=D)}function s(a){m(a,a._state=E)}var t=a.config,u=(a.configure,b.objectOrFunction),v=b.isFunction,w=(b.now,c.all),x=d.race,y=e.resolve,z=f.reject,A=g.asap;t.async=A;var B=void 0,C=0,D=1,E=2;i.prototype={constructor:i,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;t.async(function(){k(c._state,d,e[c._state-1],c._detail)})}else l(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},i.all=w,i.race=x,i.resolve=y,i.reject=z,h.Promise=i}),a("promise/race",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var d=a.isArray;b.race=c}),a("promise/reject",["exports"],function(a){"use strict";function b(a){var b=this;return new b(function(b,c){c(a)})}a.reject=b}),a("promise/resolve",["exports"],function(a){"use strict";function b(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}a.resolve=b}),a("promise/utils",["exports"],function(a){"use strict";function b(a){return c(a)||"object"==typeof a&&null!==a}function c(a){return"function"==typeof a}function d(a){return"[object Array]"===Object.prototype.toString.call(a)}var e=Date.now||function(){return(new Date).getTime()};a.objectOrFunction=b,a.isFunction=c,a.isArray=d,a.now=e}),b("promise/polyfill").polyfill()}(),function(){"use strict";function a(a){if(a)for(var b in a)j[b]=a[b];return new h(function(a,b){var c=k.open(j.name,j.version);c.onerror=function(){b(c.error.name)},c.onupgradeneeded=function(){c.result.createObjectStore(j.storeName)},c.onsuccess=function(){i=c.result,a()}})}function b(a,b){var c=this;return new h(function(d,e){c.ready().then(function(){var c=i.transaction(j.storeName,"readonly").objectStore(j.storeName),f=c.get(a);f.onsuccess=function(){var a=f.result;void 0===a&&(a=null),b&&b(a),d(a)},f.onerror=function(){b&&b(null,f.error.name),e(f.error.name)}})})}function c(a,b,c){var d=this;return new h(function(e,f){d.ready().then(function(){var d=i.transaction(j.storeName,"readwrite").objectStore(j.storeName);void 0===b&&(b=null);var g=d.put(b,a);g.onsuccess=function(){c&&c(b),e(b)},g.onerror=function(){c&&c(null,g.error.name),f(g.error.name)}})})}function d(a,b){var c=this;return new h(function(d,e){c.ready().then(function(){var c=i.transaction(j.storeName,"readwrite").objectStore(j.storeName),f=c["delete"](a);f.onsuccess=function(){b&&b(),d()},f.onerror=function(){b&&b(f.error.name),e(f.error.name)},f.onabort=function(a){var c=a.target.error;"QuotaExceededError"===c.name&&(b&&b(c.name),e(c.name))}})})}function e(a){var b=this;return new h(function(c,d){b.ready().then(function(){var b=i.transaction(j.storeName,"readwrite").objectStore(j.storeName),e=b.clear();e.onsuccess=function(){a&&a(),c()},e.onerror=function(){a&&a(null,e.error.name),d(e.error.name)}})})}function f(a){var b=this;return new h(function(c,d){b.ready().then(function(){var b=i.transaction(j.storeName,"readonly").objectStore(j.storeName),e=b.count();e.onsuccess=function(){a&&a(e.result),c(e.result)},e.onerror=function(){a&&a(null,e.error.name),d(e.error.name)}})})}function g(a,b){var c=this;return new h(function(d,e){return 0>a?(b&&b(null),void d(null)):void c.ready().then(function(){var c=i.transaction(j.storeName,"readonly").objectStore(j.storeName),f=!1,g=c.openCursor();g.onsuccess=function(){var c=g.result;return c?void(0===a?(b&&b(c.key),d(c.key)):f?(b&&b(c.key),d(c.key)):(f=!0,c.advance(a))):(b&&b(null),void d(null))},g.onerror=function(){b&&b(null,g.error.name),e(g.error.name)}})})}var h="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,i=null,j={},k=k||this.indexedDB||this.webkitIndexedDB||this.mozIndexedDB||this.OIndexedDB||this.msIndexedDB;if(k){var l={_driver:"asyncStorage",_initStorage:a,getItem:b,setItem:c,removeItem:d,clear:e,length:f,key:g};"function"==typeof define&&define.amd?define("asyncStorage",function(){return l}):"undefined"!=typeof module&&module.exports?module.exports=l:this.asyncStorage=l}}.call(this),function(){"use strict";function a(a){if(a)for(var b in a)l[b]=a[b];return k=l.name+"/",m.resolve()}function b(a){var b=this;return new m(function(c){b.ready().then(function(){n.clear(),a&&a(),c()})})}function c(a,b){var c=this;return new m(function(d,e){c.ready().then(function(){try{var c=n.getItem(k+a);c&&(c=g(c)),b&&b(c,null),d(c)}catch(f){b&&b(null,f),e(f)}})})}function d(a,b){var c=this;return new m(function(d){c.ready().then(function(){var c=n.key(a);c&&(c=c.substring(k.length)),b&&b(c),d(c)})})}function e(a){var b=this;return new m(function(c){b.ready().then(function(){var b=n.length;a&&a(b),c(b)})})}function f(a,b){var c=this;return new m(function(d){c.ready().then(function(){n.removeItem(k+a),b&&b(),d()})})}function g(a){if(a.substring(0,q)!==p)return JSON.parse(a);for(var b=a.substring(C),c=a.substring(q,C),d=new ArrayBuffer(2*b.length),e=new Uint16Array(d),f=b.length-1;f>=0;f--)e[f]=b.charCodeAt(f);switch(c){case r:return d;case s:return new Blob([d]);case t:return new Int8Array(d);case u:return new Uint8Array(d);case v:return new Uint8ClampedArray(d);case w:return new Int16Array(d);case y:return new Uint16Array(d);case x:return new Int32Array(d);case z:return new Uint32Array(d);case A:return new Float32Array(d);case B:return new Float64Array(d);default:throw new Error("Unkown type: "+c)}}function h(a){var b="",c=new Uint16Array(a);try{b=String.fromCharCode.apply(null,c)}catch(d){for(var e=0;e<c.length;e++)b+=String.fromCharCode(c[e])}return b}function i(a,b){var c="";if(a&&(c=a.toString()),a&&("[object ArrayBuffer]"===a.toString()||a.buffer&&"[object ArrayBuffer]"===a.buffer.toString())){var d,e=p;a instanceof ArrayBuffer?(d=a,e+=r):(d=a.buffer,"[object Int8Array]"===c?e+=t:"[object Uint8Array]"===c?e+=u:"[object Uint8ClampedArray]"===c?e+=v:"[object Int16Array]"===c?e+=w:"[object Uint16Array]"===c?e+=y:"[object Int32Array]"===c?e+=x:"[object Uint32Array]"===c?e+=z:"[object Float32Array]"===c?e+=A:"[object Float64Array]"===c?e+=B:b(new Error("Failed to get type for BinaryArray"))),b(e+h(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var a=h(this.result);b(p+s+a)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(g){this.console&&this.console.error&&this.console.error("Couldn't convert value into a JSON string: ",a),b(null,g)}}function j(a,b,c){var d=this;return new m(function(e,f){d.ready().then(function(){void 0===b&&(b=null);var d=b;i(b,function(b,g){if(g)c&&c(null,g),f(g);else{try{n.setItem(k+a,b)}catch(h){("QuotaExceededError"===h.name||"NS_ERROR_DOM_QUOTA_REACHED"===h.name)&&(c&&c(null,h),f(h))}c&&c(d),e(d)}})})})}var k="",l={},m="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,n=null;try{n=this.localStorage}catch(o){return}var p="__lfsc__:",q=p.length,r="arbf",s="blob",t="si08",u="ui08",v="uic8",w="si16",x="si32",y="ur16",z="ui32",A="fl32",B="fl64",C=q+r.length,D={_driver:"localStorageWrapper",_initStorage:a,getItem:c,setItem:j,removeItem:f,clear:b,length:e,key:d};"function"==typeof define&&define.amd?define("localStorageWrapper",function(){return D}):"undefined"!=typeof module&&module.exports?module.exports=D:this.localStorageWrapper=D}.call(this),function(){"use strict";function a(a){var b=this;if(a)for(var c in o)o[c]="string"!=typeof a[c]?a[c].toString():a[c];return new l(function(a){try{n=m(o.name,o.version,o.description,o.size)}catch(c){return b.setDriver("localStorageWrapper").then(a)}n.transaction(function(b){b.executeSql("CREATE TABLE IF NOT EXISTS "+o.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],function(){a()},null)})})}function b(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[a],function(a,c){var e=c.rows.length?c.rows.item(0).value:null;e&&(e=i(e)),b&&b(e),d(e)},function(a,c){b&&b(null,c),e(c)})})})})}function c(a,b,c){var d=this;return new l(function(e,f){d.ready().then(function(){void 0===b&&(b=null);var d=b;j(b,function(b,g){g?f(g):n.transaction(function(g){g.executeSql("INSERT OR REPLACE INTO "+o.storeName+" (key, value) VALUES (?, ?)",[a,b],function(){c&&c(d),e(d)},function(a,b){c&&c(null,b),f(b)})},function(a){a.code===a.QUOTA_ERR&&(c&&c(null,a),f(a))})})})})}function d(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("DELETE FROM "+o.storeName+" WHERE key = ?",[a],function(){b&&b(),d()},function(a,c){b&&b(c),e(c)})})})})}function e(a){var b=this;return new l(function(c,d){b.ready().then(function(){n.transaction(function(b){b.executeSql("DELETE FROM "+o.storeName,[],function(){a&&a(),c()},function(b,c){a&&a(c),d(c)})})})})}function f(a){var b=this;return new l(function(c,d){b.ready().then(function(){n.transaction(function(b){b.executeSql("SELECT COUNT(key) as c FROM "+o.storeName,[],function(b,d){var e=d.rows.item(0).c;a&&a(e),c(e)},function(b,c){a&&a(null,c),d(c)})})})})}function g(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[a+1],function(a,c){var e=c.rows.length?c.rows.item(0).key:null;b&&b(e),d(e)},function(a,c){b&&b(null,c),e(c)})})})})}function h(a){var b,c=new Uint8Array(a),d="";for(b=0;b<c.length;b+=3)d+=k[c[b]>>2],d+=k[(3&c[b])<<4|c[b+1]>>4],d+=k[(15&c[b+1])<<2|c[b+2]>>6],d+=k[63&c[b+2]];return c.length%3===2?d=d.substring(0,d.length-1)+"=":c.length%3===1&&(d=d.substring(0,d.length-2)+"=="),d}function i(a){if(a.substring(0,q)!==p)return JSON.parse(a);var b,c,d,e,f,g=a.substring(C),h=a.substring(q,C),i=.75*g.length,j=g.length,l=0;"="===g[g.length-1]&&(i--,"="===g[g.length-2]&&i--);var m=new ArrayBuffer(i),n=new Uint8Array(m);for(b=0;j>b;b+=4)c=k.indexOf(g[b]),d=k.indexOf(g[b+1]),e=k.indexOf(g[b+2]),f=k.indexOf(g[b+3]),n[l++]=c<<2|d>>4,n[l++]=(15&d)<<4|e>>2,n[l++]=(3&e)<<6|63&f;switch(h){case r:return m;case s:return new Blob([m]);case t:return new Int8Array(m);case u:return new Uint8Array(m);case v:return new Uint8ClampedArray(m);case w:return new Int16Array(m);case y:return new Uint16Array(m);case x:return new Int32Array(m);case z:return new Uint32Array(m);case A:return new Float32Array(m);case B:return new Float64Array(m);default:throw new Error("Unkown type: "+h)}}function j(a,b){var c="";if(a&&(c=a.toString()),a&&("[object ArrayBuffer]"===a.toString()||a.buffer&&"[object ArrayBuffer]"===a.buffer.toString())){var d,e=p;a instanceof ArrayBuffer?(d=a,e+=r):(d=a.buffer,"[object Int8Array]"===c?e+=t:"[object Uint8Array]"===c?e+=u:"[object Uint8ClampedArray]"===c?e+=v:"[object Int16Array]"===c?e+=w:"[object Uint16Array]"===c?e+=y:"[object Int32Array]"===c?e+=x:"[object Uint32Array]"===c?e+=z:"[object Float32Array]"===c?e+=A:"[object Float64Array]"===c?e+=B:b(new Error("Failed to get type for BinaryArray"))),b(e+h(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var a=h(this.result);b(p+s+a)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(g){this.console&&this.console.error&&this.console.error("Couldn't convert value into a JSON string: ",a),b(null,g)}}var k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,m=this.openDatabase,n=null,o={},p="__lfsc__:",q=p.length,r="arbf",s="blob",t="si08",u="ui08",v="uic8",w="si16",x="si32",y="ur16",z="ui32",A="fl32",B="fl64",C=q+r.length;if(m){var D={_driver:"webSQLStorage",_initStorage:a,getItem:b,setItem:c,removeItem:d,clear:e,length:f,key:g};"function"==typeof define&&define.amd?define("webSQLStorage",function(){return D}):"undefined"!=typeof module&&module.exports?module.exports=D:this.webSQLStorage=D}}.call(this),function(){"use strict";var a="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,b=1,c=2,d=3,e=d;"function"==typeof define&&define.amd?e=b:"undefined"!=typeof module&&module.exports&&(e=c);var f,g=g||this.indexedDB||this.webkitIndexedDB||this.mozIndexedDB||this.OIndexedDB||this.msIndexedDB,h=this.openDatabase,i=this,j={INDEXEDDB:"asyncStorage",LOCALSTORAGE:"localStorageWrapper",WEBSQL:"webSQLStorage",_config:{description:"",name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1},config:function(a){if("object"==typeof a){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var b in a)this._config[b]=a[b];return!0}return"string"==typeof a?this._config[a]:this._config},driver:function(){return this._driver||null},_ready:a.reject(new Error("setDriver() wasn't called")),setDriver:function(d,f){var k=new a(function(a,f){if(!g&&d===j.INDEXEDDB||!h&&d===j.WEBSQL)return void f(j);if(j._ready=null,e===b)return void require([d],function(b){j._extend(b),a(j)});if(e===c){var k;switch(d){case j.INDEXEDDB:k=require("./drivers/indexeddb");break;case j.LOCALSTORAGE:k=require("./drivers/localstorage");break;case j.WEBSQL:k=require("./drivers/websql")}j._extend(k)}else j._extend(i[d]);a(j)});return k.then(f,f),k},ready:function(a){return null===this._ready&&(this._ready=this._initStorage(this._config)),this._ready.then(a,a),this._ready},_extend:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b])}};f=g&&null===g.open("_localforage_spec_test",1).onupgradeneeded?j.INDEXEDDB:h?j.WEBSQL:j.LOCALSTORAGE,this.localForageConfig&&(j.config=this.localForageConfig),j.setDriver(f),e===b?define(function(){return j}):e===c?module.exports=j:this.localforage=j}.call(this);
!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)k.push("exports"===i[l]?g={}:b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&e(g.then)?g.then(d(j),c):f(j,g)})}var d=a.isArray,e=a.isFunction;b.all=c}),a("promise/asap",["exports"],function(a){"use strict";function b(){return function(){process.nextTick(e)}}function c(){var a=0,b=new i(e),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function d(){return function(){j.setTimeout(e,1)}}function e(){for(var a=0;a<k.length;a++){var b=k[a],c=b[0],d=b[1];c(d)}k=[]}function f(a,b){var c=k.push([a,b]);1===c&&g()}var g,h="undefined"!=typeof window?window:{},i=h.MutationObserver||h.WebKitMutationObserver,j="undefined"!=typeof global?global:void 0===this?window:this,k=[];g="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?b():i?c():d(),a.asap=f}),a("promise/config",["exports"],function(a){"use strict";function b(a,b){return 2!==arguments.length?c[a]:void(c[a]=b)}var c={instrument:!1};a.config=c,a.configure=b}),a("promise/polyfill",["./promise","./utils","exports"],function(a,b,c){"use strict";function d(){var a;a="undefined"!=typeof global?global:"undefined"!=typeof window&&window.document?window:self;var b="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();b||(a.Promise=e)}var e=a.Promise,f=b.isFunction;c.polyfill=d}),a("promise/promise",["./config","./utils","./all","./race","./resolve","./reject","./asap","exports"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){if(!v(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof i))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],j(a,this)}function j(a,b){function c(a){o(b,a)}function d(a){q(b,a)}try{a(c,d)}catch(e){d(e)}}function k(a,b,c,d){var e,f,g,h,i=v(c);if(i)try{e=c(d),g=!0}catch(j){h=!0,f=j}else e=d,g=!0;n(b,e)||(i&&g?o(b,e):h?q(b,f):a===D?o(b,e):a===E&&q(b,e))}function l(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+D]=c,e[f+E]=d}function m(a,b){for(var c,d,e=a._subscribers,f=a._detail,g=0;g<e.length;g+=3)c=e[g],d=e[g+b],k(b,c,d,f);a._subscribers=null}function n(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(u(b)&&(d=b.then,v(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?o(a,d):p(a,d)))},function(b){return c?!0:(c=!0,void q(a,b))}),!0}catch(e){return c?!0:(q(a,e),!0)}return!1}function o(a,b){a===b?p(a,b):n(a,b)||p(a,b)}function p(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(r,a))}function q(a,b){a._state===B&&(a._state=C,a._detail=b,t.async(s,a))}function r(a){m(a,a._state=D)}function s(a){m(a,a._state=E)}var t=a.config,u=(a.configure,b.objectOrFunction),v=b.isFunction,w=(b.now,c.all),x=d.race,y=e.resolve,z=f.reject,A=g.asap;t.async=A;var B=void 0,C=0,D=1,E=2;i.prototype={constructor:i,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;t.async(function(){k(c._state,d,e[c._state-1],c._detail)})}else l(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},i.all=w,i.race=x,i.resolve=y,i.reject=z,h.Promise=i}),a("promise/race",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var d=a.isArray;b.race=c}),a("promise/reject",["exports"],function(a){"use strict";function b(a){var b=this;return new b(function(b,c){c(a)})}a.reject=b}),a("promise/resolve",["exports"],function(a){"use strict";function b(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}a.resolve=b}),a("promise/utils",["exports"],function(a){"use strict";function b(a){return c(a)||"object"==typeof a&&null!==a}function c(a){return"function"==typeof a}function d(a){return"[object Array]"===Object.prototype.toString.call(a)}var e=Date.now||function(){return(new Date).getTime()};a.objectOrFunction=b,a.isFunction=c,a.isArray=d,a.now=e}),b("promise/polyfill").polyfill()}(),function(){"use strict";function a(a){if(a)for(var b in a)j[b]=a[b];return new h(function(a,b){var c=k.open(j.name,j.version);c.onerror=function(){b(c.error)},c.onupgradeneeded=function(){c.result.createObjectStore(j.storeName)},c.onsuccess=function(){i=c.result,a()}})}function b(a,b){var c=this;return new h(function(d,e){c.ready().then(function(){var c=i.transaction(j.storeName,"readonly").objectStore(j.storeName),f=c.get(a);f.onsuccess=function(){var a=f.result;void 0===a&&(a=null),b&&b(a),d(a)},f.onerror=function(){b&&b(null,f.error),e(f.error)}})})}function c(a,b,c){var d=this;return new h(function(e,f){d.ready().then(function(){var d=i.transaction(j.storeName,"readwrite").objectStore(j.storeName);void 0===b&&(b=null);var g=d.put(b,a);g.onsuccess=function(){c&&c(b),e(b)},g.onerror=function(){c&&c(null,g.error),f(g.error)}})})}function d(a,b){var c=this;return new h(function(d,e){c.ready().then(function(){var c=i.transaction(j.storeName,"readwrite").objectStore(j.storeName),f=c["delete"](a);f.onsuccess=function(){b&&b(),d()},f.onerror=function(){b&&b(f.error),e(f.error)},f.onabort=function(a){var c=a.target.error;"QuotaExceededError"===c&&(b&&b(c),e(c))}})})}function e(a){var b=this;return new h(function(c,d){b.ready().then(function(){var b=i.transaction(j.storeName,"readwrite").objectStore(j.storeName),e=b.clear();e.onsuccess=function(){a&&a(),c()},e.onerror=function(){a&&a(null,e.error),d(e.error)}})})}function f(a){var b=this;return new h(function(c,d){b.ready().then(function(){var b=i.transaction(j.storeName,"readonly").objectStore(j.storeName),e=b.count();e.onsuccess=function(){a&&a(e.result),c(e.result)},e.onerror=function(){a&&a(null,e.error),d(e.error)}})})}function g(a,b){var c=this;return new h(function(d,e){return 0>a?(b&&b(null),void d(null)):void c.ready().then(function(){var c=i.transaction(j.storeName,"readonly").objectStore(j.storeName),f=!1,g=c.openCursor();g.onsuccess=function(){var c=g.result;return c?void(0===a?(b&&b(c.key),d(c.key)):f?(b&&b(c.key),d(c.key)):(f=!0,c.advance(a))):(b&&b(null),void d(null))},g.onerror=function(){b&&b(null,g.error),e(g.error)}})})}var h="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,i=null,j={},k=k||this.indexedDB||this.webkitIndexedDB||this.mozIndexedDB||this.OIndexedDB||this.msIndexedDB;if(k){var l={_driver:"asyncStorage",_initStorage:a,getItem:b,setItem:c,removeItem:d,clear:e,length:f,key:g};"function"==typeof define&&define.amd?define("asyncStorage",function(){return l}):"undefined"!=typeof module&&module.exports?module.exports=l:this.asyncStorage=l}}.call(this),function(){"use strict";function a(a){if(a)for(var b in a)l[b]=a[b];return k=l.name+"/",m.resolve()}function b(a){var b=this;return new m(function(c){b.ready().then(function(){n.clear(),a&&a(),c()})})}function c(a,b){var c=this;return new m(function(d,e){c.ready().then(function(){try{var c=n.getItem(k+a);c&&(c=g(c)),b&&b(c,null),d(c)}catch(f){b&&b(null,f),e(f)}})})}function d(a,b){var c=this;return new m(function(d){c.ready().then(function(){var c=n.key(a);c&&(c=c.substring(k.length)),b&&b(c),d(c)})})}function e(a){var b=this;return new m(function(c){b.ready().then(function(){var b=n.length;a&&a(b),c(b)})})}function f(a,b){var c=this;return new m(function(d){c.ready().then(function(){n.removeItem(k+a),b&&b(),d()})})}function g(a){if(a.substring(0,q)!==p)return JSON.parse(a);for(var b=a.substring(C),c=a.substring(q,C),d=new ArrayBuffer(2*b.length),e=new Uint16Array(d),f=b.length-1;f>=0;f--)e[f]=b.charCodeAt(f);switch(c){case r:return d;case s:return new Blob([d]);case t:return new Int8Array(d);case u:return new Uint8Array(d);case v:return new Uint8ClampedArray(d);case w:return new Int16Array(d);case y:return new Uint16Array(d);case x:return new Int32Array(d);case z:return new Uint32Array(d);case A:return new Float32Array(d);case B:return new Float64Array(d);default:throw new Error("Unkown type: "+c)}}function h(a){var b="",c=new Uint16Array(a);try{b=String.fromCharCode.apply(null,c)}catch(d){for(var e=0;e<c.length;e++)b+=String.fromCharCode(c[e])}return b}function i(a,b){var c="";if(a&&(c=a.toString()),a&&("[object ArrayBuffer]"===a.toString()||a.buffer&&"[object ArrayBuffer]"===a.buffer.toString())){var d,e=p;a instanceof ArrayBuffer?(d=a,e+=r):(d=a.buffer,"[object Int8Array]"===c?e+=t:"[object Uint8Array]"===c?e+=u:"[object Uint8ClampedArray]"===c?e+=v:"[object Int16Array]"===c?e+=w:"[object Uint16Array]"===c?e+=y:"[object Int32Array]"===c?e+=x:"[object Uint32Array]"===c?e+=z:"[object Float32Array]"===c?e+=A:"[object Float64Array]"===c?e+=B:b(new Error("Failed to get type for BinaryArray"))),b(e+h(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var a=h(this.result);b(p+s+a)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(g){this.console&&this.console.error&&this.console.error("Couldn't convert value into a JSON string: ",a),b(null,g)}}function j(a,b,c){var d=this;return new m(function(e,f){d.ready().then(function(){void 0===b&&(b=null);var d=b;i(b,function(b,g){if(g)c&&c(null,g),f(g);else{try{n.setItem(k+a,b)}catch(h){("QuotaExceededError"===h.name||"NS_ERROR_DOM_QUOTA_REACHED"===h.name)&&(c&&c(null,h),f(h))}c&&c(d),e(d)}})})})}var k="",l={},m="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,n=null;try{n=this.localStorage}catch(o){return}var p="__lfsc__:",q=p.length,r="arbf",s="blob",t="si08",u="ui08",v="uic8",w="si16",x="si32",y="ur16",z="ui32",A="fl32",B="fl64",C=q+r.length,D={_driver:"localStorageWrapper",_initStorage:a,getItem:c,setItem:j,removeItem:f,clear:b,length:e,key:d};"function"==typeof define&&define.amd?define("localStorageWrapper",function(){return D}):"undefined"!=typeof module&&module.exports?module.exports=D:this.localStorageWrapper=D}.call(this),function(){"use strict";function a(a){var b=this;if(a)for(var c in a)o[c]="string"!=typeof a[c]?a[c].toString():a[c];return new l(function(a){try{n=m(o.name,o.version,o.description,o.size)}catch(c){return b.setDriver("localStorageWrapper").then(a)}n.transaction(function(b){b.executeSql("CREATE TABLE IF NOT EXISTS "+o.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],function(){a()},null)})})}function b(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[a],function(a,c){var e=c.rows.length?c.rows.item(0).value:null;e&&(e=i(e)),b&&b(e),d(e)},function(a,c){b&&b(null,c),e(c)})})})})}function c(a,b,c){var d=this;return new l(function(e,f){d.ready().then(function(){void 0===b&&(b=null);var d=b;j(b,function(b,g){g?f(g):n.transaction(function(g){g.executeSql("INSERT OR REPLACE INTO "+o.storeName+" (key, value) VALUES (?, ?)",[a,b],function(){c&&c(d),e(d)},function(a,b){c&&c(null,b),f(b)})},function(a){a.code===a.QUOTA_ERR&&(c&&c(null,a),f(a))})})})})}function d(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("DELETE FROM "+o.storeName+" WHERE key = ?",[a],function(){b&&b(),d()},function(a,c){b&&b(c),e(c)})})})})}function e(a){var b=this;return new l(function(c,d){b.ready().then(function(){n.transaction(function(b){b.executeSql("DELETE FROM "+o.storeName,[],function(){a&&a(),c()},function(b,c){a&&a(c),d(c)})})})})}function f(a){var b=this;return new l(function(c,d){b.ready().then(function(){n.transaction(function(b){b.executeSql("SELECT COUNT(key) as c FROM "+o.storeName,[],function(b,d){var e=d.rows.item(0).c;a&&a(e),c(e)},function(b,c){a&&a(null,c),d(c)})})})})}function g(a,b){var c=this;return new l(function(d,e){c.ready().then(function(){n.transaction(function(c){c.executeSql("SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[a+1],function(a,c){var e=c.rows.length?c.rows.item(0).key:null;b&&b(e),d(e)},function(a,c){b&&b(null,c),e(c)})})})})}function h(a){var b,c=new Uint8Array(a),d="";for(b=0;b<c.length;b+=3)d+=k[c[b]>>2],d+=k[(3&c[b])<<4|c[b+1]>>4],d+=k[(15&c[b+1])<<2|c[b+2]>>6],d+=k[63&c[b+2]];return c.length%3===2?d=d.substring(0,d.length-1)+"=":c.length%3===1&&(d=d.substring(0,d.length-2)+"=="),d}function i(a){if(a.substring(0,q)!==p)return JSON.parse(a);var b,c,d,e,f,g=a.substring(C),h=a.substring(q,C),i=.75*g.length,j=g.length,l=0;"="===g[g.length-1]&&(i--,"="===g[g.length-2]&&i--);var m=new ArrayBuffer(i),n=new Uint8Array(m);for(b=0;j>b;b+=4)c=k.indexOf(g[b]),d=k.indexOf(g[b+1]),e=k.indexOf(g[b+2]),f=k.indexOf(g[b+3]),n[l++]=c<<2|d>>4,n[l++]=(15&d)<<4|e>>2,n[l++]=(3&e)<<6|63&f;switch(h){case r:return m;case s:return new Blob([m]);case t:return new Int8Array(m);case u:return new Uint8Array(m);case v:return new Uint8ClampedArray(m);case w:return new Int16Array(m);case y:return new Uint16Array(m);case x:return new Int32Array(m);case z:return new Uint32Array(m);case A:return new Float32Array(m);case B:return new Float64Array(m);default:throw new Error("Unkown type: "+h)}}function j(a,b){var c="";if(a&&(c=a.toString()),a&&("[object ArrayBuffer]"===a.toString()||a.buffer&&"[object ArrayBuffer]"===a.buffer.toString())){var d,e=p;a instanceof ArrayBuffer?(d=a,e+=r):(d=a.buffer,"[object Int8Array]"===c?e+=t:"[object Uint8Array]"===c?e+=u:"[object Uint8ClampedArray]"===c?e+=v:"[object Int16Array]"===c?e+=w:"[object Uint16Array]"===c?e+=y:"[object Int32Array]"===c?e+=x:"[object Uint32Array]"===c?e+=z:"[object Float32Array]"===c?e+=A:"[object Float64Array]"===c?e+=B:b(new Error("Failed to get type for BinaryArray"))),b(e+h(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var a=h(this.result);b(p+s+a)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(g){this.console&&this.console.error&&this.console.error("Couldn't convert value into a JSON string: ",a),b(null,g)}}var k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,m=this.openDatabase,n=null,o={},p="__lfsc__:",q=p.length,r="arbf",s="blob",t="si08",u="ui08",v="uic8",w="si16",x="si32",y="ur16",z="ui32",A="fl32",B="fl64",C=q+r.length;if(m){var D={_driver:"webSQLStorage",_initStorage:a,getItem:b,setItem:c,removeItem:d,clear:e,length:f,key:g};"function"==typeof define&&define.amd?define("webSQLStorage",function(){return D}):"undefined"!=typeof module&&module.exports?module.exports=D:this.webSQLStorage=D}}.call(this),function(){"use strict";var a="undefined"!=typeof module&&module.exports?require("promise"):this.Promise,b=1,c=2,d=3,e=d;"function"==typeof define&&define.amd?e=b:"undefined"!=typeof module&&module.exports&&(e=c);var f,g=g||this.indexedDB||this.webkitIndexedDB||this.mozIndexedDB||this.OIndexedDB||this.msIndexedDB,h=g&&null===g.open("_localforage_spec_test",1).onupgradeneeded,i=this.openDatabase,j=this,k={INDEXEDDB:"asyncStorage",LOCALSTORAGE:"localStorageWrapper",WEBSQL:"webSQLStorage",_config:{description:"",name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1},config:function(a){if("object"==typeof a){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var b in a)this._config[b]=a[b];return!0}return"string"==typeof a?this._config[a]:this._config},driver:function(){return this._driver||null},_ready:a.reject(new Error("setDriver() wasn't called")),setDriver:function(d,f){var g=new a(function(a,f){if(!h&&d===k.INDEXEDDB||!i&&d===k.WEBSQL)return void f(k);if(k._ready=null,e===b)return void require([d],function(b){k._extend(b),a(k)});if(e===c){var g;switch(d){case k.INDEXEDDB:g=require("./drivers/indexeddb");break;case k.LOCALSTORAGE:g=require("./drivers/localstorage");break;case k.WEBSQL:g=require("./drivers/websql")}k._extend(g)}else k._extend(j[d]);a(k)});return g.then(f,f),g},ready:function(a){return null===this._ready&&(this._ready=this._initStorage(this._config)),this._ready.then(a,a),this._ready},_extend:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b])}};f=h?k.INDEXEDDB:i?k.WEBSQL:k.LOCALSTORAGE,this.localForageConfig&&(k.config=this.localForageConfig),k.setDriver(f),e===b?define(function(){return k}):e===c?module.exports=k:this.localforage=k}.call(this);

@@ -77,3 +77,3 @@ /*global exports:true, require:true */

' localForage -- Offline Storage, Improved\n' +
' Version 0.8.0\n' +
' Version 0.8.1\n' +
' http://mozilla.github.io/localForage\n' +

@@ -91,2 +91,7 @@ ' (c) 2013-2014 Mozilla, Apache License 2.0\n' +

},
open: {
site: {
path: 'http://localhost:4567/'
}
},
shell: {

@@ -101,6 +106,6 @@ options: {

},
publishDocs: {
'publish-site': {
command: 'rake publish ALLOW_DIRTY=true'
},
serveDocs: {
'serve-site': {
command: 'bundle exec middleman server'

@@ -113,3 +118,3 @@ }

'dist/localforage.min.js': ['dist/localforage.js'],
'docs/localforage.min.js': ['dist/localforage.js']
'site/localforage.min.js': ['dist/localforage.js']
}

@@ -135,5 +140,12 @@ }

grunt.registerTask('build', ['concat', 'uglify']);
grunt.registerTask('docs', ['shell:serveDocs']);
grunt.registerTask('publish', ['build', 'shell:publishDocs']);
grunt.registerTask('publish', ['build', 'shell:publish-site']);
grunt.registerTask('serve', ['build', 'test-server', 'watch']);
grunt.registerTask('site', ['shell:serve-site']);
grunt.registerTask('test', [
'build',
'jshint',
'shell:component',
'test-server',
'casper'
]);
grunt.registerTask('test-server', function() {

@@ -146,5 +158,2 @@ grunt.log.writeln('Starting web servers at test/server.coffee');

});
grunt.registerTask('serve', ['build', 'test-server', 'watch']);
grunt.registerTask('test', ['build', 'jshint', 'shell:component', 'test-server', 'casper']);
};

@@ -11,3 +11,3 @@ {

],
"version": "0.8.0",
"version": "0.8.1",
"homepage": "https://github.com/mozilla/localForage",

@@ -24,2 +24,3 @@ "repository": {

"coffee-script": "^1.7.1",
"component": "^1.0.0",
"express": "^3.4.8",

@@ -34,4 +35,3 @@ "grunt": "^0.4.2",

"load-grunt-tasks": "^0.4.0",
"uglify-js": "^2.3.x",
"component": "^1.0.0"
"uglify-js": "^2.3.x"
},

@@ -38,0 +38,0 @@ "browser": "dist/localforage.js",

# localForage [![Build Status](https://secure.travis-ci.org/mozilla/localForage.png?branch=master)](http://travis-ci.org/mozilla/localForage)
localForage is a handy library that improves the offline experience of your web
app by using asynchronous storage (via IndexedDB or WebSQL where available) but
with a simple, `localStorage`-like API.
localForage is a JavaScript library that improves the offline experience of
your web app by using asynchronous storage (via IndexedDB or WebSQL
where available) with a simple, `localStorage`-like API.
localForage includes a localStorage-backed fallback store for browsers with no
IndexedDB or WebSQL support. Asynchronous storage is available in the current
localForage uses localStorage in browsers with no IndexedDB or
WebSQL support. Asynchronous storage is available in the current
versions of all major browsers: Chrome, Firefox, IE, and Safari

@@ -53,8 +53,15 @@ (including Safari Mobile). See below for detailed compatibility info.

Lost? Need help? This README has some simple guides and the code has decent
documentation, but I'm working on a real API guide. In the meantime, if you're
stuck using the library, running the tests, or want to contribute, you can
visit [irc.mozilla.org](https://wiki.mozilla.org/IRC) and head to the `#apps`
Lost? Need help? Try the
[localForage API documentation](http://mozilla.github.io/localForage).
If you're stuck using the library, running the tests, or want to contribute,
to localForage, you can visit
[irc.mozilla.org](https://wiki.mozilla.org/IRC) and head to the `#apps`
channel to ask questions about localForage.
The best person to ask about localForage is [**tofumatt**][tofumatt], who
is usually online from 8am-10pm Eastern Time.
[tofumatt]: http://tofumatt.com/
# How to use localForage

@@ -112,2 +119,13 @@

## Storing Blobs, TypedArrays, and other JS objects
localForage supports storing all native JS objects that can be serialized to
JSON, as well as ArrayBuffers, Blobs, and TypedArrays. Check the
[API docs][api] for a full list of types supported by localForage.
All types are supported in every storage backend, though storage limits in
localStorage make storing many large Blobs impossible.
[api]: http://mozilla.github.io/localForage/#setitem
## Driver Selection (i.e. forcing localStorage)

@@ -191,2 +209,8 @@

## Web Workers
You can use localForage inside web workers, but keep in mind that
`localStorage` is not available inside the context of a web worker, so you'll
have to be using either IndexedDB or WebSQL as your database driver.
## Framework Support

@@ -193,0 +217,0 @@

@@ -37,3 +37,3 @@ // Some code originally from async_storage.js in

openreq.onerror = function withStoreOnError() {
reject(openreq.error.name);
reject(openreq.error);
};

@@ -74,6 +74,6 @@ openreq.onupgradeneeded = function withStoreOnUpgradeNeeded() {

if (callback) {
callback(null, req.error.name);
callback(null, req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -110,6 +110,6 @@ });

if (callback) {
callback(null, req.error.name);
callback(null, req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -147,6 +147,6 @@ });

if (callback) {
callback(req.error.name);
callback(req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -159,8 +159,8 @@

var error = event.target.error;
if (error.name === 'QuotaExceededError') {
if (error === 'QuotaExceededError') {
if (callback) {
callback(error.name);
callback(error);
}
reject(error.name);
reject(error);
}

@@ -190,6 +190,6 @@ };

if (callback) {
callback(null, req.error.name);
callback(null, req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -218,6 +218,6 @@ });

if (callback) {
callback(null, req.error.name);
callback(null, req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -287,6 +287,6 @@ });

if (callback) {
callback(null, req.error.name);
callback(null, req.error);
}
reject(req.error.name);
reject(req.error);
};

@@ -293,0 +293,0 @@ });

@@ -54,3 +54,3 @@ /*

if (options) {
for (var i in dbInfo) {
for (var i in options) {
dbInfo[i] = typeof(options[i]) !== 'string' ? options[i].toString() : options[i];

@@ -57,0 +57,0 @@ }

@@ -30,2 +30,6 @@ (function() {

var supportsIndexedDB = indexedDB &&
indexedDB.open('_localforage_spec_test', 1)
.onupgradeneeded === null;
// Check for WebSQL.

@@ -88,3 +92,4 @@ var openDatabase = this.openDatabase;

var driverSet = new Promise(function(resolve, reject) {
if ((!indexedDB && driverName === localForage.INDEXEDDB) ||
if ((!supportsIndexedDB &&
driverName === localForage.INDEXEDDB) ||
(!openDatabase && driverName === localForage.WEBSQL)) {

@@ -162,3 +167,3 @@ reject(localForage);

// See: https://github.com/mozilla/localForage/issues/128
if (indexedDB && indexedDB.open('_localforage_spec_test', 1).onupgradeneeded === null) {
if (supportsIndexedDB) {
storageLibrary = localForage.INDEXEDDB;

@@ -165,0 +170,0 @@ } else if (openDatabase) { // WebSQL is available, so we'll use that.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc