From fab98ca52f40c4d7141dddce1ee9e27232155923 Mon Sep 17 00:00:00 2001 From: Damien Jarry Date: Thu, 24 Mar 2016 09:05:47 +0100 Subject: [PATCH] Add shimIndexedDB compatibility. issue #31 --- angular-indexed-db.js | 2 +- angular-indexed-db.js.map | 2 +- angular-indexed-db.min.js | 2 +- angular-indexed-db.min.js.map | 2 +- src/angular-indexed-db.coffee | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/angular-indexed-db.js b/angular-indexed-db.js index 92ad461..b047af4 100644 --- a/angular-indexed-db.js +++ b/angular-indexed-db.js @@ -12,7 +12,7 @@ angular.module('indexedDB', []).provider('$indexedDB', function() { var IDBKeyRange, allTransactions, apiDirection, appendResultsToPromise, applyNeededUpgrades, cursorDirection, db, dbMode, dbName, dbPromise, dbVersion, defaultQueryOptions, errorMessageFor, indexedDB, readyState, upgradesByVersion; - indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; IDBKeyRange = window.IDBKeyRange || window.mozIDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; dbMode = { readonly: "readonly", diff --git a/angular-indexed-db.js.map b/angular-indexed-db.js.map index 98eca45..f815134 100644 --- a/angular-indexed-db.js.map +++ b/angular-indexed-db.js.map @@ -6,5 +6,5 @@ "angular-indexed-db.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/angular-indexed-db.min.js b/angular-indexed-db.min.js index 78897b7..8ca4075 100644 --- a/angular-indexed-db.min.js +++ b/angular-indexed-db.min.js @@ -1,2 +1,2 @@ -(function(){"use strict";var __slice=[].slice;angular.module("indexedDB",[]).provider("$indexedDB",function(){var IDBKeyRange,allTransactions,apiDirection,appendResultsToPromise,applyNeededUpgrades,cursorDirection,db,dbMode,dbName,dbPromise,dbVersion,defaultQueryOptions,errorMessageFor,indexedDB,readyState,upgradesByVersion;indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,IDBKeyRange=window.IDBKeyRange||window.mozIDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange,dbMode={readonly:"readonly",readwrite:"readwrite"},readyState={pending:"pending"},cursorDirection={next:"next",nextunique:"nextunique",prev:"prev",prevunique:"prevunique"},apiDirection={ascending:cursorDirection.next,descending:cursorDirection.prev},dbName="",dbVersion=1,db=null,upgradesByVersion={},dbPromise=null,allTransactions=[],defaultQueryOptions={useIndex:void 0,keyRange:null,direction:cursorDirection.next},applyNeededUpgrades=function(oldVersion,event,db,tx,$log){var version;for(version in upgradesByVersion)!upgradesByVersion.hasOwnProperty(version)||oldVersion>=version||($log.log("$indexedDB: Running upgrade : "+version+" from "+oldVersion),upgradesByVersion[version](event,db,tx))},errorMessageFor=function(e){return e.target.readyState===readyState.pending?"Error: Operation pending":e.target.webkitErrorMessage||e.target.error.message||e.target.errorCode},appendResultsToPromise=function(promise,results){return void 0!==results?promise.then(function(){return results}):promise},this.connection=function(databaseName){return dbName=databaseName,this},this.upgradeDatabase=function(newVersion,callback){return upgradesByVersion[newVersion]=callback,dbVersion=Math.max.apply(null,Object.keys(upgradesByVersion)),this},this.$get=["$q","$rootScope","$log",function($q,$rootScope,$log){var DbQ,ObjectStore,Query,Transaction,addTransaction,closeDatabase,createDatabaseConnection,keyRangeForOptions,openDatabase,openTransaction,rejectWithError,validateStoreNames;return rejectWithError=function(deferred){return function(error){return $rootScope.$apply(function(){return deferred.reject(errorMessageFor(error))})}},createDatabaseConnection=function(){var dbReq,deferred;return deferred=$q.defer(),dbReq=indexedDB.open(dbName,parseInt(dbVersion)||1),dbReq.onsuccess=function(){db=dbReq.result,$rootScope.$apply(function(){deferred.resolve(db)})},dbReq.onblocked=dbReq.onerror=rejectWithError(deferred),dbReq.onupgradeneeded=function(event){var tx;db=event.target.result,tx=event.target.transaction,$log.log("$indexedDB: Upgrading database '"+db.name+"' from version "+event.oldVersion+" to version "+event.newVersion+" ..."),applyNeededUpgrades(event.oldVersion,event,db,tx,$log)},deferred.promise},openDatabase=function(){return dbPromise||(dbPromise=createDatabaseConnection())},closeDatabase=function(){return openDatabase().then(function(){return db.close(),db=null,dbPromise=null})},validateStoreNames=function(storeNames){var found,storeName,_i,_len;for(found=!0,_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],found&=db.objectStoreNames.contains(storeName);return found},openTransaction=function(storeNames,mode){return null==mode&&(mode=dbMode.readonly),openDatabase().then(function(){return validateStoreNames(storeNames)?new Transaction(storeNames,mode):$q.reject("Object stores "+storeNames+" do not exist.")})},keyRangeForOptions=function(options){return options.beginKey&&options.endKey?IDBKeyRange.bound(options.beginKey,options.endKey):void 0},addTransaction=function(transaction){return allTransactions.push(transaction.promise),transaction.promise["finally"](function(){var index;return index=allTransactions.indexOf(transaction.promise),index>-1?allTransactions.splice(index,1):void 0})},Transaction=function(){function Transaction(storeNames,mode){null==mode&&(mode=dbMode.readonly),this.transaction=db.transaction(storeNames,mode),this.defer=$q.defer(),this.promise=this.defer.promise,this.setupCallbacks()}return Transaction.prototype.setupCallbacks=function(){return this.transaction.oncomplete=function(_this){return function(){return $rootScope.$apply(function(){return _this.defer.resolve("Transaction Completed")})}}(this),this.transaction.onabort=function(_this){return function(error){return $rootScope.$apply(function(){return _this.defer.reject("Transaction Aborted",error)})}}(this),this.transaction.onerror=function(_this){return function(error){return $rootScope.$apply(function(){return _this.defer.reject("Transaction Error",error)})}}(this),addTransaction(this)},Transaction.prototype.objectStore=function(storeName){return this.transaction.objectStore(storeName)},Transaction.prototype.abort=function(){return this.transaction.abort()},Transaction}(),DbQ=function(){function DbQ(){this.q=$q.defer(),this.promise=this.q.promise}return DbQ.prototype.reject=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).reject.apply(_ref,args)}}(this))},DbQ.prototype.rejectWith=function(req){return req.onerror=req.onblocked=function(_this){return function(e){return _this.reject(errorMessageFor(e))}}(this)},DbQ.prototype.resolve=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).resolve.apply(_ref,args)}}(this))},DbQ.prototype.notify=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).notify.apply(_ref,args)}}(this))},DbQ.prototype.dbErrorFunction=function(){return function(_this){return function(error){return $rootScope.$apply(function(){return _this.q.reject(errorMessageFor(error))})}}(this)},DbQ.prototype.resolveWith=function(req){return this.rejectWith(req),req.onsuccess=function(_this){return function(e){return _this.resolve(e.target.result)}}(this)},DbQ}(),ObjectStore=function(){function ObjectStore(storeName,transaction){this.storeName=storeName,this.store=transaction.objectStore(storeName),this.transaction=transaction}return ObjectStore.prototype.defer=function(){return new DbQ},ObjectStore.prototype._mapCursor=function(defer,mapFunc,req){var results;return null==req&&(req=this.store.openCursor()),results=[],defer.rejectWith(req),req.onsuccess=function(e){var cursor;return(cursor=e.target.result)?(results.push(mapFunc(cursor)),defer.notify(mapFunc(cursor)),cursor["continue"]()):defer.resolve(results)}},ObjectStore.prototype._arrayOperation=function(data,mapFunc){var defer,item,req,results,_i,_len;for(defer=this.defer(),angular.isArray(data)||(data=[data]),_i=0,_len=data.length;_len>_i;_i++)item=data[_i],req=mapFunc(item),results=[],defer.rejectWith(req),req.onsuccess=function(e){return results.push(e.target.result),defer.notify(e.target.result),results.length>=data.length?defer.resolve(results):void 0};return 0===data.length?$q.when([]):defer.promise},ObjectStore.prototype.getAllKeys=function(){var defer,req;return defer=this.defer(),this.store.getAllKeys?(req=this.store.getAllKeys(),defer.resolveWith(req)):this._mapCursor(defer,function(cursor){return cursor.key}),defer.promise},ObjectStore.prototype.clear=function(){var defer,req;return defer=this.defer(),req=this.store.clear(),defer.resolveWith(req),defer.promise},ObjectStore.prototype["delete"]=function(key){var defer;return defer=this.defer(),defer.resolveWith(this.store["delete"](key)),defer.promise},ObjectStore.prototype.upsert=function(data){return this._arrayOperation(data,function(_this){return function(item){return _this.store.put(item)}}(this))},ObjectStore.prototype.insert=function(data){return this._arrayOperation(data,function(_this){return function(item){return _this.store.add(item)}}(this))},ObjectStore.prototype.getAll=function(){var defer;return defer=this.defer(),this.store.getAll?defer.resolveWith(this.store.getAll()):this._mapCursor(defer,function(cursor){return cursor.value}),defer.promise},ObjectStore.prototype.eachWhere=function(query){var defer,direction,indexName,keyRange,req;return defer=this.defer(),indexName=query.indexName,keyRange=query.keyRange,direction=query.direction,req=indexName?this.store.index(indexName).openCursor(keyRange,direction):this.store.openCursor(keyRange,direction),this._mapCursor(defer,function(cursor){return cursor.value},req),defer.promise},ObjectStore.prototype.findWhere=function(query){return this.eachWhere(query)},ObjectStore.prototype.each=function(options){return null==options&&(options={}),this.eachBy(void 0,options)},ObjectStore.prototype.eachBy=function(indexName,options){var q;return null==indexName&&(indexName=void 0),null==options&&(options={}),q=new Query,q.indexName=indexName,q.keyRange=keyRangeForOptions(options),q.direction=options.direction||defaultQueryOptions.direction,this.eachWhere(q)},ObjectStore.prototype.count=function(){var defer;return defer=this.defer(),defer.resolveWith(this.store.count()),defer.promise},ObjectStore.prototype.find=function(key){var defer,req;return defer=this.defer(),req=this.store.get(key),defer.rejectWith(req),req.onsuccess=function(_this){return function(e){return e.target.result?defer.resolve(e.target.result):defer.reject(""+_this.storeName+":"+key+" not found.")}}(this),defer.promise},ObjectStore.prototype.findBy=function(index,key){var defer;return defer=this.defer(),defer.resolveWith(this.store.index(index).get(key)),defer.promise},ObjectStore.prototype.query=function(){return new Query},ObjectStore}(),Query=function(){function Query(){this.indexName=void 0,this.keyRange=void 0,this.direction=cursorDirection.next}return Query.prototype.$lt=function(value){return this.keyRange=IDBKeyRange.upperBound(value,!0),this},Query.prototype.$gt=function(value){return this.keyRange=IDBKeyRange.lowerBound(value,!0),this},Query.prototype.$lte=function(value){return this.keyRange=IDBKeyRange.upperBound(value),this},Query.prototype.$gte=function(value){return this.keyRange=IDBKeyRange.lowerBound(value),this},Query.prototype.$eq=function(value){return this.keyRange=IDBKeyRange.only(value),this},Query.prototype.$between=function(low,hi,exLow,exHi){return null==exLow&&(exLow=!1),null==exHi&&(exHi=!1),this.keyRange=IDBKeyRange.bound(low,hi,exLow,exHi),this},Query.prototype.$desc=function(unique){return this.direction=unique?cursorDirection.prevunique:cursorDirection.prev,this},Query.prototype.$asc=function(unique){return this.direction=unique?cursorDirection.nextunique:cursorDirection.next,this},Query.prototype.$index=function(indexName){return this.indexName=indexName,this},Query}(),{openStore:function(storeName,callBack,mode){return null==mode&&(mode=dbMode.readwrite),openTransaction([storeName],mode).then(function(transaction){var results;return results=callBack(new ObjectStore(storeName,transaction)),appendResultsToPromise(transaction.promise,results)})},openStores:function(storeNames,callback,mode){return null==mode&&(mode=dbMode.readwrite),openTransaction(storeNames,mode).then(function(transaction){var objectStores,results,storeName;return objectStores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],_results.push(new ObjectStore(storeName,transaction));return _results}(),results=callback.apply(null,objectStores),appendResultsToPromise(transaction.promise,results)})},openAllStores:function(callback,mode){return null==mode&&(mode=dbMode.readwrite),openDatabase().then(function(_this){return function(){var objectStores,results,storeName,storeNames,transaction;return storeNames=Array.prototype.slice.apply(db.objectStoreNames),transaction=new Transaction(storeNames,mode),objectStores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],_results.push(new ObjectStore(storeName,transaction));return _results}(),results=callback.apply(null,objectStores),appendResultsToPromise(transaction.promise,results)}}(this))},closeDatabase:function(){return closeDatabase()},deleteDatabase:function(){return closeDatabase().then(function(){var defer;return defer=new DbQ,defer.resolveWith(indexedDB.deleteDatabase(dbName)),defer.promise})["finally"](function(){return $log.log("$indexedDB: "+dbName+" database deleted.")})},queryDirection:apiDirection,flush:function(){return allTransactions.length>0?$q.all(allTransactions):$q.when([])},databaseInfo:function(){return openDatabase().then(function(){var storeNames,transaction;return transaction=null,storeNames=Array.prototype.slice.apply(db.objectStoreNames),openTransaction(storeNames,dbMode.readonly).then(function(transaction){var store,storeName,stores;return stores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],store=transaction.objectStore(storeName),_results.push({name:storeName,keyPath:store.keyPath,autoIncrement:store.autoIncrement,indices:Array.prototype.slice.apply(store.indexNames)});return _results}(),transaction.promise.then(function(){return{name:db.name,version:db.version,objectStores:stores}})})})}}}]})}).call(this); +(function(){"use strict";var __slice=[].slice;angular.module("indexedDB",[]).provider("$indexedDB",function(){var IDBKeyRange,allTransactions,apiDirection,appendResultsToPromise,applyNeededUpgrades,cursorDirection,db,dbMode,dbName,dbPromise,dbVersion,defaultQueryOptions,errorMessageFor,indexedDB,readyState,upgradesByVersion;indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB||window.shimIndexedDB,IDBKeyRange=window.IDBKeyRange||window.mozIDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange,dbMode={readonly:"readonly",readwrite:"readwrite"},readyState={pending:"pending"},cursorDirection={next:"next",nextunique:"nextunique",prev:"prev",prevunique:"prevunique"},apiDirection={ascending:cursorDirection.next,descending:cursorDirection.prev},dbName="",dbVersion=1,db=null,upgradesByVersion={},dbPromise=null,allTransactions=[],defaultQueryOptions={useIndex:void 0,keyRange:null,direction:cursorDirection.next},applyNeededUpgrades=function(oldVersion,event,db,tx,$log){var version;for(version in upgradesByVersion)!upgradesByVersion.hasOwnProperty(version)||oldVersion>=version||($log.log("$indexedDB: Running upgrade : "+version+" from "+oldVersion),upgradesByVersion[version](event,db,tx))},errorMessageFor=function(e){return e.target.readyState===readyState.pending?"Error: Operation pending":e.target.webkitErrorMessage||e.target.error.message||e.target.errorCode},appendResultsToPromise=function(promise,results){return void 0!==results?promise.then(function(){return results}):promise},this.connection=function(databaseName){return dbName=databaseName,this},this.upgradeDatabase=function(newVersion,callback){return upgradesByVersion[newVersion]=callback,dbVersion=Math.max.apply(null,Object.keys(upgradesByVersion)),this},this.$get=["$q","$rootScope","$log",function($q,$rootScope,$log){var DbQ,ObjectStore,Query,Transaction,addTransaction,closeDatabase,createDatabaseConnection,keyRangeForOptions,openDatabase,openTransaction,rejectWithError,validateStoreNames;return rejectWithError=function(deferred){return function(error){return $rootScope.$apply(function(){return deferred.reject(errorMessageFor(error))})}},createDatabaseConnection=function(){var dbReq,deferred;return deferred=$q.defer(),dbReq=indexedDB.open(dbName,parseInt(dbVersion)||1),dbReq.onsuccess=function(){db=dbReq.result,$rootScope.$apply(function(){deferred.resolve(db)})},dbReq.onblocked=dbReq.onerror=rejectWithError(deferred),dbReq.onupgradeneeded=function(event){var tx;db=event.target.result,tx=event.target.transaction,$log.log("$indexedDB: Upgrading database '"+db.name+"' from version "+event.oldVersion+" to version "+event.newVersion+" ..."),applyNeededUpgrades(event.oldVersion,event,db,tx,$log)},deferred.promise},openDatabase=function(){return dbPromise||(dbPromise=createDatabaseConnection())},closeDatabase=function(){return openDatabase().then(function(){return db.close(),db=null,dbPromise=null})},validateStoreNames=function(storeNames){var found,storeName,_i,_len;for(found=!0,_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],found&=db.objectStoreNames.contains(storeName);return found},openTransaction=function(storeNames,mode){return null==mode&&(mode=dbMode.readonly),openDatabase().then(function(){return validateStoreNames(storeNames)?new Transaction(storeNames,mode):$q.reject("Object stores "+storeNames+" do not exist.")})},keyRangeForOptions=function(options){return options.beginKey&&options.endKey?IDBKeyRange.bound(options.beginKey,options.endKey):void 0},addTransaction=function(transaction){return allTransactions.push(transaction.promise),transaction.promise["finally"](function(){var index;return index=allTransactions.indexOf(transaction.promise),index>-1?allTransactions.splice(index,1):void 0})},Transaction=function(){function Transaction(storeNames,mode){null==mode&&(mode=dbMode.readonly),this.transaction=db.transaction(storeNames,mode),this.defer=$q.defer(),this.promise=this.defer.promise,this.setupCallbacks()}return Transaction.prototype.setupCallbacks=function(){return this.transaction.oncomplete=function(_this){return function(){return $rootScope.$apply(function(){return _this.defer.resolve("Transaction Completed")})}}(this),this.transaction.onabort=function(_this){return function(error){return $rootScope.$apply(function(){return _this.defer.reject("Transaction Aborted",error)})}}(this),this.transaction.onerror=function(_this){return function(error){return $rootScope.$apply(function(){return _this.defer.reject("Transaction Error",error)})}}(this),addTransaction(this)},Transaction.prototype.objectStore=function(storeName){return this.transaction.objectStore(storeName)},Transaction.prototype.abort=function(){return this.transaction.abort()},Transaction}(),DbQ=function(){function DbQ(){this.q=$q.defer(),this.promise=this.q.promise}return DbQ.prototype.reject=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).reject.apply(_ref,args)}}(this))},DbQ.prototype.rejectWith=function(req){return req.onerror=req.onblocked=function(_this){return function(e){return _this.reject(errorMessageFor(e))}}(this)},DbQ.prototype.resolve=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).resolve.apply(_ref,args)}}(this))},DbQ.prototype.notify=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],$rootScope.$apply(function(_this){return function(){var _ref;return(_ref=_this.q).notify.apply(_ref,args)}}(this))},DbQ.prototype.dbErrorFunction=function(){return function(_this){return function(error){return $rootScope.$apply(function(){return _this.q.reject(errorMessageFor(error))})}}(this)},DbQ.prototype.resolveWith=function(req){return this.rejectWith(req),req.onsuccess=function(_this){return function(e){return _this.resolve(e.target.result)}}(this)},DbQ}(),ObjectStore=function(){function ObjectStore(storeName,transaction){this.storeName=storeName,this.store=transaction.objectStore(storeName),this.transaction=transaction}return ObjectStore.prototype.defer=function(){return new DbQ},ObjectStore.prototype._mapCursor=function(defer,mapFunc,req){var results;return null==req&&(req=this.store.openCursor()),results=[],defer.rejectWith(req),req.onsuccess=function(e){var cursor;return(cursor=e.target.result)?(results.push(mapFunc(cursor)),defer.notify(mapFunc(cursor)),cursor["continue"]()):defer.resolve(results)}},ObjectStore.prototype._arrayOperation=function(data,mapFunc){var defer,item,req,results,_i,_len;for(defer=this.defer(),angular.isArray(data)||(data=[data]),_i=0,_len=data.length;_len>_i;_i++)item=data[_i],req=mapFunc(item),results=[],defer.rejectWith(req),req.onsuccess=function(e){return results.push(e.target.result),defer.notify(e.target.result),results.length>=data.length?defer.resolve(results):void 0};return 0===data.length?$q.when([]):defer.promise},ObjectStore.prototype.getAllKeys=function(){var defer,req;return defer=this.defer(),this.store.getAllKeys?(req=this.store.getAllKeys(),defer.resolveWith(req)):this._mapCursor(defer,function(cursor){return cursor.key}),defer.promise},ObjectStore.prototype.clear=function(){var defer,req;return defer=this.defer(),req=this.store.clear(),defer.resolveWith(req),defer.promise},ObjectStore.prototype["delete"]=function(key){var defer;return defer=this.defer(),defer.resolveWith(this.store["delete"](key)),defer.promise},ObjectStore.prototype.upsert=function(data){return this._arrayOperation(data,function(_this){return function(item){return _this.store.put(item)}}(this))},ObjectStore.prototype.insert=function(data){return this._arrayOperation(data,function(_this){return function(item){return _this.store.add(item)}}(this))},ObjectStore.prototype.getAll=function(){var defer;return defer=this.defer(),this.store.getAll?defer.resolveWith(this.store.getAll()):this._mapCursor(defer,function(cursor){return cursor.value}),defer.promise},ObjectStore.prototype.eachWhere=function(query){var defer,direction,indexName,keyRange,req;return defer=this.defer(),indexName=query.indexName,keyRange=query.keyRange,direction=query.direction,req=indexName?this.store.index(indexName).openCursor(keyRange,direction):this.store.openCursor(keyRange,direction),this._mapCursor(defer,function(cursor){return cursor.value},req),defer.promise},ObjectStore.prototype.findWhere=function(query){return this.eachWhere(query)},ObjectStore.prototype.each=function(options){return null==options&&(options={}),this.eachBy(void 0,options)},ObjectStore.prototype.eachBy=function(indexName,options){var q;return null==indexName&&(indexName=void 0),null==options&&(options={}),q=new Query,q.indexName=indexName,q.keyRange=keyRangeForOptions(options),q.direction=options.direction||defaultQueryOptions.direction,this.eachWhere(q)},ObjectStore.prototype.count=function(){var defer;return defer=this.defer(),defer.resolveWith(this.store.count()),defer.promise},ObjectStore.prototype.find=function(key){var defer,req;return defer=this.defer(),req=this.store.get(key),defer.rejectWith(req),req.onsuccess=function(_this){return function(e){return e.target.result?defer.resolve(e.target.result):defer.reject(""+_this.storeName+":"+key+" not found.")}}(this),defer.promise},ObjectStore.prototype.findBy=function(index,key){var defer;return defer=this.defer(),defer.resolveWith(this.store.index(index).get(key)),defer.promise},ObjectStore.prototype.query=function(){return new Query},ObjectStore}(),Query=function(){function Query(){this.indexName=void 0,this.keyRange=void 0,this.direction=cursorDirection.next}return Query.prototype.$lt=function(value){return this.keyRange=IDBKeyRange.upperBound(value,!0),this},Query.prototype.$gt=function(value){return this.keyRange=IDBKeyRange.lowerBound(value,!0),this},Query.prototype.$lte=function(value){return this.keyRange=IDBKeyRange.upperBound(value),this},Query.prototype.$gte=function(value){return this.keyRange=IDBKeyRange.lowerBound(value),this},Query.prototype.$eq=function(value){return this.keyRange=IDBKeyRange.only(value),this},Query.prototype.$between=function(low,hi,exLow,exHi){return null==exLow&&(exLow=!1),null==exHi&&(exHi=!1),this.keyRange=IDBKeyRange.bound(low,hi,exLow,exHi),this},Query.prototype.$desc=function(unique){return this.direction=unique?cursorDirection.prevunique:cursorDirection.prev,this},Query.prototype.$asc=function(unique){return this.direction=unique?cursorDirection.nextunique:cursorDirection.next,this},Query.prototype.$index=function(indexName){return this.indexName=indexName,this},Query}(),{openStore:function(storeName,callBack,mode){return null==mode&&(mode=dbMode.readwrite),openTransaction([storeName],mode).then(function(transaction){var results;return results=callBack(new ObjectStore(storeName,transaction)),appendResultsToPromise(transaction.promise,results)})},openStores:function(storeNames,callback,mode){return null==mode&&(mode=dbMode.readwrite),openTransaction(storeNames,mode).then(function(transaction){var objectStores,results,storeName;return objectStores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],_results.push(new ObjectStore(storeName,transaction));return _results}(),results=callback.apply(null,objectStores),appendResultsToPromise(transaction.promise,results)})},openAllStores:function(callback,mode){return null==mode&&(mode=dbMode.readwrite),openDatabase().then(function(_this){return function(){var objectStores,results,storeName,storeNames,transaction;return storeNames=Array.prototype.slice.apply(db.objectStoreNames),transaction=new Transaction(storeNames,mode),objectStores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],_results.push(new ObjectStore(storeName,transaction));return _results}(),results=callback.apply(null,objectStores),appendResultsToPromise(transaction.promise,results)}}(this))},closeDatabase:function(){return closeDatabase()},deleteDatabase:function(){return closeDatabase().then(function(){var defer;return defer=new DbQ,defer.resolveWith(indexedDB.deleteDatabase(dbName)),defer.promise})["finally"](function(){return $log.log("$indexedDB: "+dbName+" database deleted.")})},queryDirection:apiDirection,flush:function(){return allTransactions.length>0?$q.all(allTransactions):$q.when([])},databaseInfo:function(){return openDatabase().then(function(){var storeNames,transaction;return transaction=null,storeNames=Array.prototype.slice.apply(db.objectStoreNames),openTransaction(storeNames,dbMode.readonly).then(function(transaction){var store,storeName,stores;return stores=function(){var _i,_len,_results;for(_results=[],_i=0,_len=storeNames.length;_len>_i;_i++)storeName=storeNames[_i],store=transaction.objectStore(storeName),_results.push({name:storeName,keyPath:store.keyPath,autoIncrement:store.autoIncrement,indices:Array.prototype.slice.apply(store.indexNames)});return _results}(),transaction.promise.then(function(){return{name:db.name,version:db.version,objectStores:stores}})})})}}}]})}).call(this); //# sourceMappingURL=angular-indexed-db.min.js.map \ No newline at end of file diff --git a/angular-indexed-db.min.js.map b/angular-indexed-db.min.js.map index f0958dc..313c645 100644 --- a/angular-indexed-db.min.js.map +++ b/angular-indexed-db.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-indexed-db.min.js","sources":["angular-indexed-db.js"],"names":["__slice","slice","angular","module","provider","IDBKeyRange","allTransactions","apiDirection","appendResultsToPromise","applyNeededUpgrades","cursorDirection","db","dbMode","dbName","dbPromise","dbVersion","defaultQueryOptions","errorMessageFor","indexedDB","readyState","upgradesByVersion","window","mozIndexedDB","webkitIndexedDB","msIndexedDB","mozIDBKeyRange","webkitIDBKeyRange","msIDBKeyRange","readonly","readwrite","pending","next","nextunique","prev","prevunique","ascending","descending","useIndex","keyRange","direction","oldVersion","event","tx","$log","version","hasOwnProperty","log","e","target","webkitErrorMessage","error","message","errorCode","promise","results","then","this","connection","databaseName","upgradeDatabase","newVersion","callback","Math","max","apply","Object","keys","$get","$q","$rootScope","DbQ","ObjectStore","Query","Transaction","addTransaction","closeDatabase","createDatabaseConnection","keyRangeForOptions","openDatabase","openTransaction","rejectWithError","validateStoreNames","deferred","$apply","reject","dbReq","defer","open","parseInt","onsuccess","result","resolve","onblocked","onerror","onupgradeneeded","transaction","name","close","storeNames","found","storeName","_i","_len","length","objectStoreNames","contains","mode","options","beginKey","endKey","bound","push","index","indexOf","splice","setupCallbacks","prototype","oncomplete","_this","onabort","objectStore","abort","q","args","arguments","call","_ref","rejectWith","req","notify","dbErrorFunction","resolveWith","store","_mapCursor","mapFunc","openCursor","cursor","_arrayOperation","data","item","isArray","when","getAllKeys","key","clear","upsert","put","insert","add","getAll","value","eachWhere","query","indexName","findWhere","each","eachBy","count","find","get","findBy","$lt","upperBound","$gt","lowerBound","$lte","$gte","$eq","only","$between","low","hi","exLow","exHi","$desc","unique","$asc","$index","openStore","callBack","openStores","objectStores","_results","openAllStores","Array","deleteDatabase","queryDirection","flush","all","databaseInfo","stores","keyPath","autoIncrement","indices","indexNames"],"mappings":"CAQA,WACE,YACA,IAAIA,YAAaC,KAEjBC,SAAQC,OAAO,gBAAiBC,SAAS,aAAc,WACrD,GAAIC,aAAaC,gBAAiBC,aAAcC,uBAAwBC,oBAAqBC,gBAAiBC,GAAIC,OAAQC,OAAQC,UAAWC,UAAWC,oBAAqBC,gBAAiBC,UAAWC,WAAYC,iBACrNF,WAAYG,OAAOH,WAAaG,OAAOC,cAAgBD,OAAOE,iBAAmBF,OAAOG,YACxFnB,YAAcgB,OAAOhB,aAAegB,OAAOI,gBAAkBJ,OAAOK,mBAAqBL,OAAOM,cAChGf,QACEgB,SAAU,WACVC,UAAW,aAEbV,YACEW,QAAS,WAEXpB,iBACEqB,KAAM,OACNC,WAAY,aACZC,KAAM,OACNC,WAAY,cAEd3B,cACE4B,UAAWzB,gBAAgBqB,KAC3BK,WAAY1B,gBAAgBuB,MAE9BpB,OAAS,GACTE,UAAY,EACZJ,GAAK,KACLS,qBACAN,UAAY,KACZR,mBACAU,qBACEqB,SAAU,OACVC,SAAU,KACVC,UAAW7B,gBAAgBqB,MAE7BtB,oBAAsB,SAAS+B,WAAYC,MAAO9B,GAAI+B,GAAIC,MACxD,GAAIC,QACJ,KAAKA,UAAWxB,oBACTA,kBAAkByB,eAAeD,UAAuBJ,YAAXI,UAGlDD,KAAKG,IAAI,iCAAmCF,QAAU,SAAWJ,YACjEpB,kBAAkBwB,SAASH,MAAO9B,GAAI+B,MAG1CzB,gBAAkB,SAAS8B,GACzB,MAAIA,GAAEC,OAAO7B,aAAeA,WAAWW,QAC9B,2BAEAiB,EAAEC,OAAOC,oBAAsBF,EAAEC,OAAOE,MAAMC,SAAWJ,EAAEC,OAAOI,WAG7E5C,uBAAyB,SAAS6C,QAASC,SACzC,MAAgB,UAAZA,QACKD,QAAQE,KAAK,WAClB,MAAOD,WAGFD,SAeXG,KAAKC,WAAa,SAASC,cAEzB,MADA7C,QAAS6C,aACFF,MAeTA,KAAKG,gBAAkB,SAASC,WAAYC,UAG1C,MAFAzC,mBAAkBwC,YAAcC,SAChC9C,UAAY+C,KAAKC,IAAIC,MAAM,KAAMC,OAAOC,KAAK9C,oBACtCoC,MAETA,KAAKW,MACH,KAAM,aAAc,OAAQ,SAASC,GAAIC,WAAY1B,MACnD,GAAI2B,KAAKC,YAAaC,MAAOC,YAAaC,eAAgBC,cAAeC,yBAA0BC,mBAAoBC,aAAcC,gBAAiBC,gBAAiBC,kBAskBvK,OArkBAD,iBAAkB,SAASE,UACzB,MAAO,UAAShC,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOD,UAASE,OAAOnE,gBAAgBiC,YAI7C0B,yBAA2B,WACzB,GAAIS,OAAOH,QAiBX,OAhBAA,UAAWd,GAAGkB,QACdD,MAAQnE,UAAUqE,KAAK1E,OAAQ2E,SAASzE,YAAc,GACtDsE,MAAMI,UAAY,WAChB9E,GAAK0E,MAAMK,OACXrB,WAAWc,OAAO,WAChBD,SAASS,QAAQhF,OAGrB0E,MAAMO,UAAYP,MAAMQ,QAAUb,gBAAgBE,UAClDG,MAAMS,gBAAkB,SAASrD,OAC/B,GAAIC,GACJ/B,IAAK8B,MAAMO,OAAO0C,OAClBhD,GAAKD,MAAMO,OAAO+C,YAClBpD,KAAKG,IAAI,mCAAqCnC,GAAGqF,KAAO,kBAAoBvD,MAAMD,WAAa,eAAiBC,MAAMmB,WAAa,QACnInD,oBAAoBgC,MAAMD,WAAYC,MAAO9B,GAAI+B,GAAIC,OAEhDuC,SAAS7B,SAElByB,aAAe,WACb,MAAOhE,aAAcA,UAAY8D,6BAEnCD,cAAgB,WACd,MAAOG,gBAAevB,KAAK,WAGzB,MAFA5C,IAAGsF,QACHtF,GAAK,KACEG,UAAY,QAGvBmE,mBAAqB,SAASiB,YAC5B,GAAIC,OAAOC,UAAWC,GAAIC,IAE1B,KADAH,OAAQ,EACHE,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBF,OAAgBxF,GAAG6F,iBAAiBC,SAASL,UAE/C,OAAOD,QAETpB,gBAAkB,SAASmB,WAAYQ,MAIrC,MAHY,OAARA,OACFA,KAAO9F,OAAOgB,UAETkD,eAAevB,KAAK,WACzB,MAAK0B,oBAAmBiB,YAGjB,GAAIzB,aAAYyB,WAAYQ,MAF1BtC,GAAGgB,OAAO,iBAAmBc,WAAa,qBAKvDrB,mBAAqB,SAAS8B,SAC5B,MAAIA,SAAQC,UAAYD,QAAQE,OACvBxG,YAAYyG,MAAMH,QAAQC,SAAUD,QAAQE,QADrD,QAIFnC,eAAiB,SAASqB,aAExB,MADAzF,iBAAgByG,KAAKhB,YAAY1C,SAC1B0C,YAAY1C,QAAQ,WAAW,WACpC,GAAI2D,MAEJ,OADAA,OAAQ1G,gBAAgB2G,QAAQlB,YAAY1C,SACxC2D,MAAQ,GACH1G,gBAAgB4G,OAAOF,MAAO,GADvC,UAKJvC,YAAc,WACZ,QAASA,aAAYyB,WAAYQ,MACnB,MAARA,OACFA,KAAO9F,OAAOgB,UAEhB4B,KAAKuC,YAAcpF,GAAGoF,YAAYG,WAAYQ,MAC9ClD,KAAK8B,MAAQlB,GAAGkB,QAChB9B,KAAKH,QAAUG,KAAK8B,MAAMjC,QAC1BG,KAAK2D,iBAoCP,MAjCA1C,aAAY2C,UAAUD,eAAiB,WAsBrC,MArBA3D,MAAKuC,YAAYsB,WAAa,SAAUC,OACtC,MAAO,YACL,MAAOjD,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMK,QAAQ,6BAG9BnC,MACHA,KAAKuC,YAAYwB,QAAU,SAAUD,OACnC,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMF,OAAO,sBAAuBlC,WAGpDM,MACHA,KAAKuC,YAAYF,QAAU,SAAUyB,OACnC,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMF,OAAO,oBAAqBlC,WAGlDM,MACIkB,eAAelB,OAGxBiB,YAAY2C,UAAUI,YAAc,SAASpB,WAC3C,MAAO5C,MAAKuC,YAAYyB,YAAYpB,YAGtC3B,YAAY2C,UAAUK,MAAQ,WAC5B,MAAOjE,MAAKuC,YAAY0B,SAGnBhD,eAGTH,IAAM,WACJ,QAASA,OACPd,KAAKkE,EAAItD,GAAGkB,QACZ9B,KAAKH,QAAUG,KAAKkE,EAAErE,QA+DxB,MA5DAiB,KAAI8C,UAAUhC,OAAS,WACrB,GAAIuC,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASvG,QAAQ6H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAGtC,OAAOpB,MAAM8D,KAAMH,QAE5CnE,QAGLc,IAAI8C,UAAUW,WAAa,SAASC,KAClC,MAAOA,KAAInC,QAAUmC,IAAIpC,UAAY,SAAU0B,OAC7C,MAAO,UAASvE,GACd,MAAOuE,OAAMlC,OAAOnE,gBAAgB8B,MAErCS,OAGLc,IAAI8C,UAAUzB,QAAU,WACtB,GAAIgC,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASvG,QAAQ6H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAG/B,QAAQ3B,MAAM8D,KAAMH,QAE7CnE,QAGLc,IAAI8C,UAAUa,OAAS,WACrB,GAAIN,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASvG,QAAQ6H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAGO,OAAOjE,MAAM8D,KAAMH,QAE5CnE,QAGLc,IAAI8C,UAAUc,gBAAkB,WAC9B,MAAO,UAAUZ,OACf,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMI,EAAEtC,OAAOnE,gBAAgBiC,YAGzCM,OAGLc,IAAI8C,UAAUe,YAAc,SAASH,KAEnC,MADAxE,MAAKuE,WAAWC,KACTA,IAAIvC,UAAY,SAAU6B,OAC/B,MAAO,UAASvE,GACd,MAAOuE,OAAM3B,QAAQ5C,EAAEC,OAAO0C,UAE/BlC,OAGEc,OAGTC,YAAc,WACZ,QAASA,aAAY6B,UAAWL,aAC9BvC,KAAK4C,UAAYA,UACjB5C,KAAK4E,MAAQrC,YAAYyB,YAAYpB,WACrC5C,KAAKuC,YAAcA,YAqUrB,MAlUAxB,aAAY6C,UAAU9B,MAAQ,WAC5B,MAAO,IAAIhB,MAGbC,YAAY6C,UAAUiB,WAAa,SAAS/C,MAAOgD,QAASN,KAC1D,GAAI1E,QAMJ,OALW,OAAP0E,MACFA,IAAMxE,KAAK4E,MAAMG,cAEnBjF,WACAgC,MAAMyC,WAAWC,KACVA,IAAIvC,UAAY,SAAS1C,GAC9B,GAAIyF,OACJ,QAAIA,OAASzF,EAAEC,OAAO0C,SACpBpC,QAAQyD,KAAKuB,QAAQE,SACrBlD,MAAM2C,OAAOK,QAAQE,SACdA,OAAO,eAEPlD,MAAMK,QAAQrC,WAK3BiB,YAAY6C,UAAUqB,gBAAkB,SAASC,KAAMJ,SACrD,GAAIhD,OAAOqD,KAAMX,IAAK1E,QAAS+C,GAAIC,IAKnC,KAJAhB,MAAQ9B,KAAK8B,QACRpF,QAAQ0I,QAAQF,QACnBA,MAAQA,OAELrC,GAAK,EAAGC,KAAOoC,KAAKnC,OAAaD,KAALD,GAAWA,KAC1CsC,KAAOD,KAAKrC,IACZ2B,IAAMM,QAAQK,MACdrF,WACAgC,MAAMyC,WAAWC,KACjBA,IAAIvC,UAAY,SAAS1C,GAGvB,MAFAO,SAAQyD,KAAKhE,EAAEC,OAAO0C,QACtBJ,MAAM2C,OAAOlF,EAAEC,OAAO0C,QAClBpC,QAAQiD,QAAUmC,KAAKnC,OAClBjB,MAAMK,QAAQrC,SADvB,OAKJ,OAAoB,KAAhBoF,KAAKnC,OACAnC,GAAGyE,SAELvD,MAAMjC,SAefkB,YAAY6C,UAAU0B,WAAa,WACjC,GAAIxD,OAAO0C,GAUX,OATA1C,OAAQ9B,KAAK8B,QACT9B,KAAK4E,MAAMU,YACbd,IAAMxE,KAAK4E,MAAMU,aACjBxD,MAAM6C,YAAYH,MAElBxE,KAAK6E,WAAW/C,MAAO,SAASkD,QAC9B,MAAOA,QAAOO,MAGXzD,MAAMjC,SAefkB,YAAY6C,UAAU4B,MAAQ,WAC5B,GAAI1D,OAAO0C,GAIX,OAHA1C,OAAQ9B,KAAK8B,QACb0C,IAAMxE,KAAK4E,MAAMY,QACjB1D,MAAM6C,YAAYH,KACX1C,MAAMjC,SAgBfkB,YAAY6C,UAAU,UAAY,SAAS2B,KACzC,GAAIzD,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAM,UAAUW,MAChCzD,MAAMjC,SAgBfkB,YAAY6C,UAAU6B,OAAS,SAASP,MACtC,MAAOlF,MAAKiF,gBAAgBC,KAAM,SAAUpB,OAC1C,MAAO,UAASqB,MACd,MAAOrB,OAAMc,MAAMc,IAAIP,QAExBnF,QAgBLe,YAAY6C,UAAU+B,OAAS,SAAST,MACtC,MAAOlF,MAAKiF,gBAAgBC,KAAM,SAAUpB,OAC1C,MAAO,UAASqB,MACd,MAAOrB,OAAMc,MAAMgB,IAAIT,QAExBnF,QAeLe,YAAY6C,UAAUiC,OAAS,WAC7B,GAAI/D,MASJ,OARAA,OAAQ9B,KAAK8B,QACT9B,KAAK4E,MAAMiB,OACb/D,MAAM6C,YAAY3E,KAAK4E,MAAMiB,UAE7B7F,KAAK6E,WAAW/C,MAAO,SAASkD,QAC9B,MAAOA,QAAOc,QAGXhE,MAAMjC,SAGfkB,YAAY6C,UAAUmC,UAAY,SAASC,OACzC,GAAIlE,OAAO/C,UAAWkH,UAAWnH,SAAU0F,GAS3C,OARA1C,OAAQ9B,KAAK8B,QACbmE,UAAYD,MAAMC,UAClBnH,SAAWkH,MAAMlH,SACjBC,UAAYiH,MAAMjH,UAClByF,IAAMyB,UAAYjG,KAAK4E,MAAMpB,MAAMyC,WAAWlB,WAAWjG,SAAUC,WAAaiB,KAAK4E,MAAMG,WAAWjG,SAAUC,WAChHiB,KAAK6E,WAAW/C,MAAO,SAAUkD,QAC/B,MAAOA,QAAOc,OACZtB,KACG1C,MAAMjC,SAGfkB,YAAY6C,UAAUsC,UAAY,SAASF,OACzC,MAAOhG,MAAK+F,UAAUC,QAkBxBjF,YAAY6C,UAAUuC,KAAO,SAAShD,SAIpC,MAHe,OAAXA,UACFA,YAEKnD,KAAKoG,OAAO,OAAQjD,UAmB7BpC,YAAY6C,UAAUwC,OAAS,SAASH,UAAW9C,SACjD,GAAIe,EAWJ,OAViB,OAAb+B,YACFA,UAAY,QAEC,MAAX9C,UACFA,YAEFe,EAAI,GAAIlD,OACRkD,EAAE+B,UAAYA,UACd/B,EAAEpF,SAAWuC,mBAAmB8B,SAChCe,EAAEnF,UAAYoE,QAAQpE,WAAavB,oBAAoBuB,UAChDiB,KAAK+F,UAAU7B,IAexBnD,YAAY6C,UAAUyC,MAAQ,WAC5B,GAAIvE,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAMyB,SACtBvE,MAAMjC,SAefkB,YAAY6C,UAAU0C,KAAO,SAASf,KACpC,GAAIzD,OAAO0C,GAaX,OAZA1C,OAAQ9B,KAAK8B,QACb0C,IAAMxE,KAAK4E,MAAM2B,IAAIhB,KACrBzD,MAAMyC,WAAWC,KACjBA,IAAIvC,UAAY,SAAU6B,OACxB,MAAO,UAASvE,GACd,MAAIA,GAAEC,OAAO0C,OACJJ,MAAMK,QAAQ5C,EAAEC,OAAO0C,QAEvBJ,MAAMF,OAAO,GAAKkC,MAAMlB,UAAY,IAAM2C,IAAM,iBAG1DvF,MACI8B,MAAMjC,SAefkB,YAAY6C,UAAU4C,OAAS,SAAShD,MAAO+B,KAC7C,GAAIzD,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAMpB,MAAMA,OAAO+C,IAAIhB,MACvCzD,MAAMjC,SAGfkB,YAAY6C,UAAUoC,MAAQ,WAC5B,MAAO,IAAIhF,QAGND,eAGTC,MAAQ,WACN,QAASA,SACPhB,KAAKiG,UAAY,OACjBjG,KAAKlB,SAAW,OAChBkB,KAAKjB,UAAY7B,gBAAgBqB,KAsDnC,MAnDAyC,OAAM4C,UAAU6C,IAAM,SAASX,OAE7B,MADA9F,MAAKlB,SAAWjC,YAAY6J,WAAWZ,OAAO,GACvC9F,MAGTgB,MAAM4C,UAAU+C,IAAM,SAASb,OAE7B,MADA9F,MAAKlB,SAAWjC,YAAY+J,WAAWd,OAAO,GACvC9F,MAGTgB,MAAM4C,UAAUiD,KAAO,SAASf,OAE9B,MADA9F,MAAKlB,SAAWjC,YAAY6J,WAAWZ,OAChC9F,MAGTgB,MAAM4C,UAAUkD,KAAO,SAAShB,OAE9B,MADA9F,MAAKlB,SAAWjC,YAAY+J,WAAWd,OAChC9F,MAGTgB,MAAM4C,UAAUmD,IAAM,SAASjB,OAE7B,MADA9F,MAAKlB,SAAWjC,YAAYmK,KAAKlB,OAC1B9F,MAGTgB,MAAM4C,UAAUqD,SAAW,SAASC,IAAKC,GAAIC,MAAOC,MAQlD,MAPa,OAATD,QACFA,OAAQ,GAEE,MAARC,OACFA,MAAO,GAETrH,KAAKlB,SAAWjC,YAAYyG,MAAM4D,IAAKC,GAAIC,MAAOC,MAC3CrH,MAGTgB,MAAM4C,UAAU0D,MAAQ,SAASC,QAE/B,MADAvH,MAAKjB,UAAYwI,OAASrK,gBAAgBwB,WAAaxB,gBAAgBuB,KAChEuB,MAGTgB,MAAM4C,UAAU4D,KAAO,SAASD,QAE9B,MADAvH,MAAKjB,UAAYwI,OAASrK,gBAAgBsB,WAAatB,gBAAgBqB,KAChEyB,MAGTgB,MAAM4C,UAAU6D,OAAS,SAASxB,WAEhC,MADAjG,MAAKiG,UAAYA,UACVjG,MAGFgB,UAeP0G,UAAW,SAAS9E,UAAW+E,SAAUzE,MAIvC,MAHY,OAARA,OACFA,KAAO9F,OAAOiB,WAETkD,iBAAiBqB,WAAYM,MAAMnD,KAAK,SAASwC,aACtD,GAAIzC,QAEJ,OADAA,SAAU6H,SAAS,GAAI5G,aAAY6B,UAAWL,cACvCvF,uBAAuBuF,YAAY1C,QAASC,YAGvD8H,WAAY,SAASlF,WAAYrC,SAAU6C,MAIzC,MAHY,OAARA,OACFA,KAAO9F,OAAOiB,WAETkD,gBAAgBmB,WAAYQ,MAAMnD,KAAK,SAASwC,aACrD,GAAIsF,cAAc/H,QAAS8C,SAW3B,OAVAiF,cAAe,WACb,GAAIhF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBiF,SAASvE,KAAK,GAAIxC,aAAY6B,UAAWL,aAE3C,OAAOuF,aAEThI,QAAUO,SAASG,MAAM,KAAMqH,cACxB7K,uBAAuBuF,YAAY1C,QAASC,YAGvDiI,cAAe,SAAS1H,SAAU6C,MAIhC,MAHY,OAARA,OACFA,KAAO9F,OAAOiB,WAETiD,eAAevB,KAAK,SAAU+D,OACnC,MAAO,YACL,GAAI+D,cAAc/H,QAAS8C,UAAWF,WAAYH,WAalD,OAZAG,YAAasF,MAAMpE,UAAUnH,MAAM+D,MAAMrD,GAAG6F,kBAC5CT,YAAc,GAAItB,aAAYyB,WAAYQ,MAC1C2E,aAAe,WACb,GAAIhF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBiF,SAASvE,KAAK,GAAIxC,aAAY6B,UAAWL,aAE3C,OAAOuF,aAEThI,QAAUO,SAASG,MAAM,KAAMqH,cACxB7K,uBAAuBuF,YAAY1C,QAASC,WAEpDE,QAULmB,cAAe,WACb,MAAOA,kBAUT8G,eAAgB,WACd,MAAO9G,iBAAgBpB,KAAK,WAC1B,GAAI+B,MAGJ,OAFAA,OAAQ,GAAIhB,KACZgB,MAAM6C,YAAYjH,UAAUuK,eAAe5K,SACpCyE,MAAMjC,UACZ,WAAW,WACZ,MAAOV,MAAKG,IAAI,eAAiBjC,OAAS,yBAG9C6K,eAAgBnL,aAChBoL,MAAO,WACL,MAAIrL,iBAAgBiG,OAAS,EACpBnC,GAAGwH,IAAItL,iBAEP8D,GAAGyE,UAWdgD,aAAc,WACZ,MAAO/G,gBAAevB,KAAK,WACzB,GAAI2C,YAAYH,WAGhB,OAFAA,aAAc,KACdG,WAAasF,MAAMpE,UAAUnH,MAAM+D,MAAMrD,GAAG6F,kBACrCzB,gBAAgBmB,WAAYtF,OAAOgB,UAAU2B,KAAK,SAASwC,aAChE,GAAIqC,OAAOhC,UAAW0F,MAgBtB,OAfAA,QAAS,WACP,GAAIzF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvB+B,MAAQrC,YAAYyB,YAAYpB,WAChCkF,SAASvE,MACPf,KAAMI,UACN2F,QAAS3D,MAAM2D,QACfC,cAAe5D,MAAM4D,cACrBC,QAAST,MAAMpE,UAAUnH,MAAM+D,MAAMoE,MAAM8D,aAG/C,OAAOZ,aAEFvF,YAAY1C,QAAQE,KAAK,WAC9B,OACEyC,KAAMrF,GAAGqF,KACTpD,QAASjC,GAAGiC,QACZyI,aAAcS,sBAW/BjE,KAAKrE","sourcesContent":["\n/**\n @license $indexedDBProvider\n (c) 2014 Bram Whillock (bramski)\n Forked from original work by clements Capitan (webcss)\n License: MIT\n */\n\n(function() {\n 'use strict';\n var __slice = [].slice;\n\n angular.module('indexedDB', []).provider('$indexedDB', function() {\n var IDBKeyRange, allTransactions, apiDirection, appendResultsToPromise, applyNeededUpgrades, cursorDirection, db, dbMode, dbName, dbPromise, dbVersion, defaultQueryOptions, errorMessageFor, indexedDB, readyState, upgradesByVersion;\n indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n IDBKeyRange = window.IDBKeyRange || window.mozIDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;\n dbMode = {\n readonly: \"readonly\",\n readwrite: \"readwrite\"\n };\n readyState = {\n pending: \"pending\"\n };\n cursorDirection = {\n next: \"next\",\n nextunique: \"nextunique\",\n prev: \"prev\",\n prevunique: \"prevunique\"\n };\n apiDirection = {\n ascending: cursorDirection.next,\n descending: cursorDirection.prev\n };\n dbName = '';\n dbVersion = 1;\n db = null;\n upgradesByVersion = {};\n dbPromise = null;\n allTransactions = [];\n defaultQueryOptions = {\n useIndex: void 0,\n keyRange: null,\n direction: cursorDirection.next\n };\n applyNeededUpgrades = function(oldVersion, event, db, tx, $log) {\n var version;\n for (version in upgradesByVersion) {\n if (!upgradesByVersion.hasOwnProperty(version) || version <= oldVersion) {\n continue;\n }\n $log.log(\"$indexedDB: Running upgrade : \" + version + \" from \" + oldVersion);\n upgradesByVersion[version](event, db, tx);\n }\n };\n errorMessageFor = function(e) {\n if (e.target.readyState === readyState.pending) {\n return \"Error: Operation pending\";\n } else {\n return e.target.webkitErrorMessage || e.target.error.message || e.target.errorCode;\n }\n };\n appendResultsToPromise = function(promise, results) {\n if (results !== void 0) {\n return promise.then(function() {\n return results;\n });\n } else {\n return promise;\n }\n };\n\n /**\n @ngdoc function\n @name $indexedDBProvider.connection\n @function\n \n @description\n sets the name of the database to use\n \n @param {string} databaseName database name.\n @returns {object} this\n */\n this.connection = function(databaseName) {\n dbName = databaseName;\n return this;\n };\n\n /**\n @ngdoc function\n @name $indexedDBProvider.upgradeDatabase\n @function\n \n @description provides version number and steps to upgrade the database wrapped in a\n callback function\n \n @param {number} newVersion new version number for the database.\n @param {function} callback the callback which proceeds the upgrade\n @returns {object} this\n */\n this.upgradeDatabase = function(newVersion, callback) {\n upgradesByVersion[newVersion] = callback;\n dbVersion = Math.max.apply(null, Object.keys(upgradesByVersion));\n return this;\n };\n this.$get = [\n '$q', '$rootScope', '$log', function($q, $rootScope, $log) {\n var DbQ, ObjectStore, Query, Transaction, addTransaction, closeDatabase, createDatabaseConnection, keyRangeForOptions, openDatabase, openTransaction, rejectWithError, validateStoreNames;\n rejectWithError = function(deferred) {\n return function(error) {\n return $rootScope.$apply(function() {\n return deferred.reject(errorMessageFor(error));\n });\n };\n };\n createDatabaseConnection = function() {\n var dbReq, deferred;\n deferred = $q.defer();\n dbReq = indexedDB.open(dbName, parseInt(dbVersion) || 1);\n dbReq.onsuccess = function() {\n db = dbReq.result;\n $rootScope.$apply(function() {\n deferred.resolve(db);\n });\n };\n dbReq.onblocked = dbReq.onerror = rejectWithError(deferred);\n dbReq.onupgradeneeded = function(event) {\n var tx;\n db = event.target.result;\n tx = event.target.transaction;\n $log.log(\"$indexedDB: Upgrading database '\" + db.name + \"' from version \" + event.oldVersion + \" to version \" + event.newVersion + \" ...\");\n applyNeededUpgrades(event.oldVersion, event, db, tx, $log);\n };\n return deferred.promise;\n };\n openDatabase = function() {\n return dbPromise || (dbPromise = createDatabaseConnection());\n };\n closeDatabase = function() {\n return openDatabase().then(function() {\n db.close();\n db = null;\n return dbPromise = null;\n });\n };\n validateStoreNames = function(storeNames) {\n var found, storeName, _i, _len;\n found = true;\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n found = found & db.objectStoreNames.contains(storeName);\n }\n return found;\n };\n openTransaction = function(storeNames, mode) {\n if (mode == null) {\n mode = dbMode.readonly;\n }\n return openDatabase().then(function() {\n if (!validateStoreNames(storeNames)) {\n return $q.reject(\"Object stores \" + storeNames + \" do not exist.\");\n }\n return new Transaction(storeNames, mode);\n });\n };\n keyRangeForOptions = function(options) {\n if (options.beginKey && options.endKey) {\n return IDBKeyRange.bound(options.beginKey, options.endKey);\n }\n };\n addTransaction = function(transaction) {\n allTransactions.push(transaction.promise);\n return transaction.promise[\"finally\"](function() {\n var index;\n index = allTransactions.indexOf(transaction.promise);\n if (index > -1) {\n return allTransactions.splice(index, 1);\n }\n });\n };\n Transaction = (function() {\n function Transaction(storeNames, mode) {\n if (mode == null) {\n mode = dbMode.readonly;\n }\n this.transaction = db.transaction(storeNames, mode);\n this.defer = $q.defer();\n this.promise = this.defer.promise;\n this.setupCallbacks();\n }\n\n Transaction.prototype.setupCallbacks = function() {\n this.transaction.oncomplete = (function(_this) {\n return function() {\n return $rootScope.$apply(function() {\n return _this.defer.resolve(\"Transaction Completed\");\n });\n };\n })(this);\n this.transaction.onabort = (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.defer.reject(\"Transaction Aborted\", error);\n });\n };\n })(this);\n this.transaction.onerror = (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.defer.reject(\"Transaction Error\", error);\n });\n };\n })(this);\n return addTransaction(this);\n };\n\n Transaction.prototype.objectStore = function(storeName) {\n return this.transaction.objectStore(storeName);\n };\n\n Transaction.prototype.abort = function() {\n return this.transaction.abort();\n };\n\n return Transaction;\n\n })();\n DbQ = (function() {\n function DbQ() {\n this.q = $q.defer();\n this.promise = this.q.promise;\n }\n\n DbQ.prototype.reject = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).reject.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.rejectWith = function(req) {\n return req.onerror = req.onblocked = (function(_this) {\n return function(e) {\n return _this.reject(errorMessageFor(e));\n };\n })(this);\n };\n\n DbQ.prototype.resolve = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).resolve.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.notify = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).notify.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.dbErrorFunction = function() {\n return (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.q.reject(errorMessageFor(error));\n });\n };\n })(this);\n };\n\n DbQ.prototype.resolveWith = function(req) {\n this.rejectWith(req);\n return req.onsuccess = (function(_this) {\n return function(e) {\n return _this.resolve(e.target.result);\n };\n })(this);\n };\n\n return DbQ;\n\n })();\n ObjectStore = (function() {\n function ObjectStore(storeName, transaction) {\n this.storeName = storeName;\n this.store = transaction.objectStore(storeName);\n this.transaction = transaction;\n }\n\n ObjectStore.prototype.defer = function() {\n return new DbQ();\n };\n\n ObjectStore.prototype._mapCursor = function(defer, mapFunc, req) {\n var results;\n if (req == null) {\n req = this.store.openCursor();\n }\n results = [];\n defer.rejectWith(req);\n return req.onsuccess = function(e) {\n var cursor;\n if (cursor = e.target.result) {\n results.push(mapFunc(cursor));\n defer.notify(mapFunc(cursor));\n return cursor[\"continue\"]();\n } else {\n return defer.resolve(results);\n }\n };\n };\n\n ObjectStore.prototype._arrayOperation = function(data, mapFunc) {\n var defer, item, req, results, _i, _len;\n defer = this.defer();\n if (!angular.isArray(data)) {\n data = [data];\n }\n for (_i = 0, _len = data.length; _i < _len; _i++) {\n item = data[_i];\n req = mapFunc(item);\n results = [];\n defer.rejectWith(req);\n req.onsuccess = function(e) {\n results.push(e.target.result);\n defer.notify(e.target.result);\n if (results.length >= data.length) {\n return defer.resolve(results);\n }\n };\n }\n if (data.length === 0) {\n return $q.when([]);\n }\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.getAllKeys\n @function\n \n @description\n gets all the keys\n \n @returns {Q} A promise which will result with all the keys\n */\n\n ObjectStore.prototype.getAllKeys = function() {\n var defer, req;\n defer = this.defer();\n if (this.store.getAllKeys) {\n req = this.store.getAllKeys();\n defer.resolveWith(req);\n } else {\n this._mapCursor(defer, function(cursor) {\n return cursor.key;\n });\n }\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.clear\n @function\n \n @description\n clears all objects from this store\n \n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.clear = function() {\n var defer, req;\n defer = this.defer();\n req = this.store.clear();\n defer.resolveWith(req);\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.delete\n @function\n \n @description\n Deletes the item at the key. The operation is ignored if the item does not exist.\n \n @param {key} The key of the object to delete.\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype[\"delete\"] = function(key) {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store[\"delete\"](key));\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.upsert\n @function\n \n @description\n Updates the given item\n \n @param {data} Details of the item or items to update or insert\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.upsert = function(data) {\n return this._arrayOperation(data, (function(_this) {\n return function(item) {\n return _this.store.put(item);\n };\n })(this));\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.insert\n @function\n \n @description\n Updates the given item\n \n @param {data} Details of the item or items to insert\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.insert = function(data) {\n return this._arrayOperation(data, (function(_this) {\n return function(item) {\n return _this.store.add(item);\n };\n })(this));\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.getAll\n @function\n \n @description\n Fetches all items from the store\n \n @returns {Q} A promise which resolves with copies of all items in the store\n */\n\n ObjectStore.prototype.getAll = function() {\n var defer;\n defer = this.defer();\n if (this.store.getAll) {\n defer.resolveWith(this.store.getAll());\n } else {\n this._mapCursor(defer, function(cursor) {\n return cursor.value;\n });\n }\n return defer.promise;\n };\n\n ObjectStore.prototype.eachWhere = function(query) {\n var defer, direction, indexName, keyRange, req;\n defer = this.defer();\n indexName = query.indexName;\n keyRange = query.keyRange;\n direction = query.direction;\n req = indexName ? this.store.index(indexName).openCursor(keyRange, direction) : this.store.openCursor(keyRange, direction);\n this._mapCursor(defer, (function(cursor) {\n return cursor.value;\n }), req);\n return defer.promise;\n };\n\n ObjectStore.prototype.findWhere = function(query) {\n return this.eachWhere(query);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.each\n @function\n \n @description\n Iterates through the items in the store\n \n @param {options.beginKey} the key to start iterating from\n @param {options.endKey} the key to stop iterating at\n @param {options.direction} Direction to iterate in\n @returns {Q} A promise which notifies with each individual item and resolves with all of them.\n */\n\n ObjectStore.prototype.each = function(options) {\n if (options == null) {\n options = {};\n }\n return this.eachBy(void 0, options);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.eachBy\n @function\n \n @description\n Iterates through the items in the store using an index\n \n @param {indexName} name of the index to use instead of the primary\n @param {options.beginKey} the key to start iterating from\n @param {options.endKey} the key to stop iterating at\n @param {options.direction} Direction to iterate in\n @returns {Q} A promise which notifies with each individual item and resolves with all of them.\n */\n\n ObjectStore.prototype.eachBy = function(indexName, options) {\n var q;\n if (indexName == null) {\n indexName = void 0;\n }\n if (options == null) {\n options = {};\n }\n q = new Query();\n q.indexName = indexName;\n q.keyRange = keyRangeForOptions(options);\n q.direction = options.direction || defaultQueryOptions.direction;\n return this.eachWhere(q);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.count\n @function\n \n @description\n Returns a count of the items in the store\n \n @returns {Q} A promise which resolves with the count of all the items in the store.\n */\n\n ObjectStore.prototype.count = function() {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store.count());\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.find\n @function\n \n @description\n Fetches an item from the store\n \n @returns {Q} A promise which resolves with the item from the store\n */\n\n ObjectStore.prototype.find = function(key) {\n var defer, req;\n defer = this.defer();\n req = this.store.get(key);\n defer.rejectWith(req);\n req.onsuccess = (function(_this) {\n return function(e) {\n if (e.target.result) {\n return defer.resolve(e.target.result);\n } else {\n return defer.reject(\"\" + _this.storeName + \":\" + key + \" not found.\");\n }\n };\n })(this);\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.findBy\n @function\n \n @description\n Fetches an item from the store using a named index.\n \n @returns {Q} A promise which resolves with the item from the store.\n */\n\n ObjectStore.prototype.findBy = function(index, key) {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store.index(index).get(key));\n return defer.promise;\n };\n\n ObjectStore.prototype.query = function() {\n return new Query();\n };\n\n return ObjectStore;\n\n })();\n Query = (function() {\n function Query() {\n this.indexName = void 0;\n this.keyRange = void 0;\n this.direction = cursorDirection.next;\n }\n\n Query.prototype.$lt = function(value) {\n this.keyRange = IDBKeyRange.upperBound(value, true);\n return this;\n };\n\n Query.prototype.$gt = function(value) {\n this.keyRange = IDBKeyRange.lowerBound(value, true);\n return this;\n };\n\n Query.prototype.$lte = function(value) {\n this.keyRange = IDBKeyRange.upperBound(value);\n return this;\n };\n\n Query.prototype.$gte = function(value) {\n this.keyRange = IDBKeyRange.lowerBound(value);\n return this;\n };\n\n Query.prototype.$eq = function(value) {\n this.keyRange = IDBKeyRange.only(value);\n return this;\n };\n\n Query.prototype.$between = function(low, hi, exLow, exHi) {\n if (exLow == null) {\n exLow = false;\n }\n if (exHi == null) {\n exHi = false;\n }\n this.keyRange = IDBKeyRange.bound(low, hi, exLow, exHi);\n return this;\n };\n\n Query.prototype.$desc = function(unique) {\n this.direction = unique ? cursorDirection.prevunique : cursorDirection.prev;\n return this;\n };\n\n Query.prototype.$asc = function(unique) {\n this.direction = unique ? cursorDirection.nextunique : cursorDirection.next;\n return this;\n };\n\n Query.prototype.$index = function(indexName) {\n this.indexName = indexName;\n return this;\n };\n\n return Query;\n\n })();\n return {\n\n /**\n @ngdoc method\n @name $indexedDB.objectStore\n @function\n \n @description an IDBObjectStore to use\n \n @params {string} storeName the name of the objectstore to use\n @returns {object} ObjectStore\n */\n openStore: function(storeName, callBack, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openTransaction([storeName], mode).then(function(transaction) {\n var results;\n results = callBack(new ObjectStore(storeName, transaction));\n return appendResultsToPromise(transaction.promise, results);\n });\n },\n openStores: function(storeNames, callback, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openTransaction(storeNames, mode).then(function(transaction) {\n var objectStores, results, storeName;\n objectStores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n _results.push(new ObjectStore(storeName, transaction));\n }\n return _results;\n })();\n results = callback.apply(null, objectStores);\n return appendResultsToPromise(transaction.promise, results);\n });\n },\n openAllStores: function(callback, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openDatabase().then((function(_this) {\n return function() {\n var objectStores, results, storeName, storeNames, transaction;\n storeNames = Array.prototype.slice.apply(db.objectStoreNames);\n transaction = new Transaction(storeNames, mode);\n objectStores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n _results.push(new ObjectStore(storeName, transaction));\n }\n return _results;\n })();\n results = callback.apply(null, objectStores);\n return appendResultsToPromise(transaction.promise, results);\n };\n })(this));\n },\n\n /**\n @ngdoc method\n @name $indexedDB.closeDatabase\n @function\n \n @description Closes the database for use and completes all transactions.\n */\n closeDatabase: function() {\n return closeDatabase();\n },\n\n /**\n @ngdoc method\n @name $indexedDB.deleteDatabase\n @function\n \n @description Closes and then destroys the current database. Returns a promise that resolves when this is persisted.\n */\n deleteDatabase: function() {\n return closeDatabase().then(function() {\n var defer;\n defer = new DbQ();\n defer.resolveWith(indexedDB.deleteDatabase(dbName));\n return defer.promise;\n })[\"finally\"](function() {\n return $log.log(\"$indexedDB: \" + dbName + \" database deleted.\");\n });\n },\n queryDirection: apiDirection,\n flush: function() {\n if (allTransactions.length > 0) {\n return $q.all(allTransactions);\n } else {\n return $q.when([]);\n }\n },\n\n /**\n @ngdoc method\n @name $indexedDB.databaseInfo\n @function\n \n @description Returns information about this database.\n */\n databaseInfo: function() {\n return openDatabase().then(function() {\n var storeNames, transaction;\n transaction = null;\n storeNames = Array.prototype.slice.apply(db.objectStoreNames);\n return openTransaction(storeNames, dbMode.readonly).then(function(transaction) {\n var store, storeName, stores;\n stores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n store = transaction.objectStore(storeName);\n _results.push({\n name: storeName,\n keyPath: store.keyPath,\n autoIncrement: store.autoIncrement,\n indices: Array.prototype.slice.apply(store.indexNames)\n });\n }\n return _results;\n })();\n return transaction.promise.then(function() {\n return {\n name: db.name,\n version: db.version,\n objectStores: stores\n };\n });\n });\n });\n }\n };\n }\n ];\n });\n\n}).call(this);\n\n//# sourceMappingURL=angular-indexed-db.js.map\n"]} \ No newline at end of file +{"version":3,"sources":["angular-indexed-db.js"],"names":["__slice","slice","angular","module","provider","IDBKeyRange","allTransactions","apiDirection","appendResultsToPromise","applyNeededUpgrades","cursorDirection","db","dbMode","dbName","dbPromise","dbVersion","defaultQueryOptions","errorMessageFor","indexedDB","readyState","upgradesByVersion","window","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","mozIDBKeyRange","webkitIDBKeyRange","msIDBKeyRange","readonly","readwrite","pending","next","nextunique","prev","prevunique","ascending","descending","useIndex","keyRange","direction","oldVersion","event","tx","$log","version","hasOwnProperty","log","e","target","webkitErrorMessage","error","message","errorCode","promise","results","then","this","connection","databaseName","upgradeDatabase","newVersion","callback","Math","max","apply","Object","keys","$get","$q","$rootScope","DbQ","ObjectStore","Query","Transaction","addTransaction","closeDatabase","createDatabaseConnection","keyRangeForOptions","openDatabase","openTransaction","rejectWithError","validateStoreNames","deferred","$apply","reject","dbReq","defer","open","parseInt","onsuccess","result","resolve","onblocked","onerror","onupgradeneeded","transaction","name","close","storeNames","found","storeName","_i","_len","length","objectStoreNames","contains","mode","options","beginKey","endKey","bound","push","index","indexOf","splice","setupCallbacks","prototype","oncomplete","_this","onabort","objectStore","abort","q","args","arguments","call","_ref","rejectWith","req","notify","dbErrorFunction","resolveWith","store","_mapCursor","mapFunc","openCursor","cursor","_arrayOperation","data","item","isArray","when","getAllKeys","key","clear","upsert","put","insert","add","getAll","value","eachWhere","query","indexName","findWhere","each","eachBy","count","find","get","findBy","$lt","upperBound","$gt","lowerBound","$lte","$gte","$eq","only","$between","low","hi","exLow","exHi","$desc","unique","$asc","$index","openStore","callBack","openStores","objectStores","_results","openAllStores","Array","deleteDatabase","queryDirection","flush","all","databaseInfo","stores","keyPath","autoIncrement","indices","indexNames"],"mappings":"CAQA,WACE,YACA,IAAIA,YAAaC,KAEjBC,SAAQC,OAAO,gBAAiBC,SAAS,aAAc,WACrD,GAAIC,aAAaC,gBAAiBC,aAAcC,uBAAwBC,oBAAqBC,gBAAiBC,GAAIC,OAAQC,OAAQC,UAAWC,UAAWC,oBAAqBC,gBAAiBC,UAAWC,WAAYC,iBACrNF,WAAYG,OAAOH,WAAaG,OAAOC,cAAgBD,OAAOE,iBAAmBF,OAAOG,aAAeH,OAAOI,cAC9GpB,YAAcgB,OAAOhB,aAAegB,OAAOK,gBAAkBL,OAAOM,mBAAqBN,OAAOO,cAChGhB,QACEiB,SAAU,WACVC,UAAW,aAEbX,YACEY,QAAS,WAEXrB,iBACEsB,KAAM,OACNC,WAAY,aACZC,KAAM,OACNC,WAAY,cAEd5B,cACE6B,UAAW1B,gBAAgBsB,KAC3BK,WAAY3B,gBAAgBwB,MAE9BrB,OAAS,GACTE,UAAY,EACZJ,GAAK,KACLS,qBACAN,UAAY,KACZR,mBACAU,qBACEsB,SAAU,OACVC,SAAU,KACVC,UAAW9B,gBAAgBsB,MAE7BvB,oBAAsB,SAASgC,WAAYC,MAAO/B,GAAIgC,GAAIC,MACxD,GAAIC,QACJ,KAAKA,UAAWzB,oBACTA,kBAAkB0B,eAAeD,UAAuBJ,YAAXI,UAGlDD,KAAKG,IAAI,iCAAmCF,QAAU,SAAWJ,YACjErB,kBAAkByB,SAASH,MAAO/B,GAAIgC,MAG1C1B,gBAAkB,SAAS+B,GACzB,MAAIA,GAAEC,OAAO9B,aAAeA,WAAWY,QAC9B,2BAEAiB,EAAEC,OAAOC,oBAAsBF,EAAEC,OAAOE,MAAMC,SAAWJ,EAAEC,OAAOI,WAG7E7C,uBAAyB,SAAS8C,QAASC,SACzC,MAAgB,UAAZA,QACKD,QAAQE,KAAK,WAClB,MAAOD,WAGFD,SAeXG,KAAKC,WAAa,SAASC,cAEzB,MADA9C,QAAS8C,aACFF,MAeTA,KAAKG,gBAAkB,SAASC,WAAYC,UAG1C,MAFA1C,mBAAkByC,YAAcC,SAChC/C,UAAYgD,KAAKC,IAAIC,MAAM,KAAMC,OAAOC,KAAK/C,oBACtCqC,MAETA,KAAKW,MACH,KAAM,aAAc,OAAQ,SAASC,GAAIC,WAAY1B,MACnD,GAAI2B,KAAKC,YAAaC,MAAOC,YAAaC,eAAgBC,cAAeC,yBAA0BC,mBAAoBC,aAAcC,gBAAiBC,gBAAiBC,kBAskBvK,OArkBAD,iBAAkB,SAASE,UACzB,MAAO,UAAShC,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOD,UAASE,OAAOpE,gBAAgBkC,YAI7C0B,yBAA2B,WACzB,GAAIS,OAAOH,QAiBX,OAhBAA,UAAWd,GAAGkB,QACdD,MAAQpE,UAAUsE,KAAK3E,OAAQ4E,SAAS1E,YAAc,GACtDuE,MAAMI,UAAY,WAChB/E,GAAK2E,MAAMK,OACXrB,WAAWc,OAAO,WAChBD,SAASS,QAAQjF,OAGrB2E,MAAMO,UAAYP,MAAMQ,QAAUb,gBAAgBE,UAClDG,MAAMS,gBAAkB,SAASrD,OAC/B,GAAIC,GACJhC,IAAK+B,MAAMO,OAAO0C,OAClBhD,GAAKD,MAAMO,OAAO+C,YAClBpD,KAAKG,IAAI,mCAAqCpC,GAAGsF,KAAO,kBAAoBvD,MAAMD,WAAa,eAAiBC,MAAMmB,WAAa,QACnIpD,oBAAoBiC,MAAMD,WAAYC,MAAO/B,GAAIgC,GAAIC,OAEhDuC,SAAS7B,SAElByB,aAAe,WACb,MAAOjE,aAAcA,UAAY+D,6BAEnCD,cAAgB,WACd,MAAOG,gBAAevB,KAAK,WAGzB,MAFA7C,IAAGuF,QACHvF,GAAK,KACEG,UAAY,QAGvBoE,mBAAqB,SAASiB,YAC5B,GAAIC,OAAOC,UAAWC,GAAIC,IAE1B,KADAH,OAAQ,EACHE,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBF,OAAgBzF,GAAG8F,iBAAiBC,SAASL,UAE/C,OAAOD,QAETpB,gBAAkB,SAASmB,WAAYQ,MAIrC,MAHY,OAARA,OACFA,KAAO/F,OAAOiB,UAETkD,eAAevB,KAAK,WACzB,MAAK0B,oBAAmBiB,YAGjB,GAAIzB,aAAYyB,WAAYQ,MAF1BtC,GAAGgB,OAAO,iBAAmBc,WAAa,qBAKvDrB,mBAAqB,SAAS8B,SAC5B,MAAIA,SAAQC,UAAYD,QAAQE,OACvBzG,YAAY0G,MAAMH,QAAQC,SAAUD,QAAQE,QADrD,QAIFnC,eAAiB,SAASqB,aAExB,MADA1F,iBAAgB0G,KAAKhB,YAAY1C,SAC1B0C,YAAY1C,QAAQ,WAAW,WACpC,GAAI2D,MAEJ,OADAA,OAAQ3G,gBAAgB4G,QAAQlB,YAAY1C,SACxC2D,MAAQ,GACH3G,gBAAgB6G,OAAOF,MAAO,GADvC,UAKJvC,YAAc,WACZ,QAASA,aAAYyB,WAAYQ,MACnB,MAARA,OACFA,KAAO/F,OAAOiB,UAEhB4B,KAAKuC,YAAcrF,GAAGqF,YAAYG,WAAYQ,MAC9ClD,KAAK8B,MAAQlB,GAAGkB,QAChB9B,KAAKH,QAAUG,KAAK8B,MAAMjC,QAC1BG,KAAK2D,iBAoCP,MAjCA1C,aAAY2C,UAAUD,eAAiB,WAsBrC,MArBA3D,MAAKuC,YAAYsB,WAAa,SAAUC,OACtC,MAAO,YACL,MAAOjD,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMK,QAAQ,6BAG9BnC,MACHA,KAAKuC,YAAYwB,QAAU,SAAUD,OACnC,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMF,OAAO,sBAAuBlC,WAGpDM,MACHA,KAAKuC,YAAYF,QAAU,SAAUyB,OACnC,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMhC,MAAMF,OAAO,oBAAqBlC,WAGlDM,MACIkB,eAAelB,OAGxBiB,YAAY2C,UAAUI,YAAc,SAASpB,WAC3C,MAAO5C,MAAKuC,YAAYyB,YAAYpB,YAGtC3B,YAAY2C,UAAUK,MAAQ,WAC5B,MAAOjE,MAAKuC,YAAY0B,SAGnBhD,eAGTH,IAAM,WACJ,QAASA,OACPd,KAAKkE,EAAItD,GAAGkB,QACZ9B,KAAKH,QAAUG,KAAKkE,EAAErE,QA+DxB,MA5DAiB,KAAI8C,UAAUhC,OAAS,WACrB,GAAIuC,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASxG,QAAQ8H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAGtC,OAAOpB,MAAM8D,KAAMH,QAE5CnE,QAGLc,IAAI8C,UAAUW,WAAa,SAASC,KAClC,MAAOA,KAAInC,QAAUmC,IAAIpC,UAAY,SAAU0B,OAC7C,MAAO,UAASvE,GACd,MAAOuE,OAAMlC,OAAOpE,gBAAgB+B,MAErCS,OAGLc,IAAI8C,UAAUzB,QAAU,WACtB,GAAIgC,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASxG,QAAQ8H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAG/B,QAAQ3B,MAAM8D,KAAMH,QAE7CnE,QAGLc,IAAI8C,UAAUa,OAAS,WACrB,GAAIN,KAEJ,OADAA,MAAO,GAAKC,UAAUrB,OAASxG,QAAQ8H,KAAKD,UAAW,MAChDvD,WAAWc,OAAO,SAAUmC,OACjC,MAAO,YACL,GAAIQ,KACJ,QAAQA,KAAOR,MAAMI,GAAGO,OAAOjE,MAAM8D,KAAMH,QAE5CnE,QAGLc,IAAI8C,UAAUc,gBAAkB,WAC9B,MAAO,UAAUZ,OACf,MAAO,UAASpE,OACd,MAAOmB,YAAWc,OAAO,WACvB,MAAOmC,OAAMI,EAAEtC,OAAOpE,gBAAgBkC,YAGzCM,OAGLc,IAAI8C,UAAUe,YAAc,SAASH,KAEnC,MADAxE,MAAKuE,WAAWC,KACTA,IAAIvC,UAAY,SAAU6B,OAC/B,MAAO,UAASvE,GACd,MAAOuE,OAAM3B,QAAQ5C,EAAEC,OAAO0C,UAE/BlC,OAGEc,OAGTC,YAAc,WACZ,QAASA,aAAY6B,UAAWL,aAC9BvC,KAAK4C,UAAYA,UACjB5C,KAAK4E,MAAQrC,YAAYyB,YAAYpB,WACrC5C,KAAKuC,YAAcA,YAqUrB,MAlUAxB,aAAY6C,UAAU9B,MAAQ,WAC5B,MAAO,IAAIhB,MAGbC,YAAY6C,UAAUiB,WAAa,SAAS/C,MAAOgD,QAASN,KAC1D,GAAI1E,QAMJ,OALW,OAAP0E,MACFA,IAAMxE,KAAK4E,MAAMG,cAEnBjF,WACAgC,MAAMyC,WAAWC,KACVA,IAAIvC,UAAY,SAAS1C,GAC9B,GAAIyF,OACJ,QAAIA,OAASzF,EAAEC,OAAO0C,SACpBpC,QAAQyD,KAAKuB,QAAQE,SACrBlD,MAAM2C,OAAOK,QAAQE,SACdA,OAAO,eAEPlD,MAAMK,QAAQrC,WAK3BiB,YAAY6C,UAAUqB,gBAAkB,SAASC,KAAMJ,SACrD,GAAIhD,OAAOqD,KAAMX,IAAK1E,QAAS+C,GAAIC,IAKnC,KAJAhB,MAAQ9B,KAAK8B,QACRrF,QAAQ2I,QAAQF,QACnBA,MAAQA,OAELrC,GAAK,EAAGC,KAAOoC,KAAKnC,OAAaD,KAALD,GAAWA,KAC1CsC,KAAOD,KAAKrC,IACZ2B,IAAMM,QAAQK,MACdrF,WACAgC,MAAMyC,WAAWC,KACjBA,IAAIvC,UAAY,SAAS1C,GAGvB,MAFAO,SAAQyD,KAAKhE,EAAEC,OAAO0C,QACtBJ,MAAM2C,OAAOlF,EAAEC,OAAO0C,QAClBpC,QAAQiD,QAAUmC,KAAKnC,OAClBjB,MAAMK,QAAQrC,SADvB,OAKJ,OAAoB,KAAhBoF,KAAKnC,OACAnC,GAAGyE,SAELvD,MAAMjC,SAefkB,YAAY6C,UAAU0B,WAAa,WACjC,GAAIxD,OAAO0C,GAUX,OATA1C,OAAQ9B,KAAK8B,QACT9B,KAAK4E,MAAMU,YACbd,IAAMxE,KAAK4E,MAAMU,aACjBxD,MAAM6C,YAAYH,MAElBxE,KAAK6E,WAAW/C,MAAO,SAASkD,QAC9B,MAAOA,QAAOO,MAGXzD,MAAMjC,SAefkB,YAAY6C,UAAU4B,MAAQ,WAC5B,GAAI1D,OAAO0C,GAIX,OAHA1C,OAAQ9B,KAAK8B,QACb0C,IAAMxE,KAAK4E,MAAMY,QACjB1D,MAAM6C,YAAYH,KACX1C,MAAMjC,SAgBfkB,YAAY6C,UAAU,UAAY,SAAS2B,KACzC,GAAIzD,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAM,UAAUW,MAChCzD,MAAMjC,SAgBfkB,YAAY6C,UAAU6B,OAAS,SAASP,MACtC,MAAOlF,MAAKiF,gBAAgBC,KAAM,SAAUpB,OAC1C,MAAO,UAASqB,MACd,MAAOrB,OAAMc,MAAMc,IAAIP,QAExBnF,QAgBLe,YAAY6C,UAAU+B,OAAS,SAAST,MACtC,MAAOlF,MAAKiF,gBAAgBC,KAAM,SAAUpB,OAC1C,MAAO,UAASqB,MACd,MAAOrB,OAAMc,MAAMgB,IAAIT,QAExBnF,QAeLe,YAAY6C,UAAUiC,OAAS,WAC7B,GAAI/D,MASJ,OARAA,OAAQ9B,KAAK8B,QACT9B,KAAK4E,MAAMiB,OACb/D,MAAM6C,YAAY3E,KAAK4E,MAAMiB,UAE7B7F,KAAK6E,WAAW/C,MAAO,SAASkD,QAC9B,MAAOA,QAAOc,QAGXhE,MAAMjC,SAGfkB,YAAY6C,UAAUmC,UAAY,SAASC,OACzC,GAAIlE,OAAO/C,UAAWkH,UAAWnH,SAAU0F,GAS3C,OARA1C,OAAQ9B,KAAK8B,QACbmE,UAAYD,MAAMC,UAClBnH,SAAWkH,MAAMlH,SACjBC,UAAYiH,MAAMjH,UAClByF,IAAMyB,UAAYjG,KAAK4E,MAAMpB,MAAMyC,WAAWlB,WAAWjG,SAAUC,WAAaiB,KAAK4E,MAAMG,WAAWjG,SAAUC,WAChHiB,KAAK6E,WAAW/C,MAAO,SAAUkD,QAC/B,MAAOA,QAAOc,OACZtB,KACG1C,MAAMjC,SAGfkB,YAAY6C,UAAUsC,UAAY,SAASF,OACzC,MAAOhG,MAAK+F,UAAUC,QAkBxBjF,YAAY6C,UAAUuC,KAAO,SAAShD,SAIpC,MAHe,OAAXA,UACFA,YAEKnD,KAAKoG,OAAO,OAAQjD,UAmB7BpC,YAAY6C,UAAUwC,OAAS,SAASH,UAAW9C,SACjD,GAAIe,EAWJ,OAViB,OAAb+B,YACFA,UAAY,QAEC,MAAX9C,UACFA,YAEFe,EAAI,GAAIlD,OACRkD,EAAE+B,UAAYA,UACd/B,EAAEpF,SAAWuC,mBAAmB8B,SAChCe,EAAEnF,UAAYoE,QAAQpE,WAAaxB,oBAAoBwB,UAChDiB,KAAK+F,UAAU7B,IAexBnD,YAAY6C,UAAUyC,MAAQ,WAC5B,GAAIvE,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAMyB,SACtBvE,MAAMjC,SAefkB,YAAY6C,UAAU0C,KAAO,SAASf,KACpC,GAAIzD,OAAO0C,GAaX,OAZA1C,OAAQ9B,KAAK8B,QACb0C,IAAMxE,KAAK4E,MAAM2B,IAAIhB,KACrBzD,MAAMyC,WAAWC,KACjBA,IAAIvC,UAAY,SAAU6B,OACxB,MAAO,UAASvE,GACd,MAAIA,GAAEC,OAAO0C,OACJJ,MAAMK,QAAQ5C,EAAEC,OAAO0C,QAEvBJ,MAAMF,OAAO,GAAKkC,MAAMlB,UAAY,IAAM2C,IAAM,iBAG1DvF,MACI8B,MAAMjC,SAefkB,YAAY6C,UAAU4C,OAAS,SAAShD,MAAO+B,KAC7C,GAAIzD,MAGJ,OAFAA,OAAQ9B,KAAK8B,QACbA,MAAM6C,YAAY3E,KAAK4E,MAAMpB,MAAMA,OAAO+C,IAAIhB,MACvCzD,MAAMjC,SAGfkB,YAAY6C,UAAUoC,MAAQ,WAC5B,MAAO,IAAIhF,QAGND,eAGTC,MAAQ,WACN,QAASA,SACPhB,KAAKiG,UAAY,OACjBjG,KAAKlB,SAAW,OAChBkB,KAAKjB,UAAY9B,gBAAgBsB,KAsDnC,MAnDAyC,OAAM4C,UAAU6C,IAAM,SAASX,OAE7B,MADA9F,MAAKlB,SAAWlC,YAAY8J,WAAWZ,OAAO,GACvC9F,MAGTgB,MAAM4C,UAAU+C,IAAM,SAASb,OAE7B,MADA9F,MAAKlB,SAAWlC,YAAYgK,WAAWd,OAAO,GACvC9F,MAGTgB,MAAM4C,UAAUiD,KAAO,SAASf,OAE9B,MADA9F,MAAKlB,SAAWlC,YAAY8J,WAAWZ,OAChC9F,MAGTgB,MAAM4C,UAAUkD,KAAO,SAAShB,OAE9B,MADA9F,MAAKlB,SAAWlC,YAAYgK,WAAWd,OAChC9F,MAGTgB,MAAM4C,UAAUmD,IAAM,SAASjB,OAE7B,MADA9F,MAAKlB,SAAWlC,YAAYoK,KAAKlB,OAC1B9F,MAGTgB,MAAM4C,UAAUqD,SAAW,SAASC,IAAKC,GAAIC,MAAOC,MAQlD,MAPa,OAATD,QACFA,OAAQ,GAEE,MAARC,OACFA,MAAO,GAETrH,KAAKlB,SAAWlC,YAAY0G,MAAM4D,IAAKC,GAAIC,MAAOC,MAC3CrH,MAGTgB,MAAM4C,UAAU0D,MAAQ,SAASC,QAE/B,MADAvH,MAAKjB,UAAYwI,OAAStK,gBAAgByB,WAAazB,gBAAgBwB,KAChEuB,MAGTgB,MAAM4C,UAAU4D,KAAO,SAASD,QAE9B,MADAvH,MAAKjB,UAAYwI,OAAStK,gBAAgBuB,WAAavB,gBAAgBsB,KAChEyB,MAGTgB,MAAM4C,UAAU6D,OAAS,SAASxB,WAEhC,MADAjG,MAAKiG,UAAYA,UACVjG,MAGFgB,UAeP0G,UAAW,SAAS9E,UAAW+E,SAAUzE,MAIvC,MAHY,OAARA,OACFA,KAAO/F,OAAOkB,WAETkD,iBAAiBqB,WAAYM,MAAMnD,KAAK,SAASwC,aACtD,GAAIzC,QAEJ,OADAA,SAAU6H,SAAS,GAAI5G,aAAY6B,UAAWL,cACvCxF,uBAAuBwF,YAAY1C,QAASC,YAGvD8H,WAAY,SAASlF,WAAYrC,SAAU6C,MAIzC,MAHY,OAARA,OACFA,KAAO/F,OAAOkB,WAETkD,gBAAgBmB,WAAYQ,MAAMnD,KAAK,SAASwC,aACrD,GAAIsF,cAAc/H,QAAS8C,SAW3B,OAVAiF,cAAe,WACb,GAAIhF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBiF,SAASvE,KAAK,GAAIxC,aAAY6B,UAAWL,aAE3C,OAAOuF,aAEThI,QAAUO,SAASG,MAAM,KAAMqH,cACxB9K,uBAAuBwF,YAAY1C,QAASC,YAGvDiI,cAAe,SAAS1H,SAAU6C,MAIhC,MAHY,OAARA,OACFA,KAAO/F,OAAOkB,WAETiD,eAAevB,KAAK,SAAU+D,OACnC,MAAO,YACL,GAAI+D,cAAc/H,QAAS8C,UAAWF,WAAYH,WAalD,OAZAG,YAAasF,MAAMpE,UAAUpH,MAAMgE,MAAMtD,GAAG8F,kBAC5CT,YAAc,GAAItB,aAAYyB,WAAYQ,MAC1C2E,aAAe,WACb,GAAIhF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvBiF,SAASvE,KAAK,GAAIxC,aAAY6B,UAAWL,aAE3C,OAAOuF,aAEThI,QAAUO,SAASG,MAAM,KAAMqH,cACxB9K,uBAAuBwF,YAAY1C,QAASC,WAEpDE,QAULmB,cAAe,WACb,MAAOA,kBAUT8G,eAAgB,WACd,MAAO9G,iBAAgBpB,KAAK,WAC1B,GAAI+B,MAGJ,OAFAA,OAAQ,GAAIhB,KACZgB,MAAM6C,YAAYlH,UAAUwK,eAAe7K,SACpC0E,MAAMjC,UACZ,WAAW,WACZ,MAAOV,MAAKG,IAAI,eAAiBlC,OAAS,yBAG9C8K,eAAgBpL,aAChBqL,MAAO,WACL,MAAItL,iBAAgBkG,OAAS,EACpBnC,GAAGwH,IAAIvL,iBAEP+D,GAAGyE,UAWdgD,aAAc,WACZ,MAAO/G,gBAAevB,KAAK,WACzB,GAAI2C,YAAYH,WAGhB,OAFAA,aAAc,KACdG,WAAasF,MAAMpE,UAAUpH,MAAMgE,MAAMtD,GAAG8F,kBACrCzB,gBAAgBmB,WAAYvF,OAAOiB,UAAU2B,KAAK,SAASwC,aAChE,GAAIqC,OAAOhC,UAAW0F,MAgBtB,OAfAA,QAAS,WACP,GAAIzF,IAAIC,KAAMgF,QAEd,KADAA,YACKjF,GAAK,EAAGC,KAAOJ,WAAWK,OAAaD,KAALD,GAAWA,KAChDD,UAAYF,WAAWG,IACvB+B,MAAQrC,YAAYyB,YAAYpB,WAChCkF,SAASvE,MACPf,KAAMI,UACN2F,QAAS3D,MAAM2D,QACfC,cAAe5D,MAAM4D,cACrBC,QAAST,MAAMpE,UAAUpH,MAAMgE,MAAMoE,MAAM8D,aAG/C,OAAOZ,aAEFvF,YAAY1C,QAAQE,KAAK,WAC9B,OACEyC,KAAMtF,GAAGsF,KACTpD,QAASlC,GAAGkC,QACZyI,aAAcS,sBAW/BjE,KAAKrE","file":"angular-indexed-db.min.js","sourcesContent":["\n/**\n @license $indexedDBProvider\n (c) 2014 Bram Whillock (bramski)\n Forked from original work by clements Capitan (webcss)\n License: MIT\n */\n\n(function() {\n 'use strict';\n var __slice = [].slice;\n\n angular.module('indexedDB', []).provider('$indexedDB', function() {\n var IDBKeyRange, allTransactions, apiDirection, appendResultsToPromise, applyNeededUpgrades, cursorDirection, db, dbMode, dbName, dbPromise, dbVersion, defaultQueryOptions, errorMessageFor, indexedDB, readyState, upgradesByVersion;\n indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;\n IDBKeyRange = window.IDBKeyRange || window.mozIDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;\n dbMode = {\n readonly: \"readonly\",\n readwrite: \"readwrite\"\n };\n readyState = {\n pending: \"pending\"\n };\n cursorDirection = {\n next: \"next\",\n nextunique: \"nextunique\",\n prev: \"prev\",\n prevunique: \"prevunique\"\n };\n apiDirection = {\n ascending: cursorDirection.next,\n descending: cursorDirection.prev\n };\n dbName = '';\n dbVersion = 1;\n db = null;\n upgradesByVersion = {};\n dbPromise = null;\n allTransactions = [];\n defaultQueryOptions = {\n useIndex: void 0,\n keyRange: null,\n direction: cursorDirection.next\n };\n applyNeededUpgrades = function(oldVersion, event, db, tx, $log) {\n var version;\n for (version in upgradesByVersion) {\n if (!upgradesByVersion.hasOwnProperty(version) || version <= oldVersion) {\n continue;\n }\n $log.log(\"$indexedDB: Running upgrade : \" + version + \" from \" + oldVersion);\n upgradesByVersion[version](event, db, tx);\n }\n };\n errorMessageFor = function(e) {\n if (e.target.readyState === readyState.pending) {\n return \"Error: Operation pending\";\n } else {\n return e.target.webkitErrorMessage || e.target.error.message || e.target.errorCode;\n }\n };\n appendResultsToPromise = function(promise, results) {\n if (results !== void 0) {\n return promise.then(function() {\n return results;\n });\n } else {\n return promise;\n }\n };\n\n /**\n @ngdoc function\n @name $indexedDBProvider.connection\n @function\n \n @description\n sets the name of the database to use\n \n @param {string} databaseName database name.\n @returns {object} this\n */\n this.connection = function(databaseName) {\n dbName = databaseName;\n return this;\n };\n\n /**\n @ngdoc function\n @name $indexedDBProvider.upgradeDatabase\n @function\n \n @description provides version number and steps to upgrade the database wrapped in a\n callback function\n \n @param {number} newVersion new version number for the database.\n @param {function} callback the callback which proceeds the upgrade\n @returns {object} this\n */\n this.upgradeDatabase = function(newVersion, callback) {\n upgradesByVersion[newVersion] = callback;\n dbVersion = Math.max.apply(null, Object.keys(upgradesByVersion));\n return this;\n };\n this.$get = [\n '$q', '$rootScope', '$log', function($q, $rootScope, $log) {\n var DbQ, ObjectStore, Query, Transaction, addTransaction, closeDatabase, createDatabaseConnection, keyRangeForOptions, openDatabase, openTransaction, rejectWithError, validateStoreNames;\n rejectWithError = function(deferred) {\n return function(error) {\n return $rootScope.$apply(function() {\n return deferred.reject(errorMessageFor(error));\n });\n };\n };\n createDatabaseConnection = function() {\n var dbReq, deferred;\n deferred = $q.defer();\n dbReq = indexedDB.open(dbName, parseInt(dbVersion) || 1);\n dbReq.onsuccess = function() {\n db = dbReq.result;\n $rootScope.$apply(function() {\n deferred.resolve(db);\n });\n };\n dbReq.onblocked = dbReq.onerror = rejectWithError(deferred);\n dbReq.onupgradeneeded = function(event) {\n var tx;\n db = event.target.result;\n tx = event.target.transaction;\n $log.log(\"$indexedDB: Upgrading database '\" + db.name + \"' from version \" + event.oldVersion + \" to version \" + event.newVersion + \" ...\");\n applyNeededUpgrades(event.oldVersion, event, db, tx, $log);\n };\n return deferred.promise;\n };\n openDatabase = function() {\n return dbPromise || (dbPromise = createDatabaseConnection());\n };\n closeDatabase = function() {\n return openDatabase().then(function() {\n db.close();\n db = null;\n return dbPromise = null;\n });\n };\n validateStoreNames = function(storeNames) {\n var found, storeName, _i, _len;\n found = true;\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n found = found & db.objectStoreNames.contains(storeName);\n }\n return found;\n };\n openTransaction = function(storeNames, mode) {\n if (mode == null) {\n mode = dbMode.readonly;\n }\n return openDatabase().then(function() {\n if (!validateStoreNames(storeNames)) {\n return $q.reject(\"Object stores \" + storeNames + \" do not exist.\");\n }\n return new Transaction(storeNames, mode);\n });\n };\n keyRangeForOptions = function(options) {\n if (options.beginKey && options.endKey) {\n return IDBKeyRange.bound(options.beginKey, options.endKey);\n }\n };\n addTransaction = function(transaction) {\n allTransactions.push(transaction.promise);\n return transaction.promise[\"finally\"](function() {\n var index;\n index = allTransactions.indexOf(transaction.promise);\n if (index > -1) {\n return allTransactions.splice(index, 1);\n }\n });\n };\n Transaction = (function() {\n function Transaction(storeNames, mode) {\n if (mode == null) {\n mode = dbMode.readonly;\n }\n this.transaction = db.transaction(storeNames, mode);\n this.defer = $q.defer();\n this.promise = this.defer.promise;\n this.setupCallbacks();\n }\n\n Transaction.prototype.setupCallbacks = function() {\n this.transaction.oncomplete = (function(_this) {\n return function() {\n return $rootScope.$apply(function() {\n return _this.defer.resolve(\"Transaction Completed\");\n });\n };\n })(this);\n this.transaction.onabort = (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.defer.reject(\"Transaction Aborted\", error);\n });\n };\n })(this);\n this.transaction.onerror = (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.defer.reject(\"Transaction Error\", error);\n });\n };\n })(this);\n return addTransaction(this);\n };\n\n Transaction.prototype.objectStore = function(storeName) {\n return this.transaction.objectStore(storeName);\n };\n\n Transaction.prototype.abort = function() {\n return this.transaction.abort();\n };\n\n return Transaction;\n\n })();\n DbQ = (function() {\n function DbQ() {\n this.q = $q.defer();\n this.promise = this.q.promise;\n }\n\n DbQ.prototype.reject = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).reject.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.rejectWith = function(req) {\n return req.onerror = req.onblocked = (function(_this) {\n return function(e) {\n return _this.reject(errorMessageFor(e));\n };\n })(this);\n };\n\n DbQ.prototype.resolve = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).resolve.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.notify = function() {\n var args;\n args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];\n return $rootScope.$apply((function(_this) {\n return function() {\n var _ref;\n return (_ref = _this.q).notify.apply(_ref, args);\n };\n })(this));\n };\n\n DbQ.prototype.dbErrorFunction = function() {\n return (function(_this) {\n return function(error) {\n return $rootScope.$apply(function() {\n return _this.q.reject(errorMessageFor(error));\n });\n };\n })(this);\n };\n\n DbQ.prototype.resolveWith = function(req) {\n this.rejectWith(req);\n return req.onsuccess = (function(_this) {\n return function(e) {\n return _this.resolve(e.target.result);\n };\n })(this);\n };\n\n return DbQ;\n\n })();\n ObjectStore = (function() {\n function ObjectStore(storeName, transaction) {\n this.storeName = storeName;\n this.store = transaction.objectStore(storeName);\n this.transaction = transaction;\n }\n\n ObjectStore.prototype.defer = function() {\n return new DbQ();\n };\n\n ObjectStore.prototype._mapCursor = function(defer, mapFunc, req) {\n var results;\n if (req == null) {\n req = this.store.openCursor();\n }\n results = [];\n defer.rejectWith(req);\n return req.onsuccess = function(e) {\n var cursor;\n if (cursor = e.target.result) {\n results.push(mapFunc(cursor));\n defer.notify(mapFunc(cursor));\n return cursor[\"continue\"]();\n } else {\n return defer.resolve(results);\n }\n };\n };\n\n ObjectStore.prototype._arrayOperation = function(data, mapFunc) {\n var defer, item, req, results, _i, _len;\n defer = this.defer();\n if (!angular.isArray(data)) {\n data = [data];\n }\n for (_i = 0, _len = data.length; _i < _len; _i++) {\n item = data[_i];\n req = mapFunc(item);\n results = [];\n defer.rejectWith(req);\n req.onsuccess = function(e) {\n results.push(e.target.result);\n defer.notify(e.target.result);\n if (results.length >= data.length) {\n return defer.resolve(results);\n }\n };\n }\n if (data.length === 0) {\n return $q.when([]);\n }\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.getAllKeys\n @function\n \n @description\n gets all the keys\n \n @returns {Q} A promise which will result with all the keys\n */\n\n ObjectStore.prototype.getAllKeys = function() {\n var defer, req;\n defer = this.defer();\n if (this.store.getAllKeys) {\n req = this.store.getAllKeys();\n defer.resolveWith(req);\n } else {\n this._mapCursor(defer, function(cursor) {\n return cursor.key;\n });\n }\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.clear\n @function\n \n @description\n clears all objects from this store\n \n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.clear = function() {\n var defer, req;\n defer = this.defer();\n req = this.store.clear();\n defer.resolveWith(req);\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.delete\n @function\n \n @description\n Deletes the item at the key. The operation is ignored if the item does not exist.\n \n @param {key} The key of the object to delete.\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype[\"delete\"] = function(key) {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store[\"delete\"](key));\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.upsert\n @function\n \n @description\n Updates the given item\n \n @param {data} Details of the item or items to update or insert\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.upsert = function(data) {\n return this._arrayOperation(data, (function(_this) {\n return function(item) {\n return _this.store.put(item);\n };\n })(this));\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.insert\n @function\n \n @description\n Updates the given item\n \n @param {data} Details of the item or items to insert\n @returns {Q} A promise that this can be done successfully.\n */\n\n ObjectStore.prototype.insert = function(data) {\n return this._arrayOperation(data, (function(_this) {\n return function(item) {\n return _this.store.add(item);\n };\n })(this));\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.getAll\n @function\n \n @description\n Fetches all items from the store\n \n @returns {Q} A promise which resolves with copies of all items in the store\n */\n\n ObjectStore.prototype.getAll = function() {\n var defer;\n defer = this.defer();\n if (this.store.getAll) {\n defer.resolveWith(this.store.getAll());\n } else {\n this._mapCursor(defer, function(cursor) {\n return cursor.value;\n });\n }\n return defer.promise;\n };\n\n ObjectStore.prototype.eachWhere = function(query) {\n var defer, direction, indexName, keyRange, req;\n defer = this.defer();\n indexName = query.indexName;\n keyRange = query.keyRange;\n direction = query.direction;\n req = indexName ? this.store.index(indexName).openCursor(keyRange, direction) : this.store.openCursor(keyRange, direction);\n this._mapCursor(defer, (function(cursor) {\n return cursor.value;\n }), req);\n return defer.promise;\n };\n\n ObjectStore.prototype.findWhere = function(query) {\n return this.eachWhere(query);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.each\n @function\n \n @description\n Iterates through the items in the store\n \n @param {options.beginKey} the key to start iterating from\n @param {options.endKey} the key to stop iterating at\n @param {options.direction} Direction to iterate in\n @returns {Q} A promise which notifies with each individual item and resolves with all of them.\n */\n\n ObjectStore.prototype.each = function(options) {\n if (options == null) {\n options = {};\n }\n return this.eachBy(void 0, options);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.eachBy\n @function\n \n @description\n Iterates through the items in the store using an index\n \n @param {indexName} name of the index to use instead of the primary\n @param {options.beginKey} the key to start iterating from\n @param {options.endKey} the key to stop iterating at\n @param {options.direction} Direction to iterate in\n @returns {Q} A promise which notifies with each individual item and resolves with all of them.\n */\n\n ObjectStore.prototype.eachBy = function(indexName, options) {\n var q;\n if (indexName == null) {\n indexName = void 0;\n }\n if (options == null) {\n options = {};\n }\n q = new Query();\n q.indexName = indexName;\n q.keyRange = keyRangeForOptions(options);\n q.direction = options.direction || defaultQueryOptions.direction;\n return this.eachWhere(q);\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.count\n @function\n \n @description\n Returns a count of the items in the store\n \n @returns {Q} A promise which resolves with the count of all the items in the store.\n */\n\n ObjectStore.prototype.count = function() {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store.count());\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.find\n @function\n \n @description\n Fetches an item from the store\n \n @returns {Q} A promise which resolves with the item from the store\n */\n\n ObjectStore.prototype.find = function(key) {\n var defer, req;\n defer = this.defer();\n req = this.store.get(key);\n defer.rejectWith(req);\n req.onsuccess = (function(_this) {\n return function(e) {\n if (e.target.result) {\n return defer.resolve(e.target.result);\n } else {\n return defer.reject(\"\" + _this.storeName + \":\" + key + \" not found.\");\n }\n };\n })(this);\n return defer.promise;\n };\n\n\n /**\n @ngdoc function\n @name $indexedDBProvider.store.findBy\n @function\n \n @description\n Fetches an item from the store using a named index.\n \n @returns {Q} A promise which resolves with the item from the store.\n */\n\n ObjectStore.prototype.findBy = function(index, key) {\n var defer;\n defer = this.defer();\n defer.resolveWith(this.store.index(index).get(key));\n return defer.promise;\n };\n\n ObjectStore.prototype.query = function() {\n return new Query();\n };\n\n return ObjectStore;\n\n })();\n Query = (function() {\n function Query() {\n this.indexName = void 0;\n this.keyRange = void 0;\n this.direction = cursorDirection.next;\n }\n\n Query.prototype.$lt = function(value) {\n this.keyRange = IDBKeyRange.upperBound(value, true);\n return this;\n };\n\n Query.prototype.$gt = function(value) {\n this.keyRange = IDBKeyRange.lowerBound(value, true);\n return this;\n };\n\n Query.prototype.$lte = function(value) {\n this.keyRange = IDBKeyRange.upperBound(value);\n return this;\n };\n\n Query.prototype.$gte = function(value) {\n this.keyRange = IDBKeyRange.lowerBound(value);\n return this;\n };\n\n Query.prototype.$eq = function(value) {\n this.keyRange = IDBKeyRange.only(value);\n return this;\n };\n\n Query.prototype.$between = function(low, hi, exLow, exHi) {\n if (exLow == null) {\n exLow = false;\n }\n if (exHi == null) {\n exHi = false;\n }\n this.keyRange = IDBKeyRange.bound(low, hi, exLow, exHi);\n return this;\n };\n\n Query.prototype.$desc = function(unique) {\n this.direction = unique ? cursorDirection.prevunique : cursorDirection.prev;\n return this;\n };\n\n Query.prototype.$asc = function(unique) {\n this.direction = unique ? cursorDirection.nextunique : cursorDirection.next;\n return this;\n };\n\n Query.prototype.$index = function(indexName) {\n this.indexName = indexName;\n return this;\n };\n\n return Query;\n\n })();\n return {\n\n /**\n @ngdoc method\n @name $indexedDB.objectStore\n @function\n \n @description an IDBObjectStore to use\n \n @params {string} storeName the name of the objectstore to use\n @returns {object} ObjectStore\n */\n openStore: function(storeName, callBack, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openTransaction([storeName], mode).then(function(transaction) {\n var results;\n results = callBack(new ObjectStore(storeName, transaction));\n return appendResultsToPromise(transaction.promise, results);\n });\n },\n openStores: function(storeNames, callback, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openTransaction(storeNames, mode).then(function(transaction) {\n var objectStores, results, storeName;\n objectStores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n _results.push(new ObjectStore(storeName, transaction));\n }\n return _results;\n })();\n results = callback.apply(null, objectStores);\n return appendResultsToPromise(transaction.promise, results);\n });\n },\n openAllStores: function(callback, mode) {\n if (mode == null) {\n mode = dbMode.readwrite;\n }\n return openDatabase().then((function(_this) {\n return function() {\n var objectStores, results, storeName, storeNames, transaction;\n storeNames = Array.prototype.slice.apply(db.objectStoreNames);\n transaction = new Transaction(storeNames, mode);\n objectStores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n _results.push(new ObjectStore(storeName, transaction));\n }\n return _results;\n })();\n results = callback.apply(null, objectStores);\n return appendResultsToPromise(transaction.promise, results);\n };\n })(this));\n },\n\n /**\n @ngdoc method\n @name $indexedDB.closeDatabase\n @function\n \n @description Closes the database for use and completes all transactions.\n */\n closeDatabase: function() {\n return closeDatabase();\n },\n\n /**\n @ngdoc method\n @name $indexedDB.deleteDatabase\n @function\n \n @description Closes and then destroys the current database. Returns a promise that resolves when this is persisted.\n */\n deleteDatabase: function() {\n return closeDatabase().then(function() {\n var defer;\n defer = new DbQ();\n defer.resolveWith(indexedDB.deleteDatabase(dbName));\n return defer.promise;\n })[\"finally\"](function() {\n return $log.log(\"$indexedDB: \" + dbName + \" database deleted.\");\n });\n },\n queryDirection: apiDirection,\n flush: function() {\n if (allTransactions.length > 0) {\n return $q.all(allTransactions);\n } else {\n return $q.when([]);\n }\n },\n\n /**\n @ngdoc method\n @name $indexedDB.databaseInfo\n @function\n \n @description Returns information about this database.\n */\n databaseInfo: function() {\n return openDatabase().then(function() {\n var storeNames, transaction;\n transaction = null;\n storeNames = Array.prototype.slice.apply(db.objectStoreNames);\n return openTransaction(storeNames, dbMode.readonly).then(function(transaction) {\n var store, storeName, stores;\n stores = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = storeNames.length; _i < _len; _i++) {\n storeName = storeNames[_i];\n store = transaction.objectStore(storeName);\n _results.push({\n name: storeName,\n keyPath: store.keyPath,\n autoIncrement: store.autoIncrement,\n indices: Array.prototype.slice.apply(store.indexNames)\n });\n }\n return _results;\n })();\n return transaction.promise.then(function() {\n return {\n name: db.name,\n version: db.version,\n objectStores: stores\n };\n });\n });\n });\n }\n };\n }\n ];\n });\n\n}).call(this);\n\n//# sourceMappingURL=angular-indexed-db.js.map\n"]} \ No newline at end of file diff --git a/src/angular-indexed-db.coffee b/src/angular-indexed-db.coffee index 27d1797..ab7bec9 100644 --- a/src/angular-indexed-db.coffee +++ b/src/angular-indexed-db.coffee @@ -8,7 +8,7 @@ 'use strict' angular.module('indexedDB', []).provider '$indexedDB', -> - indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB + indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB IDBKeyRange = window.IDBKeyRange || window.mozIDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange dbMode =