{"version":3,"file":"npm.redux-persist.xxxxxxxxxxxxxxxxxxxx.js","mappings":";;;;;;;;;;;;;;;;;;;;AAAO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACPuC;;AAE/B;AACf,yBAAyB;AACzB;;AAEA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;;AAEA,2GAA2G,uDAAe;AAC1H;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;;AAEL,QAAQ,KAAqC;AAC7C;AACA;AACA,YAAY,KAAqC;AACjD;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzCoD;;AAEpD;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,6EAA6E,kDAAU;AACvF;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;AAChD,iDAAiD;AACjD,qDAAqD;AACrD,+BAA+B;AAC/B,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAoB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnHe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxByC;;AAE1B;AACf;AACA,6EAA6E,kDAAU;AACvF;AACA;A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","sources":["webpack:///./node_modules/redux-persist/es/constants.js","webpack:///./node_modules/redux-persist/es/createMigrate.js","webpack:///./node_modules/redux-persist/es/createPersistoid.js","webpack:///./node_modules/redux-persist/es/createTransform.js","webpack:///./node_modules/redux-persist/es/getStoredState.js","webpack:///./node_modules/redux-persist/es/index.js","webpack:///./node_modules/redux-persist/es/integration/react.js","webpack:///./node_modules/redux-persist/es/persistCombineReducers.js","webpack:///./node_modules/redux-persist/es/persistReducer.js","webpack:///./node_modules/redux-persist/es/persistStore.js","webpack:///./node_modules/redux-persist/es/purgeStoredState.js","webpack:///./node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","webpack:///./node_modules/redux-persist/es/stateReconciler/autoMergeLevel2.js","webpack:///./node_modules/redux-persist/lib/stateReconciler/hardSet.js","webpack:///./node_modules/redux-persist/lib/storage/createWebStorage.js","webpack:///./node_modules/redux-persist/lib/storage/getStorage.js","webpack:///./node_modules/redux-persist/lib/storage/index.js"],"sourcesContent":["export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","import { DEFAULT_VERSION } from './constants';\n\nexport default function createMigrate(migrations, config) {\n  var _ref = config || {},\n      debug = _ref.debug;\n\n  return function (state, currentVersion) {\n    if (!state) {\n      if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: no inbound state, skipping migration');\n      return Promise.resolve(undefined);\n    }\n\n    var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : DEFAULT_VERSION;\n    if (inboundVersion === currentVersion) {\n      if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');\n      return Promise.resolve(state);\n    }\n    if (inboundVersion > currentVersion) {\n      if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');\n      return Promise.resolve(state);\n    }\n\n    var migrationKeys = Object.keys(migrations).map(function (ver) {\n      return parseInt(ver);\n    }).filter(function (key) {\n      return currentVersion >= key && key > inboundVersion;\n    }).sort(function (a, b) {\n      return a - b;\n    });\n\n    if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);\n    try {\n      var migratedState = migrationKeys.reduce(function (state, versionKey) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: running migration for versionKey', versionKey);\n        return migrations[versionKey](state);\n      }, state);\n      return Promise.resolve(migratedState);\n    } catch (err) {\n      return Promise.reject(err);\n    }\n  };\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n\n// @TODO remove once flow < 0.63 support is no longer required.\n\nexport default function createPersistoid(config) {\n  // defaults\n  var blacklist = config.blacklist || null;\n  var whitelist = config.whitelist || null;\n  var transforms = config.transforms || [];\n  var throttle = config.throttle || 0;\n  var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;\n  var storage = config.storage;\n  var serialize = config.serialize === false ? function (x) {\n    return x;\n  } : defaultSerialize;\n\n  // initialize stateful values\n  var lastState = {};\n  var stagedState = {};\n  var keysToProcess = [];\n  var timeIterator = null;\n  var writePromise = null;\n\n  var update = function update(state) {\n    // add any changed keys to the queue\n    Object.keys(state).forEach(function (key) {\n      if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n      if (lastState[key] === state[key]) return; // value unchanged? noop\n      if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n      keysToProcess.push(key); // add key to queue\n    });\n\n    //if any key is missing in the new state which was present in the lastState,\n    //add it for processing too\n    Object.keys(lastState).forEach(function (key) {\n      if (state[key] === undefined) {\n        keysToProcess.push(key);\n      }\n    });\n\n    // start the time iterator if not running (read: throttle)\n    if (timeIterator === null) {\n      timeIterator = setInterval(processNextKey, throttle);\n    }\n\n    lastState = state;\n  };\n\n  function processNextKey() {\n    if (keysToProcess.length === 0) {\n      if (timeIterator) clearInterval(timeIterator);\n      timeIterator = null;\n      return;\n    }\n\n    var key = keysToProcess.shift();\n    var endState = transforms.reduce(function (subState, transformer) {\n      return transformer.in(subState, key, lastState);\n    }, lastState[key]);\n\n    if (endState !== undefined) {\n      try {\n        stagedState[key] = serialize(endState);\n      } catch (err) {\n        console.error('redux-persist/createPersistoid: error serializing state', err);\n      }\n    } else {\n      //if the endState is undefined, no need to persist the existing serialized content\n      delete stagedState[key];\n    }\n\n    if (keysToProcess.length === 0) {\n      writeStagedState();\n    }\n  }\n\n  function writeStagedState() {\n    // cleanup any removed keys just before write.\n    Object.keys(stagedState).forEach(function (key) {\n      if (lastState[key] === undefined) {\n        delete stagedState[key];\n      }\n    });\n\n    writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n  }\n\n  function passWhitelistBlacklist(key) {\n    if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n    if (blacklist && blacklist.indexOf(key) !== -1) return false;\n    return true;\n  }\n\n  function onWriteFail(err) {\n    // @TODO add fail handlers (typically storage full)\n    if (err && process.env.NODE_ENV !== 'production') {\n      console.error('Error storing data', err);\n    }\n  }\n\n  var flush = function flush() {\n    while (keysToProcess.length !== 0) {\n      processNextKey();\n    }\n    return writePromise || Promise.resolve();\n  };\n\n  // return `persistoid`\n  return {\n    update: update,\n    flush: flush\n  };\n}\n\n// @NOTE in the future this may be exposed via config\nfunction defaultSerialize(data) {\n  return JSON.stringify(data);\n}","\n\nexport default function createTransform(\n// @NOTE inbound: transform state coming from redux on its way to being serialized and stored\ninbound,\n// @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux\noutbound) {\n  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  var whitelist = config.whitelist || null;\n  var blacklist = config.blacklist || null;\n\n  function whitelistBlacklistCheck(key) {\n    if (whitelist && whitelist.indexOf(key) === -1) return true;\n    if (blacklist && blacklist.indexOf(key) !== -1) return true;\n    return false;\n  }\n\n  return {\n    in: function _in(state, key, fullState) {\n      return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key, fullState) : state;\n    },\n    out: function out(state, key, fullState) {\n      return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key, fullState) : state;\n    }\n  };\n}","\n\nimport { KEY_PREFIX } from './constants';\n\nexport default function getStoredState(config) {\n  var transforms = config.transforms || [];\n  var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;\n  var storage = config.storage;\n  var debug = config.debug;\n  var deserialize = config.serialize === false ? function (x) {\n    return x;\n  } : defaultDeserialize;\n  return storage.getItem(storageKey).then(function (serialized) {\n    if (!serialized) return undefined;else {\n      try {\n        var state = {};\n        var rawState = deserialize(serialized);\n        Object.keys(rawState).forEach(function (key) {\n          state[key] = transforms.reduceRight(function (subState, transformer) {\n            return transformer.out(subState, key, rawState);\n          }, deserialize(rawState[key]));\n        });\n        return state;\n      } catch (err) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/getStoredState: Error restoring data ' + serialized, err);\n        throw err;\n      }\n    }\n  });\n}\n\nfunction defaultDeserialize(serial) {\n  return JSON.parse(serial);\n}","export { default as persistReducer } from './persistReducer';\nexport { default as persistCombineReducers } from './persistCombineReducers';\nexport { default as persistStore } from './persistStore';\nexport { default as createMigrate } from './createMigrate';\nexport { default as createTransform } from './createTransform';\nexport { default as getStoredState } from './getStoredState';\nexport { default as createPersistoid } from './createPersistoid';\nexport { default as purgeStoredState } from './purgeStoredState';\n\nexport * from './constants';","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n// eslint-disable-line import/no-unresolved\n\n\nexport var PersistGate = function (_PureComponent) {\n  _inherits(PersistGate, _PureComponent);\n\n  function PersistGate() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, PersistGate);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = PersistGate.__proto__ || Object.getPrototypeOf(PersistGate)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n      bootstrapped: false\n    }, _this.handlePersistorState = function () {\n      var persistor = _this.props.persistor;\n\n      var _persistor$getState = persistor.getState(),\n          bootstrapped = _persistor$getState.bootstrapped;\n\n      if (bootstrapped) {\n        if (_this.props.onBeforeLift) {\n          Promise.resolve(_this.props.onBeforeLift()).then(function () {\n            return _this.setState({ bootstrapped: true });\n          }).catch(function () {\n            return _this.setState({ bootstrapped: true });\n          });\n        } else {\n          _this.setState({ bootstrapped: true });\n        }\n        _this._unsubscribe && _this._unsubscribe();\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(PersistGate, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n      this.handlePersistorState();\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      this._unsubscribe && this._unsubscribe();\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n      }\n      if (typeof this.props.children === 'function') {\n        return this.props.children(this.state.bootstrapped);\n      }\n\n      return this.state.bootstrapped ? this.props.children : this.props.loading;\n    }\n  }]);\n\n  return PersistGate;\n}(PureComponent);\nPersistGate.defaultProps = {\n  loading: null\n};","import { combineReducers } from 'redux';\nimport persistReducer from './persistReducer';\nimport autoMergeLevel2 from './stateReconciler/autoMergeLevel2';\n\n// combineReducers + persistReducer with stateReconciler defaulted to autoMergeLevel2\nexport default function persistCombineReducers(config, reducers) {\n  config.stateReconciler = config.stateReconciler === undefined ? autoMergeLevel2 : config.stateReconciler;\n  return persistReducer(config, combineReducers(reducers));\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\n\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\n\nvar DEFAULT_TIMEOUT = 5000;\n/*\n  @TODO add validation / handling for:\n  - persisting a reducer which has nested _persist\n  - handling actions that fire before reydrate is called\n*/\nexport default function persistReducer(config, baseReducer) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!config) throw new Error('config is required for persistReducer');\n    if (!config.key) throw new Error('key is required in persistor config');\n    if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n  }\n\n  var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n  var debug = config.debug || false;\n  var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n  var getStoredState = config.getStoredState || defaultGetStoredState;\n  var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n  var _persistoid = null;\n  var _purge = false;\n  var _paused = true;\n  var conditionalUpdate = function conditionalUpdate(state) {\n    // update the persistoid only if we are rehydrated and not paused\n    state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n    return state;\n  };\n\n  return function (state, action) {\n    var _ref = state || {},\n        _persist = _ref._persist,\n        rest = _objectWithoutProperties(_ref, ['_persist']);\n\n    var restState = rest;\n\n    if (action.type === PERSIST) {\n      var _sealed = false;\n      var _rehydrate = function _rehydrate(payload, err) {\n        // dev warning if we are already sealed\n        if (process.env.NODE_ENV !== 'production' && _sealed) console.error('redux-persist: rehydrate for \"' + config.key + '\" called after timeout.', payload, err);\n\n        // only rehydrate if we are not already sealed\n        if (!_sealed) {\n          action.rehydrate(config.key, payload, err);\n          _sealed = true;\n        }\n      };\n      timeout && setTimeout(function () {\n        !_sealed && _rehydrate(undefined, new Error('redux-persist: persist timed out for persist key \"' + config.key + '\"'));\n      }, timeout);\n\n      // @NOTE PERSIST resumes if paused.\n      _paused = false;\n\n      // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n      if (!_persistoid) _persistoid = createPersistoid(config);\n\n      // @NOTE PERSIST can be called multiple times, noop after the first\n      if (_persist) return state;\n      if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n\n      action.register(config.key);\n\n      getStoredState(config).then(function (restoredState) {\n        var migrate = config.migrate || function (s, v) {\n          return Promise.resolve(s);\n        };\n        migrate(restoredState, version).then(function (migratedState) {\n          _rehydrate(migratedState);\n        }, function (migrateErr) {\n          if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n          _rehydrate(undefined, migrateErr);\n        });\n      }, function (err) {\n        _rehydrate(undefined, err);\n      });\n\n      return _extends({}, baseReducer(restState, action), {\n        _persist: { version: version, rehydrated: false }\n      });\n    } else if (action.type === PURGE) {\n      _purge = true;\n      action.result(purgeStoredState(config));\n      return _extends({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === FLUSH) {\n      action.result(_persistoid && _persistoid.flush());\n      return _extends({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === PAUSE) {\n      _paused = true;\n    } else if (action.type === REHYDRATE) {\n      // noop on restState if purging\n      if (_purge) return _extends({}, restState, {\n        _persist: _extends({}, _persist, { rehydrated: true })\n\n        // @NOTE if key does not match, will continue to default else below\n      });if (action.key === config.key) {\n        var reducedState = baseReducer(restState, action);\n        var inboundState = action.payload;\n        // only reconcile state if stateReconciler and inboundState are both defined\n        var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n        var _newState = _extends({}, reconciledRest, {\n          _persist: _extends({}, _persist, { rehydrated: true })\n        });\n        return conditionalUpdate(_newState);\n      }\n    }\n\n    // if we have not already handled PERSIST, straight passthrough\n    if (!_persist) return baseReducer(state, action);\n\n    // run base reducer:\n    // is state modified ? return original : return updated\n    var newState = baseReducer(restState, action);\n    if (newState === restState) return state;else {\n      newState._persist = _persist;\n      return conditionalUpdate(newState);\n    }\n  };\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nimport { createStore } from 'redux';\n\nimport persistReducer from './persistReducer';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\n\nvar initialState = {\n  registry: [],\n  bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n  var action = arguments[1];\n\n  switch (action.type) {\n    case REGISTER:\n      return _extends({}, state, { registry: [].concat(_toConsumableArray(state.registry), [action.key]) });\n    case REHYDRATE:\n      var firstIndex = state.registry.indexOf(action.key);\n      var registry = [].concat(_toConsumableArray(state.registry));\n      registry.splice(firstIndex, 1);\n      return _extends({}, state, { registry: registry, bootstrapped: registry.length === 0 });\n    default:\n      return state;\n  }\n};\n\nexport default function persistStore(store, options, cb) {\n  // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n  if (process.env.NODE_ENV !== 'production') {\n    var optionsToTest = options || {};\n    var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n    bannedKeys.forEach(function (k) {\n      if (!!optionsToTest[k]) console.error('redux-persist: invalid option passed to persistStore: \"' + k + '\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.');\n    });\n  }\n  var boostrappedCb = cb || false;\n\n  var _pStore = createStore(persistorReducer, initialState, options ? options.enhancer : undefined);\n  var register = function register(key) {\n    _pStore.dispatch({\n      type: REGISTER,\n      key: key\n    });\n  };\n\n  var rehydrate = function rehydrate(key, payload, err) {\n    var rehydrateAction = {\n      type: REHYDRATE,\n      payload: payload,\n      err: err,\n      key: key\n      // dispatch to `store` to rehydrate and `persistor` to track result\n    };store.dispatch(rehydrateAction);\n    _pStore.dispatch(rehydrateAction);\n    if (boostrappedCb && persistor.getState().bootstrapped) {\n      boostrappedCb();\n      boostrappedCb = false;\n    }\n  };\n\n  var persistor = _extends({}, _pStore, {\n    purge: function purge() {\n      var results = [];\n      store.dispatch({\n        type: PURGE,\n        result: function result(purgeResult) {\n          results.push(purgeResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    flush: function flush() {\n      var results = [];\n      store.dispatch({\n        type: FLUSH,\n        result: function result(flushResult) {\n          results.push(flushResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    pause: function pause() {\n      store.dispatch({\n        type: PAUSE\n      });\n    },\n    persist: function persist() {\n      store.dispatch({ type: PERSIST, register: register, rehydrate: rehydrate });\n    }\n  });\n\n  persistor.persist();\n\n  return persistor;\n}","\n\nimport { KEY_PREFIX } from './constants';\n\nexport default function purgeStoredState(config) {\n  var storage = config.storage;\n  var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX) + config.key;\n  return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n  if (err && process.env.NODE_ENV !== 'production') {\n    console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n  }\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n  var debug = _ref.debug;\n\n  var newState = _extends({}, reducedState);\n  // only rehydrate if inboundState exists and is an object\n  if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {\n    Object.keys(inboundState).forEach(function (key) {\n      // ignore _persist data\n      if (key === '_persist') return;\n      // if reducer modifies substate, skip auto rehydration\n      if (originalState[key] !== reducedState[key]) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n        return;\n      }\n      // otherwise hard set the new value\n      newState[key] = inboundState[key];\n    });\n  }\n\n  if (process.env.NODE_ENV !== 'production' && debug && inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') console.log('redux-persist/stateReconciler: rehydrated keys \\'' + Object.keys(inboundState).join(', ') + '\\'');\n\n  return newState;\n}\n\n/*\n  autoMergeLevel1: \n    - merges 1 level of substate\n    - skips substate if already modified\n*/","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexport default function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n  var debug = _ref.debug;\n\n  var newState = _extends({}, reducedState);\n  // only rehydrate if inboundState exists and is an object\n  if (inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') {\n    Object.keys(inboundState).forEach(function (key) {\n      // ignore _persist data\n      if (key === '_persist') return;\n      // if reducer modifies substate, skip auto rehydration\n      if (originalState[key] !== reducedState[key]) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n        return;\n      }\n      if (isPlainEnoughObject(reducedState[key])) {\n        // if object is plain enough shallow merge the new values (hence \"Level2\")\n        newState[key] = _extends({}, newState[key], inboundState[key]);\n        return;\n      }\n      // otherwise hard set\n      newState[key] = inboundState[key];\n    });\n  }\n\n  if (process.env.NODE_ENV !== 'production' && debug && inboundState && (typeof inboundState === 'undefined' ? 'undefined' : _typeof(inboundState)) === 'object') console.log('redux-persist/stateReconciler: rehydrated keys \\'' + Object.keys(inboundState).join(', ') + '\\'');\n\n  return newState;\n}\n\n/*\n  autoMergeLevel2: \n    - merges 2 level of substate\n    - skips substate if already modified\n    - this is essentially redux-perist v4 behavior\n*/\n\nfunction isPlainEnoughObject(o) {\n  return o !== null && !Array.isArray(o) && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hardSet;\n\n\n/*\n  hardSet: \n    - hard set incoming state\n*/\n\nfunction hardSet(inboundState) {\n  return inboundState;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = require('./getStorage');\n\nvar _getStorage2 = _interopRequireDefault(_getStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n  var storage = (0, _getStorage2.default)(type);\n  return {\n    getItem: function getItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.getItem(key));\n      });\n    },\n    setItem: function setItem(key, item) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.setItem(key, item));\n      });\n    },\n    removeItem: function removeItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.removeItem(key));\n      });\n    }\n  };\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = getStorage;\n\n\nfunction noop() {}\n\nvar noopStorage = {\n  getItem: noop,\n  setItem: noop,\n  removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n  if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) !== 'object' || !(storageType in self)) {\n    return false;\n  }\n\n  try {\n    var storage = self[storageType];\n    var testKey = 'redux-persist ' + storageType + ' test';\n    storage.setItem(testKey, 'test');\n    storage.getItem(testKey);\n    storage.removeItem(testKey);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') console.warn('redux-persist ' + storageType + ' test failed, persistence will be disabled.');\n    return false;\n  }\n  return true;\n}\n\nfunction getStorage(type) {\n  var storageType = type + 'Storage';\n  if (hasStorage(storageType)) return self[storageType];else {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error('redux-persist failed to create sync storage. falling back to memory storage.');\n    }\n    return noopStorage;\n  }\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _createWebStorage = require('./createWebStorage');\n\nvar _createWebStorage2 = _interopRequireDefault(_createWebStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _createWebStorage2.default)('local');"],"names":[],"sourceRoot":""}