(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;oref1;i=0<=ref1?++j:--j){cacheKey=localStorage.key(i);if(!this._cacheKeyHasPrefix(cacheKey,key)){continue}skipKey=false;for(k=0,len=exceptFor.length;k=400&&error.status<500){_this.removeWrite(write);$log.error(write.action+" to "+_this.CachedResource.$key+" failed with error "+error.status,{method:error.config.method,url:error.config.url,writeData:writeData})}else{write.busy=false;_this.logStatusOfRequest("failed with error "+angular.toJson(error)+"; still in queue",write.action,write.resourceParams,writeData)}return(ref=write.deferred)!=null?ref.reject(error):void 0}}(this);this.CachedResource.$resource[write.action](write.params,writeData,onSuccess,onFailure).$promise.then(function(_this){return function(savedResources){var cacheEntry,i,len,resource,resourceInstance,results;savedResources=angular.isArray(savedResources)?savedResources:[savedResources];results=[];for(i=0,len=savedResources.length;i0&&!this.timeoutPromise){this.timeoutPromise=this.$timeout(angular.bind(this,this.flush),CACHE_RETRY_TIMEOUT);return this.timeoutPromise.then(function(_this){return function(){delete _this.timeoutPromise;return _this._setFlushTimeout()}}(this))}};ResourceWriteQueue.prototype._update=function(){var savableQueue;savableQueue=this.queue.map(function(write){return{params:write.params,resourceParams:write.resourceParams,action:write.action}});return Cache.setItem(this.key,savableQueue)};return ResourceWriteQueue}()}},{"./cache":2,"./resource_cache_entry":10}],12:[function(require,module,exports){var modifyObjectInPlace,writeCache;modifyObjectInPlace=require("./modify_object_in_place");module.exports=writeCache=function($q,providerParams,action,CachedResource,actionConfig){var ResourceCacheEntry;ResourceCacheEntry=require("./resource_cache_entry")(providerParams);return function(){var args,cacheEntry,data,deferred,error,i,instanceMethod,isArray,isDirty,len,param,params,queueDeferred,ref,resource,success,value,wrapInCachedResource;instanceMethod=this instanceof CachedResource;args=Array.prototype.slice.call(arguments);params=!instanceMethod&&angular.isObject(args[1])?args.shift():instanceMethod&&angular.isObject(args[0])?args.shift():{};data=instanceMethod?this:args.shift();success=args[0],error=args[1];isArray=angular.isArray(data);isDirty=!actionConfig.cacheOnly;wrapInCachedResource=function(object){if(object instanceof CachedResource){return object}else{return new CachedResource(object)}};if(isArray){data=data.map(function(o){return wrapInCachedResource(o)});for(i=0,len=data.length;i