(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=global||self,global.browserStore=factory())})(this,(function(){"use strict";function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i=o.length)return{done:true};return{done:false,value:o[i++]}},e:function(e){throw e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function(){it=o[Symbol.iterator]()},n:function(){var step=it.next();normalCompletion=step.done;return step},e:function(e){didErr=true;err=e},f:function(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}var parse_1=parse;var serialize_1=serialize;var decode=decodeURIComponent;var encode=encodeURIComponent;var pairSplitRegExp=/; */;var fieldContentRegExp=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function parse(str,options){if(typeof str!=="string"){throw new TypeError("argument str must be a string")}var obj={};var opt=options||{};var pairs=str.split(pairSplitRegExp);var dec=opt.decode||decode;for(var i=0;i2&&arguments[2]!==undefined?arguments[2]:{};options=Object.assign({},cookieOptions,options);document.cookie=cookie.serialize(preKey+key,value,options)};var removeItem=function removeItem(key,options){options=Object.assign({},cookieOptions,options,{maxAge:-1});document.cookie=cookie.serialize(preKey+key,"",options)};var isSupport=function isSupport(){try{setItem(testKey,"a");var value1=getItem(testKey);removeItem(testKey);var value2=getItem(testKey);return value1==="a"&&value2===null}catch(e){return false}};var setOptions=function setOptions(option){cookieOptions=Object.assign({},cookieOptions,option)};var setPreKey=function setPreKey(key){preKey=key};var setTestKey=function setTestKey(key){testKey=key};var cookieStore={getItem:getItem,setItem:setItem,removeItem:removeItem,isSupport:isSupport,setOptions:setOptions,setPreKey:setPreKey,setTestKey:setTestKey};var preKey$1="";var testKey$1="__test__";var getItem$1=function getItem(key){return localStorage.getItem(preKey$1+key)};var setItem$1=function setItem(key,value){localStorage.setItem(preKey$1+key,value)};var removeItem$1=function removeItem(key){localStorage.removeItem(preKey$1+key)};var isSupport$1=function isSupport(){try{setItem$1(testKey$1,"a");var value1=getItem$1(testKey$1);removeItem$1(testKey$1);var value2=getItem$1(testKey$1);return value1==="a"&&value2===null}catch(e){return false}};var setPreKey$1=function setPreKey(key){preKey$1=key};var setTestKey$1=function setTestKey(key){testKey$1=key};var localStore={getItem:getItem$1,setItem:setItem$1,removeItem:removeItem$1,isSupport:isSupport$1,setPreKey:setPreKey$1,setTestKey:setTestKey$1};var preKey$2="";var testKey$2="__test__";var getItem$2=function getItem(key){return sessionStorage.getItem(preKey$2+key)};var setItem$2=function setItem(key,value){sessionStorage.setItem(preKey$2+key,value)};var removeItem$2=function removeItem(key){sessionStorage.removeItem(preKey$2+key)};var clear=function clear(){sessionStorage.clear()};var isSupport$2=function isSupport(){try{setItem$2(testKey$2,"a");var value1=getItem$2(testKey$2);removeItem$2(testKey$2);var value2=getItem$2(testKey$2);return value1==="a"&&value2===null}catch(e){return false}};var setPreKey$2=function setPreKey(key){preKey$2=key};var setTestKey$2=function setTestKey(key){testKey$2=key};var seesionStore={getItem:getItem$2,setItem:setItem$2,removeItem:removeItem$2,clear:clear,isSupport:isSupport$2,setPreKey:setPreKey$2,setTestKey:setTestKey$2};var cookieStoreIsSupport=cookieStore.isSupport();var localStoreIsSupport=localStore.isSupport();var seesionStoreIsSupport=seesionStore.isSupport();var priority="lc";var getItem$3=function getItem(key){var _iterator=_createForOfIteratorHelper(priority),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var type=_step.value;if(type==="l"&&localStoreIsSupport){return localStore.getItem(key)}if(type==="c"&&cookieStoreIsSupport){return cookieStore.getItem(key)}if(type==="s"&&seesionStoreIsSupport){return seesionStore.getItem(key)}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return null};var setItem$3=function setItem(key,value){var _iterator2=_createForOfIteratorHelper(priority),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var type=_step2.value;if(type==="l"&&localStoreIsSupport){localStore.setItem(key,value);return true}if(type==="c"&&cookieStoreIsSupport){cookieStore.setItem(key,value);return true}if(type==="s"&&seesionStoreIsSupport){seesionStore.setItem(key,value);return true}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return false};var removeItem$3=function removeItem(key){var _iterator3=_createForOfIteratorHelper(priority),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var type=_step3.value;if(type==="l"&&localStoreIsSupport){localStore.removeItem(key);return true}if(type==="c"&&cookieStoreIsSupport){cookieStore.removeItem(key);return true}if(type==="s"&&seesionStoreIsSupport){seesionStore.removeItem(key);return true}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return false};var setPriority=function setPriority(key){priority=key};var setPreKey$3=function setPreKey(key){cookieStore.setPreKey(key);localStore.setPreKey(key);seesionStore.setPreKey(key)};var index={getItem:getItem$3,setItem:setItem$3,removeItem:removeItem$3,setPriority:setPriority,setPreKey:setPreKey$3,cookieStoreSetPreKey:cookieStore.setPreKey,localStoreSetPreKey:localStore.setPreKey,seesionStoreSetPreKey:seesionStore.setPreKey,cookieStoreIsSupport:cookieStoreIsSupport,localStoreIsSupport:localStoreIsSupport,seesionStoreIsSupport:seesionStoreIsSupport,cookieSetOptions:cookieStore.setOptions};return index}));